繁体   English   中英

在R包中使用静态(预建)PDF小插图

[英]Using a static (prebuilt) PDF vignette in R package

从R 3.0开始,在CRAN包中包含静态PDF文件作为“晕影”的正确方法是什么?

本文档中描述的使用空存根Rnw似乎在R 3.0中不起作用。 该文档表明现在有一种基于\\VignetteEngine{}的更好的方法,但是对于静态PDF文件它是如何工作的还不是很清楚。

使用R.rsp (> = 1.19.0),您可以通过添加一个小的'vignettes / main.pdf.asis'文本文件来包含静态PDF'vignettes / main.pdf',该文件包含:

%\VignetteIndexEntry{My amazing package}
%\VignetteEngine{R.rsp::asis}

并确保有:

Suggests: R.rsp
VignetteBuilder: R.rsp

在您的包的描述文件中。 这也适用于静态HTML插图。 这也是在一个R.rsp小插曲中解释的。

更新2014-06-08:有关在R包中包含静态PDF和HTML文件的更好解决方案,请参阅此主题中有关如何使用R.rsp (> = 0.19.0)及其R.rsp::asis其他答案R.rsp::asis晕影引擎。

您只需要一个<name>.Rnw文件,其名称与您的静态<name>.pdf文件相匹配,例如

vignettes/
  static.pdf
  static.Rnw

其中<name>.Rnw (这里是static.Rnw )是一个最小有效的Sweave文件,例如

%\VignetteIndexEntry{<title to be displayed on the R vignette index page>}
\documentclass{article}
\begin{document}
\end{document}

这个插图源文件( <name>.Rnw )欺骗R CMD build来构建它,即R的tools::buildVignettes()将像往常一样将<name>.Rnw<name>.tex 但是,由于如何设计buildVignettes() ,它将检测我们的静态<name>.pdf文件,因为它已经由Sweave引擎创建,因此它不会将该伪TeX文件编译成PDF文件(这会覆盖我们的静态文件) )。

重要的是要理解的是:(i)在R CMD build ,渐晕是“构建”,(ii) R CMD build ,它们被复制到构建包的inst/doc/目录(如果缺失则创建)。 此外,(iii) vignettes/目录不会是构建包的一部分,即<pkgname>_<version>.tar.gz文件。 所以,请务必查看inst/doc/

因此,要明确这一点,使用虚拟<name>.Rnw可能被认为是一个黑客,如果有人决定阻止这种策略可能会破坏。 但是,如果发生这种情况,则完全可以创建非Sweave插图引擎,其唯一目的是将<name>.pdf文件编译为... <name>.pdf文件。 这是有效的,因为R(> = 3.0.0)中添加了非Sweave支持。 我一直在考虑将这种引擎添加到R.rsp包中,例如\\ VignetteEngine {R.rsp :: StaticPDF}。 有了它你甚至不必拥有那个虚拟的Rnw文件 - 只有PDF文件。

希望这可以帮助

这适用于本博客文章中描述的普通LaTeX技巧。

我最近切换到使用当前的R版本( 现在为3.6.0),看到这个包装.Rnw文件 ,其中包含:

\documentclass{article}
\usepackage{pdfpages}
%\VignetteIndexEntry{Using Annoy in C++}
%\VignetteKeywords{Rcpp, Annoy, R, Cpp, Approximate Nearest Neighbours}
%\VignettePackage{RcppAnnoy}

\begin{document}
\includepdf[pages=-, fitpaper=true]{UsingAnnoyInCpp.pdf}
\end{document}

优点是,它使用Sweave进行完全传统的插图构建,并且不会产生额外的依赖关系。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM