Rmarkdown'a içindekiler tablosu nasıl eklenir?


89

İşaretleme belgeleri yazmak için RStudio kullanıyorum ve kullanıcının okumak için ilgili bölümü tıklatabilmesi için belgelerin üstüne İçindekiler (TOC) eklemek istiyorum. RPub'larla ilgili bazı örnekler vardı ama şimdi onları bulamıyorum. Lütfen kullanmadığımı pandocve Rmd& konusunda oldukça yeni olduğumu unutmayın knitr. Kullanmadan TOC eklemenin bir yolu var mı pandoc? Kullanmak zorunluysa pandoc, hangi işlevler önemlidir?

DÜZENLE

İşte küçük bir örnek sayfa:

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

Bunu RStudio v 0.98.864'te çalıştırmayı denedim ve işe yaradı! ama ne yazık ki 0.98.501 ve 0.98.507'de çalışmadı. 0.98.501'de tezim üzerinde çalışıyorum ve RStudio'yu güncelledikten sonra bazı analizlerim işe yaramadı. Böylece 0.98.501'e geri döndüm. Ben şimdi ne yapmalıyım? TOC'leri gerçekten istiyorum, ancak diğer analizlerin çıktılarına zarar vermeden.


2
Rstudio tarafından kullanılan rmarkdown paketinin pandoc için bir sarmalayıcı olduğuna inanıyorum, bu nedenle ilgili seçeneği geçebilmelisiniz. Aslında, toc: trueYAML'de ön-mesele bunu yapmalı.
baptiste

1
girintiyi artırmayı , rmarkdown.rstudio.com'daki örnekleri izlemeyi ve her şey başarısız olursa Rstudio'yu güncellemeyi deneyin
baptiste

1
@umairdurrani Ok. örneğin herhangi bir başlığı yok. İçindekiler tablosunda ne olmasını istersiniz?
MrFlick

1
teşekkürler @baptiste, bununla da bir sorun yaşadım, ancak girintileme düzgün bir şekilde düzeltildi.
Alex

1
başlıkta düzgün girinti yapmak anahtardır
N Brouwer

Yanıtlar:


77

Sözdizimi

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

içinde belgeler . Bunun belgenizin başında olduğundan emin olun. Ayrıca belgenizin gerçekten başlıklara sahip olduğundan emin olun, aksi takdirde R içindekiler tablosunda ne istediğinizi söyleyemez.


2
Bu, Rmd dosyasının üstüne (başlıktan önce) koyduğum ve HTML'yi tıkladığımla aynı şey. Ortaya çıkan belgenin içindekiler tablosu yoktur ve herhangi bir hata olmadan oluşturulmuştur. Bazı yerleri değiştirmek için başka bir seçenek var mı?
umair durrani

2
Şimdi RStudio sürümleri 0.98.501, .507 ve .897'yi (önizleme sürümü) denedim, ancak bu meta veri işe yaramadı.
umair durrani

1
@umairdurrani sorunuzu sizin için çalışmayan küçük, örnek bir belge içerecek şekilde düzenleyebilir misiniz? Bu şekilde ne olacağını görmek için aynı şeyi deneyebiliriz.
MrFlick

66

Daha fazla seçenek içeren sözdizimi:

---
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
Sanırım bunun toc_depthyerinedepth
F.Privé

1
@ F.Privé Bu cevabı yaklaşık 1 yıl önce yazdım. Paketin bu değişiklikleri yaptığından emin değilim. Güncelleme için teşekkürler.
Manoj Kumar

TOC'ye geri dönmek için her bölüme bir tıklama nasıl eklenir? teşekkürler
Daniel

1
@Daniel - Görünmesini <a href="#top"> Back To Top </a>istediğiniz yerde (kod satırları) gibi bağlantı bağlantısı HTML'yi kullanmayı deneyin . Umarım bu işe yarar.
Manoj Kumar

22

Kullanıyorsanız pdf_document, toc: trueizin vermeyen yeni bir sayfaya içindekiler tablosu eklemek isteyebilirsiniz . İçindekiler tablosunu belge başlığı, yazarı ve tarihinin hemen sonrasına koyar - çünkü bu, yaml'dadır.

Yeni bir sayfada olmasını istiyorsanız, biraz lateks dili kullanmanız gerekir. İşte yaptığım şey.

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

Öyleyse, yaml'den sonra (--- arasındaki yığın) kullanarak yeni bir sayfa \newpage, ardından bir içindekiler tablosu, kullanılan \tableofcontentsşekillerin \listoffiguresbir listesi, bir tablo listesi \listoftablesve her şeyden önce yeni bir sayfa ekledim .

\vspace{3in}Başlıkta, iplik (başlık, vb.) Yazdırılmadan önce üstten 3 inçlik dikey boşluk eklendiğini unutmayın .

Daha fazlasını buradan okuyun: https://www.sharelatex.com/learn/Table_of_contents

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.