我有两个关于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")
获取全局选项,而不是当前块的选项。
答案 0 :(得分:3)
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