如何在 Rmarkdown 添加目录?

我正在使用 RStudio 编写标记文档,并希望在文档顶部添加目录(TOC) ,以便用户可以点击相关部分进行阅读。有一些相关的例子,但现在我似乎找不到他们。请注意,我不使用 pandocRmdknitr是相当新的。有没有办法在不使用 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 v0.98.864中运行它,它起作用了!但可惜的是,它不能在0.98.501和0.98.507上运行。我在0.98.501中写我的论文,在更新了 RStudio 之后,我的一些分析没有起作用。所以,我又回到了0.98.501。 我现在应该做什么? 我真的想要 TOC,但又不损害其他分析的结果。

120327 次浏览

The syntax is

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

文件。请确保这是在您的文档的开头。还要确保你的文档实际上有标题,否则 R 不能告诉你在目录中想要什么。

更多选项的语法:

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

如果使用的是 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添加了一个表列表,并且在所有其他内容之前添加了一个新页面。

Note, \vspace{3in} in the title adds vertical space of 3 inch from the top before printing yaml (title, etc.).

阅读更多: https://www.sharelatex.com/learn/Table_of_contents