我自由地承认我几乎不了解LaTeX,所以这可能是一个非常基本的问题。
我的公司使用RMarkdown生成报告。要应用样式,包括标题页,有一个单独的preamble.tex
文件定义它们。
但是,preamble.tex
文件中的许多值都是硬编码的。这是结果的示例:
但是,我想做的是将这些“ from tex”值作为RMarkdown代码的参数(大概是YAML值?)传递进来。这可能吗?如果是这样,如何?
如果有帮助,我已在此处上传了用于运行上述代码的代码(以及生成的PDF的副本):http://mm-c.me/work/RMarkdown-LaTeX/
这不是很容易,但是您可以通过修改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