在PDF / LaTeX输出中缩进R Markdown代码块

时间:2018-04-19 19:58:53

标签: latex r-markdown knitr

我目前正在RMarkdown中编写文档并将输出编织为pdf。我希望缩进代码块以与我的其余格式保持一致。

以下是编写的文件:

example document

我希望块的灰色部分符合"这是一个句子。"

有没有办法在R markdown中做到这一点,也许是通过下降到LaTeX?

1 个答案:

答案 0 :(得分:2)

如果要更改框的格式,LaTeX模板中的关键行是:

\newenvironment{Shaded}{\begin{snugshade}}{\end{snugshade}}

snugshade命令在framed LaTeX package中定义,这对于创建RMarkdown中包含的阴影框非常有用。但是,它缺少很多控件来简单地编辑样式。

基于this answer,您可以考虑使用mdframed包,该包提供比framed包更高级的控件。正如所解释的那样here可以使用renewenvironment命令调整边距,我们将使用该命令以自定义样式重新定义Shaded函数:

enter image description here

要在RMarkdown中使用此功能,我们需要使用新定义替换Shaded环境。这可以通过以下方式实现:

---
output: 
  pdf_document:
    keep_tex: TRUE
header-includes:
  - \usepackage{mdframed}
  - \definecolor{shadecolor}{gray}{.95}
  - \renewenvironment{Shaded}{\begin{mdframed}[
      backgroundcolor=shadecolor,
      linecolor = shadecolor,
      leftmargin=\dimexpr\leftmargin-2pt\relax,
      innerleftmargin=1.6pt,
      innertopmargin=5pt,
      skipabove=10pt,skipbelow=3pt
    ]}{\end{mdframed}}
---

Some Text

```{r cars}
summary(cars)
```

enter image description here

注意:由于您没有提供可重现的示例,因此您必须对设置进行微调以使其适用于您的配置。

  

如果你开始获得更多的LaTeX命令,你可以考虑将其保存为单独的.tex文件,如解释here