是否可以为R Markdown设置多组共享选项?
这是我的问题:我有一个带有一堆markdown文件的文件夹。这些文件可以分为两组:
html_document
和revealjs::revealjs_presentation
。我想从每个组中分解出常见的YAML代码。现在我知道我可以创建一个_output.yaml
文件来捕获常见的YAML,但我基本上需要两个这些文件,每个输出格式一个。
我看到使用了pandoc_args
建议的here,我尝试了如下:
---
title: Document Type 1
output:
html_document:
pandoc_args: './common-html.yaml'
---
和
---
title: Document Type 2
output:
revealjs::revealjs_presentation:
pandoc_args: './common-reveal.yaml'
---
但是,使用此设置,包含的YAML文件中的选项无法处理。
任何其他建议将不胜感激!
答案 0 :(得分:1)
您可以在同一_output.yaml
文件中指定多种输出格式,如下所示(只是一些示例选项):
html_document:
self_contained: false
revealjs::revealjs_presentation:
incremental: true
然后,您必须render all output formats,不能直接使用RStudio GUI来完成。相反,您必须在R控制台中输入以下内容:
rmarkdown::render(input = "your.Rmd",
output_format = "all")
理想情况下,请确保output
文档本身的YAML前端没有.Rmd
键。否则,_output.yaml
文件中的输出选项可能会被覆盖。不幸的是,我找不到确切行为的详尽文档。到目前为止,我的一些观察结果:
.Rmd
文档本身的YAML前端中定义的输出选项始终为override those specified in the shared options file _output.yaml
。pdf_document: default
文档本身的YAML优先事项中使用默认选项集(例如.Rmd
)指定输出格式会完全覆盖_output.yaml
中指定的所有选项。但是,如果您未明确指定默认选项(例如output: pdf_document
;这一次只能用于一种输出格式),则将充分考虑_output.yaml
的内容。_output.yaml
中为多种输出格式指定了选项,则在按RStudio中的“编织”按钮时,仅第一个会被渲染(即使您明确按knit to HTML/PDF/Word
)。您还必须使用rmarkdown::render(output_format = "all")
来呈现其他格式。