从单个Rmd生成多输出失败:仅得到首个指定输出
单个Rmd文件生成多输出的问题解决
问题描述
资料显示单个Rmd文件可生成多种输出格式,但使用《RMarkdown Book》中的示例代码时,仅能得到YAML里首个列出的输出。当前环境为RStudio 2022.07.1、knitr=1.39,示例代码如下:
--- title: Render a table in a tiny environment output: pdf_document: default html_document: default --- ```{r, setup, include=FALSE} knitr::opts_chunk$set(echo = FALSE) options(knitr.table.format = function() { if (knitr::is_latex_output()) 'latex' else 'pandoc' })
## 解决方法 - RStudio界面的「Knit」按钮默认只会渲染YAML中第一个指定的输出格式,要生成所有列出的输出,需用R代码调用`rmarkdown::render()`函数: ```r # 替换为你的Rmd文件名 rmarkdown::render("your_file.Rmd", output_format = "all")
- 可选:为避免多格式输出文件重名覆盖,可在YAML头部添加
output_dir指定输出目录:--- title: Render a table in a tiny environment output: pdf_document: default html_document: default output_dir: "outputs" # 所有输出文件会保存到当前目录下的outputs文件夹 ---
补充说明
RStudio的「Knit」按钮是为快速预览单格式输出设计的,批量生成多格式输出需要通过rmarkdown::render()函数主动指定output_format = "all",这样就能一次性生成所有YAML中定义的输出文件。
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

