【问题标题】:Add toc entries for html generated in r chunks in rmarkdown在 rmarkdown 中为 r 块中生成的 html 添加目录条目
【发布时间】:2020-09-24 02:41:03
【问题描述】:

使用 yaml 可以很好地识别我添加到 Rmd 文件(例如 ## 第 1 节)的显式标头,如下所示:

---
output: 
  rmarkdown::html_document:
    toc: true
---

但是,如果我的代码生成的 html 输出包含诸如 <h3> 等标头元素,那么它们会在 toc 中被忽略。我怎样才能让他们被包括在内?

```{r results='asis'}
# either through cat
cat(paste0('<h3>', 'some header', '</h3>'))
# or via some function's output
summarytools::print.summarytools(
    summarytools::dfSummary(df), headings = TRUE, method = 'render')
```

我正在 RStudio 中编织文件。

## R version 4.0.2 (2020-06-22)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 10 x64 (build 18362)

## other attached packages:
##  [1] diffobj_0.3.0      knitr_1.29         summarytools_0.9.6 assertthat_0.2.1  
##  [5] forcats_0.5.0      stringr_1.4.0      dplyr_1.0.2        purrr_0.3.4       
##  [9] readr_1.3.1        tidyr_1.1.2        tibble_3.0.3       ggplot2_3.3.2     
## [13] tidyverse_1.3.0   

【问题讨论】:

    标签: r r-markdown knitr


    【解决方案1】:

    让你的results="asis" 阻止输出而不是原始 HTMLmarkdown

    ---
    output: 
      rmarkdown::html_document:
        toc: true
    ---
    
    # Header1
    
    ## Header2
    
    ### Header3a
    
    ```{r echo = FALSE, results='asis'}
    cat('\n\n### Header3b\n\n')
    ```
    
    ```{r}
    "something goes here"
    ```
    

    【讨论】:

    • 谢谢,那一半有效!对cat 很好,但我也在使用summarytools 来写报告,它似乎没有将其输出呈现为降价的设施,所以我在降价块中获得了 html 输出。问题出在我正在使用的功能上。我可能需要找到一种不同的方式来做到这一点。
    • 我认为问题是关于将标题放入 TOC。我不知道summarytools,但是提到rmarkdown 的the docs 并没有具体说要使用results="asis"。将标头和输出代码分成不同的块。请参阅我的编辑。如果这不起作用,请接受此答案并在 rmarkdown 中专门询问该软件包(因为它与 yaml/toc/'asis' 无关),谢谢。
    猜你喜欢
    • 2014-07-20
    • 2017-10-06
    • 2017-06-09
    • 1970-01-01
    • 2013-12-07
    • 2017-04-28
    • 2015-07-08
    • 1970-01-01
    相关资源
    最近更新 更多