Hi, I had a similar problem, and I took the direction of squeezing the output into a minipage, e.g.:
... @ \begin{minipage}[c]{0.6\textwidth} <<fig=TRUE, echo=FALSE>>= plot(...) abline(...) @ \end{minipage} ... HTH, Gabriele Franzini ICT Applications Manager Nerviano Medical Sciences SRL Nerviano Italy -----Original Message----- From: Mark Heckmann [mailto:mark.heckm...@gmx.de] Sent: 08 April 2009 10:31 To: 'Duncan Murdoch' Cc: r-help@r-project.org Subject: Re: [R] change default output size when using Sweave Dear Duncan, Thanks for the reply. This works, but unfortunately I need a different solution. My script is supposed to run completely automated and the graphics I produce vary in size each time I run the script. But I want the graphics to be fitted to my .pdf output without specifying the height argument manually each time. That is why I do not want a fixed height as a code chunk argument. Actually I do not know if it is possible to have a variable placed in a code chunk header. I tried the following which does not work: <<>>= size <- 3 @ <<fig=TRUE, echo=TRUE, height=size>>= pushViewport(viewport(height = unit(80, "mm"))) grid.rect() grid.text("I want this viewport to be the whole output size") popViewport() @ So still I face the problem to have Sweave generate a .pdf graphic that is just as big I want it to be. In the Sweave Docu paragraph A.9 I discovered something I use as a workaround. I produce the .pdf output manually (where I can control the size) and add each graphic to LaTex manually as well. <<results=tex, echo=FALSE>>= for (i in 1){ file=paste("myfile", i, ".pdf", sep="") pdf(file=file, paper="special", width=6, height=3) pushViewport(viewport(height = unit(5, "inches"))) grid.rect() grid.text("I want this viewport to be the whole output size") popViewport()dev.off() cat("\\includegraphics{", file, "}\n\n", sep="") } @ I use parenthesis around the code as it prints out something I do not want if no parenthesis are used (I use Windows). I am not too happy with the solution. I would prefer a more straightforward approach to define the size of the output graphic. I wonder if there are some Sweave settings that can be modified. In the Sweave manual (A.11) I found the following to customize the par settings for each figure: options(SweaveHooks=list(fig=function() par(bg="red", fg="blue"))) I wonder if something similar could be done changing the size of the default output device (pdf or eps) for each figure like >pdf.options(height=2) or similar (it seems that this does not work)? I suppose this type of graphic customization is quite a common issue when producing automated customized output/reports using R and Sweave but I haven't found anything concerning this topic yet. So I would be really glad if someone knows a solution. TIA, Mark ______________________________________________ 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.