【问题标题】:Knitting/Rendering R Markdown Output: Can I prevent code from showing in PDF output but allow code folding in HTML output?编织/渲染 R Markdown 输出:我可以阻止代码在 PDF 输出中显示,但允许在 HTML 输出中折叠代码吗?
【发布时间】:2021-10-03 17:15:57
【问题描述】:

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

因此,我希望能够以某种方式将我的 R Markdown 脚本编写为 HTML 和 PDF,以便 HTML 输出可以显示代码(在 output: html_document 选项中使用 code_folding),但防止代码从出现在我的 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 输出选项的代码,并允许读者在必要时查看代码。但是,code_folding: hide 不适用于 pdf_document 输出选项。有没有我可以使用的替代品?

【问题讨论】:

    标签: html r pdf output r-markdown


    【解决方案1】:

    也许在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

    【讨论】:

    • 太棒了!我不知道那个功能。通过扩展,我可以将其应用于setup 块中的代码以更改默认行为:knitr::opts_chunk$set(echo = knitr::is_html_output())
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    • 2022-08-19
    • 1970-01-01
    相关资源
    最近更新 更多