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
-----Ursprüngliche Nachricht-----
Von: Duncan Murdoch [mailto:murd...@stats.uwo.ca]
Gesendet: Dienstag, 7. April 2009 19:08
An: Mark Heckmann
Cc: r-help@r-project.org
Betreff: Re: [R] change default output size when using Sweave
On 4/7/2009 10:39 AM, Mark Heckmann wrote:
I am trying to create a graphic output in Sweave but I do not want
it to
be
standard size. I want the whole graphic to be 80mm of height only,
just
like
the viewport below.
<<fig=TRUE, echo=TRUE>>=
pushViewport(viewport(height = unit(80, "mm")))
grid.rect()
grid.text("I want this viewport to be the whole output size")
popViewport()
@
How can I make the graphic smaller (80mm of height) without having
the
white
margins at the top and bottom?
You can specify height and width as arguments to the code chunk or
set
new defaults with something like
\SweaveOpts{width=5,height=3}
(I think those measurements need to be given in inches; I don't think
there's a way to use an expression like unit(80,"mm").)
You can also control the size of the plot in the final document with
LaTeX code like
\usepackage{graphicx}
\setkeys{Gin}{width=3in}
and then the LaTeX rules for handling units would apply, so 80mm is
fine
instead of 3in.
Duncan Murdoch
______________________________________________
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.