[Rd] Adding .PDF files to a package

Wolfgang Huber huber at ebi.ac.uk
Tue Aug 5 23:33:53 CEST 2008

Wolfgang Huber wrote:
> Rense Nieuwenhuis wrote:
>> Deal all,
>>
>> new as I am to developing packages for R-Project, I apologize on
>> beforehand for questions that are too obvious. I am trying to 'add' a
>> PDF document containing some detailed information to a package.
>>
>> The way I understand the Rexts.pdf document, I should add my .PDF
>> document to the /inst/doc/ folder, and links to the files should be
>> build automatically. However, after building it on MacOSX (10.4) using
>> 'R CMD build' and checking it using 'R CMD check', no links seems to
>> be present. All checks are OK, but no vignette or whatever appears in
>> the help-files of the package.
>>
>> Clearly, I'm missing something. I would really appreciate some
>> pointers on how to integrate an 'additional' pdf file to my package.
>>
>>
>> Rense Nieuwenhuis
>
> Hi Rense
>
> This is probably not the prettiest solution, and I'd be curious about
> better ones from people on this list, but here's one possibility:
>
> 1.) Put your PDF file foo.pdf into the inst/pdfs folder of your package.
>
> 2.) Create a file foo.Rnw with following content in inst/doc
>
> ------------------------------------------
> %\VignetteIndexEntry{The Foo Bar}
> \documentclass{article}
> \begin{document}
> \end{document}
> ------------------------------------------
>
> 3.) Create a Makefile in inst/doc, with contents like:
>
> ---------------------------------------
> all: foo bar
>
> bar: bar.tex
>     pdflatex bar
>     pdflatex bar
>
> foo: foo.tex
>     cp -p ../pdfs/foo.pdf .
> ---------------------------------------

I'd like to add that doing so will frustrate those users that have come
to expect that a vignette is reproducible and can be reproduced by the
user through running Sweave on the source file.

It will depend on your particular context how to best provide for that
(e.g. by telling people how to build your PDF using other tools, or by
explicitly advertising that this is not a reproducible document.)

browseVignettes() and vignette() provide nice standardized ways of
finding vignettes, and they are easily found in the index page of the
package manual pages; perhaps a similarly standardized way of accessing
such additional PDFs etc. without the above subversion of vignette
infrastructure would be the best solution.

Best wishes
Wolfgang