2011-01-12 31 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作爲目錄參數。

相關問題