Index of /macros/generic/epsf

[ICO]NameLast modifiedSizeDescription

[DIR]Parent Directory  -  
[TXT]LICENSE30-Jul-2005 23:00 278  
[TXT]Makefile30-Jul-2005 23:00 1.5K 
[   ]bboxgrid.ps23-Jan-1994 00:00 8.8K 
[   ]epsf-doc.pdf24-Feb-2010 17:46 261K 
[   ]epsf-doc.tex24-Feb-2010 17:46 21K 
[TXT]epsf.sty18-Feb-2011 00:10 26K 
[   ]epsf.tex18-Feb-2011 00:10 26K 
[TXT]fndbadps12-Jan-2003 00:00 1.1K 
[DIR]okay/24-Feb-2010 20:23 -  
[   ]teps.eps22-Jul-2005 23:00 5.3K 
[   ]tepsf.eps22-Jul-2005 23:00 5.4K 
[   ]tepsf1.tex22-Jul-2005 23:00 2.5K 
[   ]tepsf2.ltx22-Jul-2005 23:00 4.1K 
[   ]tepsf3.tex30-Jul-2005 23:00 1.8K 

%% /u/sy/beebe/tex/epsf/epsf-2.7.3/README, Sat Jul 30 18:41:35 2005
%% Edit by Nelson H. F. Beebe <>


The epsf.tex and epsf.sty (identical) files provide for
low-level typesetting of Encapsulated PostScript (EPS)
files, with optional suppression of the figure contents (for
faster display and printing during document development),
optional figure framing, and optional figure labeling.

See the header comments in epsf.tex or epsf.sty files for
usage information.

LaTeX users are cautioned that the graphicx package
documented in the LaTeX Graphics Companion and LaTeX
Companion (2nd ed.) books provides a much more powerful and
general facility, and allows easy switching between
pdf(la)tex and (la)tex without document modification.

Plain TeX and AmSTeX users, however, may find epsf.tex

Testing the package

The test files in the package can be typeset on Unix systems

	make check

You can then view or print the .dvi files to see several
examples of what they are supposed to look like.

