Как создать оглавление, которое можно прокручивать вручную в RMarkdown?

#r #r-markdown #knitr

Вопрос:

Я составлял сводный отчет о данных, используя rmdformats пакет в RMarkdown. Я использовал опцию «плавающее оглавление», однако я заметил, что в достаточно больших документах (мой документ имеет по крайней мере 15 заголовков первого порядка в силу своей природы) более поздние части документа отрезаны и их нелегко выбрать без прокрутки вручную. Это настройки, которые я использовал…

 output:
  rmdformats::html_clean:
    highlight: haddock
    toc: TRUE
    toc_depth: 3
    toc_float: TRUE
    number_sections: TRUE
    thumbnails: FALSE
    code_folding: show
    df_print: paged
    DT: datatable
 

Я пытался найти способ добавить более ручную полосу прокрутки в плавающее оглавление в RMarkdown, чтобы, если я захочу перейти к более позднему заголовку документа, я мог просто щелкнуть по заголовку этого раздела и перейти к нему. Есть ли какой-нибудь способ добиться этого?

Ответ №1:

Используя поваренную книгу Rmarkdown и используя немного HTML/CSS, мы получаем селектор TOC, а затем добавляем некоторые встроенные CSS, которые вы можете изменить max-height (и, вероятно max-width ,) в соответствии с вашими потребностями.

CSS

 ```{css}
html body.preload div.container-fluid.main-container div.row div.col-md-2 div#toc
{
  max-height: 200px;
  overflow-y: auto;
  background-color: inherent;
  }
```
 

Что дает нам ваш прокручиваемый TOC

введите описание изображения здесь

весь код R

 ---
author: Daniel
title: "R"
output:
  rmdformats::html_clean:
    highlight: haddock
    toc: TRUE
    toc_depth: 3
    toc_float: TRUE
    number_sections: TRUE
    thumbnails: FALSE
    code_folding: show
    df_print: paged
    DT: datatable
---

```{css}
html body.preload div.container-fluid.main-container div.row div.col-md-2 div#toc
{
max-height: 200px;
overflow-y: auto;
background-color: inherent;
}
```

# Chapter 1
# Chapter 2
# Chapter 3
# Chapter 4
# Chapter 5
# Chapter 6
# Chapter 7
# Chapter 8
 

Возможно, вы уже знаете, но обычный html_document с теми же настройками YAML даст вам прокручиваемый TOC, если дисплей недостаточно велик для отображения всего TOC.

введите описание изображения здесь