[R] (S|odf)weave : how to intersperse (\LaTeX{}|odf) comments in source code ? Delayed R evaluation ?
Emmanuel Charpentier
emm.charpentier at free.fr
Sat Dec 11 23:58:10 CET 2010
Dear list,
Inspired by the original Knuth tools, and for paedaogical reasons, I wish
to produce a document presenting some source code with interspersed
comments in the source (see Knuth's books rendering TeX and metafont
sources to see what I mean).
I seemed to remember that a code chunk could be defined piecewise, like in
Comments...
<<Chunk1, eval=FALSE, echo=TRUE>>=
SomeCode
@
Some other comments...
<<Chunk2, eval=FALSE, echo=TRUE>>=
MoreCode
@
And finally,
<<Chunk3, eval=TRUE, echo=TRUE>>=
<<Chunk1>>
<<Chunk2>>
EndOfTheCode
@
That works ... as long as SomeCode, MoreCode and EndOfTheCode are self-
standing pieces of R code, but *not* code fragments. You can *not*
intersperse comments in, say, a function body, or local() environment
this way : when Sweaving, *R* complains of an incomplete source (makes
noise about an unexpected end of input at the end of Chunk1, IIRC, and
never sees Chunk2).
I hoped that Sweave's "alternative" syntax could offer a way out : no
such luck.
There seems to be no way to delay R evaluation of a R chunk passed by
Sweave ; at least, the "eval=FALSE" option of chunk declaration is not
sufficient for that.
Am I missing something in the Sweave nd odfWeve documentations (that I
read till I grew green and moldy) ? Or does this require a fundamental
change in the relevant Sweave drivers ?
Can you suggest alternative ways of doing what I mean to do ? The only
workaround I found is to paste a second copy of my code in a \verbatim
environment (or, in the case of odfWeave, in the "text" part), and spice
it with \end{verbatim} comments.. \begin{verbatim} chunks. This way, I
lose any guarantee of consistency between commented text and effective
code.
Any other idea ?
Emmanuel Charpentier
More information about the R-help
mailing list