21

Writing R Extensions Manual,我读到

从 R 2.14.0 开始,Sweave 源的首选位置是源包的子目录 vignettes,但为了与 R 的早期版本兼容,如果 vignettes 不存在,则将在 inst/doc 中查找 Vignette 源。

但是,当我创建vignettes包源的子目录时,当我运行devtools::check()R CMD check收到Package vignette(s) without corresponding PDF. 如果我将小插图(.Rnw 和 .pdf)放入inst/doc检查中,则无需投诉即可完成。我尝试在已安装打包的库中查看我的库,但没有看到任何名为vignettes. 我还应该使用已弃用的位置吗?

4

2 回答 2

22

您照原样放入.Rnw资源vignettes/,但错过了关键步骤;不要检查源代码树。预期的工作流程是构建源 tarball,然后检查该 tarball。构建 tarball 将创建小插图 PDF。

R CMD build ../foo/pkg
R CMD check ./pkg-0.4.tar.gz

例如,将在当前目录中../foo/pkg创建包时从源代码构建一个源包 tarball,并附加包名称和版本。.tar.gz然后你R CMD check在那个源包上运行。

如果您想为您构建小插图,请将其放入vignettes/并构建源包。在未来的某个日期,R Core 可能会移除构建小插图的功能,inst/doc因此请立即使用建议的位置并避免直接检查源。

于 2012-09-07T21:04:16.527 回答
13

我也很难解释这一点。

我相信您的意图是您应该将.Rnw文件vignettes/和 PDF(适当压缩)放入 中inst/doc/,如果您仔细阅读,这在技术上与文档一致。(也就是说,它说来源应该进入vignettes/。我看不出它在哪里说了这么多话,你应该把相应的 PDF 放进去inst/doc/,但它没有,而且这种解释似乎让人R CMD check高兴...)

解决方案在@GavinSimpson 的回答中(即需要构建tarball 然后检查它,而不是检查源目录本身)。(我的两分钱是,如果 R-core 正式弃用(并最终删除)直接源代码检查,而不是混淆我们所有的基础知识,这可能是最好的......)

于 2012-09-07T21:03:45.470 回答