如何在bookdown项目中配置使用自定义pandoc模板?
首先你第二种配置不生效是因为出现了拼写错误:你把template错写为了tenplate,修正拼写后这种写法本身是可用的,下面是bookdown调用自定义pandoc LaTeX模板的两种标准配置方式:
方式1:配置写在index.Rmd的YAML头部
这是最常用的配置方式,直接在项目主入口index.Rmd的头部YAML中配置即可,模板文件如果和index.Rmd存放在同一目录下,直接写文件名即可:
--- title: "书籍标题" author: "作者" date: "`r Sys.Date()`" output: bookdown::pdf_book: template: templateName.latex ---
你提到的第一种用pandoc_args的写法也可以生效,但需要注意参数要以数组格式传入,否则会被识别为单个参数解析失败:
output: bookdown::pdf_book: pandoc_args: ["--template", "templateName.latex"]
方式2:配置写在_bookdown.yml全局配置文件
如果要把输出配置统一放在全局配置文件中,需要把模板配置嵌套在output_options的pdf_book层级下,写法如下:
book_filename: "你的书籍导出名称" output_dir: "导出目录" output_options: pdf_book: template: templateName.latex
注意事项
- 如果模板文件没有放在项目根目录,需要填写相对于项目根目录的相对路径,比如存放在templates文件夹下就写
template: templates/templateName.latex - 自定义LaTeX模板需要兼容bookdown的逻辑,不要覆盖掉pandoc和bookdown预留的内容注入占位符,否则会出现编译错误。
内容的提问来源于stack exchange,提问作者vorpal
相关产品推荐
相关产品推荐

