From ripley at stats.ox.ac.uk  Wed Oct  8 12:33:25 2003
From: ripley at stats.ox.ac.uk (Prof Brian D Ripley)
Date: Wed Oct  8 12:32:40 2003
Subject: [Rd] Unpredictable EPS->PDF rotation (PR#4460)
In-Reply-To: <200310081009.h98A9H0P014475@pubhealth.ku.dk>
Message-ID: <Pine.WNT.4.44.0310081131210.3432-100000@gannet.stats.ox.ac.uk>

On Wed, 8 Oct 2003 maechler@stat.math.ethz.ch wrote:

> >>>>> "PD" == Peter Dalgaard BSA <p.dalgaard@biostat.ku.dk>
> >>>>>     on 08 Oct 2003 11:36:52 +0200 writes:
>
>     PD> arnima@u.washington.edu writes:
>     >> Dear r-bugs,
>     >>
>     >> When I create EPS files, they sometimes appear rotated in my LaTeX PDF
>     >> document and sometimes they don't. Two examples:
>     >>
>     >> ## x1.eps is not rotated in LaTeX
>     >> x <- seq(-1, 1, length=100)
>     >> postscript("c:/x1.eps", height=3, width=4,
>     >> horizontal=FALSE, onefile=FALSE, paper="special")
>     >> plot(x, dnorm(x), type="l")
>     >> dev.off()
>     >>
>     >> ## x2.eps is not rotated in LaTeX
>     >> x <- seq(-2, 2, length=100)
>     >> postscript("c:/x2.eps", height=3, width=4,
>     >> horizontal=FALSE, onefile=FALSE, paper="special")
>     >> plot(x, dnorm(x), type="l")
>     >> dev.off()
>     >>
>     >> By LaTeX PDF, I am referring to the dvips->ghostscript pathway, but x2.eps
>     >> also rotates when distilled into PDF outside LaTeX. I have tried
>     >> ghostscript and acrobat, placed on a page or cropped, so the problem does
>     >> not seem to be confounded with particular PDF distillation software.
>     >>
>     >> I'm aware of the pdf() device in R, but EPS files are a widely used format
>     >> to share scientific graphics, often winding up embedded in a PDF document
>     >> at a later point in the hands of an editor.
>     >>
>     >> If at all possible, a more predictable postscript generator would be
>     >> appreciated, where EPS figures would not rotate when embedded in PDF
>     >> documents.
>
>     PD> I can reproduce the effect on RedHat 8, but I'm at a loss as to
>     PD> explain it. The headers and bounding boxes of the two .eps files are
>     PD> identical and to the best of my eyesight they are also using the same
>     PD> coordinate system.
>
> It's definitely unrelated to R.
>
> The "bug" is in newer versions of gs (ghostscript) which does
> rotate plots under some circumstances by default.
>
> Of course, the authors of gs consider this a feature (called
> "AutoRotatePages"), but IMO it's been a very bad design-decision.

I agree, but it copies Distiller which has long done this.  Using
page-by-page as the default (as Distiller does) is particularly annoying.

> Here, we have implemented a workaround by patching the
> "epstopdf" (shell script) (we use the version from teTeX), by
> the following:
>
> --- epstopdf.~1~	2002-04-20 00:00:00.000000000 +0200
> +++ epstopdf	2003-03-13 16:43:53.000000000 +0100
> @@ -182,6 +182,8 @@
>  ### open output file
>  if ($::opt_gs) {
>    my $pipe = "$GS -q -sDEVICE=pdfwrite $GSOPTS " .
> +          "-dAutoRotatePages=/None " . ## MM: <<<< This is the fix I found via google
> +## http://lists.debian.org/debian-tetex-maint/2002/debian-tetex-maint-200202/msg00013.html
>            "-sOutputFile=$OutputFilename - -c quit";
>    debug "Ghostscript pipe:", $pipe;
>    open(OUT,"|$pipe") or error "Cannot open Ghostscript for piped input";
>
> -------------------
>
> I'm interested to hear about more current workarounds /
> "official" ways to deal with this ``cool gs feature'' ..

That is the fix I know, but it can be set in GSView (Windows ...) from the
Properties.

-- 
Brian D. Ripley,                  ripley@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 272860 (secr)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595


[Rd] Unpredictable EPS->PDF rotation (PR#4460)
Prof Brian D Ripley