избегать отображаемых цифр во время компиляции sweave / pgfsweave - PullRequest
4 голосов
/ 26 ноября 2011

При компиляции с использованием sweave / pgfsweave, каждый раз, когда фигура создается в R, она отображается в графических окнах (во время процесса компиляции sweave).Это полезно во многих случаях, так как я вижу, как выглядят фигуры во время компиляции документа.

Но когда я компилирую через ssh большой документ, это может быть очень медленным.Есть ли способ сказать sweave / pgfsweave, чтобы он не отображал фигуру во время компиляции (хотя я все еще хочу фигуру в окончательном PDF-документе).

Ответы [ 4 ]

4 голосов
/ 26 ноября 2011

Для интерактивных сессий опция 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 голосов
/ 28 ноября 2011

figs.only - правильный путь, и я также хочу упомянуть графическое устройство по умолчанию в R здесь:

Пока вы можете посмотреть на это: http://yihui.name/en/2010/12/a-special-graphics-device-in-r-the-null-device/

После версии 2.14.1 (еще не выпущенной) вы сможете установить для устройства по умолчанию нулевое устройство PDF, которое является одновременно безопасным и быстрым: https://github.com/yihui/knitr/issues/9

1 голос
/ 26 ноября 2011

Если вы перемещаетесь из командной строки, а не в интерактивном сеансе, графика не выводится в интерактивном графическом окне.

Вы можете запустить R из командной строки, просто набрав R CMD Sweave mydoc.Rnw или через командный файл, или make-файл для больших проектов. Я начал использовать make-файлы для многих моих свип-документов, так как они обрабатывают зависимости, могут убирать за собой и многое другое.

0 голосов
/ 26 ноября 2011

Один вариант может быть

<<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}
...