使用rmarkdown作为晕影引擎

时间:2014-07-21 09:40:44

标签: r rstudio r-markdown

我在R Markdown中写了一些小插曲,打算用它们 用RStudio的rmarkdown构建 包。我知道rmarkdown::render是我们用来转换的函数 .rmd到.html(或其他任何格式),但是,当我放置

<!--
%\VignetteEnginer{rmarkdown::render}
%\VignetteIndexEntry{some test title}
-->

在我的.rmd的序言中(以及我的Suggest字段中的knitrrmarkdown 描述,以及VignetteBuilder字段中的rmarkdown)我的小插图 不编译。

是否有人设法让rmarkdown充当插图制作工具?

2 个答案:

答案 0 :(得分:10)

从@ Ben的回答(以及下面的评论)中,knitr 已经注册了一个访问rmarkdown的插图引擎(如果已安装)和

<!--
%\VignetteEngine{knitr::rmarkdown}
%\VignetteIndexEntry{Supplementary materials}
-->

是我们如何注册它的例子。但是,为了充分利用rmarkdown(即将.Rmd转换为.html并保留.Rmd中定义的任何样式),必须将代码段放在 BELOW “rmarkdown preamble”之上。例如,.Rmd的顶部应该看起来像

---
Title: "Supplementary Materials"
output:
  html_document:
    theme: flatly
---
<!--
%\VignetteEngine{knitr::rmarkdown}
%\VignetteIndexEntry{Supplementary Materials}
-->

当然,您还需要确保已正确创建DESCRIPTION文件以包含rmarkdownknitr。最简单的方法是使用

Suggests: knitr, rmarkdown
VignetteBuilder: knitr

答案 1 :(得分:2)

为什么要使用rmarkdown而不是knitr?乍一看,您的问题在rmarkdownknitr之间看起来有些混乱。澄清:

rmarkdown是一种创作格式&#39;这是基于knitr和pandoc&#39;。当我们运行rmarkdown::render时,我们正在调用knitr和/或pandoc。

knitr是将rmarkdown转换为html / PDF / docx的引擎。这就是执行R代码以获取输出和绘图等等。

knitr软件包作者already mentioned由于rmarkdown软件包尚未在CRAN上,您现在无法使用晕图引擎knitr :: rmarkdown&#39;。如果你不能等,你可以register your own engine,但这看起来相当复杂。

我认为你想要的是:

这位于您的Rmd doc顶部:

<!--
%\VignetteEngine{knitr::rmarkdown}
%\VignetteIndexEntry{Supplementary materials}
-->

这在您的DESCRIPTION文件中:

VignetteBuilder: knitr
Suggests:
    knitr

如需完整示例,请查看tidyr package,此处为DESCRIPTION,此处为rmarkdown vignette(帽子提示为Andrie指点我这个。)

如果您需要rmarkdown来自knitr(自定义样式等)的特定内容,那么您应该将其添加到新内容中题。