Parameters 将参数从R Markdown传递到Latex

Parameters 将参数从R Markdown传递到Latex,parameters,latex,r-markdown,Parameters,Latex,R Markdown,晚上好,, 我想将自定义参数从Rmd传递到pdf文档的标题(使用fancyhdr)。 我尝试了下面的代码,但我不知道它如何解释\parames$figureno。。。我在编织时会犯这样的错误: ! Undefined control sequence. \f@nch@och ->\parames $figureno\strut l.169 \end{document} 以下是Rmd中的代码: output: pdf_document:

晚上好,, 我想将自定义参数从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头的
头includes:
字段。(不幸的是,您不能同时拥有
头includes:
头includes:in_header
)您可以在YAML头的字符串中执行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代码,用反勾号包装,然后用引号包装为字符串常量。我看到过一些建议,建议对字符串常量使用单引号而不是双引号,但我不知道这是否真的重要。

我使用了Martin Schmelzer(上文)提出的解决方案。这样做的好处是,我仍然可以使用另一个*.tex来设计带有静态内容的标题

---
template: default-1.17.0.2.tex
title: "Some test..."
figureno: "Fig. 1-1"
output: 
  pdf_document:
    includes:
      in_header: header.tex
    keep_tex: true

---
我在主模板中插入了这两行(默认值为-1.17.0.2.tex):


这样做行不通
params$figureno
将在您的R块中提供。您可以做的是更改默认的tex模板,并直接将代码(从
header.tex
)添加到模板前言中。然后通过YAML
模板:
参数包含此模板,并将
图no:“图1-1”
添加到YAML中(无
参数:
)。您的
fancyhdr
代码中的对应行将是
\fancyhead[CO,CE]{$figureno$}
,其中
$figureno$
是一个pandoc变量。我尝试过,它工作得非常好。谢谢!
\usepackage{fancyhdr}
\fancyhead[RO,RE]{$figureno$}