R Markdown参数值能否根据不同输出格式进行动态调整?
R Markdown 多输出格式差异化控制代码显示方案
你之前的写法不生效是因为
params属于R Markdown全局配置项,只能定义在YAML头的顶层,不支持嵌套在output的格式配置下。
你完全不需要额外定义params,直接通过knitr内置的输出格式判断函数即可实现需求,点击RStudio的Knit按钮就能按选中的格式自动适配规则,示例完整代码如下:
--- title: "Untitled" output: html_document: default pdf_document: default --- ```{r, include = FALSE} # html格式输出时显示代码,其余格式(含pdf)默认隐藏代码 knitr::opts_chunk$set(echo = knitr::is_html_output())
## 操作说明 - 单次渲染单种格式:点击Knit按钮右侧的下拉箭头,选中你需要的`html_document`或`pdf_document`即可自动生成对应效果的文件 - 一次渲染所有格式:点击Knit下拉菜单中的「Knit to all output formats」,会同时生成html和pdf两个文件,各自匹配代码显示规则 如果需要更灵活的多格式差异化配置,比如除了代码显示还有其他参数差异,可以用`rmarkdown::output_metadata$get("rmarkdown.pandoc.to")`获取当前输出格式标识,自行编写判断逻辑,示例: ```r ```{r, include=FALSE} output_type <- rmarkdown::output_metadata$get("rmarkdown.pandoc.to") if (output_type == "html") { # html格式专属配置 knitr::opts_chunk$set(echo = TRUE, warning = FALSE) } else if (output_type == "latex") { # pdf格式对应pandoc输出类型为latex knitr::opts_chunk$set(echo = FALSE, warning = TRUE, message = FALSE) }
内容的提问来源于stack exchange,提问作者jtr13
相关产品推荐
相关产品推荐

