用knitr装饰。乳胶代码块

时间:2017-11-27 00:26:20

标签: r latex knitr r-markdown

我正在尝试添加围绕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钩子功能。也许我忽略了一种更清洁的方法,它允许我制作任何我喜欢的模式。

0 个答案:

没有答案