14

我想在 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。虽然很聪明,但我觉得应该有一种更好的方法来避免文件的扩散。

4

3 回答 3

9

就在怡辉之后……

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

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

把它放在inst/doc你预编译的小插图旁边,你就准备好了。

于 2012-10-29T20:30:38.613 回答
2

R 肯定需要一种更好的方法来处理小插曲:http ://comments.gmane.org/gmane.comp.lang.r.devel/31967在我的提案被批准和实施之前,我们仍然必须忍受黑暗的巫术生成文件。例如,您可以将 afake.Rnw和 areal.pdf放在Makefile的inst/doc, 和下。mv real.pdf fake.pdffake.Rnw中,您只需遵循 的规则\VignetteIndexEntry{}

于 2012-10-29T20:28:41.417 回答
1

mosaic软件包现在显然使用具有“asis”驱动程序的R.rsp软件包,该驱动程序允许包含现有文件并创建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 包的作者Henrik Bengtsson 的回答中也有详细说明。

于 2014-11-24T10:06:36.153 回答