Rmarkdown에서 목차를 추가하는 방법은 무엇입니까?


88

마크 다운 문서를 작성하는 데 RStudio를 사용하고 있으며 사용자가 읽기를 위해 관련 섹션을 클릭 할 수 있도록 문서 상단에 목차 (TOC)를 추가하고 싶습니다. rpub에 관련된 몇 가지 예가 있었지만 지금은 찾을 수없는 것 같습니다. 나는 사용하지 않으며 &를 pandoc처음 사용합니다 . 사용하지 않고 TOC를 추가하는 방법이 있습니까? 사용 이 필수라면 어떤 기능이 관련이 있습니까?Rmdknitrpandocpandoc

편집하다

다음은 작은 샘플 페이지입니다.

---
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 v 0.98.864에서 실행 해 보았고 작동했습니다! 하지만 슬프게도 0.98.501과 0.98.507에서는 작동하지 않았습니다. 0.98.501에서 논문을 작성 중이며 RStudio를 업데이트 한 후 일부 분석이 작동하지 않았습니다. 그래서 다시 0.98.501로 되돌 렸습니다. 이제 어떻게해야합니까? 나는 정말로 TOC를 원하지만 다른 분석의 결과물을 손상시키지 않습니다.


2
Rstudio에서 사용하는 rmarkdown 패키지가 pandoc을 둘러싼 래퍼라고 생각하므로 관련 옵션을 전달할 수 있어야합니다. 사실, toc: trueYAML 전면에서 그것을해야합니다.
baptiste

1
rmarkdown.rstudio.com 의 예에 따라 들여 쓰기를 시도 하고 다른 모든 것이 실패하면 Rstudio 를 업데이트하십시오
baptiste

1
@umairdurrani 알겠습니다. 샘플에는 헤더가 없습니다. 목차에 무엇이 포함되기를 원하십니까?
MrFlick

1
@baptiste에게 감사합니다. 이것도 문제가 있었지만 들여 쓰기가 제대로 해결되었습니다.
Alex

1
헤더의 적절한 들여 쓰기가 핵심입니다
N Brouwer

답변:


76

구문은

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

에서 문서 . 문서의 시작 부분에 있는지 확인하십시오. 또한 문서에 실제로 헤더가 있는지 확인하십시오. 그렇지 않으면 R이 목차에서 원하는 것을 말할 수 없습니다.


2
이것은 내가 Rmd 파일 (제목 앞) 위에 놓고 HTML 니트를 클릭 한 것과 똑같은 것입니다. 결과 문서에는 목차가 없으며 오류없이 작성되었습니다. 위치를 변경할 수있는 다른 옵션이 있습니까?
umair durrani 2014 년

2
이제 RStudio 버전 0.98.501, .507 및 .897 (미리보기 릴리스)을 시도했지만이 메타 데이터가 작동하지 않았습니다.
umair durrani 2014 년

1
@umairdurrani는 귀하에게 적합하지 않은 작은 샘플 문서를 포함하도록 질문을 편집 할 수 있습니다. 그렇게하면 정확히 똑같은 일을 시도하여 무슨 일이 일어나는지 볼 수 있습니다.
MrFlick

63

더 많은 옵션이있는 구문 :

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

4
나는이 생각 toc_depth대신에depth
F. Privé

1
@ F.Privé 약 1 년 전에이 답변을 썼습니다. 패키지가 이러한 변경을 수행했는지 확실하지 않습니다. 업데이트 해주셔서 감사합니다.
Manoj Kumar

목차로 돌아 가기 위해 각 섹션에 클릭을 추가하는 방법은 무엇입니까? 감사합니다
Daniel

1
@Daniel-표시 <a href="#top"> Back To Top </a>하려는 위치 (코드 줄)에서 :와 같은 앵커 링크 HTML을 사용해보십시오 . 이것이 효과가 있기를 바랍니다.
Manoj Kumar

21

을 사용하는 경우 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및 다른 모든 것보다 먼저 새 페이지를 추가했습니다.

참고로 \vspace{3in}제목은 yaml (제목 등)을 인쇄하기 전에 상단에서 3 인치의 수직 공간을 추가합니다.

자세한 내용은 https://www.sharelatex.com/learn/Table_of_contents를 참조하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.