Estoy usando RStudio para escribir documentos con rebajas y quiero agregar una tabla de contenido (TOC) en la parte superior de los documentos para que el usuario pueda hacer clic en la sección relevante para leer. Hubo algunos ejemplos relevantes en rpubs pero ahora parece que no puedo encontrarlos. Tenga en cuenta que no uso pandoc
y soy bastante nuevo en Rmd
& knitr
. ¿Hay alguna forma de agregar TOC sin usar pandoc
? Si el uso pandoc
es obligatorio, ¿qué funciones son relevantes?
EDITAR
Aquí hay una pequeña página de muestra:
---
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.
Intenté ejecutar esto en RStudio v 0.98.864 y funcionó. pero lamentablemente no funcionó en 0.98.501 y 0.98.507. Estoy trabajando en mi tesis en 0.98.501 y después de actualizar RStudio, algunos de mis análisis no funcionaron. Entonces, volví a 0.98.501. ¿Qué debería hacer ahora? Realmente quiero TOC pero sin dañar los resultados de otros análisis.
fuente
toc: true
en el frente de YAML debería hacerlo.Respuestas:
La sintaxis es
--- title: "Sample Document" output: html_document: toc: true theme: united ---
en la documentación . Asegúrese de que esté al principio de su documento. También asegúrese de que su documento realmente tenga encabezados, de lo contrario, R no puede decir lo que quiere en la tabla de contenido.
fuente
Sintaxis con más opciones:
--- 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 ---
fuente
toc_depth
lugar dedepth
<a href="#top"> Back To Top </a>
en la ubicación (las líneas de código) donde desea que aparezca. Espero que esto funcione.Si está utilizando
pdf_document
, es posible que desee agregar una tabla de contenido en una página nueva, lotoc: true
que no permite. Coloca la tabla de contenido justo después del título del documento, el autor y la fecha, porque está en yaml.Si quieres tenerlo en una nueva página, tienes que usar algún lenguaje de látex. Aquí esta lo que hice.
--- 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
Entonces, después de yaml (el fragmento entre ---), agregué una nueva página usando
\newpage
, luego una tabla de contenido usando\tableofcontents
, una lista de figuras usando\listoffigures
, una lista de tablas\listoftables
y una nueva página antes que todo lo demás.Tenga
\vspace{3in}
en cuenta que en el título se agrega un espacio vertical de 3 pulgadas desde la parte superior antes de imprimir yaml (título, etc.).Lea más aquí: https://www.sharelatex.com/learn/Table_of_contents
fuente