2012-12-12 16 views
36

पर knitr और मार्कडाउन का उपयोग करने के संदर्भ, मैं HTML में knitr द्वारा संसाधित होने के लिए एक आरएमडी फ़ाइल लिख रहा हूं। इसमें कुछ आर भाग शामिल हैं जो आंकड़े उत्पन्न करते हैं, जो HTML में डेटा यूआरआई के रूप में संग्रहीत होते हैं।आकृति कैप्शन, एचटीएमएल

1) मैं इस तरह की छवि में कैप्शन कैसे जोड़ूं? मैं एक कैप्शन रखना चाहता हूं जो "चित्रा 3: ब्ला ब्ला ब्लाह" जैसा कुछ कहता है, जहां "3" स्वचालित रूप से जेनरेट होता है।

2) बाद में मैं इस छवि को संदर्भित करने के लिए कैसे करूं, यानी, जैसा कि आप चित्रा 3, ब्ला ब्लाह में देख सकते हैं "।

+0

कुछ तरीकों यह करने के लिए दिखाई देते हैं, लेकिन उम्मीद है कि यह knitr या pandoc में लपेट दिया जाएगा: https://github.com/adletaw/captioner https://github.com/mkoohafkan/kfigr (नीचे उल्लिखित) http://galahad.well.ox.ac.uk/repro/ http: //rmflight.github। आईओ/पद/2012/10/papersinRmd.html (नीचे भी नोट किया गया है) http: // gforge.se/2014/01/fast-track-publishing-using-knitr-part-iii/ – Ben

+2

ऐसा लगता है कि यह अब knitr/pandoc में प्रत्यक्ष समर्थन प्राप्त कर रहा है; https://bookdown.org/yihui/bookdown/ देखें, विशेष रूप से खंड 2.3--2.5। – mikeck

उत्तर

15
  1. आप आर में एक साधारण काउंटर के साथ आकृति संख्या बना सकते हैं; one example here देखें। समस्या यह है कि क्या मार्कडाउन रेंडरर आपके लिए आकृति कैप्शन प्रस्तुत करेगा: आर मार्कडाउन v1 नहीं होगा, लेकिन v2 (पांडोक पर आधारित) होगा।
  2. मुझे नहीं पता। आंकड़ों के लिए पहचानकर्ता के रूप में लेबल डालने का कोई सीधा तरीका नहीं है, इसलिए संभवतः शुद्ध मार्कडाउन के साथ संदर्भ आंकड़ों को पार करना संभव नहीं है। एक बार आपको इस तरह के मुद्दे मिल जाए, तो सोचें (1) क्या मुझे वास्तव में इसकी आवश्यकता है? (2) यदि यह एक जटिल संरचना के साथ एक दस्तावेज़ बनने का इरादा है, तो मुझे लगता है कि लाटेक्स का उपयोग करना बेहतर है (आरएनडब्ल्यू दस्तावेज)।
5

एक तरह से इन दोनों को ऐसा करने के लिए यहाँ वर्णित है: http://rmflight.github.io/posts/2012/10/papersinRmd.html

एक और यहाँ वर्णित है (लेकिन मैं अगर यह आपके # करता है पता नहीं है 2)। http://gforge.se/2014/01/fast-track-publishing-using-knitr-part-iii/

+1

नए पोस्टमार्क के बाद से मेरे पोस्ट में वर्कफ़्लो को [बदला जा सकता है] (http://gforge.se/2014/07/fast-track-publishing-using-rmarkdown/), मैंने वर्तमान में कुछ सरल फ़ंक्शन लागू किए हैं यह एक आकृति काउंटर जोड़ने के लिए नौकरी करता है - भले ही यह पहले की तरह सुरुचिपूर्ण नहीं है। कार्य [Gmisc-package] (http://gforge.se/packages/) में मौजूद हैं और 'figCapNo', 'figCapNoLast', और' figCapNoNext'- देखें कि इसका उपयोग कैसे करें [पहले figCapNo] (https: // GitHub।com/एक ईकाई/Gmisc/ब्लॉब/मास्टर/आर/figCaptionNo.R # L19)। –

24

मुझे पार्टी के लिए देर हो चुकी है, लेकिन मैं हाल ही में एक छोटे पैकेज का उल्लेख करना चाहता हूं जिसे मैंने हाल ही में चित्र कैप्शनिंग और knitr के साथ क्रॉस-रेफरेंसिंग करने के लिए बनाया है। इसे kfigr कहा जाता है और आप इसे devtools::install_github('mkoohafkan/kfigr') का उपयोग करके इंस्टॉल कर सकते हैं। यह अभी भी सक्रिय विकास में है लेकिन मुख्य कार्यक्षमता वहां है। विग्नेट को जांचना सुनिश्चित करें, यह कुछ उपयोग उदाहरण दिखाता है और आकृति कैप्शन और एंकरों के लिए कुछ हुक परिभाषित करता है (बाद में मैं पैकेज को knitr आयात कर सकता हूं और लोड पर उन हुक को परिभाषित कर सकता हूं)।

संपादित करें: केएफआईजीआर अब सीआरएएन पर उपलब्ध है!

+1

अब 'kfigr' के रूप में जाना जाता है और यह काफी अच्छा काम करता है, बहुत बहुत धन्यवाद! –

+3

ऐसा लगता है कि 'kfigr' जल्द ही अप्रचलित हो जाएगा क्योंकि 'बुकडाउन' बीटा परीक्षण में है: https://bookdown.org/yihui/bookdown/। मैं लोगों को 'बुकडाउन' का प्रयास करने के लिए प्रोत्साहित करता हूं क्योंकि 'kfigr' हमेशा' पैंडोक 'के साथ अच्छा नहीं खेलता है और मार्कडाउन -> पीडीएफ का समर्थन नहीं करता है। – mikeck

8

पार्टी के लिए बहुत देर हो चुकी है मैंने यहुइस सुझाव here को बदल दिया है जिसे उन्होंने उपरोक्त से संदर्भित करने के लिए भी जोड़ा है।

```{r functions, include=FALSE} 
# A function for captioning and referencing images 
fig <- local({ 
    i <- 0 
    ref <- list() 
    list(
     cap=function(refName, text) { 
      i <<- i + 1 
      ref[[refName]] <<- i 
      paste("Figure ", i, ": ", text, sep="") 
     }, 
     ref=function(refName) { 
      ref[[refName]] 
     }) 
}) 
``` 
```{r cars, echo=FALSE, fig.cap=fig$cap("cars", "Here you see some interesting stuff about cars and such.")} 
plot(cars) 
``` 

What you always wanted to know about cars is shown in figure `r fig$ref("cars")` 
+0

धन्यवाद @ उपयोगकर्ता 3355146। एकमात्र मुद्दा अंजीर $ ref() केवल आंकड़े उत्पन्न होने के बाद ही कहा जा सकता है, यानी चित्रा 'आर अंजीर $ रेफरी ("कारें")' नीचे दिखाता है ... आदि आदि काम नहीं करेगा। लेकिन अभी भी मेरी समस्या को हल करने के लिए एक बहुत अच्छा समाधान है। धन्यवाद, – woshishui

2

एक अन्य समाधान:

https://github.com/adletaw/captioner

README से:

captioner() returns a captioner function for each set of figures, tables, etc. that you want to create. See the help files for more details. 

For example: 

> fig_nums <- captioner() 

> fig_nums("my_pretty_figure", "my pretty figure's caption") 

"Figure 1: my pretty figure's caption" 

> fig_nums("my_pretty_figure", cite = TRUE) 

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

  • कोई संबंधित समस्या नहीं^_^