[Rd] Creating package Vignette
Ben Bolker
bbolker at gmail.com
Thu Jul 14 19:00:08 CEST 2011
Prof Brian Ripley <ripley <at> stats.ox.ac.uk> writes:
>
> It depends what you mean by 'vignette': the R docs have been unclear
> (but R >= 2.13.0 are more consistent). In most cases a 'vignette' is
> an Sweave document, the vignette source being the .Rnw file, and the
> vignette PDF the processed .pdf file.
>
> At present vignette() means Sweave documents, as only they have
> metadata like titles. This is planned to be changed soon.
>
> On Thu, 14 Jul 2011, Nipesh Bajaj wrote:
>
> > Hi all, I was trying to create some vignette files for my newly
> > developed package, however wondering whether there could be any
> > simpler way to do so. In writing R extension it is advised to go
> > through Sweave route, however I have already got a big pdf file and
> > want to use this as package vignette.
> >
> > So far I have manually created the inst/doc folder in the main package
> > skeleton, and put that file into this, which is not working by calling
> > "vignette(file_name)" after I build and load the package. I am
>
> file_name is not an argument to vignette(): it is 'topic'. And topics
> are normally file basenames (without any extension), not file names.
>
> > getting following error without opening that pdf file: "vignette
> > 'file_name' *not* found"
> >
> > So I like to know, is there any way to use any arbitrary pdf file as
> > vignette?
>
> By definition, no.
>
> >
> > Any suggestion is highly appreciated.
One possibility: as a workaround, you could include your
own "xvignette" function in your package: see below.
It won't show you indices, but it will pick up any appropriately
named file that you include in the inst/doc directory of your
package ...
xvignette <- function(vname,pkg,ext="pdf") {
vname <- paste(vname,ext,sep=".")
fn <- system.file("doc",vname,package=pkg)
if (nchar(fn)==0) stop("file not found")
utils:::print.vignette(list(pdf=fn))
invisible(fn)
}
You'll have to somehow alert your package users to the
fact that this alternative documentation exists -- perhaps in the help
package for the package itself.
You might fill in the default value of "pkg" above with your
package name to make it easier on the user: I thought about
using some version of getPackageName(environment(xvignette))
to do it automatically, but that seems too complicated ...
More information about the R-devel
mailing list