2009-09-04 11 views
18

मैं अपने Sweave दस्तावेज़ निर्माण को व्यवस्थित करना चाहता हूं, और मैं लोगों के वर्तमान सेटअप के बारे में सुनना चाहता हूं। होली ग्रेल कुछ इस तरह चला जाता है की तरह मुझे लगता है: स्क्रीन के एक हिस्से मेंस्वीवे दस्तावेज़ों के विकास के लिए सिफारिशें

  • संपादन RNW कोड
  • एकल की बाइंडिंग Sweave दस्तावेज़ संकलित करता है तथा pdflatex के दूसरे आधे पर
  • PDF देखें चलाता है स्क्रीन; एक बार संकलित, पीडीएफ ताजा है और दस्तावेज़ के भाग के आसपास केंद्रित आप संपादित कर रहे हैं
  • संकलन त्रुटियाँ हैं, तो संकलन के परिणाम (जैसे लेटेक्स त्रुटियों या Sweave त्रुटियों)

साथ पीडीएफ की जगह मैं अनुमान लगा रहा/उम्मीद कर रहा हूं कि समाधान Emacs/ESS भाग Emacs प्रोफ़ाइल और/या एक अच्छा मेकफ़ाइल के लिए कुछ कोड के साथ संयुक्त है। लेकिन मैं वास्तव में स्वीवे और/या लेटेक्स दस्तावेज़ बनाने के हर किसी के पसंदीदा तरीके के बारे में सुनना चाहूंगा।

उत्तर

9

कुछ अन्य आर उपयोगकर्ताओं मैंने एक 'एक-निर्देशिका-प्रति-परियोजना' सेटअप, और एक साधारण मेकफ़ाइल का उपयोग करने के लिए बात की। जैसा कि आपको संदेह था, यह Emacs/ESS के साथ अच्छी तरह से काम करता है।

मुझे बस एक साधारण खोल स्क्रिप्ट sweave कहा जाता है जिसे मैंने पहले 'आर सीएमडी स्वीवे' जोड़ा था (जैसा कि मुझे मेकफ़ाइल अपरिवर्तनीय, वाईएमएमवी को फिर से बनाना या कॉपी करना) था। मैं Emacs और एक ऑटो-रीफ्रेशिंग पीडीएफ दर्शक का उपयोग करता हूं (जैसे okular या kpdf)। Emacs23 सीधे पीडीएफ फाइलों का पूर्वावलोकन भी कर सकता है लेकिन मैंने अभी तक अपना काम प्रवाह स्विच नहीं किया है।

[email protected]:~$ cat bin/sweave 
#!/bin/bash -e 

function errorexit() { 
    echo "Error: $1" 
    exit 1 
} 

function filetest() { 
    if [ ! -f $1 ]; then 
     errorexit "File $1 not found" 
    fi 
    return 0 
} 


if [ "$#" -lt 1 ]; then 
    errorexit "Need to specify argument file" 
fi 


BASENAME=$(basename $1 .Rnw) 

RNWFILE=$BASENAME.Rnw 
filetest $RNWFILE 
echo "library(tools); Sweave(\"$RNWFILE\")" \ 
     | R --no-save --no-restore --slave 

LATEXFILE=$BASENAME.tex 
filetest $LATEXFILE && pdflatex $LATEXFILE 
6

आप ग्रहण के लिए स्टेटेट प्लगइन के साथ जो भी सुझाव देते हैं, वह सब कुछ कर सकते हैं। स्वीवेव विकास के लिए मैं यही उपयोग करता हूं; यह लेटेक्स और आर दोनों को बहुत अच्छी तरह समझता है, जिसमें सिंटैक्स हाइलाइटिंग इत्यादि शामिल हैं।

आप इसे यहां प्राप्त कर सकते हैं: http://www.walware.de/goto/statet

लांगोहे लैम ने एक अच्छी मार्गदर्शिका लिखी है: http://www.splusbook.com/Rintro/R_Eclipse_StatET.pdf

http://www.statalgo.com/?p=93

+2

मैं सहमत हूं। स्वीवे, स्टेटेट, और ग्रहण अच्छी तरह से मिलकर काम करते हैं। मैंने ग्रहण http://bit.ly/adfhZ1 –

+0

