【问题标题】:Use a style template and bibliography when knitting with knit() and pandoc()使用 knit() 和 pandoc() 编织时使用样式模板和参考书目
【发布时间】:2018-11-02 16:52:16
【问题描述】:

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

我有一个 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,你可能更容易使用render函数。我希望这会解决您的问题
  • 那行得通,@MichaelHarper。如果你把它放在答案中,我会接受。

标签: r knitr pandoc


【解决方案1】:

我建议使用 rmarkdown 包中的render function,而不是单独使用knitpandoc。该函数本质上将两个函数合二为一,更容易根据指定的 YAML 控制 pandoc 设置。

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

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

【讨论】:

    猜你喜欢
    • 2019-01-19
    • 2014-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-22
    • 2014-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多