[R] Sweave with dev.new()

2010-08-10 Thread Gro Nilsen
Dear list.
I am preparing a R package, and the last step is to write a package
vignette using Sweave. However, I am experiencing some trouble when trying
to include plots in my Sweave document. That is, in my package I have made
some plotting functions in which I start by calling 'new.dev()' to start a
graphics device of a certain width and height, and then proceed with
plot(). These functions work perfectly fine in R, and when I check and
build my package with R CMD build/check.

The problems start when I try to include the command and the output of my
plotting functions in the Sweave document, and I suspect it must have
something to do with the command 'dev.new()' in my code. Here is a basic
example of a Sweave file which can hopefully illustrate the problem:

\documentclass[a4paper]{article}

\usepackage{Sweave}
\RequirePackage{graphicx,fancyvrb}


\title{Sweavetest}

\begin{document}

\section{Plotting}

label=testfig,include=FALSE,echo=TRUE=
dev.new(width=7,height=6,record=TRUE)
plot(1:10,col=red)
@
\begin{figure}[ht]
\begin{center}
label=fig,fig=TRUE,echo=FALSE=
testfig
@
\end{center}
\caption{Testplot}
\label{fig:test}
\end{figure}

\end{document}


When I run Sweave on this file I get empty pdf and eps files named
Sweavetest-fig.pdf and Sweavetest-fig.eps, and the corresponding latex
file is unable to create a PDF-file.

Does anyone know what the problem is, and how I might solve it? This is
the first time that I have worked with Sweave, so I might be missing
something basic...

Best regards,
Gro Nilsen
PhD-student, University of Oslo

__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


Re: [R] Sweave with dev.new()

2010-08-10 Thread Marc Schwartz
On Aug 10, 2010, at 3:51 AM, Gro Nilsen wrote:

 Dear list.
 I am preparing a R package, and the last step is to write a package
 vignette using Sweave. However, I am experiencing some trouble when trying
 to include plots in my Sweave document. That is, in my package I have made
 some plotting functions in which I start by calling 'new.dev()' to start a
 graphics device of a certain width and height, and then proceed with
 plot(). These functions work perfectly fine in R, and when I check and
 build my package with R CMD build/check.
 
 The problems start when I try to include the command and the output of my
 plotting functions in the Sweave document, and I suspect it must have
 something to do with the command 'dev.new()' in my code. Here is a basic
 example of a Sweave file which can hopefully illustrate the problem:
 
 \documentclass[a4paper]{article}
 
 \usepackage{Sweave}
 \RequirePackage{graphicx,fancyvrb}
 
 
 \title{Sweavetest}
 
 \begin{document}
 
 \section{Plotting}
 
 label=testfig,include=FALSE,echo=TRUE=
 dev.new(width=7,height=6,record=TRUE)
 plot(1:10,col=red)
 @
 \begin{figure}[ht]
 \begin{center}
 label=fig,fig=TRUE,echo=FALSE=
 testfig
 @
 \end{center}
 \caption{Testplot}
 \label{fig:test}
 \end{figure}
 
 \end{document}
 
 
 When I run Sweave on this file I get empty pdf and eps files named
 Sweavetest-fig.pdf and Sweavetest-fig.eps, and the corresponding latex
 file is unable to create a PDF-file.
 
 Does anyone know what the problem is, and how I might solve it? This is
 the first time that I have worked with Sweave, so I might be missing
 something basic...
 
 Best regards,
 Gro Nilsen
 PhD-student, University of Oslo


It is not clear to me why you need the dev.new() call.  By default using 
Sweave, both PDF and EPS plot files will be created, for subsequent inclusion 
in the document as appropriate. Just define the plot dimensions in the figure 
chunk header:

  label=fig,fig=TRUE,echo=FALSE,height=6,width=7=

Be aware however, that by default, the image size in the final document will be 
set to \textwidth * 0.8, irrespective of the dimensions that you have 
specified. You can alter that default behavior by using:

  \usepackage[nogin]{Sweave}

in your document preamble. The figures will then be set to the sizes that you 
define in the figure chunk header.

See ?RweaveLatex for more information.

HTH,

Marc Schwartz

__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.