在R代码块内部操作RMarkdown元数据

7
简而言之:是否有一种方法可以在以下R代码块中操纵从YAML头生成的metadata列表?为了说明这一点,我尝试了以下操作:
---
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模板中访问这些术语。

1个回答

0

我认为答案是否定的(虽然我不完全确定)。

但是,有一种不同的方法可以做到。您可以使用参数化报告(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"))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接