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 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? Any suggestion is highly appreciated. Thanks,
Creating package Vignette
6 messages · Nipesh Bajaj, Ben Bolker, Melissa Jane Hubisz +2 more
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. Thanks,
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
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 ...
Another workaround is to create a "dummy" vignette which does nothing
but include the pdf file. Something like this:
vignette.Rnw:
% \VignetteIndexEntry{vignette}
% \VignetteKeywords{keywords here}
% \VignettePackage{package name}
\documentclass[a4paper]{article}
\usepackage{hyperref}
\usepackage{pdfpages}
\begin{document}
\includepdf[fitpaper=true,pages=-]{vignette-source.pdf}
\end{document}
Not sure if this is totally kosher, but I did this for my package when
the vignette was too computationally intensive to be submitted to
CRAN.
-Melissa
On Thu, Jul 14, 2011 at 1:00 PM, Ben Bolker <bbolker at gmail.com> wrote:
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 ...
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
On Thu, 14 Jul 2011, Melissa Jane Hubisz wrote:
Another workaround is to create a "dummy" vignette which does nothing
but include the pdf file. Something like this:
vignette.Rnw:
% \VignetteIndexEntry{vignette}
% \VignetteKeywords{keywords here}
% \VignettePackage{package name}
\documentclass[a4paper]{article}
\usepackage{hyperref}
\usepackage{pdfpages}
\begin{document}
\includepdf[fitpaper=true,pages=-]{vignette-source.pdf}
\end{document}
Not sure if this is totally kosher, but I did this for my package when
the vignette was too computationally intensive to be submitted to
CRAN.
That's fine (because a lot of not-very-necessary work has had to have been done to accept vignettes with no R code), but we are working on ways to avoid such subterfuges. In particular, CRAN does accept packages with Sweave vignettes that take too long to check -- one takes ca 8 hours (or would if it worked, which it currently does not). We just ask that we are told so on submission.
-Melissa On Thu, Jul 14, 2011 at 1:00 PM, Ben Bolker <bbolker at gmail.com> wrote:
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 ...
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-devel/attachments/20110714/41c04eaa/attachment.pl>