在Sweave中将选项[keepaspectratio = true,scale = 0.75]添加到\ includegraphics {}

时间:2011-03-10 11:15:40

标签: r sweave

我有以下R代码

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

我想将选项[keepaspectratio = true,scale = 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 {width = x,height = y}来指定宽度和高度,但我想指定比例并让它在生成时保持图的纵横比。

有一种简单的方法吗?

由于

2 个答案:

答案 0 :(得分:8)

您可以使用\setkeys{Gin}指令为Sweave文档中的每个图形设置宽度。例如,文档前言中的以下内容使每个图形宽度为页面文本宽度的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这样的人。

答案 1 :(得分:0)

如果您的Sweave文件前导码中没有\usepackage{Sweave},它将自动插入\begin{document}语句之前的最后一行。因此你需要把

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

,这实际上是\usepackage{Sweave}中指定的Sweave样式文件的默认值。

AFTER \begin{document}声明。有关详细信息,请参阅Sweave文档(http://www.statistik.lmu.de/~leisch/Sweave/Sweave-manual.pdf)部分4.1.2。