我如何预制' R包的插图索引?

时间:2015-06-22 09:23:09

标签: r package knitr vignette rnw

我准备提交给CRAN的套餐。 我使用R CMD build myPackage然后R CMD check myPackage --as-cran,它会通过所有检查,没有任何注释或警告。 但是,每次我尝试提交时,我都会从其中一个CRAN维护者那里收到以下错误消息:

  

包有一个VignetteBuilder字段,但没有预先构建的晕影索引。

首先,我希望能够在我自己的系统(R version 3.0.1)上重现上述错误消息。

晕影.Rnw文件如下所示:

%\VignetteEngine{knitr::knitr}
%\VignetteIndexEntry{myVignetteName}
\documentclass{article}
\begin{document}
Here is some code:
<<>>=
plot(1:10, 10:100)
@
\end{document}

我尝试在根目录中添加一个INDEX文件,其中包含一个晕影条目:

myFunction       a brief description
abc-vignette     vignette description

同样,这会传递R CMD check myPackage --as-cran,但我收到相同的错误消息。

我还尝试R CMD build myPackage --md5强制创建MD5文件,但无济于事。

当我查看myPackage.Rcheck/00_pkg_src/myPackage/inst/doc时,我会按预期找到插图文件.Rnw.pdf

DESCRIPTION文件包含以下条目:

VignetteBuilder: knitr
Suggests: knitr

当我查看myPackage.Rcheck/myPackage/Meta时,我看到一个条目vignette.rds。然而,这似乎是一个二进制文件,所以我无法理解它。

这是来自编写R扩展&#39;:

  

在安装时,会自动创建包中所有晕影的HTML索引   来自\ VignetteIndexEntry语句,除非目录'inst / doc'中存在'index.html'文件。此索引从包的HTML帮助索引链接。如果你确实提供了'inst / doc / index.html'文件,它应该只包含安装的'doc'目录下的文件的相对链接,或者可能包含(不是真正的索引)HTML帮助文件或'DESCRIPTION'文件

所以我需要手动创建index.html,是否有人可以指出这应该是什么样子的例子?

This question似乎密切相关,但我(知情)没有.Rbuildignore文件。 This is also related,虽然我没有使用devtools来创建包。我也看了this question,但我没有看到一个简单的答案。

7月1日更新

对于可重现的示例,该包可用here on github。下载和安装(例如使用devtools::install_github()应该允许重现此错误。

2 个答案:

答案 0 :(得分:3)

我收集的Vignette命令需要位于前导中,即documentclass以下,以便文件myVignette.Rnw应为:

\documentclass{article}

% \VignetteIndexEntry{myVignette}
% \VignetteEngine{knitr::knitr}

\usepackage[]{graphicx}
...

这似乎工作正常。

错误消息来自R CMD check开发版本,目前为3.3.0。我一直在使用年龄较大的稳定版。在考虑提交给CRAN时,推荐的检查包的方法。

我仍然不确定使用手动index.html文件的优点 - 看起来没必要但我很乐意更改已接受的答案,如果有人可以对此有所了解。

答案 1 :(得分:1)

This可能会有所帮助,或者您可以使用devtools来构建您的包。