r - 如何让 Rchunks 在 tcolorbox 中渲染?
问题描述
我创建了一个代表来显示我的问题,但是在我正在制作的自定义 Rmd 模板中遇到了同样的问题。
我希望能够在 tcolorbox 环境中包含程式化的代码块和绘图输出。由于某些原因。当我编织 Rmarkdown 时,它不会渲染 tcolorbox 环境。
这是我的代表 .RMD:
---
title: "Untitled"
output:
pdf_document:
extra_dependencies: ["tcolorbox", "tikz"]
---
```{r, include=FALSE}
library(tidyverse)
```
\begin{tcolorbox}
```{r,results='asis', eval=F}
iris %>%
group_by(Species) %>%
summarise(mean = mean(Sepal.Length),
sd = sd(Sepal.Width))
```
```{r,results='asis'}
ggplot(iris, aes(Sepal.Length, Sepal.Width, colors = Species)) +
geom_point()
```
\end{tcolorbox}
这是生成的.pdf:
当我删除 Rchunks 时,tcolorbox 会正确呈现。我打开了中间的 .tex 文件,看看发生了什么,看起来它正在取消 tcolorbox\textbackslash{}
\textbackslash{}begin\{tcolorbox\}
\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{iris }\OperatorTok{%>%}\StringTok{ }
\StringTok{ }\KeywordTok{group_by}\NormalTok{(Species) }\OperatorTok{%>%}\StringTok{ }
\StringTok{ }\KeywordTok{summarise}\NormalTok{(}\DataTypeTok{mean =} \KeywordTok{mean}\NormalTok{(Sepal.Length), }
\DataTypeTok{sd =} \KeywordTok{sd}\NormalTok{(Sepal.Width))}
\end{Highlighting}
\end{Shaded}
\begin{Shaded}
\begin{Highlighting}[]
\KeywordTok{ggplot}\NormalTok{(iris, }\KeywordTok{aes}\NormalTok{(Sepal.Length, Sepal.Width, }\DataTypeTok{colors =}\NormalTok{ Species)) }\OperatorTok{+}\StringTok{ }
\StringTok{ }\KeywordTok{geom_point}\NormalTok{()}
\end{Highlighting}
\end{Shaded}
\includegraphics{Untitled1_files/figure-latex/unnamed-chunk-3-1.pdf}
\textbackslash{}end\{tcolorbox\}
没有 Rchunks,它看起来很好:
\begin{tcolorbox}
\end{tcolorbox}
解决方案
看起来这是不可能的,是 Pandoc 问题,而不是 Rmarkdown 或 knitr 问题。我在这里找到了一个 hacky 解决方案:
https://github.com/jgm/pandoc/issues/3145
您可以通过将其放置在模板 .tex 文件中来绕过它:
\let\Begin\begin
\let\End\end
然后在您的 Rmarkdown 文件中,您可以执行以下操作:
\Begin{tcolorbox}
```{r}
*Rcode Here*
```
\End{tcolorbox}
推荐阅读
- java - Ant:从ant执行一个java程序并存储返回值
- solr - 在 SOLRCloud 中启用 LTR (solr version8.2)
- c++ - 在 C++ Lambda 表达式中,为什么人们更喜欢按值捕获而不是作为参数传递?
- c# - 字符串未被识别为有效的 DateTime
- java - 在 Weblogic 服务器中部署时,未加载新字体以使用动态报告生成 pdf
- c# - HTML.ActionLink 到详细信息页面不起作用
- c# - 如何在richTextBox 中添加图像?
- postgresql - 使用 JPA 调用原生 Postgresql 命令
- r - 读取单独的文本文件并将它们作为单独的数据框保存在单个变量中
- android - 谷歌地图没有故意丢针