我正在向CRAN提交一个软件包,我收到了来自评审团队的以下警告:
包具有VignetteBuilder字段,但没有预构建的插图索引。
实际上我在运行devtools::release()
时也看到过。我使用最新的R
版本作为R version 3.3.1
,并有以下.Rmd
vignette源代码:
---
date: "`r Sys.Date()`"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{<my vignette title>}
%\VignetteEngine{knitr::knitr}
%\usepackage[utf8]{inputenc}
---
此外,我还默认将knitr
包含在DESCRIPTION
文件中:
Suggests:
knitr
VignetteBuilder:
knitr
我已经环顾四周,虽然这个问题似乎很普遍,但我一直不能理解为什么索引不能构建(以及如何强制构建它)。
This question和其中的链接是顶级的谷歌结果,但并没有解决问题。
2条答案
按热度按时间pdsfdshx1#
这需要一个
build/vignettes.rds
或Meta/vignettes.rds
文件。此文件由devtools
自动生成。请确保您不要删除或将其列在.Rbuildignore
中(检查包含build
Meta
或^build/vignettes.rds$
^Meta/vignettes.rds$
的行并从文件中删除)。qco9c6ql2#
我也犯了同样的错误。我对我的软件包做了以下修改,以前有人建议过,但有些是在评论中提出的,而且没有明确验证什么有效,什么无效。
首先,我对标头中的
vignette:
规范进行了更改,因此它现在读起来如下(注意编码规范行中的差异,从%\usepackage[utf8]{inputenc}
到%\VignetteEncoding{UTF-8}
,这与https://bookdown.org/yihui/rmarkdown/r-package-vignette.html中似乎已经更改的方向相匹配)如果没有这些更改,我会遇到本地或远程获得警告的问题,但这使事情更加一致。
第二,也是最重要的一点,我从
.Rbuildignore
中删除了^build
,重要的是,devtools
没有将其添加回来,所以我想知道这是一些遗留行为,还是我自己在某个时候添加的。我没有删除^Meta
(我试过,但devtools
添加了忽略)。这些更改一致地解决了注解问题,软件包现已发布:-)