[R-pkg-devel] creating a link to a vignette in a .Rd file

Fox, John jfox @ending from mcm@@ter@c@
Tue Nov 20 02:15:44 CET 2018

Dear Hadley,

You're right -- my approach was flawed and the document doesn't open even when the file URL is hard-coded in the .Rd file. With that hint, I found the following solution:

	\href{../doc/partial-residuals.pdf}{partial-residuals vignette}

This works and passes package checking. A caveat: I tried it only under Windows, both inside and outside of RStudio. I'll follow up on macOS and Linux and report if there are problems.

I'm surprised that this question hasn't arisen more frequently -- wanting to link to vignettes from help pages seems natural to me. I found a couple of queries in a web search but no solution. 

Thanks for this,

> -----Original Message-----
> From: Hadley Wickham [mailto:h.wickham using gmail.com]
> Sent: Monday, November 19, 2018 6:21 PM
> To: Fox, John <jfox using mcmaster.ca>
> Cc: R Package Development <r-package-devel using r-project.org>
> Subject: Re: [R-pkg-devel] creating a link to a vignette in a .Rd file
> On Mon, Nov 19, 2018 at 4:49 PM Fox, John <jfox using mcmaster.ca> wrote:
> >
> > Dear r-package-devel list members,
> >
> > I'd like to create a link to a package vignette from a help file in the same
> package, for example to the "partial-residuals" vignette in the effects package
> from effect.Rd. I'm able to generate a URL for the vignette as follows:
> >
> >         \Sexpr[results=text]{paste0("file://", system.file("doc",
> > "partial-residuals.pdf", package="effects"))}
> >
> > but I'm unable to link to the resulting text string using href{}{} or url{}
> because \Sexpr[etc]{etc.} is treated as verbatim text rather than evaluated.
> >
> > Is there a way around this problem or another approach that works?
> Have you confirmed that a raw file:// url works?  I would be mildly surprised if
> it did, given my understanding of how web browser security works (which is
> patchy, but you should still check before going too far down this path).
> Don't you just need `results=rd` ?
> \Sexpr[results=rd]{paste0("\\url{file://", system.file("doc", "partial-
> residuals.pdf", package="effects"), "}")}
> Hadley
> --
> http://hadley.nz

More information about the R-package-devel mailing list