R markdown YAML动态变量

Nic*_*ton 5 yaml r r-markdown

在RMarkdown中,我似乎能够在YAML头中创建"一些"动态变量,但不能为其他人创建:

例如,这有效:

---
title: 
  "Some Title, `r format(Sys.time(), '%d %B, %Y')`"
...
---
Run Code Online (Sandbox Code Playgroud)

但这不是.

---
...
pdf_document:
    keep_tex: `r 'true'`
---
Run Code Online (Sandbox Code Playgroud)

但这就是DOES(即不动态).

---
...
pdf_document:
    keep_tex: true
---
Run Code Online (Sandbox Code Playgroud)

那么我怎么能'动态地'分配keep_tex给真或假,我想做什么,是这样的:

---
...
pdf_document:
    keep_tex: `r getOption('mypackage.keep_tex')`
---
Run Code Online (Sandbox Code Playgroud)

Hen*_*rik 5

我不知道是否可以在 .Rmd 文件的 YAML 标头中以编程方式设置模板选项。

作为替代方案,如果您使用rmarkdown::render渲染文档,则可以指定输出模板 ( pdf_document),然后keep_tex以编程方式设置模板选项(例如 )。

例如,如果您有一个名为“test.Rmd”的 .Rmd 文件,如下所示:

---
title: 
  "Some Title, `r format(Sys.time(), '%d %B, %Y')`"
---
Run Code Online (Sandbox Code Playgroud)

...以及一些确定是否保留中间 TeX 文件的逻辑对象,例如

my_keep <- TRUE
Run Code Online (Sandbox Code Playgroud)

...您可以将输入文件渲染为 PDF 格式并保留 TeX 文件,如下所示:

render(input = "test.Rmd",
       output_format = pdf_document(keep_tex = my_keep))
Run Code Online (Sandbox Code Playgroud)