如何将sweave copy生成的图形制作成子文件夹?

Mat*_*ert 3 r sweave

我很乐意在我的Sweave报告中创建的所有graphics.pdf上使用一些基于shell脚本的pdfcrop.因此,如果将所有图形存储到子文件夹而不是丢弃所有乳胶类似.aux .log文件(等等)所在的位置,我会很高兴.如果我只需要在特定目录中的所有文件上使用裁剪脚本,那就容易多了.

这是我的Sweave大块:

\begin{figure}[htbp]
  \begin{center}
  <<fig=true,echo=false>>=
  print(mygraph)
  @
\caption{my graph}
\end{center}
\end{figure}
Run Code Online (Sandbox Code Playgroud)

如果我运行sweave代码,mygraph.pdf存储在与report.tex文件本身相同的目录中.

有没有办法将此文件存储在像/ graphics这样的现有子文件夹中?

Rei*_*son 9

插入此:

\SweaveOpts{prefix.string=foo/bar}
Run Code Online (Sandbox Code Playgroud)

进入您的Sweave源文件,最好是前言中的顶部.上面的行取自Sweave FAQ,并指出创建的数字将存储在子目录(Sweave源所在的目录)中foo,并且每个图像文件名都将以bar.在Sweave FAQ中讨论了这一点以及更多内容.


Mat*_*ert 6

好的RTFM,ran2.

这是如何做:

 \SweaveOpts{prefix.string=graphics/report} 
Run Code Online (Sandbox Code Playgroud)

另见:手册.

图形是目录,报告是您可能想要使用的子字符串.至少你会在谷歌上找到更好的:)

编辑:

为了完整起见,我将在这里添加几行shell脚本:

#!/bin/sh
R CMD Sweave report.Rnw   
for file in `ls graphics`;
do pdfcrop "$file" graphics/"$file"
done
pdflatex report.tex
open report.pdf
Run Code Online (Sandbox Code Playgroud)

也许有些人想要使用$ 1作为目录参数.