के साथ स्वीवे को कॉन्फ़िगर करने का एक तरीका वर्णन किया है (स्प्लसबुक लिंक टूटा हुआ है। हालांकि मैंने इसे गुगल किया और निम्नलिखित, प्रतीत होता है समकक्ष, वैकल्पिक, मेरे लिए काम किया: http: // www .splusbook.com/RIntro/R_Eclipse_StatET.pdf) – isomorphismes

1

मैं "एक निर्देशिका-प्रति-परियोजना" और Makefile दृष्टिकोण के रूप में अच्छी तरह से इस्तेमाल करते हैं। मैं HTML में आउटपुट बनाने के लिए कमांड भी शामिल करता हूं, जिसे टीओटी का उपयोग करके ओओओ और एमएस वर्ड में परिवर्तित किया जा सकता है। यह मेरे लिए महत्वपूर्ण है क्योंकि मेरे बहुत से सहयोगी एमएस ऑफिस उपयोगकर्ता हैं और पीडीएफ आउटपुट का उपयोग करने के लिए प्रतिरोधी हैं। मैंने वेंडरबिल्ट में फ्रैंक हैरेल की ट्विकी से ऐसा करने के बारे में बहुत कुछ सीखा।

व्यक्तिगत रूप से मैं पसंद के संपादक के रूप में जीवीआईएम का उपयोग करता हूं और चलाता हूं, यह काफी सरल है, क्योंकि यह इमाक्स से है।

6

मैं अपने सभी लाटेक्स और स्वीवे रिपोर्टों का उत्पादन करने के लिए ओएस एक्स पर TeXShop का उपयोग करता हूं।

#!/usr/bin/env Rscript 
args <- commandArgs(T) 

fname <- strsplit(args[1],'\\.')[[1]][2] 

Sweave(paste(fname,'Rnw',sep='.')) 

system(paste('pdflatex',paste(fname,'tex',sep='.'))) 

Sweave अब TeXShop अंदर एक दस्तावेज के संकलन की एक चयन विधि है: मेरे लिए, एक नया संकलन पाइपलाइन एक फ़ाइल, ~/Library/TeXShop/Engines/ को Sweave.engine कहा जाता है जो निम्नलिखित शामिल है, के रूप में सरल है।मैं सेट कर सकते हैं फ़ाइल के शीर्ष करने के लिए निम्न टेक्स हैश धमाके जोड़कर यह एक दस्तावेज़ के लिए डिफ़ॉल्ट होने के लिए:

% !TEX TS-program = Sweave 

Cmd-टी साधते टाईपसेट जाएगा document- पीडीएफ स्वचालित रूप से एक अलग में पॉप अप होता है खिड़की। टीएक्सशॉप में SyncTeX तकनीक भी शामिल है, इसलिए आरएनडब्ल्यू स्रोत में सीएमडी-क्लिक पीडीएफ विंडो में इसी आउटपुट को हाइलाइट करेगा और पीडीएफ विंडो में सीएमडी-क्लिक आरएनडब्ल्यू स्रोत में इसी इनपुट को हाइलाइट करेगा।

टीएक्सशॉप मैक-केवल है लेकिन एक महान क्यूटी/पॉपप्लर-आधारित क्लोन, TeXworks, लिनक्स, विंडोज और मैक के लिए उपलब्ध है और कई सुविधाओं का समर्थन करता है - जिसमें टीएक्स हैश-बैंग्स और सिंकटेक्स शामिल हैं। TeXworks परिपक्वता के स्तर तक पहुंच गया है जहां इसे विंडोज के लिए MikTeX पैकेज के संस्करण 2.8 में शामिल किया गया है।

+0

मुझे प्रतिलेख का प्रत्यक्ष उपयोग पसंद है! इतने सारे समाधान आर को आह्वान करने के लिए एक खोल का आह्वान करते हैं ... रिकॉर्ड के लिए, फ़ाइल नाम एक्सटेंशन को संभालने के लिए 'strsplit' और' paste' आवश्यक नहीं है - दोनों 'स्वीवे' और' pdflatex' स्वचालित रूप से एक्सटेंशन जोड़ते हैं। –

+0

मुझे लगता है कि जब मैंने लिखा था कि उस पोस्ट को टीएक्स शॉप के रूप में लिखा गया था, तो पूरे फ़ाइल नाम, इंजन को 'फाइल.आरएनवी' पास कर दिया गया था। 'स्वीवे' इसके साथ ठीक रहेगा, लेकिन 'pdflatex' चकित होगा। – Sharpie

+0

तो - आप कहते हैं कि आपके पास .Rww और .pdf फ़ाइलों के बीच cmd-click है। क्या आपको इन हुप्स के माध्यम से भी कूदना पड़ा: http://cameron.bracken.bz/synctex-with-sweavepgfsweave-in-texshoptexworks –

2

एक चीज जिसने मुझे कुछ समय बचाया है वह emacs में 'ऑटो-डालने' मोड है। मैंने इसे स्थापित किया है ताकि प्रत्येक बार जब मैं एक नई .rnw फ़ाइल खोलूं, emacs स्वचालित रूप से एक मूल दस्तावेज़ टेम्पलेट सेट अप करता है और मुझे बस अपनी रिपोर्ट लिखना शुरू करना है।

अपडेट: मैंने ऑटो-डालने से दूर स्विच किया है। अब मैं "template.el" दृष्टिकोण का उपयोग करता हूं।

3

RStudio आज़माएं।

मैं पिछले उत्तरों में उल्लिखित Emacs और TeXShop का प्रशंसक रहा हूं।

हालांकि, Rstudio मुझे जीतने के लिए शुरू कर रहा है। यह आर के लिए एक तेजी से सुधारित समर्पित आईडीई है। निश्चित रूप से जांच करने लायक है।

मै मैक के लिए standard R IDE में कुछ आर-केवल विकास कार्यों को करना पसंद करता हूं। लेकिन एक ही समय में स्वीवे दस्तावेज़ों और कुछ संबंधित आर डेवेल के लिए, RStudio जीतता है। यह लगभग शून्य tweaking के साथ काम करता है। मैं मूल प्रश्न के उत्तरार्ध में पीडीएफ से संबंधित विशेषताओं के बारे में निश्चित नहीं हूं।