Могу ли я использовать виньетку R с предварительно скомпилированным PDF файлом с ручным index.html, чтобы показать список виньет?

Я хочу включить предварительно скомпилированный PDF файл в качестве виньетки в R-пакет. PDF не создается через Sweave. Без .Rnw для обработки нет \VignetteIndexEntry, чтобы вызвать обычную автоматическую генерацию index.html и Meta/vignette.rds.

Я создал index.html в inst/doc, который был скопирован в doc во время установки. Это исправлено, связанное с главной страницей справки по пакету. Однако, когда я загружаю пакет и выполняю browseVignettes("MyPackage"), я получаю

No vignettes found by browseVignettes("MyPackage")

Это имеет смысл, потому что R, по-видимому, не знает, что у пакета есть виньетка. У установленного пакета нет файла Meta/vignette.rds. Могу ли я каким-то образом получить свой PDF файл с browseVignettes()?

pdfpages

Я знаком с подходом сделанным пакетом мозаики, который должен использовать pdfpages для включения всего PDF. Хотя я умный, я чувствую, что должен быть лучший способ избежать распространения файлов.

Ответ 1

Сразу после Yihui....

Сделайте подделку Rnw, которая выглядит так:

%\VignetteIndexEntry{User manual}
\documentclass{article}
\begin{document}
\end{document}

И поставьте его в inst/doc вдоль вашей предварительно скомпилированной виньетки, и все будет установлено.

Ответ 2

R определенно нужен лучший способ справиться с виньетками: http://comments.gmane.org/gmane.comp.lang.r.devel/31967 Прежде чем мое предложение будет одобрено и реализовано, нам все равно придется жить с темный вуду из Makefile. Например, вы можете поместить fake.Rnw и real.pdf под inst/doc и mv real.pdf fake.pdf в Makefile. В fake.Rnw вы просто следуете правилу \VignetteIndexEntry{}.

Ответ 3

Пакет mosaic теперь по-видимому, использует пакет R.rsp, который имеет драйвер asis, который позволяет включать существующий файл и создавая VignetteIndexEntry. Это выглядит намного хуже, чем использование pdfpages или файла фиктивного .Rnw (который больше не работает в R 3.1).

Пример. Для файла V1MinimalR.pdf имеется соответствующий файл V1MinimalR.pdf.asis со следующим содержимым:

%\VignetteIndexEntry{Minimal R for Intro Stats}
%\VignetteEngine{R.rsp::asis}

DESCRIPTION содержит (среди прочего) следующее:

Suggests: R.rsp
VignetteBuilder: knitr, R.rsp

Это также подробно описано в этом ответе Генриха Бенгтсона, автора R. пакет rsp.