On 04/09/2012 9:47 AM, David L Lorenz wrote:
All,
I seem to be missing some key point about the construction of vignettes.
I have created a vignette script that works fine when run interactively
using Sweave. The top part of the .Rnw file is below.
\documentclass{article}
\parskip 3pt
\parindent 30pt
%\VignetteIndexEntry{Box Plot Examples}
%\VignetteDepends{USGSgraphs}
\begin{document}
\title{Box Plot Examples}
\author{Dave Lorenz}
\maketitle
... text omittted from this example ...
<<echo=TRUE>>=
# Generate a random sample for the box plot
set.seed(27036)
BP <- rchisq(32, 3)
# setSweave is a specialized function that sets up the graphics page
setSweave("boxplot01", 6 ,6)
# Set layout for 4 graphs
AA.lo <- setLayout(width=rep(1.25, 4), height=4, xtop=1.5)
... remainder omitted ...
The functions setSweave and setLayout are functions within the
USGSgraphs library that I am building. As I said, the script runs just
fine when I run interactively. I do have a version of the USGSgraphs
library attached when I run the script. When I run R CMD check, or R CMD
build on the source, I get the error:
Error: processing vignette 'boxplots.Rnw' failed with diagnostics:
chunk 1
Error in eval(expr, envir, enclos) : could not find function "setSweave"
Execution halted
I would have expected that the contents of the library being built would
have been available to the script (based on section 1.3.2 in R-exts.html).
Barring that, I expected that "%\VignetteDepends{USGSgraphs}" would have
made those functions available to the script. I have found that if I
include this code before the first real example, it will run.
<<echo=FALSE>>=
library(USGSgraphs)
@
But I have no reason to believe that it would run on any system that did
not already have a version of USGSgraphs installed. Note that if I use the
default graphics output, then I get the same error on setLayout.
I use the default process for building the vignettes--no makefile.
What do I need to do to get this vignette to run? I know I can set
BuildVignettes to FALSE in the DESCRIPTION file or try to build with the
--no-vignettes option, but that does not really address the more general
issue.
Vignettes are run in pretty standard R sessions when the package is
built, so you need the explicit library(USGSgraphs) call to make
functions from your package available in that session. What the manual
is saying is just that that call will succeed: R will install a copy of
your package in order to build the vignette. It goes into a "temporary
library tree", because you might not want that particular version
installed in your main tree.
Duncan Murdoch
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel