我想在R包中包含一个预编译的PDF作为插图。 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。虽然聪明,但我觉得应该有更好的方法来避免文件的泛滥。
在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
和a 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
这也详述 Henrik Bengtsson给出了这个答案,作者 R.rsp包。