Как мне "предварительно создать" индекс виньетки для R-пакета?
Я готовлю пакет для отправки CRAN.
Я использую R CMD build myPackage
, затем R CMD check myPackage --as-cran
, и он передает все проверки без примечаний или предупреждений.
Однако каждый раз, когда я пытаюсь отправить сообщение, я получаю следующее сообщение об ошибке от одного из поддерживающих CRAN:
В пакете есть поле VignetteBuilder, но нет предварительно настроенного индекса виньетки.
В начале я хотел бы воспроизвести указанное выше сообщение об ошибке в моей собственной системе (R version 3.0.1
).
Файл vignette .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":
Во время установки автоматически создается индекс HTML для всех виньет в пакете из операторов \VignetteIndexEntry, если файл index.html не существует в каталоге inst/doc. Этот индекс связан с индексом справки HTML для пакета. Если вы поставляете файл inst/doc/index.html, он должен содержать относительные ссылки только на файлы в установленной директории doc или, возможно, (не на самом деле индекс) на файлы справки HTML или в файл DESCRIPTION.
Итак, мне нужно вручную создать index.html
и может ли кто-нибудь указать пример того, как это должно выглядеть?
Этот вопрос кажется тесно связанным, но я (умышленно) не имеет файла .Rbuildignore
. Это также связано, хотя я не использую devtools
для создания пакета. Я также рассмотрел этот вопрос, но я не вижу легкого ответа.
Обновление 1 июля
Для воспроизводимого примера пакет доступен здесь, в github. Загрузка и установка (например, с помощью devtools::install_github()
должна допускать воспроизведение этой ошибки.
Ответы
Ответ 1
Я собираю команды Vignette
, которые должны быть в преамбуле, т.е. ниже documentclass
, так что файл myVignette.Rnw
должен читать:
\documentclass{article}
% \VignetteIndexEntry{myVignette}
% \VignetteEngine{knitr::knitr}
\usepackage[]{graphicx}
...
Кажется, что это нормально.
Сообщение об ошибке из версии R CMD check
, которая в настоящее время 3.3.0
. Я использую более старую "стабильную" версию, которая не является рекомендуемым способом проверки пакетов при рассмотрении отправки в CRAN.
Я по-прежнему не уверен в достоинствах использования файла руководства index.html
- он кажется ненужным, но я с радостью изменю принятый ответ, если кто-нибудь может пролить свет на это.
Ответ 2
Это может помочь, или вы можете обратиться к devtools для сборки своего пакета.