使用 knit() 和 pandoc() 编织时使用样式模板和参考书目

Use a style template and bibliography when knitting with knit() and pandoc()

在使用 knit() 和 [=16= 编写 *.Rmd 文件时如何使用 *.docx 样式模板和 *.bib 参考书目] 从 R 命令行?

我有一个 R Markdown 文档,它依赖于一堆加载缓慢的模拟结果。我不是从 RStudio 菜单编织文档,而是先加载结果,然后使用 knit()pandoc().

运行 *.Rmd 文件
load("Sim.RData")
library(knitr)
knit("MyPub.Rmd")
pandoc("MyPub.md", format="docx")

在我尝试为 Word 或带引文的参考书目合并样式模板之前,它工作正常。例如,这是一个简单的 *.Rmd 文件。

---
title: "Title"
author: "Author"
date: "Today"
output:
  word_document:
    reference_docx: template.docx
bibliography: bibliography.bib
---

# Header 1

## Header 2

For more information see @Youngs1980.

# References

如果我通过从 RStudio 菜单编织文档来编织这个 *.Rmd,它成功地从 template.docx 中提取样式信息和从 bibliography.bib 中提取参考书目信息,两者都在我的项目目录。

但是如果我使用 knit()pandoc() 而不是从菜单中编织,则样式和参考书目都不会被合并。

我没有收到任何警告或错误消息。我的第一个想法是 pandoc 没有找到样式和参考书目文件。所以,我将它们复制到我的默认 pandoc 目录 C:\Users\jvadams\AppData\Roaming\pandoc。还是不行。

与其分别使用 knitpandoc,我建议使用 rmarkdown 包中的 render function .这个功能本质上是将两个功能合二为一,可以更方便的根据指定的YAML来控制pandoc的设置。

这仍然有在编写报告之前加载数据集的好处。使用您的示例,它看起来像这样:

load("Sim.RData")
library(rmarkdown)
render("MyPub.Rmd")