我可以使用带有手动index.html的预编译PDF的R小插图显示插图列表吗?

时间:2012-10-29 20:12:22

标签: r r-mosaic

我想在R包中包含预编译的PDF作为插图。 PDF不是通过Sweave生成的。如果没有.Rnw进行处理,则没有\VignetteIndexEntry导致通常自动生成index.html和Meta/vignette.rds

我在inst/doc中创建了一个index.html,在安装过程中将其复制到doc。这已从主包帮助页面链接更正。但是,当我加载包并执行browseVignettes("MyPackage")时,我得到了

No vignettes found by browseVignettes("MyPackage")

这是有道理的,因为R显然无法知道包装有一个小插图。已安装的软件包没有Meta/vignette.rds个文件。我可以以某种方式让我的PDF显示browseVignettes()吗?

pdfpages

我熟悉approach taken by the mosaic package,即使用pdfpages来包含整个PDF。虽然很聪明,但我觉得应该有更好的方法来避免文件的泛滥。

3 个答案:

答案 0 :(得分:9)

在Yihui之后......

制作一个看起来像这样的假Rnw:

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

并将它放在inst/doc旁边,预编译的小插图旁边,你就可以了。

答案 1 :(得分:2)

R肯定需要更好的方式来处理小插曲:http://comments.gmane.org/gmane.comp.lang.r.devel/31967在我的提案获得批准和实施之前,我们仍然要接受Makefile的黑暗伏都教。例如,您可以在fake.Rnw下放置real.pdfinst/doc,在Makefile中放置mv real.pdf fake.pdf。在fake.Rnw中,您只需遵循\VignetteIndexEntry{}的规则。

答案 2 :(得分:1)

mosaic包现在apparently uses the R.rsp package,其中包含" asis"允许包含现有文件并创建VignetteIndexEntry的驱动程序。与使用pdfpages或虚拟.Rnw文件(doesn't seem to work anymore in 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

this answer by Henrik Bengtsson的作者R.rsp package详细介绍了这一点。