我正在尝试添加围绕r-markdown(.Rmd
)代码块的乳胶代码。我可以通过手动编辑由.tex
生成的knitr
文件来完成此操作,如下所示,
\usepackage{fancyvrb}
\usepackage{xcolor}
\usepackage{changepage}
{
\color{gray}
\footnotesize
\begin{adjustwidth}{2cm}{2cm}
\noindent\rule{1cm}{1.5pt} R code \noindent\rule{8cm}{0.3pt}
\begin{verbatim}
\end{verbatim}
\noindent\rule{8cm}{0.3pt}
\end{adjustwidth}
}
其中\begin{verbatim}
开始一个代码块,而代码块又以\end{verbatim}
结尾。我想避免每次编织时手动重新编码这种乳胶装饰。
我似乎可以将包信息放在YAML
的{{1}}标题中:
.Rmd
但我没有把钩子设置正确。我试图修改here描述的钩子,如下所示,
---
header-includes:
- \usepackage{fancyvrb}
- \usepackage{xcolor}
- \usepackage{changepage}
---
引发了错误。任何建议表示赞赏。
更新:
我可以通过在```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
def.chunk.hook <- knitr::knit_hooks$get("chunk")
knitr::knit_hooks$set(chunk = function(x, options) {
x <- def.chunk.hook(x, options)
paste0(
"{\n\\color{gray}\n\\footnotesize\n\\begin{adjustwidth}{1cm}{1cm}\n\\noindent\\rule{1cm}{1.5pt} R code \\noindent\\rule{8cm}{0.3pt}\n",
x,
"\n\n\\noindent\\rule{8cm}{0.3pt}\n\\end{adjustwidth}\n}\n"
)
}
)
```
标题中添加以下内容来更改R chunk字体的颜色,大小和缩进:
YAML
有了这个,我认为没有必要使用knitr钩子功能。也许我忽略了一种更清洁的方法,它允许我制作任何我喜欢的模式。