我遇到(好奇)问题,在向一些Elsevier期刊提交(pdf)LaTeX手稿时,需要完成数字的文件名,以便通过他们的pdf构建和检查系统找到,即:
\includegraphics{picture.pdf}
有没有简单方便的方法告诉Sweave或knitr这样做?
编辑:
include=FALSE
选项utils:::RweaveLatexRuncode
但是,目前我希望有更方便和优雅的东西。
它也是关于发布.Rnw文件作为补充材料或小插曲。从教学的角度来看,我不喜欢这些调整,这些调整使源代码对于我希望他们阅读它的新用户来说更加复杂。
(这也是我真正感谢最近在Sweave中引入的print=TRUE
)
答案 0 :(得分:3)
强力解决方案是在R片段中自己显式创建文件。将图形等选项设置为false,但是评估代码以便创建文件,然后使用您显示的\includegraphics{}
调用来调用它们。
我使用类似的方案进行简单缓存:如果目标文件存在,请跳过代码创建。
答案 1 :(得分:3)
您可以在plot
中稍微修改knitr
挂钩以添加文件扩展名:
<<>>=
knit_hooks$set(plot = function(x, options) {
x = paste(x, collapse = '.') # x is file.ext now instead of c(file, ext)
paste0('\\end{kframe}', hook_plot_tex(x, options), '\\begin{kframe}')
})
@
有关完整示例,请参阅033-file-extension.Rnw。要了解幕后发生的情况,请参阅knitr
中的source code of the default LaTeX hooks。