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

时间:2018-11-02 16:52:17

标签: r knitr pandoc

从R中用*.docx*.bib编织*.Rmd文件时,如何使用knit()样式模板和pandoc()参考书目命令行?

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

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的书目信息,这两个都在我的项目中目录。

enter image description here

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

enter image description here

我没有收到任何警告或错误消息。我首先想到的是pandoc找不到样式和书目文件。因此,我将它们复制到了默认的pandoc目录C:\Users\jvadams\AppData\Roaming\pandoc。仍然不起作用。

1 个答案:

答案 0 :(得分:2)

我建议不要使用 rmarkdown 包中的knit function,而不是分别使用pandocrender。此功能从本质上将这两个功能合为一体,使根据指定的YAML控制pandoc设置更加容易。

这仍然具有在编织报告之前加载数据集的好处。以您的示例为例:

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