块选项class.output无法处理错误消息

The*_*aya 7 r chunks knitr r-markdown bookdown

我正在准备课程的教程,我想将错误的颜色更改为红色.我使用BookDown和gitbook作为输出格式.但我发现该选项class.output不起作用.我想在输出中为我得到的错误消息添加一个类.我怎样才能做到这一点?您可以将此作为示例:

---
title: "Test Book"
author: "therimalaya"
site: bookdown::bookdown_site
output: bookdown::gitbook
---

# Hello World

```{r, error = TRUE, class.output="red"}
rnorm(-10)
```
Run Code Online (Sandbox Code Playgroud)

如果没有错误,这可以工作.

RLe*_*sur 6

class.output不适用于错误(请参阅此处).
根据这个答案,我建议你使用错误钩子:

```{r error-hook, echo=FALSE}
knitr::knit_hooks$set(error = function(x, options) {
  paste0(
    "```{", 
    ifelse(is.null(options$class.error), 
           "", 
           paste0(" .", gsub(" ", " .", options$class.error))
    ),
    "}\n",
    x,
    "\n```"
  )
})
```
Run Code Online (Sandbox Code Playgroud)

现在,您可以class.error在块中使用"新" 选项.

```{r, error = TRUE, class.error="red"}
rnorm(-10)
```
Run Code Online (Sandbox Code Playgroud)

欢迎在这里打开功能请求.