gpt4 book ai didi

parameters - 将参数从 R Markdown 传递到 Latex

转载 作者:行者123 更新时间:2023-12-04 14:21:11 29 4
gpt4 key购买 nike

晚上好我想将自定义参数从 Rmd 传递到 pdf 文档的标题(使用 fancyhdr)。我尝试了下面的代码,但我不知道它是如何解释\parames$figureno 的……我在编织时遇到了这个错误:

 ! Undefined control sequence.
\f@nch@och ->\parames
$figureno\strut
l.169 \end{document}

这是 Rmd 中的代码:

output: 
pdf_document:
keep_tex: true
includes:
in_header: header.tex
params:
figureno: "Fig. 1-1"

还有 header.tex:

\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead[CO,CE]{\parames$figureno}
\fancyfoot[CO,CE]{And this is a fancy footer}
\fancyfoot[LE,RO]{\thepage}
\renewcommand\headrule{%
\vspace{3pt}
\hrulefill}

我怎样才能让它工作?

提前谢谢你。

最佳答案

您可以这样做,但这很棘手。一种可行的方法是将所有 header.tex 放入 YAML header 的 header-includes: 字段中。 (不幸的是,您不能同时拥有 header-includes:includes: in_header。)您可以在 YAML header 中的字符串中执行 R 代码,这就是正确设置 \fancyhead 的方法。例如:

---
output:
pdf_document:
keep_tex: true
header-includes:
- \usepackage{fancyhdr}
- \pagestyle{fancy}
- '`r paste0("\\fancyhead[CO,CE]{", params$figureno, "}")`'
- \fancyfoot[CO,CE]{And this is a fancy footer}
- \fancyfoot[LE,RO]{\thepage}
- \renewcommand\headrule{\vspace{3pt}\hrulefill}
params:
figureno: "Fig. 1-1"
---

请注意,R 代码中的反斜杠需要加倍 paste0("\\fancyhead[CO,CE]{", params$figureno, "}") 以单个反斜杠结尾在结果中。

另请注意,R 代码需要是用反引号包裹的内联 R 代码,然后也用引号包裹作为字符串常量。我看到建议在字符串常量上使用单引号而不是双引号,但我不知道这是否真的重要。

关于parameters - 将参数从 R Markdown 传递到 Latex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54737619/

29 4 0