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