Używam RStudio do pisania dokumentów Markdown i chcę dodać spis treści (TOC) u góry dokumentów, aby użytkownik mógł kliknąć odpowiednią sekcję do czytania. Było kilka odpowiednich przykładów na rpubach, ale teraz nie mogę ich znaleźć. Należy pamiętać, że nie używam pandoc
i jestem całkiem nowy Rmd
i knitr
. Czy istnieje sposób na dodanie spisów treści bez użycia pandoc
? Jeśli użycie pandoc
jest konieczne, to które funkcje są istotne?
EDYTOWAĆ
Oto mała przykładowa strona:
---
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.
Próbowałem uruchomić to w RStudio v 0.98.864 i zadziałało! ale niestety nie działało na 0.98.501 i 0.98.507. Pracuję nad swoją pracą w 0.98.501 i po aktualizacji RStudio niektóre z moich analiz nie działały. Wróciłem więc do 0.98.501. Co mam teraz zrobić? Naprawdę chcę TOC, ale bez szkody dla wyników innych analiz.
źródło
toc: true
na froncie YAML powinno to zrobić.Odpowiedzi:
Składnia to
--- title: "Sample Document" output: html_document: toc: true theme: united ---
w dokumentacji . Upewnij się, że jest to początek dokumentu. Upewnij się również, że twój dokument faktycznie ma nagłówki, w przeciwnym razie R nie będzie w stanie powiedzieć, czego chcesz w spisie treści.
źródło
Składnia z większą liczbą opcji:
--- 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 ---
źródło
toc_depth
zamiastdepth
<a href="#top"> Back To Top </a>
w miejscu (wierszach kodu), w którym ma się pojawić. Mam nadzieję, że to zadziała.Jeśli używasz
pdf_document
, możesz chcieć dodać spis treści na nowej stronie, cotoc: true
nie pozwala. Umieszcza spis treści bezpośrednio po tytule dokumentu, autorze i dacie - ponieważ jest w yaml.Jeśli chcesz mieć to na nowej stronie, musisz użyć jakiegoś języka lateksowego. Oto co zrobiłem.
--- 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
Tak więc, po yaml (fragment między ---), dodałem nową stronę za pomocą
\newpage
, a następnie spis treści za pomocą\tableofcontents
, listę rysunków przy użyciu\listoffigures
, listę tabel\listoftables
i nową stronę przed wszystkim innym.Uwaga,
\vspace{3in}
w tytule dodaje pionową odstęp 3 cali od góry przed wydrukowaniem yaml (tytuł itp.).Przeczytaj więcej tutaj: https://www.sharelatex.com/learn/Table_of_contents
źródło