我已经在RStudio中写了一些小插曲,目的是让它们用RStudio的rmarkdown包来构建。我知道rmarkdown::render是我们用来将.rmd转换为.html (或任何其他格式)的函数,但是,当我把
<!--
%\VignetteEnginer{rmarkdown::render}
%\VignetteIndexEntry{some test title}
-->在我的.rmd的前言中(以及我建议的描述字段中的knitr和rmarkdown,以及VignetteBuilder字段中的rmarkdown ),我的vignette没有编译。
有没有人设法让rmarkdown充当小插曲构建者?
发布于 2014-07-22 15:23:05
根据@Ben的回答(以及下面的评论),knitr已经注册了一个访问rmarkdown的vignette引擎(如果它已经安装),并且
<!--
%\VignetteEngine{knitr::rmarkdown}
%\VignetteIndexEntry{Supplementary materials}
-->是我们如何注册它的示例。但是,为了充分利用rmarkdown (即将.Rmd转换为.html并保留.Rmd中定义的任何样式),您必须将代码片段放在"rmarkdown preamble“下面的之上。
---
Title: "Supplementary Materials"
output:
html_document:
theme: flatly
---
<!--
%\VignetteEngine{knitr::rmarkdown}
%\VignetteIndexEntry{Supplementary Materials}
-->当然,您还需要确保正确地创建了包含rmarkdown和knitr的描述文件。最简单的方法是使用
Suggests: knitr, rmarkdown
VignetteBuilder: knitr发布于 2014-07-21 22:33:37
为什么要使用rmarkdown而不是knitr?乍一看,你的问题看起来有点混淆了rmarkdown和knitr。澄清一下:
rmarkdown是一种‘创作格式’,它是‘基于针织和潘多克’。当我们运行rmarkdown::render时,我们调用的是knitr和/或pandoc。
knitr是将rmarkdown转换为html/PDF/docx的引擎。这就是执行R代码以获取输出和绘图等的过程。
knitr包的作者already mentioned说“因为rmarkdown包还没有在CRAN上,所以你现在不能使用vignette引擎knitr::rmarkdown”。如果你不能等待,你可以使用register your own engine,但这看起来相当复杂。
我想你想要的是:
在您的Rmd文档的顶部:
<!--
%\VignetteEngine{knitr::rmarkdown}
%\VignetteIndexEntry{Supplementary materials}
-->在你的DESCRIPTION文件中:
VignetteBuilder: knitr
Suggests:
knitr要获得完整的示例,请查看tidyr package,这里是DESCRIPTION,这里是rmarkdown vignette (向Andrie致敬,让我指向它)。
如果你想从rmarkdown得到一些你不能从knitr得到的东西(一个自定义样式,等等)那么你应该把它放在一个新的问题中。
https://stackoverflow.com/questions/24861970
复制相似问题