如何 'prebuild' R 包的插图索引?

How do I 'prebuild' a vignette index for an R package?

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

Package has a VignetteBuilder field but no prebuilt vignette index.

首先,我希望能够在我自己的系统上重现上述错误消息 (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 时,我找到了 vignette 文件,如预期的那样 .Rnw.pdf

DESCRIPTION 文件具有以下条目:

VignetteBuilder: knitr
Suggests: knitr

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

来自'writing R extensions':

At install time an HTML index for all vignettes in the package is automatically created from the \VignetteIndexEntry statements unless a file ‘index.html’ exists in directory ‘inst/doc’. This index is linked from the HTML help index for the package. If you do supply a ‘inst/doc/index.html’ file it should contain relative links only to files under the installed ‘doc’ directory, or perhaps (not really an index) to HTML help files or to the ‘DESCRIPTION’ file.

那么我是否需要手动创建 index.html 并且任何人都可以指出它应该是什么样子的示例吗?

This question appears closely related, but I do not (knowingly) have an .Rbuildignore file. This is also related, although I'm not using devtools for package creation. I have also looked at this question 但我没有找到简单的答案。

7 月 1 日更新

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

我收集到 Vignette 命令需要在 序言 中,即 documentclass 下面,这样文件 myVignette.Rnw 应该读取:

\documentclass{article}

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

\usepackage[]{graphicx}
...

这似乎工作正常。

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

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

This 可能会有帮助,或者您可以求助于 devtools 来构建您的包。