(Перекрестная отправка из ответа , который я только что оставил на R-help :)
В качестве обходного пути, вы можете включить в свой пакет собственную функцию xvignette
: см. Ниже,Он не будет показывать вам индексы, но он подберет любой файл с соответствующим именем, который вы включите в каталог inst/doc
вашего пакета ...
xvignette <- function(vname,pkg,ext="pdf") {
vname <- paste(vname,ext,sep=".")
fn <- system.file("doc",vname,package=pkg)
if (nchar(fn)==0) stop("file not found")
utils:::print.vignette(list(pdf=fn))
invisible(fn)
}
Вам нужно будет как-то предупредить ваш пакетпользователи к тому факту, что эта альтернативная документация существует - возможно, в файле справки для самого пакета.
Вы можете заполнить значение по умолчанию pkg
выше с именем вашего пакета, чтобы упростить для пользователяЯ думал об использовании какого-либо варианта getPackageName(environment(xvignette))
, чтобы сделать это автоматически, но это кажется слишком сложным ...
Брайан Рипли также упомянул в своем ответе на вопрос:
В настоящее время vignette () означает Sweave документы, поскольку только они имеют метаданные, такие как заголовки.Это планируется изменить в ближайшее время.
... но я не знаю, что означает "скоро" (пройдет около 6 месяцев, пока не выйдет 2.14.0, я думаю)
edit : http://article.gmane.org/gmane.comp.lang.r.devel/28449 детализирует другой обходной путь (создание фиктивной виньетки, включающей существующий файл PDF)
edit 2 : And