2011-11-26 70 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,因为它可以处理依赖关系,可以自行清理以及更多。