我的文档中有很多块,其中一些并排产生2个图,有些产生3个图并且其他一些只是用于显示结果(其中一些甚至回显代码)。我可以为文档设置全局knitr选项,如下所示;
```{r setup, include = FALSE, cache = FALSE}
knitr::opts_chunk$set(
comment = NA,
fig.width = 7,
out.width = 50%,
warning = FALSE
)
```
但是我想设置多组这样的全局选项,以便有些人将数字块并排放置,并且有些目标是结果输出。
由于选项只是一个列表,我可以创建多个不同选项的列表,但我想知道如何在这些单独的块中包含这些选项?
答案 0 :(得分:3)
我建议使用option hooks来完成这项工作。只要设置了某个块选项(即,不是NULL
),相应的选项挂钩就会运行并设置所需的块选项。
以下示例定义了两组规则:" chatty"在输出前打印提示符和非常有趣的符号,而" silent"抑制提示并在输出前不打印任何内容。
同样,您可以根据需要设置fig.width
和out.width
。
```{r, echo = FALSE}
library(knitr)
opts_hooks$set(chatty = function(options) {
options$prompt = TRUE
options$comment = ";-)"
return(options)
})
opts_hooks$set(silent = function(options) {
options$promt = FALSE
options$comment = ""
return(options)
})
```
# Demo
## Default
```{r}
print("Default")
```
## Chatty
```{r, chatty = TRUE}
print("chatty")
```
## Silent
```{r, silent = TRUE}
print("silent")
```