简而言之:有没有办法从以下 R 代码块中操作从 YAML 标头生成的 RMarkdownmetadata
-list?为了说明这一点,我尝试了以下方法:
---
title: "Untitled"
output: html_document
---
```{r}
rmarkdown::metadata$title <- "New title"
rmarkdown::metadata$title
```
但是,这会引发错误。
Error in rmarkdown::metadata$title <- "New title" :
Object 'rmarkdown' not found
背景
我正在研究一个RMarkdown TeX模板。前导码的某些部分需要根据 YAML 标头中定义的变量lang
进行本地化。我目前的方法是检查metadata$lang
的值并创建相应术语的列表。例如,我想将列表的内容添加到metadata
并通过$loc_wordcount$
访问 TeX 模板中的术语。
我认为答案是否定的(尽管我不是 100% 确定)。
但是,有一种不同的方法可以做到这一点。 您可以使用参数化报表 (https://bookdown.org/yihui/rmarkdown-cookbook/parameterized-reports.html)。
这样做的方法是:
创建一个带有名为param$value
的参数的 rmarkdown 文件(例如称为 "input.Rmd
"):
---
title: "params$new_title"
output: html_document
---
The rest of the report goes here.
然后使用传入的参数呈现报表:
rmarkdown::render('input.Rmd', params = list(new_title = "New title"))