将YAML参数拉入RMarkdwon文档的LaTeX前导中

问题描述 投票:0回答:1

我自由地承认我几乎不了解LaTeX,所以这可能是一个非常基本的问题。

我的公司使用RMarkdown生成报告。要应用样式,包括标题页,有一个单独的preamble.tex文件定义它们。

但是,preamble.tex文件中的许多值都是硬编码的。这是结果的示例:

enter image description here

但是,我想做的是将这些“ from tex”值作为RMarkdown代码的参数(大概是YAML值?)传递进来。这可能吗?如果是这样,如何?

如果有帮助,我已在此处上传了用于运行上述代码的代码(以及生成的PDF的副本):http://mm-c.me/work/RMarkdown-LaTeX/

latex r-markdown
1个回答
0
投票

这不是很容易,但是您可以通过修改Pandoc模板来实现。

LaTeX输出的默认模板在system.file("rmd/latex", package = "rmarkdown")中。除非您有相当旧的Pandoc版本,否则可能需要一个名为default-1.17.0.2.tex的版本。 (数字为Pandoc版本。)

如本页所述:https://bookdown.org/yihui/rmarkdown/template-pandoc.html,您可以修改此模板以包括其他参数。

通常是您的

includes:
  in_header: preamble.tex

[将preamble.tex文件放在\begin{document}之前,所以您可以自己在其中放置一个副本,用title from tex等Pandoc变量替换$titlefromtex$等每个参数,例如

\fancyhead[L]{\color{clientdark}\small $titlefromtex$ \textbar{ } $periodfromtex$}

将新文件保存在template.tex中,然后在您的YAML中,放入具有匹配名称的顶级参数,并为模板指定命名的pdf_document参数,例如

output:
  pdf_document:
    latex_engine: xelatex
    fig_caption: yes
    keep_tex: true
    template: template.tex
  html_document:
    df_print: paged
titlefromtex: The Title
periodfromtex: The Period
versionfromtex: The Version
descriptionfromtex: The Description
© www.soinside.com 2019 - 2024. All rights reserved.