Knitting/Rendering R Markdown 输出:我可以阻止代码在 PDF 输出中显示,但允许代码在 HTML 输出中折叠吗?

Knitting/Rendering R Markdown Output: Can I prevent code from showing in PDF output but allow code folding in HTML output?

以 PDF 格式显示代码可能会很长,并且会分散某些 reader 或客户的注意力,但如果他们想要复制或验证,我会将其作为 HTML 版本中的一个选项我做了什么。根据与我一起工作的人,我可能会分享一个或另一个(或两者),但我想避免每次都更改 Rmd 脚本来生成它们。

因此,我希望能够以某种方式将我的 R Markdown 脚本编织成 HTML 和 PDF,以便 HTML 输出可以显示代码(在 code_folding output: html_document 选项),但阻止代码出现在我的 PDF 输出中。

有没有办法不用每次都重新编码脚本的一部分?

以R Markdown文本为例:

---
title: "Title"
output: 
  pdf_document:
    df_print: kable
  html_document:
    code_folding: show
    df_print: paged
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

## R Markdown

```{r mtcars}
# I want to make this code visible when I knit to HTML, but hidden when I knit to PDF. 
# How do I do that?
mtcars[1:2, 1:4]
```

编织时会显示mtcars块。

我可以在设置块中将 knitr::opts_chunk$set(echo = TRUE) 更改为 knitr::opts_chunk$set(echo = FALSE) 以防止代码显示在 PDF 输出中,但代码也会在 HTML 输出中消失。

code_folding: hide 可以隐藏 html_document 输出选项的代码,并允许 reader 在必要时查看代码。但是,code_folding: hide 不适用于 pdf_document 输出选项。我可以使用替代方案吗?

也许在 evalecho

中使用 is_html_output
---
title: "Title"
output: 
 html_document:
   code_folding: show
   df_print: paged
  pdf_document:
    df_print: kable
 ---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

## R Markdown

```{r mtcars, eval = knitr::is_html_output(), echo = knitr::is_html_output()}
# I want to make this code visible when I knit to HTML, but hidden when    I knit to PDF. 
 # How do I do that?
 mtcars[1:2, 1:4]
 ```

-输出html

-输出pdf