[Rd] pdf default version
Marc Schwartz
MSchwartz at mn.rr.com
Sun Sep 17 17:13:52 CEST 2006
On Sat, 2006-09-16 at 20:26 +0100, Prof Brian Ripley wrote:
> On Fri, 15 Sep 2006, Marc Schwartz (via MN) wrote:
>
> > On Fri, 2006-09-15 at 12:12 -0500, Kevin Wright wrote:
> >> R has had the ability to generate pdfs with transparent colors for a
> >> couple of years now using pdf(..., version="1.4").
>
> I presume we are talking about translucency aka semitransparency (alpha
> channel strictly between 0 and 1) here, introduced in R 2.0.0: support for
> col="transparent" is much older.
>
> >> By default, Sweave uses just 'pdf' (without version 1.4), so a hack is
> >> needed when using Sweave to create pdfs with transparent colors. See
> >> http://tolstoy.newcastle.edu.au/R/help/04/11/6655.html
> >>
> >> I would find my work process simpler if R defaulted to generating PDFs
> >> using version="1.4". The help page for R's pdf command says there is
> >> a risk of some older pdf viewers not being able to view newer PDFs.
> >> Does anyone have a feeling for how big a risk this is? I tried for a
> >> while to search google for pdf metadata and the distribution of pdf
> >> documents of different versions, but could find nothing useful to
> >> report.
> >>
> >> The PDF 1.4 specification appears to have been published in November, 2001.
>
> Both C99 and Fortran 90 are older, and compilers for them are not yet
> universally available. Many R users even use older OSes than that date.
> Given Adobe's patchy support for non-popularist OSes, there are lots of
> viewers from quite a while back out there (I found Acroread 4.05 on one of
> our systems without looking very hard). According to Distiller, PDF 1.4
> was introduced in Acrobat 5, and 1.3 is still recommended as the lowest
> common denominator.
>
> >> Is updating pdf() to version="1.4" feasible?
>
> In what sense: it does support that as an option? As the default, no.
>
> >> Discussions on this topic will be watched with interest.
> >>
> >> Kevin Wright
> >
> > Rather than globally changing R, wouldn't it be better to add another
> > option to Sweave?
> >
> > For example, one can already specify 'height' and 'width' arguments for
> > figures, why not a pdf version value?
> >
> > If I am reading it correctly, the relevant code from Sweave.R seems to
> > be within the RweaveLatexRuncode() function:
> >
> > if(options$pdf){
> > pdf(file=paste(chunkprefix, "pdf", sep="."),
> > width=options$width, height=options$height)
> >
> > Could this not be modified to something like:
> >
> > if(options$pdf){
> > pdf(file=paste(chunkprefix, "pdf", sep="."),
> > width=options$width, height=options$height,
> > version = pdf.version)
> >
> > Then the call within the .Rnw file could be something like:
> >
> > <<fig=true,width=6,height=4,pdf.version=1.4,include=false>>=
>
> or even
>
> \SweaveOpts{echo=FALSE, pdf.version=1.4}
Indeed.
> > I am presuming that I am oversimplifying the changes here as I have not
> > looked at the other code that would be affected by this change.
>
> You would need to set a default value, and that's non-trivial due to lack
> of documentation of Sweave options (the internals need to be told that the
> option is NOLOG (non-logical) and not numeric).
Right, I had not reviewed the code where the options are actually set.
> > Comments?
>
> That seems a much better approach, and I've added it for 2.4.0.
>
> Howver, I think the ideal solution is for the driver to keep track
> of the features used and set the version number accordingly. I am not
> sure why Paul did not do it that way (PDF viewers are supposed to ignore
> non-conformant features), as if you use semitransparent colours you would
> presumably like to see them where possible. Also implemented for 2.4.0,
> but with a warning that setting pdf(version=1.4) will suppress.
Terrific. Thank you!
Regards,
Marc
More information about the R-devel
mailing list