Rmarkdown में सामग्री की तालिका कैसे जोड़ें?


88

मैं मार्कडाउन दस्तावेजों को लिखने के लिए RStudio का उपयोग कर रहा हूं और दस्तावेजों के शीर्ष पर टेबल ऑफ कॉन्टेंट्स (TOC) जोड़ना चाहता हूं ताकि उपयोगकर्ता पढ़ने के लिए संबंधित अनुभाग पर क्लिक कर सके। Rpubs पर कुछ प्रासंगिक उदाहरण थे, लेकिन अब मैं उन्हें ढूंढ नहीं सकता। कृपया ध्यान दें कि मैं उपयोग नहीं करता हूं pandocऔर Rmd& से काफी नया हूं knitr। क्या बिना उपयोग के TOCs जोड़ने का कोई तरीका है pandoc? यदि उपयोग pandocकरना आवश्यक है तो कौन से कार्य प्रासंगिक हैं?

संपादित करें

यहाँ एक छोटा सा नमूना पृष्ठ है:

---
title: "Sample Document"
output:
  html_document:
    toc: true
    theme: united
---

Header 1
---------------
This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>.
    
## Header 2
When you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
    
```{r}
summary(cars)
```

You can also embed plots, for example:

```{r, echo=FALSE}
plot(cars)
```
### Header 3
Note that the `echo = FALSE` parameter was added to the code chunk to prevent printing of the R code that generated the plot.

मैंने इसे RStudio v 0.98.864 में चलाने की कोशिश की और यह काम कर गया! लेकिन दुख की बात है कि यह 0.98.501 और 0.98.507 पर काम नहीं किया। मैं अपनी थीसिस पर 0.98.501 में काम कर रहा हूं और RStudio को अपडेट करने के बाद, मेरे कुछ विश्लेषण काम नहीं किए। इसलिए, मैं वापस 0.98.501 पर लौट आया। अब मुझे क्या करना चाहिए? मैं वास्तव में टीओसी चाहता हूं लेकिन अन्य विश्लेषणों के आउटपुट को नुकसान पहुंचाए बिना।


2
मेरा मानना ​​है कि Rstudio द्वारा उपयोग किया जाने वाला रमार्कडाउन पैकेज पैंडॉक के आसपास एक आवरण है, इसलिए आपको संबंधित विकल्प को पारित करने में सक्षम होना चाहिए। वास्तव toc: trueमें, YAML सामने मामले में यह करना चाहिए।
बपतिस्मा

1
indenting का प्रयास करें, rmarkdown.rstudio.com में उदाहरणों का पालन ​​करें और अगर सब कुछ विफल रहता है तो Rstudio को अपडेट करना
baptiste

1
@umairdurrani ठीक है। नमूना में कोई हेडर नहीं है। आप सामग्री की तालिका में क्या बनना चाहते हैं?
MrFlick

1
धन्यवाद @baptiste, मुझे इसके साथ एक समस्या थी, लेकिन इंडेंटिंग ने इसे ठीक किया।
एलेक्स

1
हेडर में उचित इंडेंटिंग कुंजी है
N Brouwer

जवाबों:


76

वाक्य-विन्यास है

---
title: "Sample Document"
output:
  html_document:
    toc: true
    theme: united
---

में प्रलेखन । सुनिश्चित करें कि यह आपके दस्तावेज़ की शुरुआत में है। यह भी सुनिश्चित करें कि आपके दस्तावेज़ में वास्तव में हेडर हैं अन्यथा R यह नहीं बता सकता है कि आप सामग्री की तालिका में क्या चाहते हैं।


2
यह ठीक वही बात है जो मैंने आरएमडी फ़ाइल के शीर्ष पर रखी है (शीर्षक से पहले) और HTML पर क्लिक किया। परिणामी दस्तावेज़ में सामग्री की कोई तालिका नहीं है और बिना किसी त्रुटि के बनाया गया था। क्या कुछ बदलने का कोई और विकल्प है?
उमर दुर्रानी

2
मैंने अब RStudio संस्करणों को 0.98.501, .507 और .897 (पूर्वावलोकन रिलीज़) में आज़माया है, लेकिन यह मेटाडेटा काम नहीं करेगा।
उमर दुर्रानी

1
@umairdurrani आप एक छोटे, नमूना दस्तावेज़ को शामिल करने के लिए अपने प्रश्न को संपादित कर सकते हैं जो आपके लिए काम नहीं करता है। इस तरह से हम वही देखने की कोशिश कर सकते हैं जो होता है।
MrFlick

63

अधिक विकल्पों के साथ सिंटैक्स:

---
title: "Planets"
author: "Manoj Kumar"
date: "`r format(Sys.time(), '%B %d, %Y')`"
output: 
  html_document:
    toc: true # table of content true
    toc_depth: 3  # upto three depths of headings (specified by #, ## and ###)
    number_sections: true  ## if you want number sections at each table header
    theme: united  # many options for theme, this one is my favorite.
    highlight: tango  # specifies the syntax highlighting style
    css: my.css   # you can add your custom css, should be in same folder
---

4
मुझे लगता है कि यह toc_depthइसके बजाय हैdepth
एफ। प्रिविले

1
@ F.Privé मैंने यह उत्तर कुछ 1 साल पहले लिखा था। यकीन नहीं होता कि पैकेज ने ये बदलाव किए हैं। अपडेट के लिए धन्यवाद।
मनोज कुमार

TOC पर वापस लौटने के लिए प्रत्येक अनुभाग में एक क्लिक कैसे जोड़ें? धन्यवाद
डैनियल

1
@ डैनियल - एंकर लिंक HTML का उपयोग करने का प्रयास करें जैसे: <a href="#top"> Back To Top </a>स्थान पर (कोड की पंक्तियाँ) जहाँ आप इसे प्रदर्शित करना चाहते हैं। आशा है कि यह काम करेगा।
मनोज कुमार

21

यदि आप उपयोग कर रहे हैं pdf_document, तो आप एक नए पृष्ठ में सामग्री की तालिका जोड़ना चाह सकते हैं, जो toc: trueअनुमति नहीं देता है। यह दस्तावेज़ शीर्षक, लेखक और दिनांक के बाद सामग्री की तालिका डालता है - क्योंकि यह याम्ल में है।

यदि आप इसे एक नए पृष्ठ में रखना चाहते हैं, तो आपको कुछ लेटेक्स भाषा का उपयोग करना होगा। मैंने जो किया था यह रहा।

---
title: \vspace{3.5in}"Title"
author: "Name"
date: "`r Sys.Date()`"
output:
   pdf_document:
      fig_caption: true
      number_sections: true
---

\newpage # adds new page after title
\tableofcontents # adds table of contents
\listoffigures
\listoftables
\newpage

इसलिए, यम्ल के बाद (--- के बीच का हिस्सा), मैंने एक नया पेज जोड़कर उपयोग किया \newpage, फिर उपयोग करने वाली सामग्री की एक तालिका \tableofcontents, उपयोग करने वाले आंकड़ों की \listoffiguresएक सूची, तालिकाओं की एक सूची \listoftables, और सब कुछ से पहले एक नया पृष्ठ।

ध्यान दें, \vspace{3in}शीर्षक में यमल (शीर्षक, आदि) को छापने से पहले ऊपर से 3 इंच का ऊर्ध्वाधर स्थान जोड़ता है।

यहां पढ़ें: https://www.sharelatex.com/learn/Table_of_contents

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.