在 RStudio 中将 .rmd 文件编织为 .pdf 时,如何为输出和回声提供不同的背景颜色?

When knitting .rmd files to .pdf in RStudio, how do I give a different background colour to the output and echos?

提问人:cejr9565 提问时间:10/20/2023 最后编辑:cejr9565 更新时间:10/22/2023 访问量:77

问:

通过遵循此解决方案,我已经能够为输出块提供颜色。如何使输出块与代码块的颜色不同?另外,如何为其他输出消息提供背景颜色?

或者,在输出块和回显块周围使用纯黑色边框也可以。谢谢!

enter image description here

我目前在设置中使用了它:

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, class.output="shadebox")
```

\definecolor{shadecolor}{RGB}{240, 240, 240}
乳胶 R-Markdown Rstudio 针织品

评论

0赞 Friede 10/20/2023
html输出?stackoverflow.com/questions/41030477/......
0赞 Julian Karch 10/20/2023
我不知道一个简单的解决方案,但应该可以通过梳理输出钩子:bookdown.org/yihui/rmarkdown-cookbook/output-hooks.html 和用于更改“逐字”背景颜色的乳胶解决方案来实现:tex.stackexchange.com/questions/163412/......
0赞 cejr9565 10/20/2023
@Friede感谢您的建议,尽管我主要是在寻找编织成pdf的解决方案。

答:

0赞 Quinton.Quagliano 10/20/2023 #1

我没有关于不同块颜色的完整答案(如果我能找到它,我会添加它)——但我可以帮助您将背景颜色添加到所有输出、消息、警告和错误中。只需像这样修改您的代码:

```{r setup, include = FALSE}
knitr::opts_chunk$set(
  echo          = TRUE,
  # Next 4 are various types of output
  class.output  = "shadebox",
  class.message = "shadebox",
  class.warning = "shadebox",
  class.error   = "shadebox"
)
```

如果您不希望任何这些特定类型着色,只需删除该行即可。

评论

0赞 cejr9565 10/22/2023
嗨,@Quinton.Quagliano,非常感谢您的帮助。这在为所有其他类型的输出提供背景方面非常有效。如果您已经找到了如何区分代码块和输出块之间的颜色,将非常希望收到回复。
0赞 Quinton.Quagliano 10/23/2023
您好@cejr9565,经过一些额外的检查,我怀疑一种方法是研究语法突出显示模板在 pandoc 下的工作方式,并创建一个自定义模板,但我还没有关于如何做到这一点的明确答案。这里有一个链接,可以让你开始。我将继续研究是否有可靠的方法来产生您正在寻找的效果。另一种方法是研究提供背景着色的 LaTeX 包。