Если вы ищете что-то, что, возможно, наиболее соответствует рабочему процессу R Markdown, вы можете настроить шаблон, который используется для создания вывода LaTeX, и добавить весь дополнительный код LaTeX непосредственно к этому.
1.Копирование шаблона
Во-первых, мы должны сделать копию шаблона , используемого R Markdown .Следующий код создаст это в вашем текущем рабочем каталоге:
file.copy(system.file("rmd/latex/default-1.17.0.2.tex",
package = "rmarkdown"), "template.tex")
2.Добавление переменных
С нашей копией мы можем определить наши собственные переменные pandoc , которые будут вставлены в выходной документ.Это позволяет нам указать параметры в разделе YAML документа, и они будут обновлены в выходном формате.Это точно такой же механизм, который позволяет нам добавлять title
, author
, date
и добавлять их в выходной формат.
Я добавил некоторый код в начало статьидокумент в строки 253-255 .Точное местоположение не имеет значения, но я также склоняюсь к настройке перед аргументом \begin{document}
:
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead[LO, LE]{$params.value$}
\fancyhead[RO, RE]{$yourParam$}
3.Вызов шаблона из R Markdown
Мы можем ссылаться на пользовательский шаблон в нашем документе R Markdown , как описано здесь .Вот мой минимальный пример:
---
output:
pdf_document:
template: template.tex
params:
value: Text
yourParam: "`r Sys.Date()`"
---
`r params$value`
Два параметра будут добавлены к выходу, заменив $params.value$
и $yourParam$
, и приведем к выводу ниже:
В этом примере показано, как необязательно вкладывать параметры YAML в аргумент params
, как указано в исходном вопросе.Их указание в параметрах в основном имеет преимущества, если вы хотите создать параметризованный отчет
Примечание: подход замены переменных с использованием нотации pandoc $variable$
возможно только для основного файла шаблона, определенного в опции template
.Он не будет работать ни с одним из аргументов includes
или с любыми другими внешними файлами LaTeX.См. здесь для более подробной информации.