Make Sweave或knitr将图形后缀放在`\ includegraphics {}`中

cbe*_*ica 10 latex r sweave knitr

我刚刚遇到(好奇)问题,在向一些Elsevier期刊提交(pdf)LaTeX手稿时,需要完成数字的文件名,以便通过他们的pdf构建和检查系统找到,即:

\includegraphics{picture.pdf}
Run Code Online (Sandbox Code Playgroud)

有没有简单方便的方法告诉Sweave或knitr这样做?

编辑:

  • 我熟悉sweave的include=FALSE选择
  • 我也觉得很有能力打补丁 utils:::RweaveLatexRuncode

但是,目前我希望有更方便和优雅的东西.

它也是关于分发.Rnw文件作为补充材料或小插曲.从教学的角度来看,我不喜欢这些调整,这些调整使源代码对于我希望他们阅读它的新用户来说更加复杂.

(这也是我真正欣赏最近print=TRUE在Sweave 推出的原因)

Yih*_*Xie 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}')
})
@
Run Code Online (Sandbox Code Playgroud)

有关完整示例,请参阅033-file-extension.Rnw 。要了解幕后发生的事情,请参阅中默认 LaTeX 挂钩的源代码knitr