[R] Knitr, ggplot and consistent fonts

John Kane jrkrideau at inbox.com
Mon Dec 23 18:21:06 CET 2013


Does not seem to be.  I 'think' I removed all the line breaks  and it still is not compiling.  Thanks for the suggestion. I had not bothered to paste the <<>>= text into RStudio and since TexMaker has an automatic wrap, I would never have noticed it. 

John Kane
Kingston ON Canada

-----Original Message-----
From: felasa at gmail.com
Sent: Mon, 23 Dec 2013 10:53:59 -0600
To: jrkrideau at inbox.com
Subject: Re: [R] Knitr, ggplot and consistent fonts

Hi, chiming in. 
Pasted the code in R studio and the format parser wouldn't mark the R code chunks. It was because there were line breaks in the middle of chunk options tags.  Couldn't test if removing line breaks works, but maybe that's the source of the problem?

On Mon, Dec 23, 2013 at 10:37 AM, John Kane <jrkrideau at inbox.com> wrote:

	Same result here with the same error message mentioned in my first post.  I tried it in Texmaker which is my usual Latex editor, not that I do much in Latex, and then tried it in RStudio and it is still choking.

 Interestingly EMACS will process it and produce a pdf but it simply produces.  It also provides this warning: : Latex Warning; Reference 'fig:plot-figheight' undefined on page 2 on input line 14.

 It seems to repeat the same message for each of the other figures.

 John Kane
 Kingston ON Canada

 > -----Original Message-----

> From: dulcalma at bigpond.com
 > Sent: Mon, 23 Dec 2013 22:28:33 +1000
 > To: daniel.haugstvedt at gmail.com, r-help at r-project.org
 > Subject: Re: [R] Knitr, ggplot and consistent fonts
 >
 > Hi Dan
 >
 >
 >
 > I think you still have problems with embedded characters or some problems
 > in
 > char code page conversion or the like.
 >
 >
 >
 > Not knowing knitr but Sweave I cobbled the figures manually and ran the
 > sweave file to produce the latex file.
 >
 > Latex was consistently stopping at the \caption and \ref functions
 >
 > I tried to see what was happening I added hyperref & when I copied the
 > text
 > to hyperref  latex bailed up
 >
 >
 >
 > I tried a minimal latex file without problems
 >
 >
 >
 > I put the \title etc in the preamble. Some compilers need this
 >
 >
 >
 > Duncan
 >
 >
 >
 > From: Daniel Haugstvedt [mailto:daniel.haugstvedt at gmail.com]
 > Sent: Monday, 23 December 2013 20:10
 > To: Duncan Mackay
 > Cc: John Kane; R
 > Subject: Re: [R] Knitr, ggplot and consistent fonts
 >
 >
 >
 > I am really sorry for posting a non-working example. It is running when I
 > cut the code from my previous mail into a clean session in RStudio (OSX).
 > However, I suspect that you are right. I did cut and paste some code from
 > a
 > forum yesterday which had characters that had to be replaced. I gave
 > emacs a
 > try, but could not find the problem there either.
 >
 >
 >
 > The code below was pasted though textEdit and converted to plain text. I
 > hope this takes care of any embedded characters.
 >
 >
 >
 > \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 o font size.
 >
 >
 >
 > <<plot-figHeight, echo=FALSE, fig.height=2.5, fig.cap="Density plot with
 > no
 > fig.width argument", results='hide', 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}
 >
 >
 >
 >
 >
 >
 >
 >
 >
 >
 >
 > On Sun, Dec 22, 2013 at 11:59 PM, Duncan Mackay <dulcalma at bigpond.com>
 > wrote:
 >
 > Hi Daniel
 > I tried it in Sweave after modifying it for Sweave and a similar thing
 > for
 > Latex but R crashed.
 >
 > I think there is an embedded character/s before the first chunk and in
 > the
 > first chunk.
 >
 > Duncan
 >
 > Duncan Mackay
 > Department of Agronomy and Soil Science
 > University of New England
 > Armidale NSW 2351
 > Email: home: mackay at northnet.com.au
 >
 >
 > -----Original Message-----
 > From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org]
 > On
 > Behalf Of John Kane
 > Sent: Monday, 23 December 2013 04:19
 > To: Daniel Haugstvedt; r-help at r-project.org
 > Subject: Re: [R] Knitr, ggplot and consistent fonts
 >
 > 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 [https://stat.ethz.ch/mailman/listinfo/r-help]
 >> PLEASE do read the posting guide
 >> http://www.R-project.org/posting-guide.html [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 [http://www.inbox.com/smileys] Works with AIMR, MSNR Messenger, Yahoo!R
 > Messenger, ICQR, Google TalkT and most webmails
 >
 > ______________________________________________
 > R-help at r-project.org mailing list
 > https://stat.ethz.ch/mailman/listinfo/r-help [https://stat.ethz.ch/mailman/listinfo/r-help]
 > PLEASE do read the posting guide
 > http://www.R-project.org/posting-guide.html [http://www.R-project.org/posting-guide.html]
 > and provide commented, minimal, self-contained, reproducible code.
 >
 > ______________________________________________
 > R-help at r-project.org mailing list
 > https://stat.ethz.ch/mailman/listinfo/r-help [https://stat.ethz.ch/mailman/listinfo/r-help]
 > PLEASE do read the posting guide
 > http://www.R-project.org/posting-guide.html [http://www.R-project.org/posting-guide.html]
 > and provide commented, minimal, self-contained, reproducible code.
 >
 >
 >
 > ______________________________________________
 > R-help at r-project.org mailing list
 > https://stat.ethz.ch/mailman/listinfo/r-help [https://stat.ethz.ch/mailman/listinfo/r-help]
 > PLEASE do read the posting guide
 > http://www.R-project.org/posting-guide.html [http://www.R-project.org/posting-guide.html]
 > and provide commented, minimal, self-contained, reproducible code.

 ____________________________________________________________

FREE 3D MARINE AQUARIUM SCREENSAVER - Watch dolphins, sharks & orcas on your desktop!

 ______________________________________________
 R-help at r-project.org mailing list
 https://stat.ethz.ch/mailman/listinfo/r-help [https://stat.ethz.ch/mailman/listinfo/r-help]
 PLEASE do read the posting guide http://www.R-project.org/posting-guide.html [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



More information about the R-help mailing list