2011-11-26 72 views
4

期間顯示數字時(在sweave編譯過程)與sweave/pgfsweave,每一個數字是R中創建它被示出在圖形窗口時間進行編譯。這在很多情況下是有用的,因爲我可以看到文檔正在編譯時的數字。避免sweave/pgfsweave編譯

但是當我通過SSH編譯一個大型文檔這可能會很慢。有沒有辦法告訴sweave/pgfsweave避免在編譯過程中顯示圖形(儘管如此,我仍然希望在最終的pdf文檔中顯示圖形)。

回答

0

一種選擇是

<<label=myplotlabel, fig=TRUE, include=FALSE>>= 
graph code 
@ 

然後

\begin{figure}[h] 
    \includegraphics[width=6cm, height=6cm]{myplotlabel} 
    \caption{My Plot} 
    \label{fig:label} 
\end{figure} 
4

對於互動環節中,figs.only Sweave選項控制這種行爲。要將數字僅繪製到目標圖形文件(並將而不是繪製到控制檯圖形窗口),請設置figs.only=TRUE

正如RweaveLatex幫助文件中解釋說:

figs.only:邏輯(「假」)。默認情況下,每個圖塊都運行 一次,然後針對每種選定類型的圖形重新運行。這 將打開一個默認的圖形設備的第一個數字 塊,並使用該設備的所有 後續塊的第一次評估。如果此選項爲真,則圖塊 僅針對每個選定類型的圖形運行,爲此,打開然後關閉一個新的圖形設備 。

與其他Sweave選項,可以設置此選項:(1)當前編譯(例如Sweave("example.Rnw", figs.only=TRUE);(2).Rnw文件,使用\SweaveOpts{figs.only=TRUE}內;或(3)作爲一個全球性的默認情況下,把SWEAVE_OPTIONS="figs.only=TRUE"中,例如,$R_HOME/etc/Renviron.site

+2

我建議(2),因爲它是自包含的(所以總是重複性); (1)不好,(3)差。 –

+0

@易輝 - 感謝您的補充。另外(雖然它有點偏離主題),非常感謝您在formatR軟件包上的工作。 –

1

如果您在命令行中,而不是在交互式會話sweave,圖形不是在一個交互式圖形窗口產生。

你可以在命令行通過剛剛運行R.鍵入R CMD Sweave mydoc.Rnw或通過批處理文件或makefile文件r更大的項目。我已經開始爲我的許多sweave文檔使用makefile,因爲它可以處理依賴關係,可以自行清理以及更多。