如何在Rmarkdown中添加目录?

时间:2014-05-30 14:43:26

标签: r rstudio r-markdown

我正在使用RStudio来编写markdown文档,并希望在文档顶部添加目录(TOC),以便用户可以单击相关部分进行阅读。关于rpubs有一些相关的例子,但现在我似乎无法找到它们。请注意,我不使用pandoc,而且我对Rmd& knitr。有没有办法在不使用pandoc的情况下添加TOC?如果必须使用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。 我现在应该怎么做?我真的想要TOC,但不会损害其他分析的输出。

3 个答案:

答案 0 :(得分:56)

语法是

---
title: "Sample Document"
output:
  html_document:
    toc: true
    theme: united
---
the documentation中的

。确保这是在文档的开头。还要确保您的文档实际上有标题,否则R无法在目录中说出您想要的内容。

答案 1 :(得分:45)

包含更多选项的语法:

---
title: "Planets"
author: "Manoj Kumar"
date: "March 3, 2016"
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
---

答案 2 :(得分:11)

如果您使用的是pdf_document,则可能需要在toc: true不允许的新页面中添加目录。它将目录放在文档标题,作者和日期之后 - 因为它是在yaml中。

如果您想将它放在新页面中,则必须使用一些乳胶语言。这就是我所做的。

---
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

所以,在yaml(---之间的块)之后,我使用\newpage添加了一个新页面,然后使用\tableofcontents添加了一个目录,使用\listoffigures的数字列表,表格\listoftables的列表,以及其他所有内容之前的新页面。

注意,标题中的\vspace{3in}会在打印yaml(标题等)之前从顶部添加3英寸的垂直空间。

在此处阅读更多内容:https://www.sharelatex.com/learn/Table_of_contents