2011-01-26 18 views
5

में स्वेव सिंटैक्स हाइलाइटिंग क्या किसी ने स्वीकृति दस्तावेजों के आउटपुट में रंगीन वाक्यविन्यास-हाइलाइटिंग प्राप्त करने में कामयाब रहा है? मैं इस प्रकार Sweave.sty फ़ाइल में जोड़ने के बक्से, आदि द्वारा उत्पादन शैली को अनुकूलित कर लिया है:आउटपुट

\DefineVerbatimEnvironment{Sinput}{Verbatim}{fontseries=bc,frame=single} 
\DefineVerbatimEnvironment{Soutput}{Verbatim}{frame=leftline} 
\DefineVerbatimEnvironment{Scode}{Verbatim}{fontseries=bc} 

और मैं जैसे अपने दस्तावेज़ में शब्दशः-कोड ब्लॉक के वाक्य रचना हाइलाइटिंग करने के लिए minted पैकेज प्राप्त कर सकते हैं इसलिए:

\begin{minted}{perl} 
use Foo::Bar; 
... 
\end{minted} 

लेकिन मुझे यकीन नहीं है कि आर इनपुट खंडों के लिए दोनों को कैसे गठबंधन करना है। मैंने निम्नलिखित कोशिश की:

\DefineVerbatimEnvironment{Sinput}{minted}{r} 
\DefineVerbatimEnvironment{Scode}{minted}{r} 

कोई सुझाव?

उत्तर

3

This topic tex.StackExchange आपके लिए दिलचस्प हो सकता है, क्योंकि यह आसान समाधान के लिए 0 में SweaveListingUtils package लोड करने का सुझाव देता है।

+0

धन्यवाद। मुझे काम करने के लिए 'स्वीवेलिस्टिंग' प्राप्त नहीं हो रहा है, लेकिन मुझे '\ नवीनीकरण 'सामग्री पर आज़माएंगी। –

+0

@ केन विलियम्स: क्या आप पैकेज के साथ समस्या क्या निर्दिष्ट कर सकते हैं? मुझे उम्मीद थी कि यह आपके लिए एक अच्छा और आसान समाधान के रूप में काम कर सकता है। अगर त्रुटि बनी रहेगी, तो अन्य विकल्पों के साथ शुभकामनाएं! – daroczig

5

हां, Rcpp के लिए कुछ विगेट्स देखें उदाहरण के लिए (केवल एक को चुनने के लिए) Rcpp-FAQ pdf

हम रोमैन द्वारा highlight का उपयोग करते हैं जो स्वयं आंद्रे साइमन द्वारा hightlight बाइनरी तक खेत कर सकते हैं। यह सबकुछ थोड़ा और अधिक शामिल करता है --- विगनेट्स के लिए मेकफ़ाइल आदि पीपी --- लेकिन हमें आर और सी/सी ++ कोड से रंगीन आउटपुट मिलता है। जो इसे लायक बनाता है।

4

यहां बताया गया है कि मैंने इसे @ डारोकजिग के सुझाव से शुरू करने के तरीके को कैसे हल किया है।

\usepackage{minted} 

\renewenvironment{Sinput}{\minted[frame=single]{r}}{\endminted} 
\DefineVerbatimEnvironment{Soutput}{Verbatim}{frame=leftline} 
\DefineVerbatimEnvironment{Scode}{Verbatim}{} 

मैं इसे पर था, मैं काम कर रहा हूँ क्योंकि मैं बड़े डेटा सेट का उपयोग कर रहा है और एक हिस्सा लगभग 3 मिनट पूरा करने के लिए ले जा रही थी कैशिंग पाने के लिए की जरूरत है। इसलिए मैं कैशिंग के साथ एक .Rnw फ़ाइल पर कार्रवाई करने के लिए इस zsh खोल समारोह लिखा है:

function sweaveCache() { 
    Rscript -e "library(cacheSweave); setCacheDir(getwd()); Sweave('$1.Rnw', driver = cacheSweaveDriver)" && 
    pdflatex --shell-escape $1.tex && 
    open $1.pdf 
} 

अब मैं सिर्फ sweaveCache myFile करते हैं और मैं परिणाम पूर्वावलोकन में खोला (OS X पर) मिलता है।

+1

बीटीडब्लू, '--shell-escape' चीज़ की आवश्यकता 'minted' से की जाती है क्योंकि यह पायथन में सिंटैक्स हाइलाइटिंग करता है। –

+0

आर-स्टूडियो में शेल से बच उपकरण - ग्लोबल विकल्प - स्वीवे - शैल एस्केप कमांड सक्षम करें। मिन्टेड भी पाइथन पैकेज "पायगल्स" की आवश्यकता है। लिनक्स पर, "सुडो पाइप 2 इंस्टॉल पाइगल्स" द्वारा स्थापित – everybody

5

मेरे पास एक समाधान है जिसने मेरे लिए काम किया है, मैंने इसे किसी भी अन्य सिस्टम पर नहीं देखा है, इसलिए चीजें आपके लिए बॉक्स से बाहर नहीं हो सकती हैं। मैंने https://gist.github.com/797478 पर कुछ कोड पोस्ट किया है जो संशोधित रिवेव ड्राइवर फ़ंक्शंस का एक सेट है जो वर्बैटिम ब्लॉक के बजाय minted ब्लॉक का उपयोग करता है।

इस ड्राइवर का उपयोग करने के लिए ड्राइवर = RweaveLatexMinted() विकल्प के साथ स्वीवे फ़ंक्शन को कॉल करते समय बस इसे निर्दिष्ट करें।