生成 Rmarkdown .html 文档时,是否可以有选择地选择将在其中显示的目录的默认部分?我有一个正在进行的 Rmd 报告,它会定期更新,我希望之前的 toc 部分可用但折叠起来,并且只有最新的(或明确指出的部分)展开。

---
title: "Main document"
date: "16 March 2018"
output:
  html_document:
    mode: selfcontained
    toc: true
    toc_float: true
    toc_depth: 2
---

```{r child = 'document1.Rmd'}
```

```{r child = 'document2.Rmd'}
```

```{r child = 'document3.Rmd'}
```

最佳答案

您可以使用一个使用 JavaScript property 的小型 window.location 程序。

这是一个可重现的 Rmd 打开第 2.1 小节:

---
title: "Document"
date: "16 March 2018"
output:
  html_document:
    mode: selfcontained
    toc: true
    toc_float: true
    toc_depth: 2
---
# Section 1
## Subsection 1.1

## Subsection 1.2

# Section 2
## Subsection 2.1

## Subsection 2.2

```{js echo=FALSE}
window.location.href='#subsection_21';
```

为了使此示例适应您的文档:
  • 在浏览器中打开 HTML 文档,选择目标部分并阅读浏览器地址栏。地址以 #section_title_or_something_like_that 结尾。注意这个 id
  • 在主 js 文件的最后复制示例的 Rmd 块。代替#subsection_21 与之前的 id ( #section_title_or_something_like_that )。
  • Knit 你的主文件!大功告成。


  • 如果您想避免在主 Rmd 文件中使用原始 JavaScript,您还可以在 script.html 文件中包含这些行(不要忘记修改 id ):
    <script type="text/javascript">
    window.location.href='#subsection_21';
    </script>
    

    然后,使用以下命令在您的文档中包含此 script.html 文件:
    ---
    title: "Document"
    date: "16 March 2018"
    output:
      html_document:
        mode: selfcontained
        toc: true
        toc_float: true
        toc_depth: 2
        includes:
          after_body: "script.html"
    ---
    # Section 1
    ## Subsection 1.1
    
    ## Subsection 1.2
    
    # Section 2
    ## Subsection 2.1
    
    ## Subsection 2.2
    

    关于r - 如何在 Rmd 报告中指定 toc 将在哪个级别展开?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49391027/

    10-12 23:35