2013-10-31 15 views
17

में स्थिर (प्रीबिबिल्ट) पीडीएफ विग्नेट का उपयोग करना एक स्थिर पीडीएफ फाइल को आरआरएएन पैकेज में "वीग्नेट" के रूप में आर 3.0 के रूप में शामिल करने का उचित तरीका क्या है?आर पैकेज

रिक्त स्टब Rnw का उपयोग करने के लिए this document में वर्णित चाल आर 3.0 में काम नहीं कर रही है। दस्तावेज़ से पता चलता है कि \VignetteEngine{} पर आधारित एक बेहतर तरीका है लेकिन यह स्पष्ट नहीं है कि यह स्थिर पीडीएफ फाइलों के लिए कैसे काम करता है।

+5

+1, मैं अपने पैकेज में स्थिर विगेट्स भी शामिल करना चाहता हूं – sckott

+0

मुझे इसके बारे में भी आश्चर्य हुआ, लेकिन जैसा कि मैंने मैनुअल और चाय की पत्तियों को पढ़ा है, यह सभी 'विगनेट्स /' की तरफ बढ़ रहा है, यहां तक ​​कि कठोर प्रवर्तन भविष्य। –

+0

हम्म। उस स्थिति में, मुझे लगता है कि मेरे पास ट्यूटोरियल्स के साथ वेब पेजों के लिंक हो सकते हैं क्योंकि मेरे अधिकांश पैकेज वेब पर एपीआई कॉल करते हैं। जब तक वास्तव में pkgs के अंदर विगनेट्स का कोई महत्वपूर्ण कारण नहीं है? – sckott

उत्तर

10

R.rsp के साथ (> = 1.19.0) आप एक छोटे से 'विगनेट्स/main.pdf.asis' पाठ होता है कि फ़ाइल को जोड़कर एक स्थिर पीडीएफ 'विगनेट्स/main.pdf' शामिल कर सकते हैं :

%\VignetteIndexEntry{My amazing package} 
%\VignetteEngine{R.rsp::asis} 

और सुनिश्चित करें:

Suggests: R.rsp 
VignetteBuilder: R.rsp 

अपने पैकेज के वर्णन फ़ाइल में। यह स्थिर एचटीएमएल विगेट्स के लिए भी काम करता है। यह R.rsp विगनेट्स में से एक में भी समझाया गया है।

+0

इस सुरुचिपूर्ण समाधान प्रदान करने के लिए धन्यवाद। क्या यह आपके लिए आर 3.1.2 में काम करता है? – krlmlr

+0

मेरे लिए काम करता है - एक 'devtools' मुद्दा लगता है। – krlmlr

+0

आपका स्वागत है - मुझे खुशी है कि आपको यह पसंद है। हां आरआरएसपी के विग्नेट इंजन आर के पुराने संस्करणों के साथ भी काम करता है। वे आर (> = 3.0.0) के साथ बॉक्स से बाहर काम करते हैं। उनके लिए आर (<3.0.0) के साथ भी काम करने के लिए आपको एक फॉलबैक समाधान जोड़ना होगा जिसे आरआरएसपी विगेट्स में से एक में समझाया गया है। – HenrikB

1

अद्यतन 2014-06-08: एक आर पैकेज में स्थिर पीडीएफ़ और HTML फ़ाइलों सहित के लिए एक बेहतर समाधान के लिए, कैसे R.rsp का उपयोग करने पर इस सूत्र में मेरे अन्य उत्तर देखें (> = 0.19.0) और उसके R.rsp::asis विग्नेट इंजन

आपको केवल <name>.Rnw फ़ाइल की आवश्यकता है जो आपके स्थिर <name>.pdf फ़ाइल से मेल खाने वाले नाम के साथ है, उदा।

vignettes/ 
    static.pdf 
    static.Rnw 

जहां <name>.Rnw (यहाँ static.Rnw) एक न्यूनतम वैध Sweave फ़ाइल है, उदाहरण के लिए

%\VignetteIndexEntry{<title to be displayed on the R vignette index page>} 
\documentclass{article} 
\begin{document} 
\end{document} 

यह शब्दचित्र स्रोत फ़ाइल (<name>.Rnw) चाल R CMD build इसे बनाने की है, यानी आर के tools::buildVignettes() पहले Sweave जाएगा <name>.tex हमेशा की तरह में <name>.Rnw। हालांकि, buildVignettes() कैसे डिज़ाइन किया गया है, यह हमारी स्थिर <name>.pdf फ़ाइल का पता लगाएगा जैसा कि पहले से ही स्वीवे इंजन द्वारा बनाया जा रहा है और इसलिए यह उस डमी टीएक्स फ़ाइल को पीडीएफ फ़ाइल में संकलित नहीं करेगा (जो हमारी स्थिर फ़ाइल को ओवरराइट करेगा)।

यह समझने के लिए महत्वपूर्ण है कि (i) विगेट्स R CMD build के दौरान "बिल्ड" हैं, (ii) और जब निर्मित किया गया है तो उन्हें निर्मित पैकेज के inst/doc/ निर्देशिका (गायब होने पर बनाया गया) पर कॉपी किया गया है। इसके अलावा, (iii) vignettes/ निर्देशिका बिल्ड पैकेज का हिस्सा बनें, यानी <pkgname>_<version>.tar.gz फ़ाइल। तो, inst/doc/ में देखना सुनिश्चित करें।

तो, यहां स्पष्ट होने के लिए, एक डमी <name>.Rnw का उपयोग करके एक हैक माना जा सकता है जो किसी को इस रणनीति के खिलाफ रोकने का फैसला कर सकता है। हालांकि, यदि ऐसा होता है, तो गैर-स्वीवे विग्नेट इंजन बनाने के लिए पूरी तरह से संभव है जिसका एकमात्र उद्देश्य <name>.pdf फ़ाइल को संकलित करना है ... <name>.pdf फ़ाइल। आर (> = 3.0.0) में जोड़े गए गैर-स्वीवे समर्थन के कारण यह मान्य और संभव है। मैं ऐसे इंजन को आरआरएसपी पैकेज में जोड़ने पर विचार कर रहा हूं, उदाहरण के लिए \ VignetteEngine {R.rsp :: StaticPDF}। इसके साथ आपको उस डमी आरएनडब्लू फाइल को भी नहीं रखना पड़ेगा - केवल पीडीएफ फाइल।

आशा इस मदद करता है

+0

मुझे अस्पष्ट महसूस है कि आपको भविष्य के बिंदु पर आरएनडब्ल्यू से अधिक की अनुमति नहीं दी जाएगी लेकिन कोई अच्छा संदर्भ नहीं है। –

+1

मैं इसे 'package.tar.gz' मैन्युअल रूप से संशोधित किए बिना आर 3.0 पर काम करने के लिए नहीं मिला। समस्या यह है कि, जैसा कि आप वर्णन करते हैं, 'आर सीएमडी बिल्ड' के दौरान 'पीडीएफ''/inst/doc' में ले जाया जाता है। हालांकि, '/ vignettes/static.Rnw' * स्रोत पैकेज में शामिल हो जाता है और 'आर सीएमडी चेक' के दौरान पुनर्निर्माण किया जाएगा, जिस बिंदु पर यह असफल हो जाएगा क्योंकि यह 'पीडीएफ' फ़ाइल उत्पन्न नहीं करता है। – Jeroen

+2

मैंने कुछ समय के लिए इस चाल का उपयोग किया, लेकिन यह मेरे लिए आर 3.1 के साथ काम करना बंद कर दिया। –

संबंधित मुद्दे