[R-pkg-devel] How to provide a finalized PDF file in a package?

Henrik Bengtsson henr|k@bengt@@on @end|ng |rom gm@||@com
Tue Jan 21 19:00:14 CET 2020


On Tue, Jan 21, 2020 at 9:40 AM Gábor Csárdi <csardi.gabor using gmail.com> wrote:
>
> Yeah, I agree that it would be the best to have something similar in base R.
>
> Short of that, we could have a short piece of code that you could just
> insert into your package, and it would declare the itself as vignette
> builder, which just does the copying.

Yup, but this is probably something you don't want to introduce to
newcomers, because making a package provide it's own vignette engine
comes with problems too, e.g. the package needs to be installed before
it can be built (sic!) so you need to go an extra mile on, say, Travis
CI for this to work.  Because of this, I've avoided documenting and
mentioning this as an option.  I'm also concerned that it will make it
a pain to refine how vignette engines are meant to in base R if there
are 100's of self-contained vignette engines that need to be updated
first.  Vignette engines are still < 100% defined, e.g. only recently
it was discussed what the output directory of vignette engines should
be (it was assumed that everyone wrote to the current directory).

In case people are not aware, I think it's important to clarify that
any additional package dependencies that a vignette engine introduces
is on the burden of the package developer.  They are only required
when you *build* the package (R CMD build).   They are not required
when install or running the package.  In other words, end-users don't
need to worry about those packages.

/Henrik


>
> G.
>
> On Tue, Jan 21, 2020 at 5:30 PM Henrik Bengtsson
> <henrik.bengtsson using gmail.com> wrote:
> >
> > The R.rsp::asis and R.rsp::tex could easily be pulled out from R.rsp
> > in a standalone package with zero dependencies.  However, it would be
> > better if they could be brought into the 'tools' package.  This is why
> > I never went down the path or making a standalone package (adding yet
> > another package to CRAN).  These two vignette engines are lightweight,
> > very simple, and does not add dependencies etc.  What stops me is the
> > the amount of work it would take to prepare this proposal.  I worry
> > there might be pushbacks because including a static PDF or static HTML
> > produced in another tool discourage the developer from including the
> > actual source document.  The R.rsp::tex engine is less controversial
> > in this sense; it takes the true LaTeX source and builds a PDF
> > vignette using R's built-in LaTeX tools.  Sure, Sweave can be hijacked
> > for pure LaTeX vignettes, but personally I think that's a hack.  If
> > someone is willing to prepare a proposal, I'm happy to help.  The
> > essential parts for R.rsp::asis are:
> >
> > https://github.com/HenrikBengtsson/R.rsp/blob/398d75ccc70a33b75c7cdaecef94a24be0dcbad0/R/xweavetangle.R#L177-L227
> > https://github.com/HenrikBengtsson/R.rsp/blob/398d75ccc70a33b75c7cdaecef94a24be0dcbad0/R/xweavetangle.R#L367-L372
> >
> > The R.rsp::tex parts need a bit more work to entangle from the rest of the code.
> >
> > /Henrik
> >
> > On Tue, Jan 21, 2020 at 9:01 AM Gábor Csárdi <csardi.gabor using gmail.com> wrote:
> > >
> > > Right. Then you _only_ need to install about 5 GBs of software to copy
> > > a PDF file. :/
> > >
> > > I guess if you already have LaTeX and you are sure that it will not
> > > mess up your PDF, then this is another solution.
> > >
> > > Gabor
> > >
> > > On Tue, Jan 21, 2020 at 4:58 PM Ralf Stubner <ralf.stubner using gmail.com> wrote:
> > > [...]
> > > > One can use a Sweave vignette and simply include the real PDF with the
> > > > pdfpages package, c.f.
> > > > https://github.com/RcppCore/Rcpp/blob/master/vignettes/Rcpp-introduction.Rnw
> > > >
> > > > cheerio
> > > > ralf



More information about the R-package-devel mailing list