我目前正在研究一个R包,它将在几周内提交给CRAN。该软件包需要一些乳胶软件包才能运行。这些乳胶软件包可在CTAN上获得,并通过rmarkdown::latex_dependency()
注入RMarkdown文档的序言中。
这是我的actual knit_print method的概念。
#' @export
knit_print.my_class <- function(obj, ...) {
knitr::raw_latex(
to_latex(obj),
meta = list(
rmakrdown::latex_dependency(
"ragged2e"
)
)
)
}
我的问题是,可以如何以CRAN接受此提交的方式指定那些依赖项。据我所知,有四个选项
SystemRequirements
字段添加安装说明。到目前为止,我使用了选项(1)。
我对travis(ubuntu 14.04)的配置是
apt install texlive-latex-extra
tlmgr install standalone
对于appveyor(Windows Server 2012 R2 x64),我打开miktex-portable.exe
的包装并将其添加到PATH中。然后,我得到以下软件包。
mpm --install=standalone
mpm --install=ms
mpm --install=pbox
mpm --install=xcolor
mpm --install=colortbl
mpm --install=mptopdf
我到目前为止发现的东西
rticles
直接在.sty
中包含某些inst/
文件,这使我相信(2)是正确的答案。但是,rticles
定义了自定义输出格式,并且由于.sty
文件已作为模板的一部分复制到渲染目录,因此不必“安装”乳胶程序包。答案 0 :(得分:2)
我对CRAN Repository Policy相当熟悉,并且通常没有CRAN等提供的外部依赖项。
这表示我可以根据需要从GitHub上下载预构建的库,从而对CRAN有所帮助。之后,您可以为您的包裹建模。
但是我真正认为您应该做的是……在本地准备pdf小插图,然后让R包按原样“注入”。例如,在this post by Mark中已说明了如何执行此操作,而我只是将RcppAnnoy程序包转换为执行此操作。当然是YMMV。