我在R Markdown中写了一些小插曲,打算用它们
用RStudio的rmarkdown构建
包。我知道rmarkdown::render
是我们用来转换的函数
.rmd到.html(或其他任何格式),但是,当我放置
<!--
%\VignetteEnginer{rmarkdown::render}
%\VignetteIndexEntry{some test title}
-->
在我的.rmd的序言中(以及我的Suggest字段中的knitr
和rmarkdown
描述,以及VignetteBuilder字段中的rmarkdown
)我的小插图
不编译。
是否有人设法让rmarkdown
充当插图制作工具?
答案 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文件以包含rmarkdown
和knitr
。最简单的方法是使用
Suggests: knitr, rmarkdown
VignetteBuilder: knitr
答案 1 :(得分:2)
为什么要使用rmarkdown
而不是knitr
?乍一看,您的问题在rmarkdown
和knitr
之间看起来有些混乱。澄清:
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
(自定义样式等)的特定内容,那么您应该将其添加到新内容中题。