If you are in doubt about their appearance when generated at
your site, try the okay/*.dvi files: they were produced by
the package maintainers to illustrate the correct behavior
the package macros.

Problem EPS files

If you experience difficulty in positioning an EPS picture,
and find that it appears in an unexpected location, or in an
incorrect scale or orientation, then it is often the case
that the PostScript is not EPSF-conformant (see the
specification in the references below).  This may be because
it uses forbidden low-level PostScript operators that modify
the PostScript page transformations.  The fndbadps shell
script in the distribution can be used on Unix systems to
search for forbidden operators in EPS files.  If you find
any, you should complain to the author or vendor of the
software that produced the bad EPS files: the EPS
specification has been available since 1992, and is very
clear about what operators are forbidden.

It is sometimes possible to repair problem EPS files by
converting from PostScript to PDF and back to PostScript.
Suitable tools for PostScript to PDF conversion include
Adobe distill, ghostscript ps2pdf, and Frank M. Siegert's
pstill.  For PDF to PostScript conversion, use Adobe
acroread, ghostscript pdf2ps, or your PDF file viewer's
print-to-PostScript-file option.

In bad cases, the only way to deal with a problem EPS file
may be to convert it to a high-resolution bitmap and back to
PostScript, taking care to choose a lossless bitmap format.
This can be done with the NetPBM tools and ghostscript.
These utilities offer a myriad of options, so it is
convenient to combine them in a separate tool that provides
the commonly-needed options: pstopngtops (see the References
section below).

Bounding boxes and clipping

Sometimes the only problem is that the size of the figure is
wrong.  This is usually because the %%BoundingBox comment
that is normally present in the first few lines of the EPS
file is wrong: indeed, most PostScript-producing software
produces nonsensical bounding boxes.

One way to fix this problem is to print your EPS file and
the file from this package on the SAME printer,
overlay them against a light source, and measure the
lower-left and upper-right corner coordinates in big points
(72bp = 1in = 25.4mm) of the picture and then edit the EPS
file to supply the correct coordinates as whole numbers in

	%%BoundingBox: lower-left-x lower-left-y upper-right-x upper-right-y

The PostScript coordinate system is right-handed Cartesian
with the origin at the lower-left page corner.  The reason
that you need the grid provided by is that even
though PostScript defines the coordinate position (0,0) to
be at the lower-left page corner, mechanical limitations
and/or misadjustments in PostScript printers often result in
that point being displaced by as much 1cm in any direction.
Even two identical models of the same printer can differ in
their true page origins!  When you measure the picture
corners of your figure using the output on the
same printer, you eliminate this source of confusion and

A better way to obtain an accurate bounding box is to ask
ghostscript to measure it for you:

	% gs -sDEVICE=bbox -dNOPAUSE
	AFPL Ghostscript 8.51 (2005-04-18)
	Copyright (C) 2005 artofcode LLC, Benicia, CA.  All rights reserved.
	This software comes with NO WARRANTY: see the file PUBLIC for details.
	Loading NimbusSanL-Bold font from /usr/local/share/ghostscript/fonts/n019004l.pfb... 4506264 2452117 1502816 214110 1 done.
	Loading NimbusSanL-Regu font from /usr/local/share/ghostscript/fonts/n019003l.pfb... 4506264 2483411 1522912 220580 1 done.
	%%BoundingBox: 15 18 610 783
	%%HiResBoundingBox: 15.444000 18.395999 609.713981 782.045976

You can then replace the faulty %%BoundingBox comment in
your file with the correct one.

The %%HiResBoundingBox comment is produced and used by some
software, but is nonstandard, and should not be relied on.
The epsf package ignores it, and PostScript printers ignore
all comments (text outside strings from percent to end of

If editing the EPS file is impossible, impractical, or
undesirable, you can supply the correct bounding box as a
square-bracketed optional argument to \epsfbox:

	\epsfbox[30 50 250 270]{filename.eps}

This will override any %%BoundingBox comment in the file,
and if clipping is turned on with \epsfclipon, only material
inside the bounding box will appear in your output.

If you find that the bounding box specification near the
start of the EPS file looks like this:

	%%BoundingBox: (atend)

then search backward from the end of the file to find the
NEAREST %%BoundingBox comment, and then replace the (atend)
comment with the one you just found.  TeX has to read the
EPS file until it finds the %%BoundingBox comment, and the
further it is from the beginning, the longer TeX will take
to find it.  Parsing text in TeX is NOT a fast operation!

Historical note: The bbox device was added to ghostscript at
version 3.68 in April 1996 at the suggestion of Nelson
H. F. Beebe.


Web resources:

	LaTeX graphicx package:

	Pstill (PostScript to PDF conversion tool):

	Aladdin Ghostscript:

	GNU Ghostscript:


		Note: NetPBM has a nonstandard build
		procedure and historically has been very
		painful to build on most Unix systems.  The
		first URL listed provides pointers to binary
		distributions for some platforms that you
		may find easier to install.  Some GNU/Linux
		distributions already have them: if the
		Unix command

			which pngtopnm pnmcrop pnmmargin pnmtops

		reports locations of each those tools, then
		you already have the ones needed for pstopngtops.
		Mac OS X users can most conveniently install NetPBM
		from the ii2 link above.


@String{pub-ADOBE               = "{Adobe Systems Incorporated}"}
@String{pub-ADOBE:adr           = "San Jose, CA, USA"}

@String{pub-AW                  = "Ad{\-d}i{\-s}on-Wes{\-l}ey"}
@String{pub-AW:adr              = "Reading, MA, USA"}

  author =       "Adobe Systems Incorporated",
  title =        "{PostScript} Language Reference Manual",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  edition =      "Second",
  pages =        "viii + 764",
  year =         "1990",
  ISBN =         "0-201-18127-4",
  ISBN-13 =      "978-0-201-18127-2",
  LCCN =         "QA76.73.P67 P67 1990",
  bibdate =      "Sat Oct 28 08:25:15 2000",
  remark =       "Appendix H documents the EPSF 3.0 specification.",

  author =       "{Adobe PostScript Developer Support Group}",
  title =        "{Encapsulated PostScript Files} Specification Version
  number =       "PN LPS5002",
  institution =  pub-ADOBE,
  address =      pub-ADOBE:adr,
  day =          "1",
  month =        may,
  year =         "1992",
  bibdate =      "Sat Jul 30 18:50:43 2005",
  URL =          "",
  note =         "The specification is also published in

  author =       "Michel Goossens and Sebastian Rahtz and Frank
  title =        "The {\LaTeX} Graphics Companion: Illustrating
                 Documents with {\TeX} and {PostScript}",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "xxi + 554",
  year =         "1997",
  ISBN =         "0-201-85469-4",
  ISBN-13 =      "978-0-201-85469-5",
  LCCN =         "Z253.4.L38G663 1997",
  bibdate =      "Fri Jul 11 07:51:47 1997",
  price =        "US\$39.75",
  series =       "Tools and Techniques for Computer Typesetting",
  acknowledgement = ack-nhfb,
  keywords =     "LaTeX (Computer file); Computerized typesetting.;
                 PostScript (Computer program language); Scientific
                 illustration --- Computer programs.; Mathematics
                 printing --- Computer programs.; Technical publishing
                 --- Computer programs.",

  author =       "Frank Mittelbach and Michel Goossens and Johannes
                 Braams and David Carlisle and Chris Rowley and
                 Christine Detig and Joachim Schrod",
  title =        "The {\LaTeX} Companion",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  edition =      "Second",
  pages =        "xxvii + 1090",
  year =         "2004",
  ISBN =         "0-201-36299-6",
  ISBN-13 =      "978-0-201-36299-2",
  LCCN =         "Z253.4.L38 G66 2004",
  bibdate =      "Thu May 20 13:23:24 2004",
  price =        "US\$59.99, CAN\$86.99",
  series =       "Tools and Techniques for Computer Typesetting",
  acknowledgement = ack-nhfb,
  remark =       "Authors listed as: Frank Mittelbach and Michel
                 Goossens with Johannes Braams, David Carlisle, and
                 Chris Rowley, and with contributions by Christine Detig
                 and Joachim Schrod.",