[Rd] Working with Sweave: inverse search?
Duncan Murdoch
murdoch at stats.uwo.ca
Thu Jan 18 15:52:51 CET 2007
I've now packaged up the Sweave inverse search package, and made the
prototype available on my web page
http://www.stats.uwo.ca/faculty/murdoch/software
as patchDVI_0.2.tar.gz and patchDVI_0.2.zip. I don't know of any bugs
in those, but I'd like to hear about them.
To enable the inverse search, you need an \SweaveOpts line in the .Rnw
file with "concordance=TRUE".
I normally use MikTeX, so to make my life easier I wrote a little
SweaveMiktex() function and put it in the package. Using that package
in Windows, the following batch file processes Sweave, runs latex,
patches the .dvi, and runs the previewer:
echo library(patchDVI);SweaveMiktex('%2', '%3.tex') | Rterm --slave
yap -1 -s"%1%2" %3.dvi
It needs to be called with three parameters:
%1 - the current line number in the editor; yap will jump to that location
%2 - the name of the current file in the editor; if it's *.tex, then
Sweave will be skipped, but the patching will still be done (because
some other file in the project might be a .Rnw file). If not, the file
is run through Sweave first.
%3 - the base name of the file (no extension) to send to latex.
For example, if I am on line 100 of a chapter called syntax.Rnw in a
book called programming.tex, I would call this file with args
100 syntax.Rnw programming
If you're using some other TeX package, the SweaveMiktex function might
still work, but it's likely the script to run it and the previewer would
have to change.
If you have a completely different work flow, the steps you need to
implement are these:
1. Put the \SweaveOpts{concordance=TRUE} line into your .Rnw file.
2. Run the patchDVI version of Sweave() on your file.
3. Run latex to produce a .dvi file.
4. Run the patchDVI function on the .dvi file to patch it.
5. Run your previewer, with options telling it you want to see a
particular line in the .Rnw file.
In a big project, you only need to run Sweave on those .Rnw files that
have changed; the information linking to the original source is output
in a file in the same place figures from the Sweave output would be
saved, e.g. in the example above, as "syntax-concordance.tex".
The format of the concordance is very likely to change as patchDVI
evolves, so you'll want to re-run Sweave if you update your patchDVI
package.
Duncan Murdoch
More information about the R-devel
mailing list