3

我很想在我的 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}

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

有没有办法将此文件存储在现有的子文件夹中,如 /graphics ?

4

2 回答 2

9

插入这个:

\SweaveOpts{prefix.string=foo/bar}

进入你的 Sweave 源文件,最好在序言的顶部。上面一行来自Sweave FAQ,表示创建的图形将存储在(Sweave源所在目录的子目录)foo中,每个图像文件名都以.开头barSweave 常见问题解答中讨论了这一点以及更多内容。

于 2011-01-12T22:29:27.580 回答
6

好的 RTFM,ran2。

就是这样:

 \SweaveOpts{prefix.string=graphics/report} 

另见:手册

graphics 是目录,report 是您可能想要使用的子字符串。至少你会在 google 上找到更好的 :)

编辑:

为了完整起见,我将在此处添加几行 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

也许你们中的一些人想使用 $1 作为目录参数。

于 2011-01-12T22:28:58.280 回答