如何通过 RMarkdown 中的 YAML 标头标头包含字段包含多行 LaTeX 代码?

问题描述

我需要在通过 RMarkdown 从自定义模板生成的 .tex 文件中包含以下代码,以去除 error。但是,如果我在 YAML 标题中尝试如下:

header-includes: 
  \newenvironment{cslReferences}%
  {}%
  {\par}

它作为单行被解析到 .tex 文件中,例如 \newenvironment{cslReferences}% {}% {\par},从而注释掉 % 之后的所有内容。那么如何更改 YAML 部分,以便将其正确解释为 3 行不同的行?

解决方法

不用担心 Markdown 解析,你可以将命令写在一行中:

header-includes: 
    \newenvironment{CSLReferences}{}{\par}

或者通过 Markdown 解析避免所有这些烦人的问题,并将您的定义放在一个 .tex 文件中,您可以通过该文件包含

includes:
  in_header: header.tex
,

经过一些试验和搜索后,此方法有效(在编写问题时找到了解决方案):

B.tf

有趣的是,我找不到太多in the official documentation


编辑: 正如@samcarter 在评论和答案中提到的,在这种特殊情况下,一行就足够了,因为

header-includes:
  - "\\newenvironment{CSLReferences}%"
  - "{}%"
  - "{\\par}"