[英]Using a static (prebuilt) PDF vignette in R package
从R 3.0开始,在CRAN包中包含静态PDF文件作为“晕影”的正确方法是什么?
本文档中描述的使用空存根Rnw
似乎在R 3.0中不起作用。 该文档表明现在有一种基于\\VignetteEngine{}
的更好的方法,但是对于静态PDF文件它是如何工作的还不是很清楚。
更新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.