2015-01-08 22 views
10

के साथ पीडीएफ आउटपुट में स्वचालित आकृति संख्या को दबाएं मैं आर मार्कडाउन (.rmd) में एक दस्तावेज़ लिख रहा हूं। मैं वर्ड और पीडीएफ आउटपुट दोनों को बुनाई करने में सक्षम होना चाहता हूं। मुझे आंकड़े संख्या के साथ कठिनाई हो रही है। पीडीएफ आउटपुट के साथ, आंकड़े स्वचालित रूप से गिने गए थे (fig.lp के लेटेक्स आउटपुट के माध्यम से?) लेकिन शब्द वर्ड में गिने गए नहीं थे।आर मार्कडाउन/knitr

बहुत खोज के बाद, मुझे कोड मिला जो वर्ड में आंकड़े संख्या प्रदान करेगा - लेकिन अब मुझे पीडीएफ बुनाई के दौरान डबल पेज नंबरिंग मिलती है। मैं नया हूं, इसलिए मैं एक छवि नहीं डाल सकता।

चित्र 1 चित्र 1 ब्ला ब्ला ब्ला

वहाँ पीडीएफ के लिए स्वत: नंबर दबाने के लिए एक रास्ता है: लेकिन आंकड़ा शीर्षक की तरह दिखता है?

एक समान प्रश्न here से पूछा गया था, लेकिन एक समाधान नहीं दिया गया था। मेरा वाईएएमएल हेडर और आकृति संख्यात्मक चंक नीचे शामिल हैं।

YAML:

output: 
    pdf_document: 
    fig_caption: yes 
    keep_tex: yes 
    word_document: 
    fig_caption: yes 

चित्रा नंबरिंग कोड (http://galahad.well.ox.ac.uk/repro/ के माध्यम से पाया)

figRef <- local({ 
    tag <- numeric() 
    created <- logical() 
    used <- logical() 
    function(label, caption, prefix = options("figcap.prefix"), 
     sep = options("figcap.sep"), prefix.highlight = options("figcap.prefix.highlight")) { 
     i <- which(names(tag) == label) 
     if (length(i) == 0) { 
      i <- length(tag) + 1 
      tag <<- c(tag, i) 
      names(tag)[length(tag)] <<- label 
      used <<- c(used, FALSE) 
      names(used)[length(used)] <<- label 
      created <<- c(created, FALSE) 
      names(created)[length(created)] <<- label 
     } 
     if (!missing(caption)) { 
      created[label] <<- TRUE 
      paste0(prefix.highlight, prefix, " ", i, sep, prefix.highlight, 
       " ", caption) 
     } else { 
      used[label] <<- TRUE 
      paste(prefix, tag[label]) 
     } 
    } 
}) 

इस तो हिस्सा विकल्पों में कहा जाता है इस प्रकार है:

```{r, echo=FALSE, message=FALSE, fig.width=6, fig.cap=figRef("Ex-Airfoil", "Example NACA Airfoil")} 
+0

महान प्रश्न। बहुत बुरा मैं केवल एक क्रेडिट प्वाइंट दे सकता हूं। –

उत्तर

2

वहाँ एक रास्ता है पीडीएफ के लिए स्वचालित नंबरिंग दबाने के लिए?

निश्चित रूप से। अपने आउटपुट प्रारूप के लिए format चर जोड़ें और figref के भीतर उस प्रारूप के लिए एक हैंडलर जोड़ें। RStudio पूर्वावलोकन संस्करण के साथ आप format <- knitr::opts_knit$get("out.format") का उपयोग कर सकते हैं लेकिन रिलीज़ संस्करण के साथ आपको इसे मैन्युअल रूप से सेट करने की आवश्यकता होगी।
फिर figref() ऐड जो कुछ भी आप उत्पादन के लिए इच्छा ... में

if (format == "latex") return(caption) 
    if (!missing(caption)) { 
    --- >8 --- 

व्यक्तिगत तौर पर मैं पूर्वावलोकन संस्करण और से निपटने के लिए एक स्विच बयान का उपयोग करेंगे। https://stackoverflow.com/a/27321367/173985 की लाइनों के साथ।