[Rd] Sweave tokens not in column 1: enhancement request

Friedrich Leisch Friedrich.Leisch at boku.ac.at
Wed Apr 20 12:42:17 CEST 2011


>>>>> 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



More information about the R-devel mailing list