[R] Include pre-existing PDF files as vignettes in an R package?

Duncan Murdoch murdoch.duncan at gmail.com
Mon Feb 19 12:25:45 CET 2018

On 19/02/2018 5:47 AM, Michael Hannon wrote:
> Thanks, Duncan.  The files in question are Emacs Org-mode files, and I
> think these are more or less isomorphic to Rmd files, but I haven't
> used Org-mode in a long time, so I think the mapping (Org-mode ==>
> Rmd) would be painful.

If they aren't LaTeX then they won't be able to masquerade as Sweave 
files, so things are more complicated.

I think there are two possibilities.  The better but harder one is to 
write your own "vignette engine".  Section 1.4.2 of the manual describes 
the process, and ?tools::vignetteEngine describes what is needed in your 

The other possibility is to manually edit an inst/doc/index.html file to 
include links to your documents.  They won't be treated as vignettes, 
but at least users will be able to find them.  The other disadvantage of 
this approach is that you'll need to edit it for all vignettes, not just 
the strange ones.

Duncan Murdoch

> -- Mike
> On Mon, Feb 19, 2018 at 1:20 AM, Duncan Murdoch
> <murdoch.duncan at gmail.com> wrote:
>> On 18/02/2018 9:06 PM, Michael Hannon wrote:
>>> Greetings.  The group that I work with has just started using the approach
>>> outlined in Karl Broman's handy primer:
>>>       http://kbroman.org/pkg_primer/pages/vignettes.html
>>> to create vignettes for a couple of R packages.
>>> This works fine as long as we have a current Rmd version of the vignette.
>>> But
>>> we have some old PDF documents that we'd like to include as vignettes as
>>> well.
>>> I'd like to know if there's a way to include such PDF files as vignettes.
>>> We *do* have the source files for the PDF files in question, but it would
>>> be
>>> tedious to convert those source files to Rmd format.
>>> My first thought was simply to add the PDF files to the .../vignettes
>>> subdirectory and run the devtools::build_vignettes() function (mentioned
>>> in
>>> the Broman tutorial), but that doesn't work.  I.e., the PDF files don't
>>> appear
>>> in the list of vignettes for the package.
>>> And after running devtools::build_vignettes I see that there's a lot of
>>> additional stuff in:
>>>       ...lib/R/site-library/<package_name>/...
>>> so I don't see any obvious way to "fool" R into using the PDF files that
>>> haven't gone through the whole knitr/rmarkdown process.  (Not to mention
>>> that
>>> such an approach would be fragile at best.)
>> You don't say what format the source is, but if it is LaTeX, you just need
>> to add some comments at the beginning, rename ending in .Rnw, and R will
>> recognize plain LaTeX files as Sweave vignettes.
>> See the Writing R Extensions manual, section 1.4.
>> Duncan Murdoch
>>> Suggestions welcome.  Thanks.
>>> -- Mike
>>> ______________________________________________
>>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> PLEASE do read the posting guide
>>> http://www.R-project.org/posting-guide.html
>>> and provide commented, minimal, self-contained, reproducible code.

More information about the R-help mailing list