Как "предварительно построить" индекс виньетирования для пакета R?

Я готовлю пакет для подачи в CRAN. я использую R CMD build myPackage затем R CMD check myPackage --as-cran и он проходит все проверки без примечаний или предупреждений. Однако каждый раз при попытке отправки я получаю следующее сообщение об ошибке от одного из сопровождающих CRAN:

Пакет имеет поле VignetteBuilder, но не имеет встроенного индекса виньетки.

Для начала я хотел бы иметь возможность воспроизвести вышеуказанное сообщение об ошибке в моей собственной системе (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 Я нахожу файлы виньетки, .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() должно позволить эту ошибку воспроизводиться.

2 ответа

Решение

Я собираю Vignette Команды должны быть в преамбуле, т.е. ниже documentclass, так что файл myVignette.Rnw должен прочесть:

\documentclass{article}

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

\usepackage[]{graphicx}
...

Кажется, это работает нормально.

Сообщение об ошибке от версии разработки R CMD check который в настоящее время 3.3.0, Я использовал более старую "стабильную" версию, которая не является рекомендуемым способом проверки пакетов при рассмотрении отправки в CRAN.

Я все еще не уверен в достоинствах использования руководства index.html файл - это кажется ненужным, но я с удовольствием изменю принятый ответ, если кто-нибудь сможет пролить свет на это.

Это может помочь, или вы можете обратиться к devtools для сборки вашего пакета.

Другие вопросы по тегам