2012-03-20 12 views
5

मैं कार्यप्रवाह में एक घटक के रूप पैकेज knitr उपयोग करने के लिए एक Markdown इनपुट फ़ाइल से HTML और PDF रिपोर्ट तैयार करने के लिए शुरू कर रहा हूँ के आधार पर पैकेज विकल्प सेट करने के लिए कैसे।
मैं कुछ knitr पैकेज विकल्प विशेष रूप से आउटपुट फ़ाइल के प्रारूप के अनुरूप सेट करना चाहता हूं।knitr: उत्पादन प्रकार

<!--roptions dev='png', fig.width=300px, fig.height=200px" --> 
<!--roptions dev='pdf', fig.width=5, fig.height=4 --> 

यह knitr पता विकल्पों उत्पादन प्रकार के आधार पर, स्वचालित रूप से उपयोग करने के लिए का सेट जो यह बताने के लिए संभव है: वर्तमान में मैं मैन्युअल रूप से आगे और पीछे निम्नांकित दो पंक्तियों को स्विच?

धन्यवाद।

+0

आप 'pandoc' साथ उपयोग कर सकते हैं' एचटीएमएल निर्माण करने के लिए knitr' और उसी 'मार्कडाउन 'फ़ाइल से पीडीएफ। मैं जल्द ही एक उदाहरण पोस्ट करूंगा। – Ramnath

+0

यह भी है जो मैंने हाल ही में करना शुरू किया; आप मैन्युअल में सेक्शन 3.5 का उपयोग कर सकते हैं: https://github.com/downloads/yihui/knitr/knitr-manual.pdf (अपने चुंक विकल्पों के लिए निश्चित मानों के बजाय वैरिएबल असाइन करें), और मेरा मानना ​​है कि रामनाथ आपको दिखा सकते हैं एक अच्छा वर्कफ़्लो। बीटीडब्ल्यू, 'fig.width = 300px' मान्य नहीं है; यह हमेशा संख्यात्मक (इंच में इकाई) होना चाहिए: http://yihui.name/knitr/options –

+0

धन्यवाद रामनाथ और @ यहुई। मैं knitr दो प्रारूपों में से एक में छवियों को बनाने (चलो पीडीएफ कहना) द्वारा एक बदसूरत समाधान के साथ आया था। फिर, मेकफ़ाइल में, सभी छवियों को पीएनजी (ImageMagick) में परिवर्तित करें, .pdf घटनाओं को खोजें और बुना हुआ फ़ाइल (sed द्वारा) में .png के साथ उन्हें बदलें, और अंततः इसे HTML पर पांडोक करें। यह मेकफ़ाइल का प्रासंगिक हिस्सा है जिसके साथ आया: एचटीएमएल: बुनाई \t रैप्लॉट्स/*। पीडीएफ आरप्लॉट्स/*। पीएनजी \t sed's/.pdf/.png/g '$ (DOCUMENTNAME) .md> $ (DocumentName) -html.md \t pandoc -s --toc -c report.css $ (DocumentName) -html.md -ओ $ (DocumentName) .html \t rm $ (DocumentName) -html.md – mbask

उत्तर

2

@Ramnath टिप्पणी Makefile में knitr के लिए विशिष्ट विकल्पों की स्थापना करके एक अनूठा Markdown फ़ाइल से pdf और html उत्पादन के उत्पादन के लिए एक solution पता चलता है:

$(PDF): $(SRC) Makefile 
Rscript \ 
    -e "library(knitr)" \ 
    -e "opts_chunk[['set']](dev = 'pdf')" \ 
    -e "pat_gfm()" \ 
    -e "knit('$<', 'temp.md')" 
$(PANDOC) temp.md -o [email protected] 
rm temp.md 

यहाँ छवियों के प्रारूप pdf को तैयार है। ध्यान दें कि pat_gfm() फ़ंक्शन को 5 दिनों पहले GitHub पर मास्टर शाखा में जोड़ा गया है और अभी तक एक स्थिर संस्करण के रूप में जारी नहीं किया गया है।

थोड़ा विस्तार से चर्चा करते पूरी तरह से सवाल का जवाब देने, छवि आयाम आसानी से Makefile के लिए लाइनों के एक जोड़े को जोड़ने के द्वारा setted जा सकता है:

-e "opts_chunk[['set']](fig.width = 5)"\ 
-e "opts_chunk[['set']](fig.height = 5)"\ 
संबंधित मुद्दे