# [R] calling sweave function from latex

david.whiting@ncl.ac.uk david.whiting at ncl.ac.uk
Wed Jan 29 08:07:04 CET 2003

You say that you call R code embedded in your LaTeX document. I tend to
think of it as LaTeX embedded in my R code.  I think the answer to your
question is 'no', but there might be ways to work around it.

I use AUCTeX in emacs and can select a region of foo.sw and run latex on
that.  This works fine although you won't have access to R objects using
\Sexpr{}.  In practice I tend to use <<eval=FALSE>> to "comment out" R
code chunks that I have run previously if I do not need to update or
recreated their objects. This means that running Sweave on foo.sw then
does not take too long to run the R chunks that do need to be run, i.e.
foo.tex is created pretty quickly.  Running latex does not then usually
take long either.  I use search and replace or the chunk navigation
hotkeys (e.g. M-n g) when I need to change <<eval=FALSE>> to
<<eval=TRUE>>.

Creating a Makefile to run R with Sweave (as indicated in the FAQ in the
Sweave manual) and then latex the resulting foo.tex should work pretty
well to automate the process.

I am still new to Sweave, but have had a lot of fun with it so far.  I
use emacs with ESS, Sweave, RefTex mode, LaTeX mode and Prosper - a
presentation class that creates PDF presentations which (can if you
want) look like MS Powerpoint presentations but with the advantage of
LaTeX formatting.  All the tools I need for analysis, writing, and
presentations working together.

My first serious use of this combination was last week. I had a foo.Rnw
file which produced both my presentation and accompanying notes to
handout. I discovered a mistake in my R code shortly before giving my
presentation, fixed it, Sweave'd the file and updated my presentation
and notes painlessly. A nice way to work.

Dave.

On Wed, Jan 29, 2003 at 02:12:15PM +1300, Sam McClatchie wrote:
> System info:
> Mandrake 9.0
> R Version 1.6.1
> ESS 5.1.21
> Emacs 21.2.1
> -------------------
>
> Colleagues
>
> I've been calling R-code embedded in my LaTex document using Sweave, but
> would like to make things more convenient. At present as I understand it
>  you first process the R chunks of code using the Sweave function
> called from within R to process a "precursor file" e.g. foo.sw to get a
> LaTex file (foo.sw.tex) that you then process with latex foo.sw.tex.
> ------------------------
> example code segment
>
> %\item {\bf Matched trawl and acoustic data} \label{real data}
>
> \item {\bf Results}
>
> %%%% sweave code
>
> <<echo=false,results=hide>>=
> average.trawl.spp.composition()
> @
>
> %%%% insert figure generated from sweave code
> \begin{figure}
> \includegraphics[scale=0.6]{../figures/bycatch_by_weight}
> \caption{\label{catch by weight} Proportions of selected species (from
>     Table \ref{ts length regressions}) in the fish assemblage using
>     catch rate ($kg\ km{-1}$) as an approximation for fish density
>     (neglecting variable capture efficiencies). Note: there were no
>     oblique banded rattails in this dataset, although we have a
>     \textit{<TS>-length} regression for them (see Table \ref{ts length
>     regressions}). Box plot centre line = meadian, box limits are
>     $25^{th}$ and $75^{th}$ quartiles, whiskers represent 1.5 times the
>     interquartile range from the median, and points outside the whiskers
>     are the tails of the distributions.}
> \end{figure}
> -----------------------
>
> This works fine, but it is cumbersome for someone who likes to write a
> bit and then latex that additional bit. Of course I can just add the new
> LaTex code chunks to the foo.sw.tex and latex that, but I have to
> remember to copy the foo.sw.tex back to foo.sw or the versions get mixed
> up. Trivial, but annoying.
>
> The question is: can I call the Sweave function from within LaTex so I
> just latex the foo.sw.tex and the Sweave chunks will also get processed.
> This would be much tidier.
>
> One suspects that the short answer is 'no'.
>
> Best fishes
>
> Sam
> --
> Sam McClatchie, Research scientist (fisheries acoustics))))))))))
> NIWA (National Institute of Water & Atmospheric Research Ltd)
> PO Box 14 901, Kilbirnie, Wellington, New Zealand
> s.mcclatchie at niwa.cri.nz
>                       /\
>            >><xX(&>
>                    /// \\\
>                   //// \\\\
>                  ///  <%)Xx><<
>                 /////  \\\\\\
>           ><(((@>
>     ><(((%>     ..>><xX(?>O<?)Xx><<
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> http://www.stat.math.ethz.ch/mailman/listinfo/r-help

--
Dave Whiting
Dar es Salaam, Tanzania