# [R] sweave question

Yihui Xie xie at yihui.name
Thu Feb 14 03:00:25 CET 2013

Other people in this thread have explained the rule of double
backslashes. I just want to add one more comment:

That clever solution was in 2009 when knitr has not come out, and I
have used this picture several times to show how much I dislike it:
http://yihui.name/en/2012/06/enjoyable-reproducible-research/

With knitr, you can easily write your big code chunk (with lots of
"cats" jumping around) in a much more compact way:

<<figthree, fig.pos="ht!", fig.align="center", out.width="5in",
out.height="5in", fig.cap="The resulting unpruned regression tree of
the California real estate data">>=
plot(cal.tree,uniform=TRUE,compress=TRUE,margin=0.0)
text(cal.tree, all=TRUE,fheight=1.0,fwidth=1.0)
@

Note the number "5" alone is not a legal LaTeX length; you should add
the unit such as "5in" or "5cm", etc. This chunk in knitr will
generate everything for you:

- the figure environment
- center the figure
- add the figure position ht!
- add figure width and height
- add the figure label fig:figthree

You, as the author, only write the R code (instead of both R and
LaTeX); other people, as the readers, only see the R code. Everything
else should go behind the scene.

Regards,
Yihui
--
Yihui Xie <xieyihui at gmail.com>
Phone: 515-294-2465 Web: http://yihui.name
Department of Statistics, Iowa State University
2215 Snedecor Hall, Ames, IA

On Wed, Feb 13, 2013 at 4:59 PM, Mark Leeds <markleeds2 at gmail.com> wrote:
> Hi Everyone: I was having trouble getting the plot size correct when
> putting a plot in an sweave document. So, I searched on the internet and I
> found a clever solution where the person uses
> the cat function to write latex code so he can include the cat code in the
> chunk and place the plot using width and height. The solution is here:
> https://stat.ethz.ch/pipermail/r-help/2009-April/195094.html.
>
> But the solution uses a backslash before the ending quotes in the cat
> statements  that might be windows relevant possibly ? I'm not sure about
> that part but I'm on linux and when I tried my way to mimic that solution
> in the latex/sweave code below ( I think it's the same solution but without
> the backslash on the closing quotes. I tried that also but got a different
> error ) , Sweave doesn't like the start of the includegraphics command. The
> error I get from Sweave is
>
> #=======================================================
> Error:  chunk 9 (label = fig3)
> Error : '\i' is an unrecognized escape in character string starting "\i"
> Execution halted
> :~/research/equity/projects/tree_returns/report>
> #=====================================================
>
> The code is below but if anyone is interested and thinks they need the
> whole file to look at the problem, I can send it. I just didn't want to
> send the whole file here. Definitely the error has to do with the chunk
> below for sure ( even though it says chunk 9 because there is no chunk 9
> ).  Thanks a lot to anyone who can be bothered investigating because I've
> spent pretty much the whole day on this and think it's
> time to surrender !!!!!!!!!! or atleast give up for now and come back to it
> with a fresher brain. Have a good night.
>
> # THE LATEX/SWEAVE CODE
> #================================================================
>
> cal.tree is created in a previous chunk and that's fine.
>
> <<chunk08,label=fig3, fig=FALSE,result = tex>>=
> wid <- 5
> hei <- 5
> pdf("reg_tree-fig3.pdf", width = wid, height = hei)
> plot(cal.tree,uniform=TRUE,compress=TRUE,margin=0.0)
> text(cal.tree, all=TRUE,fheight=1.0,fwidth=1.0)
> dev.off()
> cat("\begin{figure}[ht!]")
> cat("\begin{center}")
> cat("\includegraphics[width = ", wid, ", height = ", hei,
> "]{reg_tree-fig3}")
> cat("\end{center}")
> cat("\caption{The resulting unpruned regression tree of the california real
> estate data}")
> cat("\label{FIG:figthree}")
> cat("\end{figure}")
> @
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help