Apply Sweave to a collection of files.
SweaveAll.Rd
This function allows a master Sweave input file to specify other files in the
project. All modified files will be run through Sweave
. Following
the run, several post-processing steps may be performed.
Usage
SweaveAll(SweaveFiles, make = 1, PostSweaveHook = NULL,
force = TRUE, verbose = FALSE,
weave = utils::Sweave, ...)
knitAll(RnwFiles, make = 1, PostKnitHook = NULL,
force = TRUE, verbose = FALSE,
weave = knitr::knit, ...)
renderAll(RmdFiles = NULL, make = 1, PostKnitHook = NULL,
force = TRUE, verbose = FALSE,
weave = rmarkdown::render, ...)
Arguments
- SweaveFiles, RnwFiles, RmdFiles
character vector naming the files to run through
weave
.- make
integer indicating which files to run
weave
on. See below.- PostSweaveHook, PostKnitHook
default hook to be called after each
weave
call. See below.- force
If
TRUE
, all files inSweaveFiles
will be run, otherwise only those which are newer than the corresponding.tex
file.- verbose
Mainly for debugging: print progress messages.
- weave
The function to be used for converting from source to
.tex
. It will be called asweave(filename, ...)
for each file inSweaveFiles
and other files identified as needing weaving.- ...
Extra parameters to pass to
weave
.
Details
This function runs weave
repeatedly. It starts by
checking for a global variable .SweaveFiles
, and
augments the SweaveFiles
argument with any unprocessed
files in that list. It then runs weave
on each file listed in SweaveFiles
.
Before each run, it removes the global variables
.PostSweaveHook
, .SweaveFiles
, and .TexRoot
. The
individual Sweave files may set these variables to control post-
processing as described below.
Following each run, SweaveAll
checks whether the code
chunks created a variable .PostSweaveHook
in the global
environment. If present, it should be a function (or the name of a
function; match.fun
is used to do the lookup) taking a
single argument. If not present, the PostSweaveHook
(or PostKnitHook
) argument
will be used as a default. SweaveAll
will pass the name of the
.tex
output file to this function, which can do any required
postprocessing. For example, we have used it to remove local
pathnames from output strings.
SweaveAll
then checks again for .SweaveFiles
, which if present
should be a character vector of filenames. These are collected, and
after the Sweave
runs specified by SweaveFiles
, the
make
parameter controls which other files are run. The default
value of 1
works as follows: any new files added via
.SweaveFiles
that were not already processed are checked. If
they are newer than the corresponding .tex
file, or the
.tex
file does not exist, they are processed. They may also
return new filenames in the global .SweaveFiles
variable and
those will be processed as well.
Setting make = 2
forces all mentioned files to be processed.
With make = 0
, only the original vector of files passed to
SweaveAll
will be processed.
SweaveAll
also checks for a global variable named .TexRoot
.
If present, it will be placed in the first position in the result vector.
(If it was already in the vector, later copies will be removed.)
Value
The names of all files produced. The first element of
Sweavefiles
will produce the first element of the result if
.TexRoot
was not specified; other elements will depend on which
files were processed.
Examples
if (FALSE) { # \dontrun{
# Run Sweave on a main file, and obtain other files from there.
SweaveAll("main.Rnw")
# Run knitr on the same file.
SweaveAll("main.Rnw", weave = knitr::knit)
} # }