使用'render_book'时,会忽略Ouptut选项忽略了'preamble'.tex'

问题描述

在使用Bookdown方法从许多Rmd文件编译整个文档时遇到了一些麻烦。

如果我编织单个.Rmd文件,则将考虑YAML选项中包含的'preamble.tex'。

如果我渲染书(with both approaches described here),则将忽略'preamble.tex'。

要使事情具体,请考虑以下mwe:

preamble.tex:

\usepackage{times}

索引。Rmd:

---
title: "My paper"

site: "bookdown::bookdown_site"

output:
  bookdown::pdf_document2:
    includes:
      in_header: "preamble.tex"
---

01-intro.Rmd:

# Introduction

This chapter is an overview of the methods that we propose to solve an **important problem**.

然后,通过编织'index.Rmd'或'01 -intro.Rmd',使用'preamble.tex'中指示的字体。

但是,当使用bookdown::render_book('index.Rmd',"bookdown::pdf_book",new_session = T)进行渲染时,它将被忽略。

此外,在我的实际项目中,还有其他输出选项最终被忽略。例如,我使用toc: false,它在编织单个文件时有效,但是在呈现文档时失败。

在这个简单的示例中,可以使用单个文件,但是我的实际项目中有很多章节,每个章节中都有R块。因此,构建单个文件似乎不是一个好主意。

我很感谢我这里缺少的任何提示

谢谢。

解决方法

您在这里缺少的是,在您的YAML标头中,preamble.tex包含在bookdown::pdf_document2输出格式中,而不是bookdown::pdf_book传递给output_format的格式bookdown::render_book()中的参数。因此,其他YAML选项(例如toc: true)也不起作用。

运行

bookdown::render_book('index.Rmd',"bookdown::pdf_document2",new_session = T)

相反应该起作用。