The Official Dvips Home Page

To get the latest version of dvips, simply get the latest version of teTeX or some other TeX distribution that includes dvips.  For a list of distributions, start at TUG. I no longer support installation of dvips independent of full installation of a TeX distribution.

Contact information

My email address is rokicki@radicaleye.com; please send me email with further questions or suggestions on what to add to this page!

DVIPS Questions and Answers

Q. When I try to import a Type 1 font, dvips gives me an error message or core dumps.

Dvips is rather fragile at importing Type 1 fonts at the moment, especially those created using Fontographer. A new, upcoming release of dvips should help in the future. In the meantime, one thing to try is the -j0 option; this will make your files a bit larger, but may be a reasonable workaround for the interim.

Q. How can I include Frame graphics into TeX documents?

Frame output is not EPSF, and thus cannot be safely included into TeX documents (or any other document preparation system that requires EPSF). The GhostView ps2eps and ps2epsi filters do not fix the problems.

The problems with the Frame PostScript are very extensive. If you must create figures with Frame, then you should delete the following lines, which are probably the most offensive lines:

       FMLevel1 {
               manualfeed {setmanualfeed} if
               /FMdicttop countdictstack 1 add def
               /FMoptop count def
               setpapername
               manualfeed {true} {papersize} ifelse
               {manualpapersize} {false} ifelse
               {desperatepapersize} {false} ifelse
               { (Can't select requested paper size for Frame print job!) FMFAILURE } if
               count -1 FMoptop {pop pop} for
               countdictstack -1 FMdicttop {pop end} for
               }
               {{1 dict dup /PageSize [paperwidth paperheight]put setpagedevice }stopped
               { (Can't select requested paper size for Frame print job!) FMFAILURE } if
                {1 dict dup /ManualFeed manualfeed put setpagedevice } stopped pop }
       ifelse
The following awk script will do this (reading from stdin, writing to stdout):
   awk ' /FMPColor/ { del = 0 } \
         { if (del) { print "%", $0 } else { print $0 }} \
         /xscale exch def/ { del = 1 } '
Note that even with this fix and the ps2eps trick to put the bounding box on the file, you will still not have a legal EPSF file and can expect various and sundry problems, but this will fix the bulk of them.

Q. How can I get my printer to print mirror image pages?

What you want depends on the printer. For some printers the PostScript required is something like

/mirrorprint true store

On others, you need to do something along the lines of

hsize 0 translate -1 1 scale

In either case, this should be wrapped inside of

/bop-hook { } def

and this line should be put in a file called mirrorprint.ps in either your current directory or /usr/lib/tex/ps (or your closest match), and then either

-h mirrorprint.ps

on the command line or

\special{header=mirrorprint.ps}

in the input TeX file.

Q. How can I get landscape to rotate the other direction?

This is known in some circles as `seascape'. To get seascape, either

1. edit your tex.lpro and texc.lpro in the source directory to change:

/landplus90 { false } def % make this true to flip landscape

to

/landplus90 { true } def % make this true to flip landscape

and then remake/install, or

2. make the change in your tex.pro/texc.pro, or else

3. simply add near the top of your document the line

\special{! TeXDict begin /landplus90{true}store end }

Q. How can I get dvips to support duplex printing?

There is no double-side option, per se. It depends on the printer you have and how you want to do it. Does your printer support duplex? What kind of machine are you printing from? If your printer supports duplex and you are printing from a reasonably intelligent machine, there should be an option or click-box on the print submission command or form to select duplex. If the printer does not support duplex, you can use the -A and -B options to print even and odd sets, using -r on one of the sets, and feed it by hand. (Avoiding jams and getting it all right can be tricky, though.)