(PR#4307) Re: [Rd] par(new=T) works differently in pdf vs
postscript if applied before a plot statement. (PR#4037)
Prof Brian Ripley
ripley at stats.ox.ac.uk
Mon Sep 1 21:15:43 MEST 2003
On Mon, 1 Sep 2003, Andrew Robinson wrote:
> Certainly.
>
> postscript("test.ps")
> par(new=T)
> plot(1:10,1:10)
> dev.off()
>
> Produces a postscript image that can be opened. However
But it is not a valid postscript file, and says it has 0 pages.
> pdf("test.pdf")
> par(new=T)
> plot(1:10,1:10)
> dev.off()
>
> produces a pdf that cannot be opened by Latex or xpdf.
Latex cannot open pdf! (You may have meant pdftex, which uses xpdf
internals anyway.) Again, it's not a valid file.
Both are user error. The issue is that your postscript viewer is being
less careful than your pdf one.
The underlying problem is that par(new=TRUE) supresses calling NewPage on
the device, which is not valid if there have been no pages on the device
as yet. That user error needs to be caught at the level of the graphics
engine (Paul M?) and not programmed into each device, if it is to be
caught at all.
Looks like that is possible: Rf_gpptr(dd)->state appears to record whether
a plot has been started.
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-devel
mailing list