【问题标题】:Indent R Markdown code block in PDF/LaTeX output在 PDF/LaTeX 输出中缩进 R Markdown 代码块
【发布时间】:2018-04-19 19:58:53
【问题描述】:

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

这是书面文件:

我希望该块的灰色部分与“这是一个句子”一致。

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

【问题讨论】:

    标签: latex r-markdown knitr


    【解决方案1】:

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

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

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

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

    要让这个在 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)
    ```
    

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

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

    【讨论】:

      猜你喜欢
      • 2021-04-21
      • 1970-01-01
      • 2018-05-07
      • 2017-10-30
      • 2019-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多