Go to the first, previous, next, last section, table of contents.


13. Diagnosing problems

You've gone through all the trouble of installing dvips, carefully read all the instructions in this manual, and still can't get something to work. This is all too common, and is usually caused by some broken PostScript application out there. The following sections provide some helpful hints if you find yourself in such a situation.

In all cases, you should attempt to find the smallest file that causes the problem. This will not only make debugging easier, it will also reduce the number of possible interactions among different parts of the system.

13.1 Debug Options

The `-d' flag to dvips is very useful for helping to track down certain errors. The parameter to this flag is an integer that tells what errors are currently being tracked. To track a certain class of debug messages, simply provide the appropriate number given below; if you wish to track multiple classes, sum the numbers of the classes you wish to track. To track all classes, you can use -1 (output is extremely voluminous). Another useful value is 3650, which tracks everything having to do with file searching and opening.

The classes are:

1
specials
2
paths
4
fonts
8
pages
16
headers
32
font compression
64
files
128
memory
256
Kpathsea stat calls
512
Kpathsea hash table lookups
1024
Kpathsea path element expansion
2048
Kpathsea path searches

13.2 No Output At All

If you are not getting any output at all, even from the simplest one-character file (for instance, `\ \bye'), then something is very wrong. Practically any file sent to a PostScript laser printer should generate some output, at the very least a page detailing what error occurred, if any. Talk to your system administrator about downloading a PostScript error handler. (Adobe distributes a good one called `ehandler.ps'.)

It is possible, especially if you are using non-Adobe PostScript, that your PostScript interpreter is broken. Even then it should generate an error message. I've tried to work around as many bugs as possible in common non-Adobe PostScript interpreters, but I'm sure I've missed a few.

If dvips gives any strange error messages, or compilation on your machine generated a lot of warnings, perhaps the dvips program itself is broken. Carefully check the types in `dvips.h' and the declarations in the `Makefile', and try using the debug options to determine where the error occurred.

It is possible your spooler is broken and is misinterpreting the structured comments. Try the `-N' flag to turn off structured comments and see what happens.

13.3 Output Too Small or Inverted

If some documents come out inverted or too small, your spooler is not supplying an end of job indicator at the end of each file. (This happens a lot on small machines that don't have spoolers.) You can force dvips to do this with the `-F' flag, but note that this generates files with a binary character (control-D) in them. You can also try using the `-s' flag to enclose the entire job in a save/restore pair.

13.4 Error Messages From Printer

If your printer returns error messages, the error message gives very good information on what might be going wrong. One of the most common error messages is `bop undefined'. This is caused by old versions of Transcript and other spoolers that do not properly parse the setup section of the PostScript. To fix this, turn off structured comments with the `-N' option, but make sure you get your spooling software updated.

Another error message is `VM exhausted'. (Some printers indicate this error by locking up; others quietly reset.) This is caused by telling dvips that the printer has more memory than it actually does, and then printing a complicated document. To fix this, try lowering the parameter to `m' in the configuration file; use the debug option to make sure you adjust the correct file.

Other errors may indicate that the graphics you are trying to include don't nest properly in other PostScript documents, or any of a number of other possibilities. Try the output on a QMS PS-810 or other Adobe PostScript printer; it might be a problem with the printer itself.

13.5 400 DPI Is Used Instead Of 300 DPI

This common error is caused by not editing the `config.ps' file to reflect the correct resolution for your site. You can use the debug flags (`-d64') to see what files are actually being read.

13.6 Long Documents Fail To Print

This is usually caused by incorrectly specifying the amount of memory the printer has in `config.ps'; see the description above.

13.7 Including Graphics Fails

The reasons why graphics inclusions fail are too numerous to mention. The most common problem is an incorrect bounding box; read the section on bounding boxes and check your PostScript file. Complain very loudly to whoever wrote the software that generated the file if the bounding box is indeed incorrect.

Another possible problem is that the figure you are trying to include does not nest properly; there are certain rules PostScript applications should follow when generating files to be included. The dvips program includes work-arounds for such errors in Adobe Illustrator and other programs, but there are certainly applications that haven't been tested.

One possible thing to try is the `-K' flag, to strip the comments from an included figure. This might be necessary if the PostScript spooling software does not read the structuring comments correctly. Use of this flag will break graphics from some applications, though, since some applications read the PostScript file from the input stream looking for a particular comment.

Any application which generates graphics output containing raw binary (not ASCII hex) will probably fail with dvips.

13.8 Unable to Generate Fonts

This happens a lot if either `MakeTeXPK' hasn't been properly edited and installed, or if the local installation of METAFONT isn't correct.

`MakeTeXPK' must echo the generated filename (and nothing else) to standard output. See section 8. Automatic Font Generation.

If METAFONT isn't found when `MakeTeXPK' is running, then you need to install it. Retrieve it from, e.g., `ftp.cs.umb.edu' in `pub/tex/web2c.tar.gz' and `pub/tex/web.tar.gz'.

If METAFONT runs but generates fonts that are too large (and prints out the name of each character as well as just a character number), then your METAFONT base file probably hasn't been made properly. To make a proper `plain.base', assuming the local mode definitions are contained in `modes.mf' type the following command (assuming UNIX):

inimf "plain; input modes; dump"

Then copy the `plain.base' file from the current directory to where the base files are stored on your system.


Go to the first, previous, next, last section, table of contents.