knitr:如何从块内部获取和覆盖块选项
knitr: how to get and override chunk options from inside a chunk
我有 2 个关于 knitr
块选项的问题:
1) 是否可以从一段代码中覆盖 knitr
块选项,以便在同一块中应用这些选项?例如编写类似于以下行的内容并获得结果 as-is
:
```{r, results= "markup"}
knitr::opts_chunk$set(results= "asis")
for (i in 1:5)
print("# This text should be printed 'as-is'")
```
p.s。我熟悉 knitr::asis_output
。
2) 是否可以从块内部获取块选项?例如,使用如下代码:
```{r}
knitr::opts_chunk$get("results")
```
并获取字符串 markup
.
```{r, results='asis'}
knitr::opts_chunk$get("results")
```
并获取字符串 asis
.
不幸的是,knitr::opts_chunk$get("results")
获取全局选项,而不是当前块的选项。
1) 可以使用函数 knitr::normal_print
和 knitr::asis_output
自定义打印(正如您提到的)。例如:
```{r, results='markup'}
knitr::asis_output(replicate(5, "# This text should be printed 'as-is'\n"))
print("# This text should be printed 'normal'")
```
或者
```{r, results='asis'}
for (i in 1:5)
cat("# This text should be printed 'as-is'\n")
knitr::normal_print("# This text should be printed 'normal'\n")
```
2) 可以使用 knitr::opts_current$get()
检索当前块选项。使用 :
```{r, results='asis'}
knitr::opts_current$get("results")
```
并获取字符串 asis
我有 2 个关于 knitr
块选项的问题:
1) 是否可以从一段代码中覆盖 knitr
块选项,以便在同一块中应用这些选项?例如编写类似于以下行的内容并获得结果 as-is
:
```{r, results= "markup"}
knitr::opts_chunk$set(results= "asis")
for (i in 1:5)
print("# This text should be printed 'as-is'")
```
p.s。我熟悉 knitr::asis_output
。
2) 是否可以从块内部获取块选项?例如,使用如下代码:
```{r}
knitr::opts_chunk$get("results")
```
并获取字符串 markup
.
```{r, results='asis'}
knitr::opts_chunk$get("results")
```
并获取字符串 asis
.
不幸的是,knitr::opts_chunk$get("results")
获取全局选项,而不是当前块的选项。
1) 可以使用函数 knitr::normal_print
和 knitr::asis_output
自定义打印(正如您提到的)。例如:
```{r, results='markup'}
knitr::asis_output(replicate(5, "# This text should be printed 'as-is'\n"))
print("# This text should be printed 'normal'")
```
或者
```{r, results='asis'}
for (i in 1:5)
cat("# This text should be printed 'as-is'\n")
knitr::normal_print("# This text should be printed 'normal'\n")
```
2) 可以使用 knitr::opts_current$get()
检索当前块选项。使用 :
```{r, results='asis'}
knitr::opts_current$get("results")
```
并获取字符串 asis