从 R 代码块中操作 RMarkdown 元数据



简而言之:有没有办法从以下 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"))

最新更新