web-dev-qa-db-fra.com

Comment ajouter une table des matières dans Rmarkdown?

J'utilise RStudio pour rédiger des documents corrigés et je souhaite ajouter une table des matières (TOC) en haut des documents afin que l'utilisateur puisse cliquer sur la section appropriée pour la lecture. Il y avait quelques exemples pertinents sur rpubs mais maintenant je n'arrive pas à les trouver. Veuillez noter que je n'utilise pas pandoc et que je suis assez nouveau pour Rmd & knitr. Est-il possible d'ajouter des tables des matières sans utiliser pandoc? Si pandoc est indispensable, quelles sont les fonctions pertinentes?

MODIFIER

Voici un petit exemple de page:

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

J'ai essayé d'exécuter ceci dans RStudio v 0.98.864 et cela a fonctionné! mais malheureusement, cela n’a pas fonctionné avec les versions 0.98.501 et 0.98.507. Je travaille sur ma thèse en 0.98.501 et après la mise à jour de RStudio, certaines de mes analyses n'ont pas fonctionné. Donc, je suis revenu à 0,98,501. Qu'est-ce que je devrais faire maintenant? Je veux vraiment des COT, mais sans nuire aux résultats d'autres analyses.

75
umair durrani

La syntaxe est

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

dans la documentation . Assurez-vous que cela se trouve au début de votre document. Assurez-vous également que votre document a bien des en-têtes, sinon R ne peut pas dire ce que vous voulez dans la table des matières.

58
MrFlick

Syntaxe avec plus d'options:

---
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
---
48
Manoj Kumar

Si vous utilisez pdf_document, vous voudrez peut-être ajouter une table des matières dans une nouvelle page, laquelle toc: true ne permet pas de. Il place la table des matières juste après le titre du document, son auteur et sa date - car il s’agit de yaml.

Si vous voulez l'avoir dans une nouvelle page, vous devez utiliser un langage latex. Voici ce que j'ai fait.

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

Donc, après yaml (le morceau entre ---), j'ai ajouté une nouvelle page en utilisant \newpage, puis une table des matières utilisant \tableofcontents, une liste de chiffres utilisant \listoffigures, une liste de tables \listoftables, et une nouvelle page avant tout.

Remarque, \vspace{3in} dans le titre ajoute un espace vertical de 3 pouces à partir du haut avant l'impression de yaml (titre, etc.).

Lisez plus ici: https://www.sharelatex.com/learn/Table_of_contents

11
MSD