【发布时间】:2021-12-24 23:51:35
【问题描述】:
我有一个这样的 YAML 标头:
---
output:
pdf_document:
latex_engine: xelatex
includes:
in_header: "preamble.tex"
before_body: "title.tex"
keep_tex: yes
documentclass: report
classoption:
- landscape
---
然后我通过调用rmarkdown::render() 来编写文档。
我想要的是这样称呼render():
rmarkdown::render("MyDocument.Rmd", params = list(
person1 = "John Doe, JD",
person2 = "Charlie P. Adams, CPA"
))
它们被传递到 Rmd 中,但随后被进一步下推到 title.tex(包含在 YAML 标头中),其中会发生这样的事情:
\vspace{15pt}\hspace{15pt}\large [$person1$] \par
\vspace{15pt}\hspace{15pt}\large [$person2$] \par
如何将字符串传递给 title.tex 以及如何在其中解析它?
【问题讨论】:
-
可能(我现在知道这是如何工作的),我真的很想避免将整个 .tex 放在标题中,因为它不是一个小文件。我确实编辑了 OP 以澄清我需要什么。抱歉,但实际上参数需要来自对 render() 的调用,在那里(可能)它们会转到 YAML 标头(或者可能不会),然后进一步到 title.tex。
-
也就是说,我知道如何将参数放入标题中。所以我可以按照我认为的这些思路拼凑出一个解决方案。如果有一种方法可以在不直接在 YAML 标头中包含 200 行乳胶的情况下做到这一点,那我会更喜欢……
-
您是否尝试过与头文件相同的方法?
-
我有一个 title.tex 文件,而不是头文件。我只是尝试将它放在“before_body:”部分而不传递参数,但我收到一个错误,就像它需要一个文件一样:“资源路径中找不到文件 \begin{titlepage} 错误:pandoc 文档转换失败,错误 99”
标签: r latex r-markdown knitr pandoc