当错误消息本身被修改为以红色打印时,如何在 RMarkdown 中获取打印的错误消息以折叠成单个 block ?
在此示例中 collapse = T
按预期工作。
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, collapse = TRUE)
```
```{r error=T}
x <- c(1,2,3,4,5)
x * 10
X * 10
```
在此示例中,我将错误消息修改为红色格式(基于此 answer )。但随后它不会与其余部分一起崩溃:
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, collapse = TRUE)
knitr::knit_hooks$set(error = function(x, options) {
paste0("<pre style=\"color: red;\"><code>", x, "</code></pre>")
})
```
```{r error=T}
x <- c(1,2,3,4,5)
x * 10
X * 10
```
我试图指定
collapse = T
再次在特定的代码块中,但这也不起作用:```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, collapse = TRUE)
knitr::knit_hooks$set(error = function(x, options) {
paste0("<pre style=\"color: red;\"><code>", x, "</code></pre>")
})
```
```{r error=T, collapse = T}
x <- c(1,2,3,4,5)
x * 10
X * 10
```
最佳答案
用电流development version of knitr ( remotes::install_github('yihui/knitr')
),您可以指定 CSS class for error messages .这是一个例子:
```{r setup, include=FALSE}
knitr::opts_chunk$set(collapse = TRUE)
```
```{css, echo=FALSE}
.red {
color: red;
padding-top: 0;
margin-top: -15px;
border-top-color: #f5f5f5;
}
```
```{r error=T, class.error='red'}
x <- c(1,2,3,4,5)
x * 10
X * 10
```
输出:
关于r - 当错误消息被修改为以红色打印时,将错误消息折叠成一个 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54976794/