Hi Daniel,
For some reason I cannot get your example to work. The problem is in the code
chunk but I have no idea what is happening. The code is running perfectly in R,
itself but LaTeX seems to be choking when it hits the first ggplot statement,
that is the one in <<plot-figHeight>>
The message I am getting is: "Missing $ inserted <inserted text> $
ggplot(df, aes(x=x)) = geom_" and my knowledge of LateX is not enough to
figure out the problem.
I tried stripping out most of the LaTeX specific verbiage in the code chunk and
running the code in LyX which I use rather than plain vanilla LaTeX and I still
cannot get it to work. It is almost as if there is some hidden character in the
in that piece of code since I can duplicate the code myself and I even pasted in
most of the geom_histogram code into my code chunk and it runs.
John Kane
Kingston ON Canada
> -----Original Message-----
> From: daniel.haugstvedt at gmail.com
> Sent: Sun, 22 Dec 2013 12:42:50 +0100
> To: r-help at r-project.org
> Subject: [R] Knitr, ggplot and consistent fonts
>
> Dear R-help
>
> I am using Knitr and ggplot to draft an article and have now started to
> improve on the layout and graphics. So far I have not been able to
> maintain
> the same font size for labels in all my figures.
>
> My goal is to be able to change the width of the figures while
> maintaining
> the same font. This works for the height parameter (example not
> included).
>
> In the true document I also use tikz, but the problem can be reproduced
> without it.
>
> I know the question is very specific, but my understanding is that this
> combination of packages is common. (They are really great. Keep up the
> good work.) There has to be others facing the same problem and someone
> must have found a nice solution.
>
> Additional attempts from my side which failed are not included in the
> example. I have tested the Google results i could find without any luck.
>
> Cheers
> Daniel
>
> PS. I know the example plots could have been smaller, but they just
> became
> too ugly for me
>
>
> \documentclass{article}
> \begin{document}
>
> <<setup, include=FALSE, cache=FALSE>>> library(knitr)
> library(ggplot2)
> @
>
> \title{Knitr and ggplot2}
> \author{Daniel Haugstvedt}
>
> \maketitle
>
> There are four plots in this article. Figure \ref{fig:plot-figHeight}
> uses
> the argument fig.height=2.5 while Figures \ref{fig:plot-figWidth}
> used both fig.height=2.5 and fig.width=3. The later option makes the font
> too big.
>
> An alternative approach is used in Figures \ref{fig:plot-figOutWidthBig}
> and
> \ref{fig:plot-figOutWidthSmall}. There the argument out.width is set to
> 12 and 8 cm respectively. This stops the problem of excessively large
> fonts
> for figures with smaller width, but there is still no consistency
> across plots in terms of font size.
>
> <<plot-figHeight, echo=FALSE, fig.height=2.5, fig.cap="Density
plot with
> no
> fig.width argument", fig.pos='ht'>>> df =
data.frame(x = rnorm(100), y = 1:100)
> ggplot(df, aes(x = x)) +
> geom_histogram(aes(y = ..density..),
> binwidth = 1, colour = "black", fill =
"white") +
> xlab("Improvement, %") +
> ylab("Density") +
> theme_classic()
> @
>
> <<plot-figWidth, echo=FALSE, fig.height=2.5, fig.width = 3,
> fig.cap="Density plot with fig.width=3",
fig.pos='ht'>>> ggplot(df, aes(x = x)) +
> geom_histogram(aes(y = ..density..),
> binwidth = 1, colour = "black", fill =
"white") +
> xlab("Improvement, %") +
> ylab("Density") +
> theme_classic()
> @
>
> <<plot-figOutWidthBig, echo=FALSE, fig.height=2.5, out.width =
"12cm",
> fig.cap="Density plot with out.width=12cm",
fig.pos='ht'>>> ggplot(df, aes(x = x)) +
> geom_histogram(aes(y = ..density..),
> binwidth = 1, colour = "black", fill =
"white") +
> xlab("Improvement, %") +
> ylab("Density") +
> theme_classic()
> @
>
> <<plot-figOutWidthSmall, echo=FALSE, fig.height=2.5, out.width =
"8cm",
> fig.cap="Density plot with out.width=8cm",
fig.pos='ht'>>> ggplot(df, aes(x = x)) +
> geom_histogram(aes(y = ..density..),
> binwidth = 1, colour = "black", fill =
"white") +
> xlab("Improvement, %") +
> ylab("Density") +
> theme_classic()
> @
>
> \end{document}
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at 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.
____________________________________________________________
GET FREE SMILEYS FOR YOUR IM & EMAIL - Learn more at
http://www.inbox.com/smileys
Works with AIM?, MSN? Messenger, Yahoo!? Messenger, ICQ?, Google Talk? and most
webmails