Могу ли я иметь виньетку 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. Будучи умным, я чувствую, что должен быть лучший способ избежать распространения файлов.

3 ответа

Решение

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

Сделайте фальшивый Rnw, который выглядит так:

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

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

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{},

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.

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