David.Epstein
2011-Apr-19 20:59 UTC
[Rd] Sweave tokens not in column 1: enhancement request
When I re-use a code chunk in Sweave, together with keep.source=TRUE, I would
like to follow usual programming conventions in which the amount of white
space on the left indicates logical structure. It seems that one can't do
this in Sweave, or am I wrong?
for (i in ind) {
do such-and-such and then
<<code chunk 20>>
do something-else
}
Sweave will say that << is an error. Would it be difficult to change
Sweave
so that formatting in the conventional way becomes possible? I'm thinking
both of the .Rnw file and of the final output in the .pdf or .ps file.
Thanks
David
--
View this message in context:
http://r.789695.n4.nabble.com/Sweave-tokens-not-in-column-1-enhancement-request-tp3461527p3461527.html
Sent from the R devel mailing list archive at Nabble.com.
Friedrich Leisch
2011-Apr-20 10:42 UTC
[Rd] Sweave tokens not in column 1: enhancement request
>>>>> On Tue, 19 Apr 2011 13:59:44 -0700 (PDT), >>>>> David Epstein (DE) wrote:> When I re-use a code chunk in Sweave, together with keep.source=TRUE, I would > like to follow usual programming conventions in which the amount of white > space on the left indicates logical structure. It seems that one can't do > this in Sweave, or am I wrong? > for (i in ind) { > do such-and-such and then > <<code chunk 20>> > do something-else > } > Sweave will say that << is an error. Would it be difficult to change Sweave > so that formatting in the conventional way becomes possible? I'm thinking > both of the .Rnw file and of the final output in the .pdf or .ps file. Not difficult at all, that's a trivial change: MySyntax <- utils::SweaveSyntaxNoweb MySyntax$coderef <- "^[[:space:]]*<<(.*)>>.*" Sweave("test.Rnw", syntax=MySyntax) should do what you want. That code references need to start in column 1 is inherited from noweb, not sure if we really need it. Cannot think of a situation where the above regular expression appears in valid R code, but perhaps I am overlooking something. Best, Fritz