2011-03-10 12 views
4

我有下述R代碼添加選項[keepaspectratio =真,標度= 0.75]爲 includegraphics {}在Sweave

<<Q1b1, fig=TRUE>>= 
qqnorm(resid(model1), main=NULL) 
@ 

,我希望添加的選項[keepaspectratio =真,標度= 0.75 ]到\ includegraphics {}呼叫,使得上述R代碼塊生成

\begin{figure}[ht] 
\caption{} 
\begin{center} 
\includegraphics[keepaspectratio=true, scale = 0.75]{filename.pdf} 
\label{fig:1} 
\end{center} 
\end{figure} 

我知道你可以使用\ SweaveOpt {寬度= X,高度= Y}指定的寬度和高度,但我要指定的並在產生時保持圖形的縱橫比。

有沒有簡單的方法來做到這一點?

感謝

回答

8

您可以爲您Sweave文檔中的每個數字與\setkeys{Gin}指令集的寬度。例如,在文檔的序言如下使每一個人物寬度文本寬度的80%的網頁上:

\setkeys{Gin}{width=0.8\textwidth} 

否則無法將include=FALSE參數添加到您的代碼塊,然後手動創建\includegraphics指令。默認情況下,如果您的Sweave文件名爲test.Rnw,那麼由代碼塊生成的pdf文件的名稱將爲test-Q1b1.pdf。所以,你可以這樣做:

<<Q1b1,fig=true,include=false,echo=false>>= 
qqnorm(rnorm(100)) 
@ 

\begin{figure}[ht] 
\caption{} 
\begin{center} 
\includegraphics[keepaspectratio=true,scale=0.1]{test-Q1b1.pdf} 
\label{fig:1} 
\end{center} 
\end{figure} 

不過,我做了一些測試,在您的例子,但scale參數似乎並沒有對數字產生任何影響這裏。不過,其他人喜歡angle

+0

非常感謝您的幫助! – 2011-03-11 03:56:14

0

如果您的Sweave文件前導碼中沒有\usepackage{Sweave},它將自動插入\begin{document}語句前的最後一行。因此,你需要把

\setkeys{Gin}{width=0.8\textwidth} 

,這實際上是Sweave風格文件的默認爲\usepackage{Sweave}規定。

AFTER\begin{document}聲明。詳情請參閱Sweave文件(http://www.statistik.lmu.de/~leisch/Sweave/Sweave-manual.pdf)第4.1.2節。