J'utilise RStudio pour écrire des documents de démarquage 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 les rpubs mais maintenant je n'arrive pas à les trouver. Veuillez noter que je n'utilise pas pandoc
et que je suis assez nouveau dans Rmd
& knitr
. Existe-t-il un moyen d'ajouter des tables des matières sans utiliser pandoc
? Si l'utilisation pandoc
est obligatoire, quelles fonctions sont pertinentes?
ÉDITER
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é de l'exécuter dans RStudio v 0.98.864 et cela a fonctionné! mais malheureusement cela n'a pas fonctionné sur 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 TOC mais sans nuire aux résultats des autres analyses.
la source
toc: true
dans le front-matière YAML devrait le faire.Réponses:
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 effectivement des en-têtes, sinon R ne peut pas dire ce que vous voulez dans la table des matières.
la source
Syntaxe avec plus d'options:
--- 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 ---
la source
toc_depth
au lieu dedepth
<a href="#top"> Back To Top </a>
à l'emplacement (les lignes de code) où vous voulez qu'il apparaisse. J'espère que cela fonctionne.Si vous utilisez
pdf_document
, vous souhaiterez peut-être ajouter une table des matières dans une nouvelle page, cetoc: true
qui ne permet pas. Il place la table des matières juste après le titre, l'auteur et la date du document - car elle est en 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 en utilisant\tableofcontents
, une liste de figures utilisant\listoffigures
, une liste de tableaux\listoftables
et une nouvelle page avant tout le reste.Remarque,
\vspace{3in}
dans le titre ajoute un espace vertical de 3 pouces à partir du haut avant d'imprimer yaml (titre, etc.).En savoir plus ici: https://www.sharelatex.com/learn/Table_of_contents
la source