2011-01-12 91 views
3

我很想在我的Sweave报告中创建的所有graphics.pdf上使用基于pdfcrop的shell脚本。因此,如果所有图形都存储到子文件夹中,而不是在诸如.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这样的现有子文件夹中?

回答

9

插入这样的:

\SweaveOpts{prefix.string=foo/bar} 

到您的Sweave源文件,优选至多在序言顶部。上面的行取自Sweave FAQ,并且表示创建的数字将被存储在(Sweave源的目录的子目录)foo的子目录中,并且每个图像文件名将以bar开头。这和更多的是在Sweave FAQ.

+0

acc中讨论的。虽然我觉得我这次更快了;) – 2011-01-13 08:38:06

6

好的RTFM,ran2。

方法如下:

\SweaveOpts{prefix.string=graphics/report} 

参见:the manual

图形是目录,报告是您可能要使用的子字符串。至少你会发现谷歌:)

编辑,让更好:

为了完整起见,我将添加我的几个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作为目录参数。

相关问题