У меня есть следующая структура проекта:
mybook/
├── _bookdown.yml
├── index.Rmd
├── c1.Rmd
├── c2.Rmd
├── template.tex
Файл _bookdown.yml
:
rmd_files:
- c1.Rmd
- c2.Rmd
output_dir: _out
book_filename: _index_merged.Rmd
Файл index.Rmd
is:
---
title: A simple book
author: Andrea Tino
---
Файлы c1.Rmd
и c2.Rmd
имеют тривиальное содержание: только заголовок Markdown и некоторый текст.
File template.tex
is:
% !TeX program = pdfLaTeX
\documentclass{monograph}
\usepackage{hyperref}
\usepackage{newtxmath}
\makeindex
\begin{document}
\author{ $for(authors)$ $authors.name$ \and $endfor$ }
\title{$title$}
$if(subtitle)$
\subtitle{$subtitle$}
$endif$
\maketitle
\tableofcontents
$body$
\printindex
\end{document}
Проблема
Когда я запускаю это из оболочки R (где рабочий каталог mybook/
):
bookdown::render_book("index.Rmd", rmarkdown::pdf_document(template="template.tex", keep_tex=TRUE))
Я получаю PDF где:
- Заголовок и автор отсутствуют.
- Содержимое (результат
c1.Rmd
и c2.Rmd
) фактически есть.
Посмотрев на _index_merged.tex
(сгенерированный TEX, к которому я могу получить доступ, поскольку я указал keep_tex=TRUE
внутри rmarkdown::pdf_document
), я ясно вижу, что:
- Заполнители
$title$
и $author$
заменен пустыми строками, отсюда и пустой заголовок и автор. - Заполнитель
$body$
заполнен содержимым.
Вот (соответствующий отрывок) содержание _index_merged.tex
:
...
\begin{document}
\author{ }
\title{}
\maketitle
...
Почему шаблон неправильно выбирается заголовок и автор ?