summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvipsk/dvips.info
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/dvipsk/dvips.info')
-rw-r--r--Build/source/texk/dvipsk/dvips.info4797
1 files changed, 4797 insertions, 0 deletions
diff --git a/Build/source/texk/dvipsk/dvips.info b/Build/source/texk/dvipsk/dvips.info
new file mode 100644
index 00000000000..07bdeff39f2
--- /dev/null
+++ b/Build/source/texk/dvipsk/dvips.info
@@ -0,0 +1,4797 @@
+This is dvips.info, produced by makeinfo version 5.1 from dvips.texi.
+
+This manual documents Dvips version 2021.1 (February 2021), a program to
+translate a DVI file into PostScript. You may freely use, modify and/or
+distribute this file.
+INFO-DIR-SECTION TeX
+START-INFO-DIR-ENTRY
+* DVI-to-Postscript: (dvips). Translating TeX DVI files to PostScript.
+* afm2tfm: (dvips)Invoking afm2tfm. Making Type 1 fonts available to TeX.
+* dvips: (dvips)Invoking Dvips. DVI-to-PostScript translator.
+END-INFO-DIR-ENTRY
+
+
+File: dvips.info, Node: Top, Next: Why Dvips, Up: (dir)
+
+Dvips
+*****
+
+This manual documents Dvips version 2021.1 (February 2021), a program to
+translate a DVI file into PostScript. You may freely use, modify and/or
+distribute this file.
+
+* Menu:
+
+* Why Dvips:: Why use Dvips?
+* Installation:: How to compile and install Dvips.
+* Invoking Dvips:: Command-line options, configuration files, etc.
+* Paper size and landscape:: Changing the paper dimensions.
+* Interaction with PostScript:: TeX meets Dvips meets PostScript.
+* PostScript fonts:: Installing and using PostScript fonts.
+* Color:: Using color with Dvips.
+* Index:: General index.
+
+
+File: dvips.info, Node: Why Dvips, Next: Installation, Prev: Top, Up: Top
+
+1 Why use Dvips?
+****************
+
+The Dvips program has a number of features that set it apart from other
+PostScript drivers for TeX. This rather long section describes the
+advantages of using Dvips, and may be skipped if you are just interested
+in learning how to use the program. *Note Installation::, for details
+of compilation and installation.
+
+ The Dvips driver generates excellent, standard PostScript, that can
+be included in other documents as figures or printed through a variety
+of spoolers. The generated PostScript requires very little printer
+memory, so very complex documents with a lot of fonts can easily be
+printed even on PostScript printers without much memory, such as the
+original Apple LaserWriter. The PostScript output is also compact,
+requiring less disk space to store and making it feasible as a transfer
+format.
+
+ Even those documents that are too complex to print in their entirety
+on a particular printer can be printed, since Dvips will automatically
+split such documents into pieces, reclaiming the printer memory between
+each piece.
+
+ The Dvips program supports graphics in a natural way, allowing
+PostScript graphics to be included and automatically scaled and
+positioned in a variety of ways.
+
+ Printers with any resolution are supported, even if they have
+different resolutions in the horizontal and vertical directions. High
+resolution output is supported for typesetters, including an option that
+compresses the bitmap fonts so that typesetter virtual memory is not
+exhausted. This option also significantly reduces the size of the
+PostScript file and decoding in the printer is very fast.
+
+ Missing fonts can be automatically generated if Metafont exists on
+the system, or fonts can be converted from GF to PK format on demand.
+If a font cannot be generated, a scaled version of the same font at a
+different size can be used instead, although Dvips will complain loudly
+about the poor aesthetics of the resulting output.
+
+ One of the most important features is the support of virtual fonts,
+which add an entirely new level of flexibility to TeX. Dvips even comes
+with its own Afm2tfm program that can create the virtual fonts and TeX
+font metric files automatically from Adobe font metric files.
+
+ Source is provided and freely distributable, so adding a
+site-specific feature is possible. Adding such features is made easier
+by the highly modular structure of the program.
+
+ Tom Rokicki wrote and maintains the original Dvips program.
+
+
+File: dvips.info, Node: Installation, Next: Invoking Dvips, Prev: Why Dvips, Up: Top
+
+2 Installation
+**************
+
+Installing Dvips is mostly the same as installing any Kpathsea-using
+program. Therefore, for the basic steps involved, *note
+(kpathsea)Installation::.
+
+ For solutions to common installation problems and information on how
+to report a bug, see the file 'kpathsea/BUGS' (*note (kpathsea)Bugs::).
+For solutions to Dvips-specific problems, *note Debug options::.
+
+ Dvips does require some additional installation, detailed in the
+sections below. Also, to configure color devices, *note Color device
+configuration::.
+
+* Menu:
+
+* config.ps installation:: Printer and site Dvips configuration.
+* PostScript font installation:: Many PostScript fonts are freely available.
+* Ghostscript installation:: A free PostScript interpreter.
+* Diagnosing problems:: Some common runtime difficulties.
+
+
+File: dvips.info, Node: config.ps installation, Next: PostScript font installation, Up: Installation
+
+2.1 'config.ps' installation
+============================
+
+Dvips has its own configuration files: a file 'config.ps' for sitewide
+defaults, and a file 'config.PRINTER' for each printer (output device).
+Since these are site-specific, 'make install' does not create them; you
+must create them yourself.
+
+ (These Dvips configuration files are independent of the Kpathsea
+configuration file 'texmf.cnf' (*note (kpathsea)Config files::).
+
+ Dvips configuration files contents and searching are described fully
+in *note Config files::. The simplest way to create a new configuration
+file is to copy and modify the file 'dvipsk/contrib/config.proto',
+seasoning with options to your taste from *note Config files::. Here is
+'config.proto' for your reading pleasure:
+ % Prototype Dvips configuration file. (Public domain.)
+
+ % How to print, maybe with lp instead lpr, etc.
+ o |lpr
+
+ % Default resolution of this device, in dots per inch.
+ D 600
+
+ % Metafont mode. (This is completely different from the -M command-line
+ % option, which controls whether MakeTeXPK is invoked.) Get
+ % <ftp://ftp.tug.org/tex/modes.mf> for a list of mode names. This mode
+ % and the D number above must agree, or MakeTeXPK will get confused.
+ M ljfour
+
+ % Memory available. Download the three-line PostScript file:
+ % %! Hey, we're PostScript
+ % /Times-Roman findfont 30 scalefont setfont 144 432 moveto
+ % vmstatus exch sub 40 string cvs show pop showpage
+ % to determine this number. (It will be the only thing printed.)
+ m 3500000
+
+ % Correct printer offset. You can use testpage.tex from the LaTeX
+ % distribution to find these numbers. Print testpage.dvi more than once.
+ O 0pt,0pt
+
+ % Partially download Type 1 fonts by default. Only reason not to do
+ % this is if you encounter bugs. (Please report them to
+ % <tex-k@tug.org> if you do.)
+ j
+
+ % Also look for fonts at these resolutions.
+ R 300 600
+
+ % With a high resolution and a RISC cpu, better to compress the bitmaps.
+ Z
+
+ % Uncomment these if you have and want to use PostScript versions of the
+ % fonts.
+ %p +cmfonts.map
+ %p +lafonts.map
+ %p +cyrfonts.map
+ %p +eufonts.map
+
+ % To include another configuration file here.
+ %c FILENAME
+
+ % You will also want definitions for alternative paper sizes -- A4,
+ % legal, and such. Examples in contrib/papersize.level2 and
+ % contrib/papersize.simple.
+
+
+File: dvips.info, Node: PostScript font installation, Next: Ghostscript installation, Prev: config.ps installation, Up: Installation
+
+2.2 PostScript font installation
+================================
+
+To use PostScript fonts with TeX and Dvips, you need both metric files
+('.tfm' and '.vf') and the outlines ('.pfa' or '.pfb'). *Note Font
+concepts::. Current TeX systems come with support for 35 base
+PostScript fonts and many more.
+
+ If you have additional PostScript fonts, you can make them available
+to Dvips by (1) giving them appropriate filenames; and (2) running
+Afm2tfm (*note Making a font available::) to make TFM and VF metrics for
+TeX and Dvips to use. Also add them to 'psfonts.map' (*note
+psfonts.map::); this file must contain everything available in the
+system. The 'updmap' program is usually used to maintain 'psfonts.map';
+run 'updmap --help' for lots of information about how it works.
+
+
+File: dvips.info, Node: Ghostscript installation, Next: Diagnosing problems, Prev: PostScript font installation, Up: Installation
+
+2.3 Ghostscript installation
+============================
+
+Ghostscript is a PostScript interpreter freely available to end-users,
+originally written by Peter Deutsch. It can read the PostScript
+produced by Dvips and render it on your monitor, or for another device
+(e.g., an Epson printer) that does not support PostScript, or in PDF
+format. The latest version is available via <https://ghostscript.com>.
+
+ The program Ghostview, originally written by Johannes Plass and Tim
+Theisen, provides typical previewing capabilities (next page/previous
+page, magnification, etc.). It requires Ghostscript to run, and files
+in structured Postscript, specifically with '%%Page' comments (no 'N' in
+'config.ps'). The current version is known as GV, and is available from
+<https://www.gnu.org/software/gv>.
+
+
+File: dvips.info, Node: Diagnosing problems, Prev: Ghostscript installation, Up: Installation
+
+2.4 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. The following sections provide some helpful hints if you find
+yourself in such a situation.
+
+ For details on effective bug reporting, common installation problems,
+and 'mktexpk' problems, *note (kpathsea)Bugs::.
+
+ A good first debugging operation is to set the environment variable
+'DVIPSDEBUG', which will display any configuration and map files read by
+Dvips. This way you can be sure it's finding the files and settings you
+expect.
+
+* Menu:
+
+* Debug options:: Getting diagnostics.
+* No output:: No output at all.
+* Small or inverted:: Output too small or inverted.
+* Printer errors:: The printer sends back errors.
+* Long documents fail:: Long documents fail to print.
+* Including graphics fails:: Figures don't work.
+
+
+File: dvips.info, Node: Debug options, Next: No output, Up: Diagnosing problems
+
+2.4.1 Debug options
+-------------------
+
+The '-d' flag to Dvips helps in tracking 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,
+specify 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'.
+
+ You can also set the environment variable 'KPATHSEA_DEBUG' instead of
+using '-d'. Some of these debugging options are actually provided by
+Kpathsea (*note (kpathsea)Debugging::).
+
+ The classes are:
+
+1
+ specials
+2
+ paths
+4
+ fonts
+8
+ pages
+16
+ headers
+32
+ font compression
+64
+ files
+128
+ (omitted)
+256
+ config files
+512
+ Kpathsea 'stat' calls
+1024
+ Kpathsea hash table lookups
+2048
+ Kpathsea path element expansion
+4096
+ Kpathsea path searches
+
+
+File: dvips.info, Node: No output, Next: Small or inverted, Prev: Debug options, Up: Diagnosing problems
+
+2.4.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. Dvips tries to work around as many bugs as
+possible in common non-Adobe PostScript interpreters, but doubtless it
+misses a few. PowerPage Revision 1, Interpreter Version 20001.001, on a
+Mitsubishi Shinko CHC-S446i color thermal dye sublimation printer is
+known to be unable to print with any but builtin fonts.
+
+ If Dvips gives any strange error messages, or compilation on your
+machine generated a lot of warnings, perhaps the Dvips program itself is
+broken. Try using the debug options to determine where the error
+occurred (*note Debug options::).
+
+ 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.
+
+
+File: dvips.info, Node: Small or inverted, Next: Printer errors, Prev: No output, Up: Diagnosing problems
+
+2.4.3 Output too small or inverted
+----------------------------------
+
+If some documents come out inverted or too small, probably your spooler
+is not supplying an end of job indicator at the end of each file. (This
+commonly happens on small machines that don't have spoolers.) You can
+force Dvips to do this with the '-F' flag (or 'F' config file option),
+but this generates files with a terminating binary character
+(control-D). You can also try using the '-s' flag (or 's' config file
+option) to enclose the entire job in a save/restore pair. *Note
+Command-line options::, and *note Config files::.
+
+
+File: dvips.info, Node: Printer errors, Next: Long documents fail, Prev: Small or inverted, Up: Diagnosing problems
+
+2.4.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 it'd be best to 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 Dvips
+thinking that the printer has more memory than it actually does, and
+then printing a complicated document. To fix this, try lowering the 'm'
+parameter in the configuration file; use the debug option to make sure
+you adjust the correct file.
+
+ Other errors may indicate you are trying to include graphics that
+don't nest properly in other PostScript documents, among other things.
+Try the PostScript file on a QMS PS-810 or other Adobe PostScript
+printer if you have one, or Ghostscript (*note Ghostscript
+installation::); it might be a problem with the printer itself.
+
+
+File: dvips.info, Node: Long documents fail, Next: Including graphics fails, Prev: Printer errors, Up: Diagnosing problems
+
+2.4.5 Long documents fail to print
+----------------------------------
+
+This is usually caused by incorrectly specifying the amount of memory
+the printer has in the configuration file; see the previous section.
+
+
+File: dvips.info, Node: Including graphics fails, Prev: Long documents fail, Up: Diagnosing problems
+
+2.4.6 Including graphics fails
+------------------------------
+
+The most common problem with including graphics is an incorrect bounding
+box (*note Bounding box::). Complain 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
+must 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 which strips the comments
+from an included figure. This might be necessary if the PostScript
+spooling software does not read the structured 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.
+
+
+File: dvips.info, Node: Invoking Dvips, Next: Paper size and landscape, Prev: Installation, Up: Top
+
+3 Invoking Dvips
+****************
+
+Dvips reads a DVI file as output by (for example) TeX, and converts it
+to PostScript, taking care of builtin or downloaded PostScript fonts,
+font reencoding, color, etc. These features are described in other
+chapters in this document.
+
+ There many ways to control Dvips' behavior: configuration files,
+environment variables, and command-line options.
+
+* Menu:
+
+* Basic usage::
+* Command-line options::
+* Environment variables::
+* Config files::
+
+
+File: dvips.info, Node: Basic usage, Next: Command-line options, Up: Invoking Dvips
+
+3.1 Basic usage of Dvips
+========================
+
+To use Dvips at its simplest, simply type
+
+ dvips foo
+
+where 'foo.dvi' is the output of TeX that you want to print. The
+default output is to a corresponding file 'foo.ps'; Dvips may also have
+been locally configured to output directly to a printer by default.
+
+ If you use fonts that have not been used on your system before, they
+may be automatically generated; this process can take a few minutes, so
+progress reports appear by default. The next time that document is
+printed, these fonts will have been saved in the proper directories, so
+printing will go much faster. (If Dvips tries to endlessly generate the
+same fonts over and over again, it hasn't been installed properly.
+*Note (kpathsea)Unable to generate fonts::.)
+
+ Many options are available (see the next section). For a brief
+summary of available options, run
+
+ dvips --help
+
+
+File: dvips.info, Node: Command-line options, Next: Environment variables, Prev: Basic usage, Up: Invoking Dvips
+
+3.2 Command-line options
+========================
+
+Dvips has a plethora of command line options. Reading through this
+section will give a good idea of the capabilities of the driver.
+
+* Menu:
+
+* Option summary:: Quick listing, from Dvips -help.
+* Option details:: More information about each option.
+
+
+File: dvips.info, Node: Option summary, Next: Option details, Up: Command-line options
+
+3.2.1 Option summary
+--------------------
+
+Here is a handy summary of the options; it is printed out when you run
+Dvips with no arguments or with the standard '--help' option.
+
+Usage: dvips [OPTION]... FILENAME[.dvi]
+Convert DVI input files to PostScript.
+See http://tug.org/dvips/ for the full manual and other information.
+
+Options:
+-a* Conserve memory, not time -A Print only odd (TeX) pages
+-b # Page copies, for posters e.g. -B Print only even (TeX) pages
+-c # Uncollated copies -C # Collated copies
+-d # Debugging -D # Resolution
+-e # Maxdrift value -E* Try to create EPSF
+-f* Run as filter -F* Send control-D at end
+ -G* Shift low chars to higher pos.
+-h f Add header file
+-i* Separate file per section
+-j* Download fonts partially
+-k* Print crop marks -K* Pull comments from inclusions
+-l # Last page -L* Last special papersize wins
+-m* Manual feed -M* Don't make fonts
+-mode s Metafont device name
+-n # Maximum number of pages -N* No structured comments
+-noomega Disable Omega extensions
+-noptex Disable pTeX extensions
+-o f Output file -O c Set/change paper offset
+-p # First page -P s Load config.$s
+-pp l Print only pages listed
+-q* Run quietly
+-r* Reverse order of pages -R* Run securely
+-s* Enclose output in save/restore -S # Max section size in pages
+-t s Paper format -T c Specify desired page size
+-title s Title in comment
+-u s PS mapfile -U* Disable string param trick
+-v Print version number and quit -V* Send downloadable PS fonts as PK
+-x # Override dvi magnification -X # Horizontal resolution
+-y # Multiply by dvi magnification -Y # Vertical resolution
+-z* Hyper PS -Z* Compress bitmap fonts
+ # = number f = file s = string * = suffix, `0' to turn off
+ c = comma-separated dimension pair (e.g., 3.2in,-32.1cm)
+ l = comma-separated list of page ranges (e.g., 1-4,7-9)
+
+Email bug reports to tex-k@mail.tug.org.
+
+
+File: dvips.info, Node: Option details, Prev: Option summary, Up: Command-line options
+
+3.2.2 Option details
+--------------------
+
+Many of the parameterless options listed here can be turned off by
+suffixing the option with a zero ('0'); for instance, to turn off page
+reversal, use '-r0'. Such options are marked with a trailing '*'.
+
+'-'
+ Read additional options from standard input after processing the
+ command line.
+
+'--help'
+ Print a usage message and exit.
+
+'--version'
+ Print the version number and exit.
+
+'-a*'
+ Conserve memory by making three passes over the DVI file instead of
+ two and only loading those characters actually used. Generally
+ only useful on machines with a very limited amount of memory, like
+ some PCs.
+
+'-A'
+ Print only the odd pages. This option uses TeX page numbers, not
+ physical page numbers.
+
+'-b NUM'
+ Generate NUM copies of each page, but duplicating the page body
+ rather than using the '/#copies' PostScript variable. This can be
+ useful in conjunction with a header file setting 'bop-hook' to do
+ color separations or other neat tricks.
+
+'-B'
+ Print only the even pages. This option uses TeX page numbers, not
+ physical page numbers.
+
+'-bitmapfontenc OPTION'
+ Turns bitmap font encoding to 'off', 'on' (no warnings for missing
+ bitmap font encodings), or 'strict' (with warnings for missing
+ bitmap font encodings).
+
+'-c NUM'
+ Generate NUM consecutive copies of every page, i.e., the output is
+ uncollated. This merely sets the builtin PostScript variable
+ '/#copies'.
+
+'-C NUM'
+ Generate NUM copies, but collated (by replicating the data in the
+ PostScript file). Slower than the '-c' option, but easier on the
+ hands, and faster than resubmitting the same PostScript file
+ multiple times.
+
+'-d NUM'
+ Set the debug flags, showing what Dvips (thinks it) is doing. This
+ will work unless Dvips has been compiled without the 'DEBUG' option
+ (not recommended). *Note Debug options::, for the possible values
+ of NUM. Use '-d -1' as the first option for maximum output.
+
+'-D NUM'
+ Set both the horizontal and vertical resolution to NUM, given in
+ dpi (dots per inch). This affects the choice of bitmap fonts that
+ are loaded and also the positioning of letters in resident
+ PostScript fonts. Must be between 10 and 10000. This affects both
+ the horizontal and vertical resolution. If a high resolution
+ (something greater than 400 dpi, say) is selected, the '-Z' flag
+ should probably also be used. If you are using fonts made with
+ Metafont, such as Computer Modern, 'mktexpk' needs to know about
+ the value for NUM that you use or Metafont will fail. See the file
+ <ftp://ftp.tug.org/tex/modes.mf> for a list of resolutions and mode
+ names for most devices.
+
+'-e NUM'
+ Maximum drift in pixels of each character from its 'true'
+ resolution-independent position on the page. The default value of
+ this parameter is resolution dependent (it is the number of entries
+ in the list [100, 200, 300, 400, 500, 600, 800, 1000, 1200, 1600,
+ 2000, 2400, 2800, 3200, ...] that are less than or equal to the
+ resolution in dots per inch). Allowing individual characters to
+ 'drift' from their correctly rounded positions by a few pixels,
+ while regaining the true position at the beginning of each new
+ word, improves the spacing of letters in words.
+
+'-E*'
+ Generate an EPSF file with a tight bounding box. This only looks
+ at marks made by characters and rules, not by any included
+ graphics. In addition, it gets the glyph metrics from the TFM
+ file, so characters that print outside their enclosing TFM box may
+ confuse it. In addition, the bounding box might be a bit too loose
+ if the character glyph has significant left or right side bearings.
+ Nonetheless, this option works well enough for creating small EPSF
+ files for equations or tables or the like. (Of course, Dvips
+ output, especially when using bitmap fonts, is resolution-dependent
+ and thus does not make very good EPSF files, especially if the
+ images are to be scaled; use these EPSF files with care.) For
+ multiple page input files, also specify '-i' to get each page as a
+ separate EPSF file; otherwise, all the pages are overlaid in the
+ single output file.
+
+'-f*'
+ Run as a filter. Read the DVI file from standard input and write
+ the PostScript to standard output. The standard input must be
+ seekable, so it cannot be a pipe. If your input must be a pipe,
+ write a shell script that copies the pipe output to a temporary
+ file and then points Dvips at this file. This option also disables
+ the automatic reading of the 'PRINTER' environment variable; use
+ '-P$PRINTER' after the '-f' to read it anyway. It also turns off
+ the automatic sending of control-D if it was turned on with the
+ '-F' option or in the configuration file; use '-F' after the '-f'
+ to send it anyway.
+
+'-F*'
+ Write control-D (ASCII code 4) as the very last character of the
+ PostScript file. This is useful when Dvips is driving the printer
+ directly instead of working through a spooler, as is common on
+ personal systems. On systems shared by more than one person, this
+ is not recommended.
+
+'-G*'
+ Shift non-printing characters (ASCII 0-32, 127) to higher-numbered
+ positions. This was useful to work around bugs in old versions of
+ Adobe's PDF reader. It's more likely to cause problems nowadays.
+
+'-h NAME'
+ Prepend NAME as an additional header file, or, if NAME is '-',
+ suppress all header files. Any definitions in the header file get
+ added to the PostScript 'userdict'.
+
+'-i*'
+ Make each section be a separate file; a "section" is a part of the
+ document processed independently, most often created to avoid
+ memory overflow. The filenames are created replacing the suffix of
+ the supplied output file name by a three-digit sequence number.
+ This option is most often used in conjunction with the '-S' option
+ which sets the maximum section length in pages; if '-i' is
+ specified and '-S' is not, each page is output as a separate file.
+ For instance, some phototypesetters cannot print more than ten or
+ so consecutive pages before running out of steam; these options can
+ be used to automatically split a book into ten-page sections, each
+ to its own file.
+
+ On the other hand, if your document uses very large fonts or very
+ large included figures, Dvips might take it upon itself to split
+ the output into unwanted sections, to try to avoid overflowing
+ printer memory. *Note Headers and memory usage::, for ways to
+ handle this.
+
+'-j*'
+ Download only needed characters from Type 1 fonts. This is the
+ default in the current release. Some debugging flags trace this
+ operation (*note Debug options::). You can also control partial
+ downloading on a per-font basis (*note psfonts.map::).
+
+'-k*'
+ Print crop marks. This option increases the paper size (which
+ should be specified, either with a paper size special or with the
+ '-T' option) by a half inch in each dimension. It translates each
+ page by a quarter inch and draws cross-style crop marks. It is
+ mostly useful with typesetters that can set the page size
+ automatically. This works by downloading 'crop.pro'.
+
+'-K*'
+ Remove comments in included PostScript graphics, font files, and
+ headers; only necessary to get around bugs in spoolers or
+ PostScript post-processing programs. Specifically, the '%%Page'
+ comments, when left in, often cause difficulties. Use of this flag
+ can cause other graphics to fail, however, since the PostScript
+ header macros from some software packages read portion the input
+ stream line by line, searching for a particular comment.
+
+'-l [=]NUM'
+ The last page printed will be the first one numbered NUM. Default
+ is the last page in the document. If NUM is prefixed by an equals
+ sign, then it (and the argument to the '-p' option, if specified)
+ is treated as a physical (absolute) page number, rather than a
+ value to compare with the TeX '\count0' values stored in the DVI
+ file. Thus, using '-l =9' will end with the ninth page of the
+ document, no matter what the pages are actually numbered.
+
+'-L*'
+ By default or with '-L1', the last 'papersize' special wins; with
+ '-L0', the first special wins. *Note 'papersize' special::.
+
+'-m*'
+ Specify manual feed, if supported by the output device.
+
+'-mode MODE'
+ Use MODE as the Metafont device name for path searching and font
+ generation. This overrides any value from configuration files.
+ With the default paths, explicitly specifying the mode also makes
+ the program assume the fonts are in a subdirectory named MODE.
+ *Note TeX directory structure: (kpathsea)TeX directory structure.
+ If Metafont does not understand the MODE name, see *note
+ (kpathsea)Unable to generate fonts::.
+
+'-M*'
+ Turns off automatic font generation ('mktexpk'). If 'mktexpk', the
+ invocation is appended to a file 'missfont.log' (by default) in the
+ current directory. You can then execute the log file to create the
+ missing files after fixing the problem. If the current directory
+ is not writable and the environment variable or configuration file
+ value 'TEXMFOUTPUT' is set, its value is used. Otherwise, nothing
+ is written. The name 'missfont.log' is overridden by the
+ 'MISSFONT_LOG' environment variable or configuration file value.
+
+'-n NUM'
+ Print at most NUM pages. Default is 100000.
+
+'-N*'
+ Turns off generation of structured comments such as '%%Page'; this
+ may be necessary on some systems that try to interpret PostScript
+ comments in weird ways, or on some PostScript printers. Old
+ versions of TranScript in particular cannot handle modern
+ Encapsulated PostScript. Beware: This also disables page movement,
+ etc., in PostScript viewers such as Ghostview.
+
+'-noomega'
+ Disable the use of Omega extensions when interpreting DVI files.
+ By default, the additional opcodes '129' and '134' are recognized
+ by Dvips as Omega or pTeX extensions and interpreted as requests to
+ set 2-byte characters.
+
+'-noptex'
+ Disable the use of pTeX extensions when interpreting DVI files. By
+ default, the additional opcodes '130' and '135' are recognized by
+ Dvips as Omega extensions and interpreted as requests to set 3-byte
+ characters, and '255' as request to change the typesetting
+ direction.
+
+ The only drawback is that the virtual font array will (at least
+ temporarily) require 65536 or more positions instead of the default
+ 256 positions, i.e., the memory requirements of Dvips will be
+ somewhat larger. If you find this unacceptable or encounter
+ another problem with the Omega or pTeX extensions, you can switch
+ off the pTeX extension by using '-noptex', or both by using
+ '-noomega' (but please do send a bug report if you find such
+ problems, *note (kpathsea)Bugs::).
+
+'-o NAME'
+ Send output to the file NAME. If '-o' is specified without NAME
+ (i.e., it is the last thing on the command line), the default is
+ 'FILE.ps' where the input DVI file was 'FILE.dvi'. If '-o' isn't
+ given at all, the configuration file default is used.
+
+ If NAME is '-', output goes to standard output. If the first
+ character of NAME is '!' or '|', then the remainder will be used as
+ an argument to 'popen'; thus, specifying '|lpr' as the output file
+ will automatically queue the file for printing as usual. (The
+ MS-DOS version will print to the local printer device 'PRN' when
+ NAME is '|lpr' and a program by that name cannot be found.)
+
+ '-o' disables the automatic reading of the 'PRINTER' environment
+ variable, and turns off the automatic sending of control-D. See the
+ '-f' option for how to override this.
+
+'-O X-OFFSET,Y-OFFSET'
+ Move the origin by X-OFFSET,Y-OFFSET, a comma-separated pair of
+ dimensions such as '.1in,-.3cm' (*note 'papersize' special::). The
+ origin of the page is shifted from the default position (of one
+ inch down, one inch to the right from the upper left corner of the
+ paper) by this amount. This is usually best specified in the
+ printer-specific configuration file.
+
+ This is useful for a printer that consistently offsets output pages
+ by a certain amount. You can use the file 'testpage.tex' to
+ determine the correct value for your printer. Be sure to do
+ several runs with the same 'O' value--some printers vary widely
+ from run to run.
+
+ If your printer offsets every other page consistently, instead of
+ every page, your best recourse is to use 'bop-hook' (*note
+ PostScript hooks::).
+
+'-p [=]NUM'
+ The first page printed will be the first one numbered NUM. Default
+ is the first page in the document. If NUM is prefixed by an equals
+ sign, then it (and the argument to the '-l' option, if specified)
+ is treated as a physical (absolute) page number, rather than a
+ value to compare with the TeX '\count0' values stored in the DVI
+ file. Thus, using '-p =3' will start with the third page of the
+ document, no matter what the pages are actually numbered.
+
+'-pp FIRST-LAST'
+ Print pages FIRST through LAST; equivalent to '-p FIRST -l LAST',
+ except that multiple '-pp' options accumulate, unlike '-p' and
+ '-l'. The '-' separator can also be ':'.
+
+'-P PRINTER'
+ Read the configuration file 'config.PRINTER' ('PRINTER.cfg' on
+ MS-DOS), which typically sets the output name (most likely 'o |lpr
+ -PPRINTER'), resolution, Metafont mode, and perhaps other
+ printer-specific defaults. It works best to put sitewide defaults
+ in the one master 'config.ps' file and only things that vary from
+ printer to printer in the 'config.PRINTER' files; 'config.ps' is
+ read before 'config.PRINTER'.
+
+ A configuration file for eventual creation of Adobe PDF files is
+ provided in 'config.pdf' and thus can be loaded with '-Ppdf'. It
+ will try to include Type 1 outline fonts into the PostScript file
+ (*note Hypertext caveats::).
+
+ If no '-P' or '-o' is given, the environment variable 'PRINTER' is
+ checked. If that variable exists, and a corresponding
+ 'config.PRINTER' ('PRINTER.cfg' on MS-DOS) file exists, it is read.
+ *Note Configuration file searching::.
+
+'-q*'
+ Run quietly. Don't chatter about pages converted, etc., and report
+ no warnings (only errors) to standard error.
+
+'-r*'
+ Output pages in reverse order. By default, page 1 is output first.
+
+'-R'
+ Run securely. '-R2' disables both shell command execution in
+ '\special' (via '`', *note Dynamic creation of graphics::) and
+ config files (via the 'E' option, *note Configuration file
+ commands::) and opening of any absolute or '..'-relative filenames.
+ '-R1', the default, forbids shell escapes but allows absolute
+ filenames. '-R0' allows both.
+
+'-s*'
+ Enclose the output in a global save/restore pair. This causes the
+ file to not be truly conformant, and is thus not recommended, but
+ is useful if you are driving a deficient printer directly and thus
+ don't care too much about the portability of the output to other
+ environments.
+
+'-S NUM'
+ Set the maximum number of pages in each 'section'. This option is
+ most commonly used with the '-i' option; see its description above
+ for more information.
+
+'-t PAPERTYPE'
+ Set the paper type to PAPERTYPE, usually defined in one of the
+ configuration files, along with the appropriate PostScript code to
+ select it (*note Config file paper sizes::).
+ - You can also specify a PAPERTYPE of 'landscape', which rotates
+ a document by 90 degrees.
+ - To rotate a document whose paper type is not the default, you
+ can use the '-t' option twice, once for the paper type, and
+ once for 'landscape'.
+ - In general, you should not use any '-t' option when using a
+ 'papersize' special, which some LaTeX packages (e.g.,
+ 'hyperref') insert.
+ - One exception is when using a nonstandard paper size that is
+ not already defined in 'config.ps'; in this case, you need to
+ specify '-t unknown'.
+ - Another exception is when producing multi-page files for
+ further processing; use '-t nopaper' to omit any paper size
+ information in the output. (If you just have a single page
+ document, you can use '-E' to get pure EPSF output.)
+
+'-title STRING'
+ Use STRING as the title in the generated PostScript ('%%Title').
+ If not specified, the default is the basename of the input file;
+ for example, running 'dvips /foo/bar.dvi' will have a '%%Title' of
+ 'bar.dvi'.
+
+'-T HSIZE,VSIZE'
+ Set the paper size to (HSIZE,VSIZE), a comma-separated pair of
+ dimensions such as '.1in,-.3cm' (*note 'papersize' special::). It
+ overrides any paper size special in the DVI file. Be careful, as
+ the paper size will stick to a predefined size if there is one
+ close enough. To disable this behavior, use '-tunknown'.
+
+'-u PSMAPFILE'
+ Set PSMAPFILE to be the file that dvips uses for looking up
+ PostScript font aliases. If PSMAPFILE begins with a '+' character,
+ then the rest of the name is used as the name of the map file, and
+ the map file is appended to the list of map files (instead of
+ replacing the list). In either case, if the name has no extension,
+ then '.map' is added at the end.
+
+'-U*'
+ Disable a PostScript virtual memory-saving optimization that stores
+ the character metric information in the same string that is used to
+ store the bitmap information. This is only necessary when driving
+ the Xerox 4045 PostScript interpreter, which has a bug that puts
+ garbage on the bottom of each character. Not recommended unless
+ you must drive this printer.
+
+'-v'
+ Print the dvips version number and exit.
+
+'-V*'
+ Download non-resident PostScript fonts as bitmaps. This requires
+ use of 'mtpk' or 'gsftopk' or 'pstopk' or some combination thereof
+ to generate the required bitmap fonts; these programs are supplied
+ with Dvips. The bitmap must be put into 'psfonts.map' as the
+ downloadable file for that font. This is useful only for those
+ fonts for which you do not have real outlines, being downloaded to
+ printers that have no resident fonts, i.e., very rarely.
+
+'-x NUM'
+ Set the magnification ratio to NUM/1000. Overrides the
+ magnification specified in the DVI file. Must be between 10 and
+ 100000. It is recommended that you use standard magstep values
+ (1095, 1200, 1440, 1728, 2074, 2488, 2986, and so on) to help
+ reduce the total number of PK files generated. NUM may be a real
+ number, not an integer, for increased precision.
+
+'-X NUM'
+ Set the horizontal resolution in dots per inch to NUM.
+
+'-y NUM'
+ Set the magnification ratio to NUM/1000 times the magnification
+ specified in the DVI file. See '-x' above.
+
+'-Y NUM'
+ Set the vertical resolution in dots per inch to NUM.
+
+'-z*'
+ Pass 'html' hyperdvi specials through to the output for eventual
+ distillation into PDF. This is not enabled by default to avoid
+ including the header files unnecessarily, and use of temporary
+ files in creating the output. *Note Hypertext::.
+
+'-Z*'
+ Compress bitmap fonts in the output file, thereby reducing the size
+ of what gets downloaded. Especially useful at high resolutions or
+ when very large fonts are used. May slow down printing, especially
+ on early 68000-based PostScript printers. Generally recommend
+ today, and can be enabled in the configuration file (*note
+ Configuration file commands::).
+
+
+File: dvips.info, Node: Environment variables, Next: Config files, Prev: Command-line options, Up: Invoking Dvips
+
+3.3 Environment variables
+=========================
+
+Dvips looks for many environment variables, to define search paths and
+other things. The path variables are read as needed, after all
+configuration files are read, so they override values in the
+configuration files. (Except for 'TEXCONFIG', which defines where the
+configuration files themselves are found.)
+
+ *Note (kpathsea)Path specifications::, for details of interpretation
+of path and other environment variables common to all Kpathsea-using
+programs. Only the environment variables specific to Dvips are
+mentioned here.
+
+'DVIPSDEBUG'
+ Write the absolute path names of any configuration or map files to
+ standard output, for debugging. This isn't done by default because
+ these files are read even before the banner is printed. For
+ voluminous additional debugging, set the environment variable
+ 'KPATHSEA_DEBUG' to '-1' (*note (kpathsea)Debugging::). (If
+ 'KPATHSEA_DEBUG' is set to any value, it automatically turns on
+ 'DVIPSDEBUG'.)
+
+'DVIPSFONTS'
+ Default path to search for all fonts. Overrides all the font path
+ config file options and other environment variables (*note
+ (kpathsea)Supported file formats::).
+
+'DVIPSHEADERS'
+ Default path to search for PostScript header files. Overrides the
+ 'H' config file option (*note Configuration file commands::).
+
+'DVIPSMAKEPK'
+ Overrides 'mktexpk' as the name of the program to invoke to create
+ missing PK fonts. You can change the arguments passed to the
+ 'mktexpk' program with the 'MAKETEXPK' environment variable; *note
+ (kpathsea)MakeTeX script arguments::.
+
+'DVIPSRC'
+ Specifies the name of the startup file (*note Configuration file
+ searching::) which is read after 'config.ps' but before any
+ printer-specific configuration files.
+
+'DVIPSSIZES'
+ Last-resort sizes for scaling of unfound fonts. Overrides the 'R'
+ definition in config files (*note Configuration file commands::).
+
+'PRINTER'
+ Determine the default printer configuration file. (Dvips itself
+ does not use 'PRINTER' to determine the output destination in any
+ way.)
+
+'TEXCONFIG'
+ Path to search for Dvips' 'config.PRINTER' configuration files,
+ including the base 'config.ps'. Using this single environment
+ variable, you can override everything else. (The printer-specific
+ configuration files are called 'PRINTER.cfg' on MS-DOS, but
+ 'config.ps' is called by that name on all platforms.)
+
+'TEXPICTS'
+ Path to search for included graphics files. Overrides the 'S'
+ config file option (*note Configuration file commands::). If not
+ set, 'TEXINPUTS' is looked for. *Note (kpathsea)Supported file
+ formats::.
+
+
+File: dvips.info, Node: Config files, Prev: Environment variables, Up: Invoking Dvips
+
+3.4 Dvips configuration files
+=============================
+
+This section describes in detail the Dvips-specific 'config.*' device
+configuration files (called '*.cfg' on MS-DOS), which override the
+'texmf.cnf' configuration files generic to Kpathsea which Dvips also
+reads (*note (kpathsea)Config files::).
+
+ For information about installing these files, including a prototype
+file you can copy, *note config.ps installation::.
+
+* Menu:
+
+* Configuration file searching:: Where config.* files are searched for.
+* Configuration file commands:: What can go in a config.* file.
+
+
+File: dvips.info, Node: Configuration file searching, Next: Configuration file commands, Up: Config files
+
+3.4.1 Configuration file searching
+----------------------------------
+
+The Dvips program loads many different configuration files, so that
+parameters can be set globally across the system, on a per-device basis,
+or individually by each user.
+
+ 1. Dvips first reads (if it exists) 'config.ps'; it is searched for
+ along the path for Dvips configuration files, as described in *note
+ (kpathsea)Supported file formats::.
+
+ 2. A user-specific startup file is loaded, so individual users can
+ override any options set in the global file. The environment
+ variable 'DVIPSRC', if defined, is used as the specification of the
+ startup file. If this variable is undefined, Dvips uses a
+ platform-specific default name. On Unix Dvips looks for the
+ default startup file under the name '$HOME/.dvipsrc', which is in
+ the user's home directory. On MS-DOS and MS-Windows, where users
+ generally don't have their private directories, the startup file is
+ called 'dvips.ini' and it is searched for along the path for Dvips
+ configuration files (as described in *note (kpathsea)Supported file
+ formats::.); users are expected to set this path as they see fit
+ for their taste.
+
+ 3. The command line is read and parsed: if the '-PDEVICE' option is
+ encountered, at that point 'config.DEVICE' is loaded. Thus, the
+ printer configuration file can override anything in the site-wide
+ or user configuration file, and it can also override options in the
+ command line up to the point that the '-P' option was encountered.
+ (On MS-DOS, the printer configuration files are called
+ 'DEVICE.cfg', since DOS doesn't allow more than 3 characters after
+ the dot in filenames.)
+
+ 4. If no '-P' option was specified, and also the '-o' and '-f' command
+ line options were not used, Dvips checks the environment variable
+ 'PRINTER'. If it exists, then 'config.$PRINTER' ('$PRINTER.cfg' on
+ MS-DOS) is loaded (if it exists).
+
+ Because the '.dvipsrc' file is read before the printer-specific
+configuration files, individual users cannot override settings in the
+latter. On the other hand, the 'TEXCONFIG' path can be set to anything,
+so the users can always define their own printer-specific configuration
+files to be found before the system's.
+
+ A few command-line options are treated specially, in that they are
+not overridden by configuration files:
+
+'-D'
+ As well as setting the resolution, this unsets the mode, if the
+ mode was previously set from a configuration file. If
+ 'config.$PRINTER' is read, however, any 'D' or 'M' lines from there
+ will take effect.
+
+'-mode'
+ This overrides any mode setting ('M' line) in configuration files.
+ '-mode' does not affect the resolution.
+
+'-o'
+ This overrides any output setting ('o' line) in configuration
+ files.
+
+ The purpose of these special cases is to (1) minimize the chance of
+having a mismatched mode and resolution (which 'mktexpk' cannot
+resolve), and (2) let command-line options override config files where
+possible.
+
+
+File: dvips.info, Node: Configuration file commands, Prev: Configuration file searching, Up: Config files
+
+3.4.2 Configuration file commands
+---------------------------------
+
+Most of the configuration file commands are similar to corresponding
+command line options, but there are a few exceptions. When they are the
+same, we omit the description here.
+
+ As with command line options, many may be turned off by suffixing the
+letter with a zero ('0').
+
+ Within a configuration file, empty lines, and lines starting with a
+space, asterisk, equal sign, percent sign, or pound sign are ignored.
+There is no provision for continuation lines.
+
+'@ NAME HSIZE VSIZE'
+ Define paper sizes. *Note Config file paper sizes::.
+
+'a*'
+ Memory conservation. Same as '-a', *note Option details::.
+
+'b #COPIES'
+ Multiple copies. Same as '-b', *note Option details::.
+
+'bitmapfontenc OPTION'
+ Turns bitmap font encoding to 'off', 'on' (no warnings for missing
+ bitmap font encodings), or 'strict' (with warnings for missing
+ bitmap font encodings).
+
+'c FILENAME'
+ Include FILENAME as an additional configuration file, read
+ immediately.
+
+'D DPI'
+ Output resolution. Same as '-D', *note Option details::.
+
+'e NUM'
+ Max drift. Same as '-e', *note Option details::.
+
+'E COMMAND'
+ Executes the command listed with 'system'(3); can be used to get
+ the current date into a header file for inclusion, for instance.
+ Possibly dangerous; this may be disabled, in which case a warning
+ will be printed if the option is used (and warnings are not
+ suppressed).
+
+'f*'
+'F'
+ Run as a filter. Same as '-f', *note Option details::.
+
+'G*'
+ Shift low-numbered characters; obsolete. Same as '-G', *note
+ Option details::.
+
+'h HEADER'
+ Prepend HEADER to output. Same as 'h-', *note Option details::.
+
+'H PATH'
+ Use PATH to search for PostScript header files. The environment
+ variable 'DVIPSHEADERS' overrides this.
+
+'i N'
+ Make multiple output files. Same as '-i -S N', *note Option
+ details::.
+
+'j*'
+ Partially download Type 1 fonts. Same as '-j', *note Option
+ details::.
+
+'K*'
+ Remove comments from included PostScript files. Same as '-K',
+ *note Option details::.
+
+'L*'
+ If zero, the first paper size specified is effective, else the
+ last. Same as '-L', *note Option details::.
+
+'m NUM'
+ Declare NUM as the memory available for fonts and strings in the
+ printer. The compile-time default is 180000, but this is typically
+ overridden by 'config.ps' or other configuration files. This value
+ must be accurate if memory conservation and document splitting is
+ to work correctly. To determine this value, send the following
+ file to the printer:
+
+ %! Hey, we're PostScript
+ /Times-Roman findfont 30 scalefont setfont 144 432 moveto
+ vmstatus exch sub 40 string cvs show pop showpage
+
+ The number printed by this file is the total memory free; it is
+ usually best to tell Dvips that the printer has slightly less
+ memory, because many programs download permanent macros that can
+ reduce the memory in the printer. Some systems or printers can
+ dynamically increase the memory available to a PostScript
+ interpreter, in which case this file might return a ridiculously
+ low number; for example, the NeXT computer and Ghostscript. In
+ these cases, a value of, say, 10 million is likely fine.
+
+ To go all out: If NUM is zero or negative, Dvips sets the available
+ memory to a very large number (the maximum integer value in C), the
+ idea being that output is not to a printer and thus no splitting of
+ the output is desirable. The Dvips config file 'config.maxmem' is
+ provided to do this conveniently, namely with 'dvips -Pmaxmem'.
+
+'M MODE'
+ Metafont mode. Same as '-mode', *note Option details::.
+
+'N*'
+ Disable structured comments. Beware: This also turns off
+ displaying page numbers or changing to specific pagenumbers in
+ PostScript viewers. Same as '-N', *note Option details::.
+
+'o NAME'
+ Send output to NAME. Same as '-o', *note Option details::. In the
+ file 'config.foo', a setting like this is probably appropriate:
+ o |lpr -Pfoo
+ The MS-DOS version will emulate spooling to 'lpr' by printing to
+ the local printer device 'PRN' if it doesn't find an executable
+ program by that name in the current directory or along the 'PATH'.
+
+'O XOFF,YOFF'
+ Origin offset. Same as '-O', *note Option details::.
+
+'p [+]NAME'
+ Examine NAME for PostScript font aliases. Default is
+ 'psfonts.map'. This option allows you to specify different
+ resident fonts that different printers may have. If NAME starts
+ with a '+' character, then the rest of the name (after any leading
+ spaces) is used as an additional map file; thus, it is possible to
+ have local map files pointed to by local configuration files that
+ append to the global map file. This can be used for font families.
+
+'P PATH'
+ Use PATH to search for bitmap PK font files is PATH. The
+ 'PKFONTS', 'TEXPKS', 'GLYPHFONTS', and 'TEXFONTS' environment
+ variables override this. *Note (kpathsea)Supported file formats::.
+
+'q*'
+'Q'
+ Run quietly. Same as '-q', *note Option details::.
+
+'r*'
+ Page reversal. Same as '-r', *note Option details::.
+
+'R NUM1 NUM2 ...'
+ Define the list of default resolutions for PK fonts. If a font
+ size actually used in a document is not available and cannot be
+ created, Dvips will scale the font found at the closest of these
+ resolutions to the requested size, using PostScript scaling. The
+ resulting output may be ugly, and thus a warning is issued. To
+ turn this last-resort scaling off, use a line with just the 'R' and
+ no numbers.
+
+ The given numbers must be sorted in increasing order; any number
+ smaller than the preceding one is ignored. This is because it is
+ better to scale a font up than down; scaling down can obliterate
+ small features in the character shape.
+
+ The environment and config file values 'DVIPSSIZES' or 'TEXSIZES'
+ override this configuration file setting.
+
+ If no 'R' settings or environment variables are specified, a list
+ compiled in during installation is used. This default list is
+ defined by the Makefile variable 'default_texsizes', defined in the
+ file 'make/paths.make'.
+
+'s*'
+ Output global save/restore. Same as '-s', *note Option details::.
+
+'S PATH'
+ Use PATH to search for special illustrations (Encapsulated
+ PostScript files or psfiles). The 'TEXPICTS' and then 'TEXINPUTS'
+ environment variables override this.
+
+'T PATH'
+ Use PATH to search for TFM files. The 'TFMFONTS' and then
+ 'TEXFONTS' environment variables overrides this. This path is used
+ for resident fonts and fonts that can't otherwise be found.
+
+'U*'
+ Work around bug in Xerox 4045 printer. Same as '-U', *note Option
+ details::.
+
+'V PATH'
+ Use PATH to search for virtual font files. This may be
+ device-dependent if you use virtual fonts to simulate actual fonts
+ on different devices.
+
+'W [STRING]'
+ If STRING is supplied, write it to standard error after reading all
+ the configuration files; with no STRING, cancel any previous 'W'
+ message. This is useful in the default configuration file to
+ remind users to specify a printer, for instance, or to notify users
+ about special characteristics of a particular printer.
+
+'X NUM'
+ Horizontal resolution. Same as '-X' (*note Option details::).
+
+'Y NUM'
+ Vertical resolution. Same as '-Y' (*note Option details::).
+
+'Z*'
+ Compress bitmap fonts. Same as '-Z' (*note Option details::).
+
+'z*'
+ Disables execution of system commands, like '-R' (*note Option
+ details::). If '-R' is specified on the command line, that takes
+ precedence.
+
+
+File: dvips.info, Node: Paper size and landscape, Next: Interaction with PostScript, Prev: Invoking Dvips, Up: Top
+
+4 Paper size and landscape orientation
+**************************************
+
+Most TeX documents at a particular site are designed to use the local
+standard paper size (letter size in the United States, A4 elsewhere).
+The Dvips program can be customized either sitewide or for a particular
+printer.
+
+ On the other hand, plenty of documents are designed for other paper
+sizes. For instance, you may want to design a document that has the
+long edge of the paper horizontal. This can be useful when typesetting
+booklets, brochures, complex tables, or many other documents. This type
+of paper orientation is called "landscape" orientation (the default
+orientation is called "portrait"). Alternatively, a document might be
+designed for ledger or A3 paper.
+
+ Since the intended paper size in these cases is a document design
+decision, not a printing decision, such information should be given in
+the TeX file and not on the Dvips command line. For this reason, Dvips
+supports a 'papersize' special. It is hoped that this special will
+become standard over time for TeX previewers and other printer drivers.
+
+ Some LaTeX packages, e.g., 'hyperref.sty', write a 'papersize'
+special into the DVI file. In this case, you need not and should not
+attempt to override it manually.
+
+* Menu:
+
+* 'papersize' special:: Specifying the paper size in TeX.
+* Config file paper sizes:: Specifying printer- and site-specific sizes.
+* Paper trays:: Changing paper trays automatically.
+
+
+File: dvips.info, Node: 'papersize' special, Next: Config file paper sizes, Up: Paper size and landscape
+
+4.1 'papersize' special
+=======================
+
+The format of the 'papersize' special is
+
+ \special{papersize=WIDTH,HEIGHT}
+
+WIDTH is the horizontal size of the page, and HEIGHT is the vertical
+size. The dimensions supported are the same as for TeX; namely, in
+(inches), cm (centimeters), mm (millimeters), pt (points), sp (scaled
+points), bp (big points, the same as the default PostScript unit), pc
+(picas), dd (didot points), and cc (ciceros).
+
+ For a US letter size landscape document, the 'papersize' would be:
+ \special{papersize=11in,8.5in}
+
+An alternate specification of 'landscape':
+ \special{landscape}
+
+This is supported for backward compatibility, but it is hoped that
+reventually the 'papersize' comment will dominate.
+
+ Of course, such a '\special' only informs Dvips of the desired paper
+size; you must also adjust '\hsize' and '\vsize' in your TeX document
+typeset to those dimensions.
+
+ When using the 'papersize' special, you generally should not also
+specify '-t' on the command line (*note Option details::). The
+exception is when using a nonstandard paper size that isn't predefined;
+in this case, use '-t unknown'.
+
+ The 'papersize' special must occur somewhere on the first page of the
+document. Some packages, notably 'hyperref', insert this special.
+
+ By default, if a DVI file contains multiple 'papersize' specials, the
+last one wins; this is also the behavior of the 'dvipdfmx' driver. If
+the '-L0' command line option or 'L0' config file command is specified,
+the first special wins--this was the behavior of Dvips prior to the 2017
+release.
+
+
+File: dvips.info, Node: Config file paper sizes, Next: Paper trays, Prev: 'papersize' special, Up: Paper size and landscape
+
+4.2 Configuration file paper size command
+=========================================
+
+The '@' command in a configuration file sets the paper size defaults and
+options. The first '@' command defines the default paper size. It has
+three possible parameters:
+
+ @ [NAME [HSIZE VSIZE]]
+
+ If '@' is specified on a line by itself, with no parameters, it
+instructs Dvips to discard all previous paper size information (possibly
+from another configuration file).
+
+ If three parameters are given, with the first parameter being a name
+and the second and third being a dimension (as in '8.5in' or '3.2cc',
+just like in the 'papersize' special), then the option is interpreted as
+starting a new paper size description, where NAME is the name and HSIZE
+and VSIZE define the horizontal and vertical size of the sheet of paper,
+respectively. For example:
+
+ @ letterSize 8.5in 11in
+
+ If both HSIZE and VSIZE are zero (you must still specify units!) then
+any page size will match. If the '@' character is immediately followed
+by a '+' sign, then the remainder of the line (after skipping any
+leading blanks) is treated as PostScript code to send to the printer,
+presumably to select that particular paper size:
+
+ @ letter 8.5in 11in
+ @+ %%BeginPaperSize: Letter
+ @+ letter
+ @+ %%EndPaperSize
+
+ After all that, if the first character of the line is an exclamation
+point, then the line is put in the initial comments section of the final
+output file; else, it is put in the setup section of the output file.
+For example:
+
+ @ legal 8.5in 14in
+ @+ ! %%DocumentPaperSizes: Legal
+ @+ %%BeginPaperSize: Legal
+ @+ legal
+ @+ %%EndPaperSize
+
+ When Dvips has a paper format name given on the command line, it
+looks for a match by the NAME; when it has a 'papersize' special, it
+looks for a match by dimensions. The best match found (from the paper
+size information in the configuration file) is used. The dimensions
+must match within 5bp.
+
+ If nothing matches, a warning is printed and the first paper size
+with zero dimensions is used; this should be the 'unknown' paper size
+definition mentioned below, resulting in the actual dimensions being
+used.
+
+ Landscape mode for all paper sizes is automatically supported.
+
+ If your printer has a command to set a special paper size, then give
+dimensions of '0in 0in'; the PostScript code that sets the paper size
+can refer to the dimensions the user requested as 'hsize' and 'vsize';
+these will be macros defined in the PostScript that return the requested
+size in default PostScript units. Also, some printers want
+'BeginPaperSize' comments and paper size setting commands; others (such
+as the NeXT) want 'PaperSize' comments and they will handle setting the
+paper size. So paper size entries should typically specify both.
+
+ When using a paper size that is not already defined in 'config.ps',
+you probably want to say '-t unknown' on the command line; the 'unknown'
+paper size definition in 'config.ps' has the requisite PostScript
+incantation to set the PostScript page size, as just described.
+
+ If you want no paper size information in the output at all, use
+'-t nopaper'. This is useful with multi-page output that will be
+processed further. If you just have a single page document, you can use
+'-E' to get pure EPSF output.
+
+ The Perl 5 script 'contrib/configs/mkdvipspapers' in the distribution
+directory may help in determining appropriate paper size definitions.
+
+ Notwithstanding the above, the default 'letter' and 'a4' paper size
+definitions in 'config.ps' execute the 'setpagedevice' operator if it
+exists (it was defined in PostScript Level 2), or the 'letter' or 'a4'
+operator if they exist (they are nonstandard and thus perhaps cause
+failures on certain (unknown) printers). Not executing any page size
+definition at all confuses PostScript conversion programs such as
+'ps2pdf', so we want to execute one if we can.
+
+ The 'letterSize' and 'A4Size' paper size definitions are now synonyms
+for 'letter' and 'a4'.
+
+
+File: dvips.info, Node: Paper trays, Prev: Config file paper sizes, Up: Paper size and landscape
+
+4.3 Paper trays
+===============
+
+Some printers, such as the Hewlett-Packard HP4si, have multiple paper
+trays. You can set up Dvips to take advantage of this using the
+'bop-hook' PostScript variable (*note PostScript hooks::).
+
+ For example, suppose you have an alternate tray stocked with
+letterhead paper; the usual tray has the usual paper. You have a
+document where you want the first page printed on letterhead, and the
+remaining pages on the usual paper. You can create a header file, say
+'firstletterhead.PS', with the following (PostScript) code ('bop-hook'
+is passed the current physical page number, which starts at zero):
+
+ /bop-hook { dup 0 eq { ALTERNATETRAY } { NORMALTRAY } ifelse } def
+
+where ALTERNATETRAY and NORMALTRAY are the appropriate commands to
+select the paper trays. On the 4SI, ALTERNATETRAY is 'statusdict begin
+1 setpapertray end' and NORMALTRAY is 'statusdict begin 0 setpapertray
+end'.
+
+ Then, include the file with either
+ * the '-h' command-line option (*note Option details::); or
+
+ * the 'h' config file option (*note Configuration file commands::);
+ or
+
+ * '\special{header=FILE}' in your TeX document (*note Including
+ headers from TeX: Including headers from TeX.).
+
+
+File: dvips.info, Node: Interaction with PostScript, Next: PostScript fonts, Prev: Paper size and landscape, Up: Top
+
+5 Interaction with PostScript
+*****************************
+
+Dvips supports inclusion of PostScript figure files (e.g., Encapsulated
+PostScript), downloading other header files (e.g., fonts), including
+literal PostScript code, and hypertext.
+
+* Menu:
+
+* PostScript figures:: Including an Encapsulated PostScript figure.
+* Header files:: Downloading extra definitions.
+* Literal PS:: Writing literal PostScript code.
+* Hypertext:: Producing HyperPostScript to make PDF.
+
+
+File: dvips.info, Node: PostScript figures, Next: Header files, Up: Interaction with PostScript
+
+5.1 PostScript figures
+======================
+
+Scaling and including PostScript graphics is a breeze--if the PostScript
+file is correctly formed. Even if it is not, however, the file can
+usually be accommodated with just a little more work.
+
+* Menu:
+
+* Bounding box:: The %%BoundingBox EPS comment.
+* \includegraphics:: The LaTeX \includegraphics macro.
+* EPSF macros:: Including the file in TeX.
+* psfile special:: The basic special.
+* Dynamic creation of graphics:: Handling compressed or generated figures.
+* Fonts in figures:: The %*Font comment.
+
+
+File: dvips.info, Node: Bounding box, Next: \includegraphics, Up: PostScript figures
+
+5.1.1 The bounding box comment
+------------------------------
+
+The most important feature of a good PostScript file from the standpoint
+of including it in another document is an accurate bounding box comment.
+Every well-formed PostScript file has a comment describing where on the
+page the graphic is located, and how big that graphic is.
+
+ This information is given as the lower left and upper right corners
+of the box just enclosing the graphic, and is thus referred to as the
+"bounding box". These coordinates are given in the default PostScript
+units (there are precisely 72 PostScript units to the inch, like TeX big
+points) with respect to the lower left corner of the sheet of paper.
+
+ To see if a PostScript file has a bounding box comment, just look at
+the first few lines of the file. PostScript files are standard ASCII,
+so you can use any text editor to do this. If within the first few
+dozen lines there is a line like
+
+ %%BoundingBox: 25 50 400 300
+
+(with any reasonable numbers), chances are very good that the file is
+Encapsulated PostScript and will work easily with Dvips. If the file
+contains instead a line like
+
+ %%BoundingBox: (atend)
+
+the file is still probably Encapsulated PostScript, but the bounding box
+is given at the end of the file. Dvips needs it at the beginning. You
+can move it with that same text editor, or a simple script. (The
+bounding box is given in this way when the program that generated the
+PostScript couldn't know the size in advance, or was too lazy to compute
+it.)
+
+ If the document lacks a '%%BoundingBox:' altogether, you can
+determine one in a couple of ways. One is to use the 'bbfig' program
+distributed with Dvips in the 'contrib' directory. This can usually
+find the correct bounding box automatically; it works best with
+Ghostscript.
+
+ If the comment looks like this:
+ %%BoundingBox: 0 0 612 792
+
+the graphic claims to take up an entire sheet of paper. This is usually
+a symptom of a bug in the program that generated it.
+
+ The other is to do it yourself: print the file. Now, take a ruler,
+and make the following measurements (in PostScript units, so measure in
+inches and multiply by 72): From the left edge of the paper to the
+leftmost mark on the paper is LLX, the first number. From the bottom
+edge of the paper to the bottommost mark on the paper is LLY, the second
+number. From the left edge of the paper to the rightmost mark on the
+paper is URX, the third number. The fourth and final number, URY, is
+the distance from the bottom of the page to the uppermost mark on the
+paper.
+
+ Once you have the numbers, add a comment of the following form as the
+second line of the document. (The first line should already be a line
+starting with the two characters '%!'; if it is not, the file probably
+isn't PostScript.)
+
+ %%BoundingBox: LLX LLY URX URY
+
+Or, if you don't want to modify the file, you can simply write these
+numbers down in a convenient place and give them in your TeX document
+when you import the graphic, as described in the next section.
+
+ If the document does not have such a bounding box, or if the bounding
+box is given at the end of the document, or the bounding box is wrong,
+please complain to the authors of the software package that generated
+the file.
+
+
+File: dvips.info, Node: \includegraphics, Next: EPSF macros, Prev: Bounding box, Up: PostScript figures
+
+5.1.2 The \includegraphics macro for LaTeX
+------------------------------------------
+
+Once the figure file has a bounding box comment (see the previous
+section) you are ready to import the graphic into a LaTeX document. For
+LaTeX2e, you can use the epsf, graphics or graphicx packages, but the
+last is recommended--it has the most flexible syntax, and is briefly
+described here. Further information can be found in 'grfguide' or
+'epslatex', which should be included in your LaTeX distribution in DVI,
+PDF, or other formats. (If you are still using LaTeX 2.09, use
+epsf.sty).
+
+ Just put the following command into your preamble:
+
+ \usepackage[dvips]{graphicx}
+
+ Depending on your system, a suitable driver setup may already be
+present, so that LaTeX automatically produces DVI files suitable for
+Dvips. In this case you can leave out the '[dvips]' parameter.
+
+ Now, at the point you want to include a file 'foo.eps', enter a line
+such as:
+
+ \includegraphics{foo.eps}
+
+ However, it is usually best to omit the file extension and only use
+
+ \includegraphics{foo}
+
+because then you can process the same LaTeX file with different TeX
+engines or DVI converters if you also provide suitable graphics files
+for them, e.g., 'foo.pdf' or 'foo.png'.
+
+ The \includegraphics command has many options, specified in
+'key=value' syntax, to allow you to resize, rotate or trim the included
+graphic--see 'grfguide' or 'epslatex'. If your file does not have a
+bounding box comment, you can supply the numbers as determined in the
+previous section, in the same order they would have been in a normal
+bounding box comment:
+
+ \includegraphics[bb=100 100 500 500]{foo.ps}
+
+Now, save your changes and run LaTeX and Dvips; the output should have
+your graphic positioned at precisely the point you indicated, occupying
+the proper amount of space.
+
+ PostScript graphics have their origin in the lower left corner.
+Therefore, in TeX, a graphic will occupy a box that extends far above
+the line where it is put in, but has depth zero below it. Combining
+'\includegraphics' with '\parbox' commands or minipages can sometimes be
+confusing when this is not taken into account.
+
+
+File: dvips.info, Node: EPSF macros, Next: psfile special, Prev: \includegraphics, Up: PostScript figures
+
+5.1.3 Using the EPSF macros
+---------------------------
+
+If you are using LaTeX2e, use the 'graphics' or 'graphicx' package.
+*Note \includegraphics::.
+
+ If you are using plain TeX or LaTeX 2.09, you need 'epsf.tex' (for
+plain TeX) and 'epsf.sty' (for LaTeX). For plain TeX, add a line like
+this near the top of your input file:
+
+ \input epsf
+
+If you are using LaTeX 2.09, add the 'epsf' style option, as in:
+
+ \documentstyle[12pt,epsf]{article}
+
+In any case, the above only needs to be done once, no matter how many
+figures you plan to include.
+
+ Now, at the point you want to include a file, enter a line such as:
+
+ \epsffile{foo.eps}
+
+ If you are using LaTeX, you may need to add '\leavevmode' immediately
+before the '\epsffile' command to get certain environments to work
+correctly. If your file does not have a bounding box comment, you can
+supply the numbers as determined in the previous section, in the same
+order they would have been in a normal bounding box comment:
+
+ \epsffile[100 100 500 500]{foo.ps}
+
+Now, save your changes and run TeX and Dvips; the output should have
+your graphic positioned at precisely the point you indicated, occupying
+the proper amount of space.
+
+ The '\epsffile' macro typesets the figure as a TeX '\vbox' at the
+point of the page that the command is executed. By default, the graphic
+will have its 'natural' width (namely, the width of its bounding box).
+The TeX box will have depth zero and its natural height. By default,
+the graphic will be scaled by any DVI magnification in effect, just as
+is everything else in your document. See the next section for more
+information on scaling.
+
+ If you want TeX to report the size of the figure as a message on your
+terminal when it processes each figure, give the command:
+
+ \epsfverbosetrue
+
+* Menu:
+
+* EPSF scaling::
+* EPSF clipping::
+
+
+File: dvips.info, Node: EPSF scaling, Next: EPSF clipping, Up: EPSF macros
+
+5.1.3.1 EPSF scaling
+....................
+
+Usually, you will want to scale an EPSF figure to some size appropriate
+for your document, since its natural size is determined by the creator
+of the EPS file.
+
+ The best way to do this is to assign the desired size to the TeX
+'\epsfxsize' or '\epsfysize' variables, whichever is more convenient for
+you. That is, put
+
+ \epsfxsize=DIMEN
+
+right before the call to '\epsffile'. Then the width of the TeX box
+will be DIMEN and its height will be scaled proportionately. Similarly,
+you can set the vertical size with
+
+ \epsfysize=DIMEN
+
+in which case the height will be set and the width scaled
+proportionally.
+
+ If you set both, both will be honored, but the aspect ratio of the
+included graphic may necessarily be distorted, i.e., its contents
+stretched in one direction or the other.
+
+ You can resize graphics in a more general way by redefining the
+'\epsfsize' macro. '\epsffile' calls this with two parameters: the
+natural horizontal and vertical sizes of the PostScript graphic.
+'\epsfsize' must expand to the desired horizontal size, that is, the
+width of the '\vbox'. Schematically:
+
+ \def\epsfsize#1#2{BODY}
+
+ Some useful definitions of BODY:
+
+'\epsfxsize'
+ This definition (the default) enables the default features listed
+ above, by setting '\epsfxsize' to the same value it had before the
+ macro was called.
+
+'#1'
+ Force the natural size by returning the first parameter (the
+ original width).
+
+'0pt'
+ A special case, equivalent to '#1'.
+
+'0.5#1'
+ Scale to half the natural size.
+
+'\hsize'
+ Scale to the current '\hsize'. (In LaTeX, use '\textwidth' instead
+ of '\hsize'.)
+
+'\ifnum#1>\hsize\hsize\else#1\fi'
+ If the natural width is greater than the current '\hsize', scale to
+ '\hsize', otherwise use the natural width.
+
+ For compatibility with other PostScript drivers, it is possible to
+turn off the default scaling of included figures by the DVI
+magnification with the following TeX command:
+
+ \special{! /magscale false def}
+
+Use of this command is not recommended because it will make the
+'\epsffile' graphics the "wrong" size if global magnification is being
+used, and it will cause any PostScript graphics to appear improperly
+scaled and out of position if a DVI to DVI program is used to scale or
+otherwise modify the document.
+
+ DVI magnification is not applied to any output from code you write in
+'bop-hook' or its ilk (*note PostScript hooks::),
+
+
+File: dvips.info, Node: EPSF clipping, Prev: EPSF scaling, Up: EPSF macros
+
+5.1.3.2 EPSF clipping
+.....................
+
+By default, clipping is disabled for included EPSF images. This is
+because clipping to the bounding box dimensions often cuts off a small
+portion of the figure, due to slightly inaccurate bounding box
+arguments. The problem might be subtle; lines around the boundary of
+the image might be half their intended width, or the tops or bottoms of
+some text annotations might be sliced off. If you want to turn clipping
+on, just use the command
+
+ \epsfclipon
+
+and to turn clipping back off, use
+
+ \epsfclipoff
+
+
+File: dvips.info, Node: psfile special, Next: Dynamic creation of graphics, Prev: EPSF macros, Up: PostScript figures
+
+5.1.4 'psfile' special
+----------------------
+
+The basic special for file inclusion is as follows:
+
+ \special{psfile=FILENAME.ps [KEY=VALUE] ... }
+
+This downloads the PostScript file 'FILENAME.ps' such that the current
+point will be the origin of the PostScript coordinate system. The
+optional KEY=VALUE assignments allow you to specify transformations on
+the PostScript.
+
+ The possible KEYs are:
+
+'hoffset'
+ The horizontal offset (default 0).
+
+'voffset'
+ The vertical offset (default 0).
+
+'hsize'
+ The horizontal clipping size (default 612).
+
+'vsize'
+ The vertical clipping size (default 792).
+
+'hscale'
+ The horizontal scaling factor, as a percentage (default 100).
+
+'vscale'
+ The vertical scaling factor, as a percentage (default 100).
+
+'angle'
+ The rotation, in degrees (default 0).
+
+'clip'
+ Enable clipping to the bounding box (default disabled).
+
+'llx, lly, urx, ury'
+ Bounding box of the included image, just as in a '%%BoundingBox'
+ comment. Values are in big points, and may be fractional.
+
+'rhi, rwi'
+ Desired width and height of the resulting figure in the output, in
+ tenths of big points (720 to the inch); may be fractional.
+
+ If both 'rwi' and 'rhi' are nonzero, the picture is scaled,
+ possibly losing aspect ratio. If only one of 'rwi' and 'rhi' is
+ nonzero, the picture is scaled, preserving aspect ratio.
+
+ The offsets and sizes are given in PostScript units (big points).
+Thus, for example:
+
+ \special{psfile=foo.ps hoffset=72 hscale=90 vscale=90}
+
+will shift the graphics produced by file 'foo.ps' right by one inch and
+will draw it at 0.9 times normal size. Offsets are given relative to
+the point of the special command, and are unaffected by scaling or
+rotation. Rotation is counterclockwise about the origin. The order of
+operations is to rotate the figure, scale it, then offset it.
+
+ For compatibility with older PostScript drivers, it is possible to
+change the units that 'hscale' and 'vscale' are given in. This can be
+done by redefining '@scaleunit' in 'SDict' by a TeX command such as
+
+ \special{! /@scaleunit 1 def}
+
+The '@scaleunit' variable, which is by default 100, is what 'hscale' and
+'vscale' are divided by to yield an absolute scale factor.
+
+
+File: dvips.info, Node: Dynamic creation of graphics, Next: Fonts in figures, Prev: psfile special, Up: PostScript figures
+
+5.1.5 Dynamic creation of PostScript graphics files
+---------------------------------------------------
+
+PostScript is an excellent page description language--but it does tend
+to be rather verbose. Compressing PostScript graphics files can reduce
+them by factor of five or more. For this reason, if the name of an
+included PostScript file ends with '.Z' or '.gz', Dvips automatically
+runs 'gzip -d'. For example:
+
+ \epsffile[72 72 540 720]{foo.ps.gz}
+
+Since the results of such a command are not accessible to TeX, if you
+use this facility with the 'epsf' macros, you need to supply the
+bounding box parameter yourself, as shown.
+
+ More generally, if the filename parameter to one of the graphics
+inclusion techniques starts with a left quote ('`'), the parameter is
+instead interpreted as a command to execute that will send the actual
+file to standard output. For example:
+
+ \special{psfile="`gnuplot foo"}
+
+to include the file 'foo'. Of course, the command to be executed can be
+anything, including using a file conversion utility such as 'tek2ps' or
+whatever is appropriate. This feature can be disabled with the '-R'
+command-line option or 'R' configuration option.
+
+
+File: dvips.info, Node: Fonts in figures, Prev: Dynamic creation of graphics, Up: PostScript figures
+
+5.1.6 Fonts in figures
+----------------------
+
+You can use any font available to TeX and Dvips within a graphics file
+by putting a '%*Font:' line in the leading commentary of the file.
+Schematically, this looks like:
+
+ %*Font: TFMNAME SCALEDBP DESIGNBP HEX-START:HEX-BITSTRING
+
+ Here is the meaning of each of these elements:
+
+TFMNAME
+ The TeX TFM filename, e.g., 'cmr10'. You can give the same TFMNAME
+ on more than one '%*Font' line; this is useful when the number of
+ characters from the font used needs a longer HEX-BITSTRING (see
+ item below) than conveniently fits on one line.
+
+SCALEDBP
+ The size at which you are using the font, in PostScript points (TeX
+ big points). 72bp = 72.27pt = 1in.
+
+DESIGNBP
+ The designsize of the font, again in PostScript points. This
+ should match the value in the TFM file TFMNAME. Thus, for 'cmr10',
+ it should be '9.96265'.
+
+HEX-START
+ The character code of the first character used from the font,
+ specified as two ASCII hexadecimal characters, e.g., '4b' or '4B'
+ for 'K'.
+
+HEX-BITSTRING
+ An arbitrary number of ASCII hexadecimal digits specifying which
+ characters following (and including) HEX-START are used. This is
+ treated as a bitmap. For example, if your figure used the single
+ letter 'K', you would use '4b:8' for HEX-START and HEX-BITSTRING.
+ If it used 'KLMNP', you would use '4b:f4'.
+
+ MetaPost's output figures contain lines like this for bitmap fonts
+used in a MetaPost label (*note (web2c)MetaPost::).
+
+
+File: dvips.info, Node: Header files, Next: Literal PS, Prev: PostScript figures, Up: Interaction with PostScript
+
+5.2 PostScript header files
+===========================
+
+"Header files" are bits of PostScript included in the output file;
+generally they provide support for special features, rather than
+producing any printed output themselves. You can explicitly request
+downloading header files if necessary for some figure, or to achieve
+some special effect.
+
+ Dvips includes some headers on its own initiative, to implement
+features such as PostScript font reencoding, bitmap font downloading,
+handling of '\special''s, and so on. These standard headers are the
+'.pro' files (for "prologue") in the installation directory
+'$(psheaderdir)'; they are created from the '.lpro' ("long prologue")
+files in the distribution by stripping comments, squeezing blank lines,
+etc., for maximum efficiency. If you want to peruse one of the standard
+header files, read the '.lpro' version.
+
+ The PostScript dictionary stack will be at the 'userdict' level when
+header files are included.
+
+* Menu:
+
+* Including headers from TeX::
+* Including headers from the command line::
+* Headers and memory usage::
+
+
+File: dvips.info, Node: Including headers from TeX, Next: Including headers from the command line, Up: Header files
+
+5.2.1 Including headers from TeX
+--------------------------------
+
+In order to get a particular graphic file to work, a certain font or
+header file might need to be sent first. The Dvips program provides
+support for this with the 'header' '\special'. For instance, to ensure
+that 'foo.ps' gets downloaded:
+
+ \special{header=foo.ps}
+
+ As another example, if you have some PostScript code that uses a
+PostScript font not built into your printer, you must download it to the
+printer. If the font isn't used elsewhere in the document, Dvips can't
+know you've used it, so you must include it in the same way, as in:
+
+ \special{header=putr.pfa}
+
+to include the font definition file for Adobe Utopia Roman.
+
+ The 'header' also special allows for specifying some additional code
+that should be inserted into the PostScript document before and after
+the file itself, as follows:
+
+ \special{header={foo.ps} pre={pre code} post={post code}}
+
+ This will insert 'pre code' just before 'foo.ps' and 'post code' just
+after. It is required to use the (balanced) braces in _all_ of the
+arguments, including the 'header', when using this extended syntax.
+
+ This allows, for instance, dynamic headers, where some of the content
+depends on settings from the user in (La)TeX. Another application is
+the inclusion of graphics inside the PostScript header, so that they can
+be reused throughout the document, as with logs. That avoids including
+the same graphic several times. This is implemented in the
+'graphics/graphicx-psmin' package.
+
+ This extended syntax has one additional feature. When Dvips finds
+the extended syntax, it will also look in the installed 'tex/' tree(s)
+for the header file ('foo.ps' in our example), and not only in the
+current directory and dvips tree as the original syntax does. This is
+because common graphics may well come with packages which are installed
+in the 'tex/' tree.
+
+
+File: dvips.info, Node: Including headers from the command line, Next: Headers and memory usage, Prev: Including headers from TeX, Up: Header files
+
+5.2.2 Including headers from the command line
+---------------------------------------------
+
+You can include headers when you run Dvips, as well as from your
+document (see the previous section). To do this, run Dvips with the
+option '-P HEADER'; this will read the file 'config.HEADER', which in
+turn can specify a header file to be downloaded with the 'h' option.
+*Note Configuration file commands::. These files are called
+'HEADER.cfg' on MS-DOS.
+
+ You can arrange for the same file to serve as a '-P' config file and
+the downloadable header file, by starting the lines of PostScript code
+with a space, leaving only the 'h' line and any comments starting in the
+first column. As an example, see 'contrib/volker/config.*'
+('contrib/volker/*.cfg' on MS-DOS). (These files also perform useful
+functions: controlling duplex/simplex mode on duplex printers, and
+setting various screen frequencies; 'contrib/volker/README' explains
+further.)
+
+
+File: dvips.info, Node: Headers and memory usage, Prev: Including headers from the command line, Up: Header files
+
+5.2.3 Headers and memory usage
+------------------------------
+
+Dvips tries to avoid overflowing the printer's memory by splitting the
+output files into "sections" (see the '-i' option in *note Option
+details::). Therefore, for all header files, Dvips debits the printer
+VM budget by some value. If the header file has, in its leading
+commentary a line of the form
+
+ %%VMusage: MIN MAX
+
+then MAX is used. If there is no '%%VMusage' line, then the size (in
+bytes) of the header file is used as an approximation. If you want a
+file to be ignored in the sectioning calculations, use '%%VMusage: 0 0'.
+
+ Illustrations (figure files) are also checked for '%%VMusage' line.
+
+ Therefore, if your document uses very large fonts or very large
+included figures, Dvips might take it upon itself to split the output
+into unwanted sections. If this causes problems, the simplest solution
+is to use 'dvips -Pmaxmem', which reads the Dvips file 'config.maxmem',
+which sets Dvips's idea of the memory available to a very large number.
+(See the 'm' item in *note Configuration file commands::.)
+
+
+File: dvips.info, Node: Literal PS, Next: Hypertext, Prev: Header files, Up: Interaction with PostScript
+
+5.3 Literal PostScript
+======================
+
+You can include literal PostScript code in your document in several
+ways.
+
+* Menu:
+
+* " special:: To include inline PostScript code.
+* ps special:: Inline PostScript without save/restore.
+* Literal headers:: Literal PostScript for the whole document.
+* PostScript hooks:: Specifying code to run in the PS interpreter.
+* Literal examples:: Neat example.
+
+
+File: dvips.info, Node: " special, Next: ps special, Up: Literal PS
+
+5.3.1 '"' special: Literal PostScript
+-------------------------------------
+
+For simple graphics, or just for experimentation, literal PostScript
+code can be included. Simply use a '\special' beginning with a double
+quote character '"'; there is no matching closing '"'.
+
+ For instance, the following (simple) graphic:
+
+ [ picture of a grey triangle ]
+
+was created by typing:
+
+ \vbox to 100bp{\vss % a bp is the same as a PostScript unit
+ \special{" newpath 0 0 moveto 100 100 lineto 394 0 lineto
+ closepath gsave 0.8 setgray fill grestore stroke}}
+
+ You are responsible for leaving space for such literal graphics, as
+with the '\vbox' above.
+
+
+File: dvips.info, Node: ps special, Next: Literal headers, Prev: " special, Up: Literal PS
+
+5.3.2 'ps' special
+------------------
+
+Generally, Dvips encloses specials in a PostScript save/restore pair,
+guaranteeing that the special will have no effect on the rest of the
+document. The 'ps' special, however, allows you to insert literal
+PostScript instructions without this protective shield; you should
+understand what you're doing (and you shouldn't change the PostScript
+graphics state unless you are willing to take the consequences). This
+command can take many forms because it has had a torturous history; any
+of the following will work:
+
+ \special{ps:TEXT}
+ \special{ps::TEXT}
+ \special{ps::[begin]TEXT}
+ \special{ps::[end]TEXT}
+ \special{ps::[nobreak]TEXT}
+
+(with longer forms taking precedence over shorter forms, when they are
+present). 'ps::' and 'ps::[end]' do no positioning, so they can be used
+to continue PostScript literals started with 'ps:' or 'ps::[begin]'.
+
+ Literal PostScript instructions after 'ps::[nobreak]' are _not_
+broken into lines. This feature may be used to include PostScript
+comments, for example.
+
+ In addition, the variant
+
+ \special{ps: plotfile FILENAME}
+
+inserts the contents of FILENAME verbatim into the output (except for
+omitting lines that begin with %). An example of the proper use of
+literal specials can be found in the file 'rotate.tex', which makes it
+easy to typeset text turned in multiples of 90 degrees.
+
+
+File: dvips.info, Node: Literal headers, Next: PostScript hooks, Prev: ps special, Up: Literal PS
+
+5.3.3 Literal headers: '!' '\special'
+-------------------------------------
+
+You can download literal PostScript header code in your TeX document,
+for use with (for example) literal graphics code that you include later.
+The text of a '\special' beginning with an '!' is copied into the output
+file. A dictionary 'SDict' will be current when this code is executed;
+Dvips arranges for 'SDict' to be first on the dictionary stack when any
+PostScript graphic is included, whether literally (the '"' special) or
+through macros (e.g., 'epsf.tex').
+
+ For example:
+
+ \special{! /reset { 0 0 moveto} def}
+
+
+File: dvips.info, Node: PostScript hooks, Next: Literal examples, Prev: Literal headers, Up: Literal PS
+
+5.3.4 PostScript hooks
+----------------------
+
+Besides including literal PostScript at a particular place in your
+document (as described in the previous section), you can also arrange to
+execute arbitrary PostScript code at particular times while the
+PostScript is printing.
+
+ If any of the PostScript names 'bop-hook', 'eop-hook', 'start-hook',
+or 'end-hook' are defined in 'userdict', they will be executed at the
+beginning of a page, end of a page, start of the document, and end of a
+document, respectively.
+
+ When these macros are executed, the default PostScript coordinate
+system and origin is in effect. Such macros can be defined in headers
+added by the '-h' option or the 'header=' special, and might be useful
+for writing, for instance, 'DRAFT' across the entire page, or, with the
+aid of a shell script, dating the document. These macros are executed
+outside of the save/restore context of the individual pages, so it is
+possible for them to accumulate information, but if a document must be
+divided into sections because of memory constraints, such added
+information will be lost across section breaks.
+
+ The single argument to 'bop-hook' is the physical page number; the
+first page gets zero, the second one, etc. 'bop-hook' must leave this
+number on the stack. None of the other hooks are passed arguments.
+
+ As an example of what can be done, the following special will write a
+light grey 'DRAFT' across each page in the document:
+
+ \special{!userdict begin /bop-hook{gsave 200 30 translate
+ 65 rotate /Times-Roman findfont 216 scalefont setfont
+ 0 0 moveto 0.7 setgray (DRAFT) show grestore}def end}
+
+ Using 'bop-hook' or 'eop-hook' to preserve information across pages
+breaks compliance with the Adobe document structuring conventions, so if
+you use any such tricks, you may also want to use the '-N' option to
+turn off structured comments (such as '%%Page'). Otherwise, programs
+that read your file will assume its pages are independent.
+
+
+File: dvips.info, Node: Literal examples, Prev: PostScript hooks, Up: Literal PS
+
+5.3.5 Literal examples
+----------------------
+
+To finish off this section, the following examples of literal PostScript
+are presented without explanation:
+
+ \def\rotninety{\special{ps:currentpoint currentpoint translate 90
+ rotate neg exch neg exch translate}}\font\huge=cmbx10 at 14.4truept
+ \setbox0=\hbox to0pt{\huge A\hss}\vskip16truept\centerline{\copy0
+ \special{ps:gsave}\rotninety\copy0\rotninety\copy0\rotninety
+ \box0\special{ps:grestore}}\vskip16truept
+
+ [ There are 4 'A' characters, each rotated 90 degrees about a common
+center point ]
+
+ \vbox to 2truein{\special{ps:gsave 0.3 setgray}\hrule height 2in
+ width\hsize\vskip-2in\special{ps:grestore}\font\big=cminch\big
+ \vss\special{ps:gsave 1 setgray}\vbox to 0pt{\vskip2pt
+ \line{\hss\hskip4pt NEAT\hss}\vss}\special{ps:0 setgray}%
+ \hbox{\raise2pt\line{\hss NEAT\hss}\special{ps:grestore}}\vss}
+
+ [ There is a big gray box with the word 'NEAT' inside in big letters
+]
+
+ Some caveats are in order, however. Make sure that each 'gsave' is
+matched with a 'grestore' on the same page. Do not use 'save' and
+'restore'; they can interact with the PostScript generated by Dvips if
+care is not taken. Try to understand what the above macros are doing
+before writing your own. The '\rotninety' macro especially has a useful
+trick that appears again and again.
+
+
+File: dvips.info, Node: Hypertext, Prev: Literal PS, Up: Interaction with PostScript
+
+5.4 HyperTeXt
+=============
+
+Dvips has support for producing hypertext PostScript documents. If you
+specify the '-z' option, the 'html:' specials described below will be
+converted into 'pdfmark' PostScript operators to specify links. Without
+'-z', 'html:' specials are ignored.
+
+ The resulting PostScript can then be processed by a distiller program
+to make a PDF file. (It can still be handled by ordinary PostScript
+interpreters as well.) Various versions of both PC and Unix distillers
+are supported; Ghostscript includes limited distiller support (*note
+Ghostscript installation::).
+
+ By far the most common LaTeX package used to create hyperlinked
+output is 'hyperref' (<https://ctan.org/pkg/hyperref>). For plain TeX,
+the Eplain package has some hyperlink support
+(<https://tug.org/eplain>).
+
+ This hypertext support (and original form of the documentation) was
+written by Mark Doyle and Tanmoy Bhattacharya as the 'dvihps' program.
+
+* Menu:
+
+* Hypertext caveats:: Font quality, missing character psi.
+* Hypertext specials:: The details on the specials.
+
+
+File: dvips.info, Node: Hypertext caveats, Next: Hypertext specials, Up: Hypertext
+
+5.4.1 Hypertext caveats
+-----------------------
+
+If you intend to go all the way to PDF, you may want to use the standard
+35 PostScript fonts exclusively, since other fonts are embedded as
+bitmaps by default. The Adobe PDF readers are extremely slow when
+dealing with bitmap fonts and the results look terrible on the screen.
+Printouts will probably look fine, but may not take full advantage of a
+high-resolution printer. Alternatively, you can have your fonts
+embedded as Type 1 scalable outlines. The resulting PostScript files
+may be larger, but can be effectively rasterized at any resolution.
+They can also be converted to PDF files that can be used effectively at
+any screen or printer resolution.
+
+ To get the TeX fonts embedded in the PostScript file as Type 1 fonts,
+add '-Ppdf' to the dvips command line switches. The printout for a run
+should look something like this:
+
+ dvips report -Ppdf -o report.ps
+ This is dvips(k) 5.86 Copyright 1999 Radical Eye Software (www.radicaleye.com)
+ ' TeX output 2001.06.15:0837' -> report.ps
+ <tex.pro><alt-rule.pro><texc.pro><texps.pro><special.pro>.
+ <cmbx9.pfb><cmsy6.pfb><cmsy7.pfb><cmr5.pfb><cmex10.pfb><cmr9.pfb>
+ <cmmi7.pfb><cmsy10.pfb><cmmib10.pfb><cmmi10.pfb><cmti10.pfb>
+ <cmr7.pfb><cmbx10.pfb><cmr10.pfb><cmti9.pfb><cmr12.pfb><cmbx12.pfb>
+ [1] [2<mean1.ps>] [3<bounce1-00.ps>] [4]
+
+ An entry like "<cmr10.pfb>" indicates success: dvips found the
+Computer Modern Roman 10 point font in a PostScript Font Binary file,
+translated it to an ASCII encoding, and embedded it. You can confirm
+this by examining the PostScript output file, looking for the section
+starting '%%BeginFont: CMR10' followed by an entry '/FontType 1 def'.
+
+ The '-Ppdf' option requires that the relevant outline ('.pfa' or
+'.pfb') files be installed (*note Font concepts::). For example, the
+'cmr10' file might be in
+'/usr/share/texmf/fonts/type1/bluesky/cm/cmr10.pfb'. Your TeX
+distribution may make those fonts available in a separate optional
+package (e.g., 'tetex-extra' in Debian). Failing that, commercial
+versions of the Computer Modern fonts are available from Blue Sky;
+public domain versions, in particular, the lm and cm-super font
+families, are available from CTAN and in TeX distributions.
+
+ You can convert a PostScript file to PDF using 'distill', which comes
+with Adobe Acrobat, or 'ps2pdf', which comes with Ghostscript. The
+'ps2pdf' that comes with 'Ghostscript' version 6.0 or earlier will not
+embed Type 1 fonts. Current recommendations are GNU Ghostscript 6.51 or
+Aladdin Ghostscript 7.0. You can check the fonts in a PDF file with
+Acrobat Reader by selecting the menu entries 'File|Document Info|Fonts'.
+
+ Also, the Adobe distillers prior to 2.1 drop trailing space
+characters (character code 32) from strings. Unfortunately, the
+PostScript fonts use this character code for characters other than space
+(notably the Greek letter psi in the 'Symbol' font), and so these
+characters are dropped. This bug is fixed in version 2.1.
+
+ If you can't upgrade, one workaround is to change all the trailing
+blanks in strings to a character code that isn't in the font. This
+works because the default behavior is to substitute a blank for a
+missing character, i.e., the distiller is fooled into substituting the
+right character. For instance, with the Blue Sky fonts, you can
+globally replace ' )' with '\200)' (with 'sed', for example) and get the
+desired result. With the public domain fonts, you will probably have to
+use a character code in the range 128 to 191 since these fonts duplicate
+the first 32 characters starting at 192 to avoid MS-DOS problems.
+
+ For more information on the use of TeX to produce PDF files, see the
+article "Creating quality Adobe PDF files from TeX with DVIPS" by
+Kendall Whitehouse of Adobe. Adobe seems not to offer the article any
+more, but copies are available elsewhere:
+ <http://www.math.hawaii.edu/~ralph/MathOnWeb/TeXPDF.html>
+ <http://www.utdallas.edu/~cantrell/online/543e.html>
+
+ You may also want to check "Notes on converting (La)TeX documents to
+robust PDF using Rokicki's dvips and Acrobat Distiller" by Timothy P.
+Van Zandt:
+<http://www.emrg.com/texpdf.htmlhttp://zandtwerk.insead.fr/tex2pdf.html>.
+
+
+File: dvips.info, Node: Hypertext specials, Prev: Hypertext caveats, Up: Hypertext
+
+5.4.2 Hypertext specials
+------------------------
+
+Current support for the World Wide Web in the TeX system does not
+involve modifying TeX itself. We need only define some specials; Arthur
+Smith (<apsmith@aps.org>), Tanmoy Bhattacharya, and Paul Ginsparg
+originally proposed and implemented the following:
+ html:<a href="XURL">
+ html:<a name="NAME">
+ html:</a>
+ html:<img src="XURL">
+ html:<base href="XURL">
+
+ Like all TeX '\special''s, these produce no visible output, and are
+uninterpreted by TeX itself. They are instructions to DVI processors
+only.
+
+ Here, XURL is a standard WWW uniform resource locator (URL), possibly
+extended with a '#TYPE.STRING' construct, where TYPE is 'page',
+'section', 'equation', 'reference' (for bibliographic references),
+'figure', 'table', etc. For example,
+ \special{html:<a href="http://www.maths.tcd.ie/~tim/ch1.dvi#equation.1.1">}
+is a link to equation (1.1) in an example document by Tim Murphy.
+
+ See the URL
+<http://www.w3.org/hypertext/WWW/Addressing/Addressing.html> for a
+precise description of base URL's.
+
+ Descriptions of the '\special''s:
+'href'
+ Creates links in your TeX document. For example:
+ \special{html:<a href="http://www.tug.org/">}\TeX\ Users
+ Group\special{html:</a>}
+ The user will be able to click on the text 'TeX Users Group' while
+ running Xdvi and get to the TUG home page. (By the way, this is
+ for illustration. In practice, you most likely want to use macros
+ to insert the '\special' commands; reference above.)
+
+'name'
+ Defines URL targets in your TeX documents, so links can be
+ resolved. For example:
+ \special{html:<a name="paradise">}Paradise\special{html:</a>}
+ is exactly where you are right now.
+ This will resolve an 'href="#paradise"'. You'll also have to
+ change the catcode of '#', etc. It's usually easiest to use
+ existing macro packages which take care of all the details, such as
+ 'hyperref' for LaTeX. The HyperTeX FAQ
+ (http://arxiv.org/hypertex/) has more information.
+
+'img'
+ Links to an arbitrary external file. Interactively, a viewer is
+ spawned to read the file according to the file extension and your
+ 'mailcap' file (see the Xdvi documentation).
+
+'base'
+ Defines a base URL that is prepended to all the 'name' targets.
+ Typically unnecessary, as the name of the DVI file being read is
+ used by default.
+
+ The 'img' and 'base' tags are not yet implemented in Dvips or the
+NeXTSTEP DVI viewer.
+
+
+File: dvips.info, Node: PostScript fonts, Next: Color, Prev: Interaction with PostScript, Up: Top
+
+6 PostScript fonts
+******************
+
+Dvips supports the use of PostScript fonts in TeX documents. To use a
+PostScript font conveniently, you need to prepare a corresponding
+virtual font; the program Afm2tfm, supplied with Dvips, helps with that.
+
+ All the necessary support for the standard 35 PostScript fonts
+('AvantGarde-Book' through 'ZapfDingbats'), plus other freely or
+commonly available PostScript fonts is available along with Dvips. To
+use these fonts, you need do nothing beyond what is mentioned in the
+installation procedure (*note Installation::). This chapter is
+therefore relevant only if you are installing new PostScript fonts not
+supplied with Dvips. (Or if you're curious.)
+
+* Menu:
+
+* Font concepts:: Metrics, glyphs, virtual fonts, and encodings.
+* Making a font available:: Installing and using a PostScript font.
+* Invoking afm2tfm:: Creating TFM and AFM files for a virtual font.
+* psfonts.map:: Defining available PostScript fonts.
+
+
+File: dvips.info, Node: Font concepts, Next: Making a font available, Up: PostScript fonts
+
+6.1 Font concepts
+=================
+
+The information needed to typeset using a particular font is contained
+in two files: a "metric file" that contains shape-independent
+information and a "glyph file" that contains the actual shapes of the
+font's characters. A "virtual font" is an optional additional file that
+can specify special ways to construct the characters. TeX itself (or
+LaTeX) look only at the metric file, but DVI drivers such as Dvips look
+at all three of these files.
+
+ An "encoding file" defines the correspondence between the code
+numbers of the characters in a font and their descriptive names. Two
+encoding files used together can describe a reencoding that rearranges,
+i.e., renumbers, the characters of a font.
+
+* Menu:
+
+* Metric files:: Shape-independent font information.
+* Glyph files:: Character shapes.
+* Virtual fonts:: Constructing one font from others.
+* Encodings:: Character codes and character names.
+* Bitmap font encodings:: Encodings for bitmapped fonts.
+* PostScript typesetting:: How PostScript typesets a character.
+
+
+File: dvips.info, Node: Metric files, Next: Glyph files, Up: Font concepts
+
+6.1.1 Metric files
+------------------
+
+A "metric file" describes properties of the font that are independent of
+what the characters actually look like. Aside from general information
+about the font itself, a metric file has two kinds of information:
+information about individual characters, organized by character code,
+and information about sequences of characters.
+
+ The per-character information specifies the width, height, depth, and
+italic correction of each character in the font. Any might be zero.
+
+ In addition to information on individual characters, the metric file
+specifies "kerning", i.e., adding or removing space between particular
+character pairs. It further specifies "ligature" information: when a
+sequence of input characters should be typeset as a single (presumably
+different) "ligature" character. For example, it's traditional for the
+input 'fi' to be typeset as 'fi', not as 'fi' (with the dot of the 'i'
+colliding with 'f'). (In English, the only common ligatures are fi, fl,
+ff, ffi, and ffl.)
+
+ Different typesetting systems use different metric file formats:
+
+ * Each Postscript font has an "Adobe font metrics" ('.afm') file.
+ These files are plain text, so you can inspect them easily. You
+ can get AFM files for Adobe's fonts from
+ <ftp://ftp.adobe.com/pub/adobe/Fonts/AFMs>.
+
+ * TeX uses "TeX font metrics" ('.tfm') files. When you say '\font =
+ FONT' in your TeX document, TeX reads a file named 'FONT.tfm'.
+ (Well, except for the 'texfonts.map' feature; *note
+ (kpathsea)Fontmap::). TeX can then calculate the space occupied by
+ characters from the font when typesetting. In addition, the DVI
+ drivers you use to print or view the DVI file produced by TeX may
+ need to look at the TFM file.
+
+ TFM files are binary (and hence are typically much smaller than AFM
+ files). You can use the 'tftopl' program (*note (web2c)tftopl
+ invocation::) that comes with TeX to transform a TFM file into a
+ human-readable "property list" ('.pl') file. You can also edit a
+ PL file and transform it back to a TeX-readable TFM with the
+ companion program 'pltotf' (*note (web2c)pltotf invocation::).
+ Editing metrics by hand is not something you're likely to want to
+ do often, but the capability is there.
+
+ * ATM and other typesetting systems use "printer font metric"
+ ('.pfm') files. These are binary files. They are irrelevant in
+ the TeX world, and not freely available, so we will not discuss
+ them further.
+
+ The Afm2tfm program distributed with Dvips converts an AFM file to a
+TFM file and performs other useful transformations as well. *Note
+Invoking afm2tfm::.
+
+
+File: dvips.info, Node: Glyph files, Next: Virtual fonts, Prev: Metric files, Up: Font concepts
+
+6.1.2 Glyph files
+-----------------
+
+Although a metric file (see the previous section) contains information
+about the spatial and other properties of the character at position 75,
+say, it contains nothing about what the character at position 75
+actually looks like. The glyphs--the actual shapes of the letterforms
+in a font--are defined by other files, which we call glyph files. TeX
+itself only reads the TFM file for a font; it does not need to know
+character shapes.
+
+ A "glyph file" is a file that defines the shapes of the characters in
+a font. The shapes can be defined either by outlines or by bitmaps.
+
+ PostScript fonts are defined as "outline fonts": Each character in
+the font is defined by giving the mathematical curves (lines, arcs, and
+splines) that define its contours. Different sizes of a character are
+generated by linearly scaling a single shape. For example, a 10-point
+'A' is simply half the size of a 20-point 'A'. Nowadays, outline fonts
+usually also contain "hints"--additional information to improve the
+appearance of the font at small sizes or low resolutions.
+
+ Although various kinds of PostScript outline fonts exist, by far the
+most common, and the only one we will consider, is called "Type 1". The
+glyph files for Postscript Type 1 fonts typically have names ending in
+'.pfa' ("printer font ASCII") or '.pfb' ("printer font binary").
+
+ In contrast, glyph files for Computer Modern and the other standard
+TeX fonts are "bitmap fonts", generated from Metafont ('.mf')
+descriptions. The Metafont program distributed with TeX generates
+bitmaps from these descriptions.
+
+ The glyph files for TeX bitmap fonts are usually stored in "packed
+font" (PK) files. The names of these files end in '.NNNpk', where NNN
+is the resolution of the font in dots per inch. For example,
+'cmr10.600pk' contains the bitmaps for the 'cmr10' font at a resolution
+of 600dpi. (On DOS filesystems, it's more likely 'dpi600\cmr10.pk'.)
+
+ Metafont actually outputs "generic font" (GF) files, e.g.,
+'cmr10.600gf', but the GF files are usually converted immediately to PK
+format (using the 'gftopk' utility that comes with TeX) since PK files
+are smaller and contain the same information. (The GF format is a
+historical artifact.)
+
+
+File: dvips.info, Node: Virtual fonts, Next: Encodings, Prev: Glyph files, Up: Font concepts
+
+6.1.3 Virtual fonts
+-------------------
+
+A "virtual font" is constructed by extracting characters from one or
+more existing fonts and rearranging them, or synthesizing new characters
+in various ways. The explanation in this manual is intended to suffice
+for understanding enough about virtual fonts to use them with Dvips. It
+isn't a reference manual on virtual fonts. For more information: The
+primary document on virtual fonts is Donald E. Knuth, 'TUGboat' 11(1),
+Apr. 1990, pp. 13-23, "Virtual Fonts: More Fun for Grand Wizards"
+(<mirror.ctan.org/info/virtual-fonts.knuth>). (Don't be intimidated by
+the subtitle.)
+
+ A virtual font ('.vf') file specifies, for each character in the
+virtual font, a recipe for typesetting that character. A VF file, like
+a TFM file, is in a compressed binary format. The 'vftovp' and 'vptovf'
+programs convert a VF file to a human-readable VPL (virtual property
+list) format and back again. *Note (web2c)vftovp invocation::, and
+*note (web2c)vptovf invocation::.
+
+ In the case of a PostScript font F being used in a straightforward
+way, the recipe says: character I in the VF font is character J in font
+F. The font F is called a "base font". For example, the VF file could
+remap the characters of the PostScript font to the positions where TeX
+expects to find them. *Note Encodings::.
+
+ Since TeX reads only TFM files, not VF's, each VF must have a
+corresponding TFM for use with TeX. This corresponding TFM is created
+when you run 'vptovf'.
+
+ You can "expand" virtual fonts into their base fonts with DVIcopy
+(*note (web2c)dvicopy invocation::). This is useful if you are using a
+DVI translator that doesn't itself understand vf's.
+
+ If a virtual font has no entry at a given codepoint and the first
+'MAPFONT' designates an (u)pTeX JFM, we designate the glyph of the same
+codepoint in the TFM(JFM) with the smallest font ID. This feature helps
+to reduce the size of Japanese virtual fonts. For more information
+about the extensive support of Japanese in TeX, see
+<https://github.com/texjporg>.
+
+
+File: dvips.info, Node: Encodings, Next: Bitmap font encodings, Prev: Virtual fonts, Up: Font concepts
+
+6.1.4 Encodings
+---------------
+
+Every font, whatever its type, has an "encoding", that specifies the
+correspondence between "logical" characters and character codes. For
+example, the ASCII encoding specifies that the character numbered 65
+(decimal) is an uppercase 'A'. The encoding does not specify what the
+character at that position looks like; there are lots of ways to draw an
+'A', and a glyph file (*note Glyph files::) tells how. Nor does it
+specify how much space that character occupies; that information is in a
+metric file (*note Metric files::).
+
+ TeX implicitly assumes a particular encoding for the fonts you use
+with it. For example, the plain TeX macro '\'', which typesets an acute
+accent over the following letter, assumes the acute accent is at
+position 19 (decimal). This happens to be true of standard TeX fonts
+such as Computer Modern, as you might expect, but it is not true of
+normal PostScript fonts.
+
+ It's possible but painful to change all the macros that assume
+particular character positions. A better solution is to create a new
+font with the information for the acute accent at position 19, where TeX
+expects it to be. *Note Making a font available::.
+
+ PostScript represents encodings as a sequence of 256 character names
+called an "encoding vector". An "encoding file" ('.enc') gives such a
+vector, together with ligature and kerning information (with which we
+are not concerned at the moment). These encoding files are used by the
+Afm2tfm program. Encoding files are also downloaded to the PostScript
+interpreter in your printer if you use one of them in place of the
+default encoding vector for a particular PostScript font.
+
+ Examples of encodings: the 'dvips.enc' encoding file that comes with
+the Fontname distribution (<http://tug.org/fontname>) is a good (but not
+perfect) approximation to the TeX encoding for TeX's Computer Modern
+text fonts. This is the encoding of the fonts that originated with
+Dvips, such as 'ptmr.tfm'. The distribution includes many other
+encoding files; for example, '8r.enc', which is the base font for the
+current PostScript font distribution, and three corresponding to the TeX
+mathematics fonts: 'texmext.enc' for math extensions, 'texmital.enc' for
+math italics, and 'texmsym.enc' for math symbols.
+
+
+File: dvips.info, Node: Bitmap font encodings, Next: PostScript typesetting, Prev: Encodings, Up: Font concepts
+
+6.1.5 Bitmap font encodings
+---------------------------
+
+To dvips, bitmapped fonts do not have any notion of linguistics; they
+are simply a vector of glyphs. By comparison, PostScript fonts are
+required to contain an encoding vector that at least provides glyph
+names; these names can permit PostScript and PDF viewers to extract
+legible text from Postscript and PDF output.
+
+ Unlike previous versions, dvips versions 2020 and later add glyph
+naming information to Type 3 bitmapped fonts (if they can locate such
+information) as an Encoding vector. This provides some support for
+search, for copy and paste, and even some limited support for
+accessibility. The 'bitmapfontenc' command line option (*note Option
+details:: and 'bitmapfontenc' configuration option (*note Configuration
+file commands::) enable and disable this functionality; by default it is
+set to enabled, without warnings.
+
+ To do this, dvips must find encoding information for the bitmapped
+fonts. It does this by first searching for a font-specific encoding
+file; for instance, for cmr10, it will search for 'dvips-cmr10.enc' in
+the standard encoding path. If it does not find such a file, it will
+search for a 'dvips-all.enc' file which contains a base set of encodings
+for many fonts.
+
+ The specific syntax of an encoding file is unspecified, except that
+it must be a PostScript fragment that leaves exactly one object on the
+operand stack. (This is different from the encoding files used to
+define encodings for PostScript fonts, described earlier). Normally
+that object is just an array of 256 names; in this case, that array is
+used as the encoding vector for the font. Alternatively, the object can
+be a procedure that, when executed, leaves a legal encoding vector on
+the stack. This second option is made available to support future
+enhancements that may add additional constructs to the font dictionary
+to enhance the interpretation of font characters.
+
+ The 'dvips-all.enc' file contains encodings for many fonts, and it is
+loaded by dvips at most once. The format is just a sequence of font
+names, one per line, each terminated by a colon, followed by the
+encoding to use for those files.
+
+ As part of its operation, to enable heuristics in PostScript and PDF
+viewers to properly identify word breaks and column gutters, dvips also
+generates a modified font bounding box and a modified font coordinate
+system.
+
+
+File: dvips.info, Node: PostScript typesetting, Prev: Bitmap font encodings, Up: Font concepts
+
+6.1.6 How PostScript typesets a character
+-----------------------------------------
+
+The output of Dvips is a program in the PostScript language that
+instructs your (presumably PostScript-capable) printer how to typeset
+your document by transforming it into toner on paper. Your printer, in
+turn, contains a PostScript interpreter that carries out the
+instructions in this typesetting program.
+
+ The program must include the definition of any PostScript fonts that
+you use in your document. Fonts built into your printer (probably the
+standard 35: 'Times-Roman', 'ZapfDingbats', ...) are defined within the
+interpreter itself. Other fonts must be downloaded as pfa or pfb files
+(*note Glyph files::) from your host (the computer on which you're
+running Dvips).
+
+ You may be wondering exactly how a PostScript interpreter figures out
+what character to typeset, with this mass of metrics, glyphs, encodings,
+and other information. (If you're not wondering, skip this section ...)
+
+ The basic PostScript operator for imaging characters is 'show'.
+Suppose you've asked TeX to typeset an 'S'. This will eventually wind up
+in the Dvips output as the equivalent of this PostScript operation:
+
+ (S) show
+
+Here is how PostScript typesets the 'S':
+
+ 1. PostScript interpreters use ASCII; therefore 'S' is represented as
+ the integer 83. (Any of the 256 possible characters representable
+ in a standard 8-bit byte can be typeset.)
+
+ 2. A PostScript "dictionary" is a mapping of names to arbitrary
+ values. A font, to the interpreter, is a dictionary which contains
+ entries for certain names. (If these entries are missing, the
+ interpreter refuses to do anything with that font.)
+
+ PostScript has a notion of "the current font"--whatever font is
+ currently being typeset in.
+
+ 3. One of the mandatory entries in a font dictionary is 'Encoding',
+ which defines the encoding vector (*note Encodings::) for that
+ font. This vector of 256 names maps each possible input character
+ to a name.
+
+ 4. The interpreter retrieves the entry at position 83 of the encoding
+ vector. This value is a PostScript name: '/S'.
+
+ 5. For Type 1 fonts (we're not going to discuss anything else), the
+ interpreter now looks up '/S' as a key in a dictionary named
+ 'CharStrings', another mandatory entry in a font dictionary.
+
+ 6. The value of 'S' in 'CharStrings' is the equivalent of a series of
+ standard PostScript commands like 'curveto', 'lineto', 'fill', and
+ so on. These commands are executed to draw the character. There
+ can also be "hint information" that helps adapt the character to
+ low-resolution rasters. (*Note Glyph files::.) The commands are
+ actually represented in a more compact way than standard PostScript
+ source; see the Type 1 book for details.
+
+ This method for typesetting characters is used in both Level 1 and
+Level 2 PostScript. See the PostScript reference manuals for more
+information.
+
+
+File: dvips.info, Node: Making a font available, Next: Invoking afm2tfm, Prev: Font concepts, Up: PostScript fonts
+
+6.2 Making a PostScript font available
+======================================
+
+To make a PostScript font available in a TeX document, you need to
+install the font on your system and then define it within the document.
+Once you have installed the font, of course, it is available for any
+document thereafter and you don't need to reinstall it. You must have
+an AFM file for any font you install. Unless the font is built into
+your printer, you must also have a PFA or PFB file.
+
+ In the following examples, we use the font 'Times-Roman' to
+illustrate the process. But you should use the prebuilt fonts for Times
+and the other standard fonts, rather than rebuilding them. The prebuilt
+fonts are made using a more complicated process than that described
+here, to make them work as well as possible with TeX. So following the
+steps in this manual will not generate files identical to the
+distributed ones. *Note PostScript font installation::, for pointers to
+the prebuilt fonts.
+
+ Installation of a PostScript font proceeds in three steps. *Note
+Font concepts::, for descriptions of the various files involved.
+
+ 1. Run 'afm2tfm' to create a TFM file for the original font, and the
+ VPL form of the virtual font:
+ afm2tfm Times-Roman -v ptmr rptmr
+
+ 2. Run 'vptovf' to generate a VF and TFM file for the virtual font
+ from the VPL file:
+ vptovf ptmr.vpl ptmr.vf ptmr.tfm
+
+ 3. Insert an entry for the font in 'psfonts.map' (*note
+ psfonts.map::):
+ rptmr Times-Roman <ptmr8a.pfa
+
+ 4. Install the files in the standard locations, as in:
+ cp ptmr.vf FONTDIR/vf/...
+ cp *ptmr.tfm FONTDIR/tfm/...
+ cp ptmr.afm FONTDIR/afm/...
+ cp ptmr.pf? FONTDIR/type1/...
+
+ The simplest invocation of Afm2tfm to make virtual fonts goes
+something like this:
+
+ afm2tfm Times-Roman -v ptmr rptmr
+
+This reads the file 'Times-Roman.afm', and produces two files as output,
+namely the virtual property list'file 'ptmr.vpl', and the "raw" font
+metric file 'rptmr.tfm'. To use the font in TeX, you first run
+
+ vptovf ptmr.vpl ptmr.vf ptmr.tfm
+
+You should then install the virtual font file 'ptmr.vf' where Dvips will
+see it and install 'ptmr.tfm' and 'rptmr.tfm' where TeX and Dvips will
+see them.
+
+ Using these raw fonts is not recommended; there are no raw fonts in
+the prebuilt PostScript fonts distributed along with Dvips. But
+nevertheless, that's how Afm2tfm presently operates, so that's what we
+document here. The 'r' prefix convention is likewise historical
+accident.
+
+ You can also make more complex virtual fonts by editing 'ptmr.vpl'
+before running 'vptovf'; such editing might add the uppercase Greek
+characters in the standard TeX positions, for instance. (This has
+already been done for the prebuilt fonts.)
+
+ Once the files have been installed, you're all set. You can now do
+things like this in TeX:
+ \font\myfont = ptmr at 12pt
+ \myfont Hello, I am being typeset in 12-point Times-Roman.
+
+ Thus, we have two fonts, one actual ('rptmr', which is analogous to
+the font in the printer) and one virtual ('ptmr', which has been
+remapped to the standard TeX encoding (almost)), and has typesetting
+know-how added. You could also say
+
+ \font\raw = rptmr at 10pt
+
+and typeset directly with that, but then you would have no ligatures or
+kerning, and you would have to use Adobe character positions for special
+letters like the ligature 'AE'. The virtual font 'ptmr' not only has
+ligatures and kerning, and most of the standard accent conventions of
+TeX, it also has a few additional features not present in the Computer
+Modern fonts. For example, it includes all the Adobe characters (such
+as the Polish ogonek and the French guillemots). The only things you
+lose from ordinary TeX text fonts are the dotless 'j' (which can be
+hacked into the VPL file with literal PostScript specials if you have
+the patience) and uppercase Greek letters (which just don't exist unless
+you buy them separately). *Note Reencoding with Afm2tfm::.
+
+ As a final step you need to record information about both the virtual
+font and the original font (if you ever might want to use it) in the
+'psfonts.map' file (*note psfonts.map::). For our example, you'd insert
+the following into 'psfonts.map':
+ rptmr Times-Roman <ptmr8a.pfa
+
+Of course, 'Times-Roman' is already built in to most every printer, so
+there's no need to download any Type 1 file for it. But if you are
+actually following these instructions for new fonts, most likely they
+are not built in to the printer.
+
+ These PostScript fonts can be scaled to any size. Go wild! Using
+PostScript fonts, however, does use up a great deal of the printer's
+memory and it does take time. You may find downloading bitmap fonts
+(possibly compressed, with the 'Z' option) to be faster than using the
+built-in PostScript fonts.
+
+
+File: dvips.info, Node: Invoking afm2tfm, Next: psfonts.map, Prev: Making a font available, Up: PostScript fonts
+
+6.3 Invoking Afm2tfm
+====================
+
+The Afm2tfm program converts an AFM file for a PostScript font to a TFM
+file and a VPL file for a corresponding virtual font (or, in its
+simplest form, to a TFM file for the PostScript font itself). The
+results of the conversion are affected by the command-line options and
+especially by the reencodings you can specify with those options. You
+can also obtain special effects such as an oblique font.
+
+ Alternatives to Afm2tfm for creating virtual fonts include 'fontinst'
+<https://ctan.org/pkg/fontinst>, 'lcdf-typetools', particularly
+'otftotfm' (<https://ctan.org/pkg/lcdf-typetools>), and 'afm2pl'
+(<http://tex.aanhet.net/afm2pl/>), among others.
+
+* Menu:
+
+* Changing font encodings:: Reencoding with -t, -p, -T.
+* Special font effects:: Oblique fonts, small caps, and such.
+* Afm2tfm options:: afm2tfm command-line options.
+
+
+File: dvips.info, Node: Changing font encodings, Next: Special font effects, Up: Invoking afm2tfm
+
+6.3.1 Changing font encodings
+-----------------------------
+
+Afm2tfm allows you to specify a different encoding for a PostScript font
+(for a general introduction to encodings, *note Encodings::). The '-t'
+option changes the TeX encoding, '-p' changes the PostScript encoding,
+and '-T' changes both simultaneously, as detailed in the sections below.
+
+* Menu:
+
+* Changing TeX encodings:: Where TeX finds a character.
+* Changing PostScript encodings:: Where PostScript finds a character.
+* Changing both encodings:: One and the same, simultaneously.
+* Reencoding with Afm2tfm:: Problems with the default encoding.
+* Encoding file format:: Syntax of an encoding file.
+
+
+File: dvips.info, Node: Changing TeX encodings, Next: Changing PostScript encodings, Up: Changing font encodings
+
+6.3.1.1 '-t': Changing TeX encodings
+....................................
+
+To build a virtual font with Afm2tfm, you specify the '-v' or '-V'
+option. You can then specify an encoding for that virtual font with '-t
+TEX-ENC'. ('-t' is ignored if neither '-v' nor '-V' is present.) Any
+ligature and kerning information you specify in TEX-ENC will be used in
+the VPL, in addition to the ligature and kerning information from the
+AFM file.
+
+ If the AFM file has no entry for a character specified in TEX-ENC,
+that character will be omitted from the output VPL.
+
+ The '-t' option is likely to be needed when you have a PostScript
+font corresponding to a TeX font other than a normal text font such as
+Computer Modern. For instance, if you have a PostScript font that
+contains math symbols, you'd probably want to use the encoding in the
+'texmsym.enc' file supplied with Dvips. (For a start; to actually get
+usable math fonts, you have to define much more than just an encoding.)
+
+
+File: dvips.info, Node: Changing PostScript encodings, Next: Changing both encodings, Prev: Changing TeX encodings, Up: Changing font encodings
+
+6.3.1.2 '-p': Changing PostScript encodings
+...........................................
+
+By default, Afm2tfm uses the encoding it finds in the AFM file. You can
+specify a different PostScript encoding with '-p PS-ENC'. This makes
+the raw TFM file (the one output by Afm2tfm) have the encoding specified
+in the encoding file PS-ENC. Any ligature or kern information specified
+in PS-ENC is ignored by Afm2tfm, since ligkern info is always omitted
+from the raw TFM.
+
+ If you use this option, you must also arrange to download PS-ENC as
+part of any document that uses this font. You do this by adding a line
+like the following one to 'psfonts.map' (*note psfonts.map::):
+ zpopr Optima "MyEncoding ReEncodeFont" <myenc.enc
+
+ Using '-p' is the only way to access characters in a PostScript font
+that are neither encoded in the AFM file nor constructed from other
+characters. For instance, Adobe's 'Times-Roman' font contains the extra
+characters 'trademark' and 'registered' (among others); these can only
+be accessed through such a PostScript reencoding.
+
+ The '8r' base encoding used for the current PostScript font
+distribution does do this reencoding, for precisely this reason.
+
+
+File: dvips.info, Node: Changing both encodings, Next: Reencoding with Afm2tfm, Prev: Changing PostScript encodings, Up: Changing font encodings
+
+6.3.1.3 '-T': Changing both TeX and PostScript encodings
+........................................................
+
+The option '-T ENC-FILE' is equivalent to '-p ENC-FILE -t ENC-FILE'. If
+you make regular use of a private non-standard reencoding '-T' is
+usually a better idea than the individual options, to avoid unexpected
+inconsistencies in mapping otherwise. An example of when you might use
+this option is a dingbats font: when you have a TeX encoding that is
+designed to be used with a particular PostScript font.
+
+
+File: dvips.info, Node: Reencoding with Afm2tfm, Next: Encoding file format, Prev: Changing both encodings, Up: Changing font encodings
+
+6.3.1.4 Reencoding with Afm2tfm
+...............................
+
+The Afm2tfm program creates the TFM and VF files for the virtual font
+corresponding to a PostScript font by "reencoding" the PostScript font.
+Afm2tfm generates these files from two encodings: one for TeX and one
+for PostScript. The TeX encoding is used to map character numbers to
+character names while the PostScript encoding is used to map each
+character name to a possibly different number. In combination, you can
+get access to any character of a PostScript font at any position for TeX
+typesetting.
+
+ In the default case, when you specify none of the '-t', '-p', or '-T'
+options, Afm2tfm uses a default TeX encoding (which mostly corresponds
+to the Computer Modern text fonts) and the PostScript encoding found in
+the AFM file being read. The reencoding is also sometimes called a
+"remapping".
+
+ For example, the default encodings reencode the acute accent in two
+steps: first the default TeX encoding maps the number 19 to the
+character name 'acute'; then the default PostScript encoding, as found
+in the AFM file for an ordinary PostScript font, maps the character name
+'acute' to the number 194. (The PostScript encoding works in reverse,
+by looking in the encoding vector for the name and then yielding the
+corresponding number.) The combined mapping of 19 to 194 shows up
+explicitly in the VF file and also implicitly in the fact that the
+properties of PostScript character 194 appear in position 19 of the TFM
+file for the virtual font.
+
+ The default encoding of the distributed fonts (e.g., 'ptmr.tfm')
+mostly follows plain TeX conventions for accents. The exceptions: the
+Hungarian umlaut (which is at position '0x7D' in 'cmr10', but position
+'0xCD' in 'ptmr'); the dot accent (at positions '0x5F' and '0xC7',
+respectively); and the Scandinavian A ring '\AA', whose definition needs
+different tweaking. In order to use these accents with PostScript fonts
+or in math mode when '\textfont0' is a PostScript font, you will need to
+use the following definitions. These definitions will not work with the
+Computer Modern fonts for the relevant accents. They are already part
+of the distributed 'psfonts.sty' for use with LaTeX.
+
+ \def\H#1{{\accent"CD #1}}
+ \def\.#1{{\accent"C7 #1}}
+ \def\dot{\mathaccent"70C7 }
+ \newdimen\aadimen
+ \def\AA{\leavevmode\setbox0\hbox{h}\aadimen\ht0
+ \advance\aadimen-1ex\setbox0\hbox{A}\rlap{\raise.67\aadimen
+ \hbox to \wd0{\hss\char'27\hss}}A}
+
+ As a kind of summary, here are the 'CODINGSCHEME's that result from
+the various possible choices for reencoding.
+
+default encoding
+ (CODINGSCHEME TeX text + AdobeStandardEncoding)
+
+'-p dc.enc'
+ (CODINGSCHEME TeX text + DCEncoding)
+
+'-t dc.enc'
+ (CODINGSCHEME DCEncoding + AdobeStandardEncoding)
+
+'-T dc.enc'
+ (CODINGSCHEME DCEncoding + DCEncoding)
+
+The 'CODINGSCHEME' line appears in the VPL file but is ignored by Dvips.
+
+
+File: dvips.info, Node: Encoding file format, Prev: Reencoding with Afm2tfm, Up: Changing font encodings
+
+6.3.1.5 Encoding file format
+............................
+
+Afm2tfm's encoding files have the same format as an encoding vector in a
+PostScript font. Here is a skeletal example:
+
+ % Comments are ignored, unless the first word after the percent sign
+ % is 'LIGKERN'; see below.
+ /MyEncoding [ % exactly 256 entries follow, each with a leading '/'
+ /Alpha /Beta /Gamma /Delta ...
+ /A /B ... /Z
+ ... /.notdef /xfooaccent /yfooaccent /zfooaccent
+ ] def
+
+ These encoding files are downloaded as part of changing the encoding
+at the PostScript level (see the previous section).
+
+ Comments, which start with a percent sign and continue until the end
+of the line, are ignored unless they start with 'LIGKERN' (see below).
+
+ The first non-comment word of the file must start with a forward
+slash '/' (i.e., a PostScript literal name) and defines the name of the
+encoding. The next word must be an left bracket '['. Following that
+must be precisely 256 character names; use '/.notdef' for any that you
+want to leave undefined. Then there must be a matching right bracket
+']'. A final 'def' token is optional. All names are case-sensitive.
+
+ Any ligature or kern information is given as a comment. If the first
+word after the '%' is 'LIGKERN', then the entire rest of the line is
+parsed for ligature and kern information. This ligature and kern
+information is given in groups of words: each group is terminated by a
+space and a semicolon and (unless the semicolon is at the end of a line)
+another space.
+
+ In these 'LIGKERN' statements, three types of information may be
+specified. These three types are ligature pairs, kerns to ignore, and
+the character value of this font's boundary character.
+
+ Throughout a 'LIGKERN' statement, the boundary character is specified
+as '||'. To set the font's boundary character value for TeX:
+
+ % LIGKERN || = 39 ;
+
+ To indicate a kern to remove, give the names of the two characters
+(without the leading slash) separated by '{}', as in 'one {} one ;'.
+This is intended to be reminiscent of the way you might use '{}' in a
+TeX file to turn off ligatures or kerns at a particular location.
+Either or both of the character names can be given as '*', which is a
+wild card matching any character; thus, all kerns can be removed with '*
+{} * ;'.
+
+ To specify a ligature, specify the names of the pair of characters,
+followed by the ligature operation (as in Metafont), followed by the
+replacing character name. Either (but not both) of the first two
+characters can be '||' to indicate a word boundary.
+
+ The most common operation is '=:' meaning that both characters are
+removed and replaced by the third character, but by adding the '|'
+character on either side of the '=:', you can retain either or both of
+the two leading characters. In addition, by suffixing the ligature
+operation with one or two '>' signs, you can make the ligature scanning
+operation skip that many resulting characters before proceeding. This
+works just like in Metafont. For example, the 'fi' ligature is
+specified with 'f i =: fi ;'. A more convoluted ligature is 'one one
+|=:|>> exclam ;' which separates a pair of adjacent '1''s with an
+exclamation point, and then skips over two of the resulting characters
+before continuing searching for ligatures and kerns. You cannot give
+more >'s than |'s in an ligature operation, so there are a total of
+eight possibilities:
+
+ =: |=: |=:> =:| =:|> |=:| |=:|> |=:|>>
+
+ The default set of ligatures and kerns built in to Afm2tfm is:
+
+ % LIGKERN question quoteleft =: questiondown ;
+ % LIGKERN exclam quoteleft =: exclamdown ;
+ % LIGKERN hyphen hyphen =: endash ; endash hyphen =: emdash ;
+ % LIGKERN quoteleft quoteleft =: quotedblleft ;
+ % LIGKERN quoteright quoteright =: quotedblright ;
+ % LIGKERN space {} * ; * {} space ; 0 {} * ; * {} 0 ;
+ % LIGKERN 1 {} * ; * {} 1 ; 2 {} * ; * {} 2 ; 3 {} * ; * {} 3 ;
+ % LIGKERN 4 {} * ; * {} 4 ; 5 {} * ; * {} 5 ; 6 {} * ; * {} 6 ;
+ % LIGKERN 7 {} * ; * {} 7 ; 8 {} * ; * {} 8 ; 9 {} * ; * {} 9 ;
+
+
+File: dvips.info, Node: Special font effects, Next: Afm2tfm options, Prev: Changing font encodings, Up: Invoking afm2tfm
+
+6.3.2 Special font effects
+--------------------------
+
+Besides the reencodings described in the previous section, Afm2tfm can
+do other manipulations. (Again, it's best to use the prebuilt fonts
+rather than attempting to remake them.)
+
+ '-s SLANT' makes an obliqued variant, as in:
+
+ afm2tfm Times-Roman -s .167 -v ptmro rptmro
+
+This creates 'ptmro.vpl' and 'rptmro.tfm'. To use this font, put the
+line
+
+ rptmro Times-Roman ".167 SlantFont"
+
+into 'psfonts.map'. Then 'rptmro' (our name for the obliqued Times)
+will act as if it were a resident font, although it is actually
+constructed from Times-Roman via the PostScript routine 'SlantFont'
+(which will slant everything 1/6 to the right, in this case).
+
+ Similarly, you can get an expanded font with
+
+ afm2tfm Times-Roman -e 1.2 -v ptmrre rptmrre
+
+and by recording the pseudo-resident font
+
+ rptmrre Times-Roman "1.2 ExtendFont"
+
+in 'psfonts.map'.
+
+ You can also create a small caps font with a command such as
+
+ afm2tfm Times-Roman -V ptmrc rptmrc
+
+This will generate a set of pseudo-small caps mapped into the usual
+lowercase positions and scaled down to 0.8 of the normal cap dimensions.
+You can also specify the scaling as something other than the default
+0.8:
+
+ afm2tfm Times-Roman -c 0.7 -V ptmrc rptmrc
+
+ It is unfortunately not possible to increase the width of the small
+caps independently of the rest of the font. If you want a really
+professional looking set of small caps, you need to acquire a small caps
+font.
+
+ To change the 'PaintType' in a font from filled (0) to outlined (2),
+you can add '"/PaintType 2 store"' to 'psfonts.map', as in the
+following:
+
+ rphvrl Helvetica "/PaintType 2 store"
+
+ Afm2tfm writes to standard output the line you need to add to
+'psfonts.map' to use that font, assuming the font is resident in the
+printer; if the font is not resident, you must add the '<FILENAME'
+command to download the font. Each identical line only needs to be
+specified once in the 'psfonts.map' file, even though many different
+fonts (small caps variants, or ones with different output encodings) may
+be based on it.
+
+
+File: dvips.info, Node: Afm2tfm options, Prev: Special font effects, Up: Invoking afm2tfm
+
+6.3.3 Afm2tfm options
+---------------------
+
+Synopsis:
+ afm2tfm [OPTION]... AFMFILE[.afm] [TFMFILE[.tfm]]
+
+ Afm2tfm reads AFMFILE and writes a corresponding (but "raw", see
+below) TFM file. If TFMFILE is not supplied, the base name of the AFM
+file is extended with '.tfm' to get the output filename.
+
+ The simplest example:
+
+ afm2tfm Times-Roman rptmr
+
+The TFM file thus created is "raw" because it omits ligature and kern
+information, and does no character remapping; it contains only the
+character information in the AFM file in TFM format, which is the form
+that TeX understands. The characters have the same code in the TFM file
+as in the AFM file. For text fonts, this means printable ASCII
+characters will work ok, but little else, because standard PostScript
+fonts have a different encoding scheme than the one that plain TeX
+expects (*note Encodings::). Although the encodings agree for most
+printable ASCII characters, other characters such as ligatures and
+accents vary. Thus, in practice, it's almost always desirable to create
+a virtual font as well with the '-v' or '-V' option. *Note Making a
+font available::.
+
+ The command line options to Afm2tfm:
+
+'-a'
+ By default, Afm2tfm looks for precomposed accented characters, such
+ as tdieresis, and possibly adjusts the height of the basic letter
+ (t) upward so that the result of using '\accent' (as in '\"t') is
+ visually the same as the precomposed characters. The '-a' option
+ omits such adjustments, so that all characters' heights remain as
+ they are given in the AFM file. (Until Afm2tfm 8.4, released in
+ 2016, heights could also be adjusted downward, but this is no
+ longer the case.)
+
+'-c RATIO'
+ See '-V'; overrides the default ratio of 0.8 for the scaling of
+ small caps.
+
+'-e RATIO'
+ Stretch characters horizontally by RATIO; if less than 1.0, you get
+ a condensed font.
+
+'-O'
+ Output all character codes in the 'vpl' file as octal numbers, not
+ names; this is useful for symbol or other special-purpose fonts
+ where character names such as 'A' have no meaning.
+
+'-p PS-ENC'
+ Use PS-ENC for the destination (PostScript) encoding of the font;
+ PS-ENC must be mentioned as a header file for the font in
+ 'psfonts.map'. *Note Changing PostScript encodings::.
+
+'-s SLANT'
+ Slant characters to the right by SLANT. If SLANT is negative, the
+ letters slope to the left (or they might be upright if you start
+ with an italic font).
+
+'-t TEX-ENC'
+ Use TEX-ENC for the target (TeX) encoding of the font. Ligature
+ and kern information may also be specified in FILE. FILE is not
+ mentioned in 'psfonts.map'.
+
+'-T PS-TEX-ENC'
+ Use PS-TEX-ENC for both the PostScript and target TeX encodings of
+ the font. Equivalent to '-p FILE -t FILE'.
+
+'-u'
+ Use only those characters specified in the TeX encoding, and no
+ others. By default, Afm2tfm tries to include all characters in the
+ input font, even those not present in the TeX encoding (it puts
+ them into otherwise-unused positions, arbitrarily).
+
+'-v VPL-FILE'
+ Output a VPL (virtual property list) file, as well as a TFM file.
+
+'-V VPL-FILE'
+ Same as '-v', but the virtual font generated is a pseudo small caps
+ font obtained by scaling uppercase letters by 0.8 to typeset
+ lowercase. This font handles accented letters and retains proper
+ kerning.
+
+
+File: dvips.info, Node: psfonts.map, Prev: Invoking afm2tfm, Up: PostScript fonts
+
+6.4 'psfonts.map': PostScript font catalog
+==========================================
+
+The 'psfonts.map' file associates a PostScript font with related files
+and constructs. Each line has the format:
+
+ FILENAME POSTSCRIPT-NAME OPTIONS
+
+ For example, the line
+ rpstrn StoneInformal <StoneInformal.pfb
+causes Dvips to download 'StoneInformal.pfb' (just as if it were a
+header file, *note Header files::) if the DVI file (or a virtual font,
+*note Virtual fonts::) references the TFM file 'rpstrn'. The PostScript
+'/FontName' of the font defined inside the 'pfb' file should be
+'StoneInformal'.
+
+ You can generate transformed fonts with a line like this:
+ rpstrc StoneInformal <StoneInformal.pfb ".8 ExtendFont"
+
+*Note Special font effects::, for a complete list of font effects.
+
+ You can change the encoding of the Type 1 font at the PostScript
+level with a 'ReEncodeFont' instruction, plus the name of the encoding
+file. This allows you access to characters that may be present in the
+Type 1 font file, but not encoded by default--most of the preaccented
+characters, for example. An example:
+ pstrn8r StoneInformal "TeXBase1Encoding ReEncodeFont" <8r.enc <pstrn8a.pfb
+
+ The '8r' encoding mentioned here has been designed to serve as a base
+for all downloadable fonts; it allows access to all the characters
+commonly present in a Type 1 font. For more details, see the '8r.enc'
+source file that comes with (and is installed with) Dvips.
+
+ You may notice that the same syntax is used for downloading encoding
+vectors and Type 1 font files. To make your intentions clear, you can
+also use '<[' to explicitly indicate you are downloading an encoding
+vector, as in:
+ pstrn8r StoneInformal "TeXBase1Encoding ReEncodeFont" <[8r.enc <pstrn8a.pfb
+
+ If the filename of your encoding vector does not end in '.enc', and
+you are using partial font downloading, you must use the '<[' syntax, or
+Dvips will not download the font properly.
+
+ Similarly, the name of the Type 1 font file itself must have
+extension '.pfa' or '.pfb' for partial downloading to work properly.
+
+ When using PFB files, Dvips is smart enough to unpack the binary PFB
+format into printable ASCII so there is no need to perform this
+conversion yourself. In addition, Dvips scans the font to determine its
+memory usage, just as it does for other header files (*note Header
+files::).
+
+ If the 'j' config file or command-line option is enabled (as it is by
+default), 'StoneInformal.pfb' will be "partially downloaded"--only those
+characters your document actually uses will be extracted and downloaded,
+and the remainder discarded. *Note Option details::.
+
+ Adobe Multiple Master fonts, such as Minion, cannot be partially
+downloaded. To partially download in general, but avoid partial
+downloading for individual fonts, use '<<' instead '<':
+ pmnr8r Minion <<Minion.pfb
+
+ Here is a brief summary of how 'psfonts.map' is read:
+
+ 1. If a line is empty or begins with a space, percent, asterisk,
+ semicolon, or hash mark, it is ignored.
+
+ 2. Otherwise, the line is separated into words, where words are
+ separated by spaces or tabs, except that if a word begins with a
+ double quote, it extends until the next double quote or the end of
+ the line.
+
+ 3. If a word starts with '<<', it is taken as a font file to be wholly
+ downloaded. Use this to avoid partial downloading, as described
+ above.
+
+ 4. If a word starts with '<[', it is taken as an encoding file to be
+ downloaded. Use this if the name of the encoding file does end in
+ '.enc', also as described above.
+
+ 5. If a word starts with a '<' character, it is treated as a header
+ file that needs to be downloaded. If the name ends in '.pfa' or
+ '.pfb', it is taken as Type 1 font file that will be partially
+ downloaded if the 'j' option is in effect. There can be more than
+ one such header for a given font. If a '<' is a word by itself,
+ the next word is taken as the name of the header file.
+
+ 6. If a word starts with a '"' character, it is taken as PostScript
+ code used in generating that font, and is inserted into the output
+ verbatim at the appropriate point. (And the double quotes
+ beginning and ending the word are removed.)
+
+ 7. Otherwise the word is a name. The first such name is the TFM file,
+ that either a DVI file or a virtual font file can refer to. If
+ there is a second name, it is used as the PostScript name and
+ should match what is defined in the downloaded file; if there is
+ only one name, it is used for both the TeX name and the PostScript
+ name.
+
+
+File: dvips.info, Node: Color, Next: Index, Prev: PostScript fonts, Up: Top
+
+7 Color
+*******
+
+Dvips supports one-pass multi-color printing of TeX documents on any
+color PostScript device. Initially added by Jim Hafner, IBM Research,
+<hafner@almaden.ibm.com>, the color support has gone through many
+changes by Tomas Rokicki. Besides the source code support itself, there
+are additional TeX macro files: 'colordvi.tex' and 'blackdvi.tex', and
+corresponding '.sty' versions for use with LaTeX.
+
+ In this section we describe the use of color from the document
+preparer's point of view and then add some instructions on installation
+for the TeX administrator.
+
+* Menu:
+
+* Color macro files:: TeX macro definitions.
+* User-definable colors:: Adding your own colors.
+* Color subtleties:: Subtleties in using color.
+* Ted Turner:: Printing in black/white after colorizing.
+* Color device configuration:: Configuring Dvips for color devices.
+* Color support details:: Color support details
+
+
+File: dvips.info, Node: Color macro files, Next: User-definable colors, Up: Color
+
+7.1 Color macro files
+=====================
+
+All the color macro commands are defined in 'colordvi.tex' (or
+'colordvi.sty'). To access these macros simply add to the top of your
+plain TeX file the command:
+ \input colordvi
+For (the obsolete) LaTeX 2.09, add the 'colordvi' style option as in:
+ \documentstyle[12pt,colordvi]{article}
+For LaTeX2e, these examples are not applicable. Instead, please see the
+documentation for the graphics package
+(<https://ctan.org/pkg/graphics>), and the epslatex document
+(<https://ctan.org/pkg/epslatex>).
+
+ These macros provide two basic kinds of color macros: ones for local
+color changes (a few words, a single symbol) and one for global color
+changes (the whole document). All the color names use a mixed case
+scheme to avoid conflicts with other macros. There are 68 predefined
+colors, with names taken primarily from the Crayola crayon box of 64
+colors, and one pair of macros for the user to set his own color pattern
+(*note User-definable colors::). You can browse the file 'colordvi.tex'
+for a list of the predefined colors. The comments in this file also
+show a rough correspondence between the crayon names and Pantones.
+
+ A local color command has the form
+
+ \COLORNAME{this is the color COLORNAME}
+
+where COLORNAME is the name of a predefined color, e.g., 'Blue'. As
+shown, these macros take one argument, the text to print in the
+specified color. This can be used for nested color changes since it
+restores the original color state when it completes. For example:
+
+ This text is normal but here we are \Red{switching to red,
+ \Blue{nesting blue}, recovering the red} and back to original.
+
+The color nesting level has no hard limit, but it is not advisable to
+nest too deeply lest you and the reader lose track of the color history.
+
+ The global color command has the form
+
+ \textCOLORNAME
+
+These macros take no arguments and changes the default color from that
+point on to COLORNAME. This of course can be overridden globally by
+another such command or locally by local color commands. For example,
+expanding on the example above, we might have
+
+ \textGreen
+ This text is green but here we are \Red{switching to red,
+ \Blue{nesting blue}, recovering the red} and back to
+ original green.
+ \textCyan
+ The text from here on will be cyan until
+ \Yellow{locally changed to yellow}. Now we are back to cyan.
+
+ The color commands will even work in math mode and across math mode
+boundaries. This means that if you have a color before going into math
+mode, the mathematics will be set in that color as well. In alignment
+environments like '\halign', 'tabular' or 'eqnarray', local color
+commands cannot extend beyond the alignment characters.
+
+ Because local color commands respect only some environment and
+delimiter changes besides their own, care must be taken in setting their
+scope. It is best not to have them stretch too far.
+
+ At the present time there are no macros for color environments in
+LaTeX which might have a larger range. This is primarily to keep the
+TeX and LaTeX use compatible.
+
+
+File: dvips.info, Node: User-definable colors, Next: Color subtleties, Prev: Color macro files, Up: Color
+
+7.2 User-definable colors
+=========================
+
+There are two ways for the user to specify colors not already defined.
+For local changes, there is the command '\Color' which takes two
+arguments. The first argument is four numbers between zero and one and
+specifies the intensity of cyan, magenta, yellow and black (CMYK) in
+that order. The second argument is the text that should appear in the
+given color. For example, suppose you want the words "this color is
+pretty" to appear in a color which is 50% cyan, 85% magenta, 40% yellow
+and 20% black. You would use the command
+
+ \Color{.5 .85 .4 .2}{this color is pretty}
+
+ For global color changes, there is a command '\textColor' which takes
+one argument, the CMYK quadruple of relative color intensities. For
+example, if you want the default color to be as above, then the command
+
+ \textColor{.5 .85 .4 .2}
+ The text from now on will be this pretty color
+
+will do the trick.
+
+ Making a global color change in the midst of nested local colors is
+highly discouraged. Consequently, Dvips will give you warning message
+and do its best to recover by discarding the current color history.
+
+
+File: dvips.info, Node: Color subtleties, Next: Ted Turner, Prev: User-definable colors, Up: Color
+
+7.3 Color subtleties
+====================
+
+Color macros are defined via '\special' keywords. As such, they are put
+in the '.dvi' file only as explicit message strings to the driver. The
+(unpleasant) result is that certain unprotected regions of the text can
+have unwanted color side effects. For example, if a color region is
+split by TeX across a page boundary, then the footers of the current
+page (e.g., the page number) and the headers of the next page can
+inherit that color. To avoid this effect globally, users should make
+sure that these special regions of the text are defined with their own
+local color commands. For example, to protect the header and footer in
+plain TeX, use
+
+ \headline{\Black{My Header}}
+ \footline{\Black{\hss\tenrm\folio\hss}}
+
+ This warning also applies to figures and other insertions, so be
+careful!
+
+ Of course, in LaTeX, this is much more difficult to do because of the
+complexity of the macros that control these regions. This is
+unfortunate but inevitable, because TeX and LaTeX were not written with
+color in mind.
+
+ Even when writing your own macros, much care must be taken. The
+macros that 'colorize' a portion of the text work prefix the text work
+by outputting one '\special' command to turn the color on before the
+text, and outputting another '\special' command afterwards to restore
+the original color. It is often useful to ensure that TeX is in
+horizontal mode before the first special command is issued; this can be
+done by prefixing the color command with '\leavevmode'.
+
+
+File: dvips.info, Node: Ted Turner, Next: Color device configuration, Prev: Color subtleties, Up: Color
+
+7.4 Printing in black/white after colorizing
+============================================
+
+If you have a TeX or LaTeX document written with color macros and you
+want to print it in black and white there are two options. On all
+(good) PostScript devices, printing a color file will print in
+corresponding gray levels. This is useful to get a rough idea of the
+colors without using expensive color printing devices. The second
+option is to replace the call to input 'colordvi.tex' with
+'blackdvi.tex' (and similarly for the '.sty' files). So in the above
+example, replacing the word 'colordvi' with 'blackdvi' suffices.
+'blackdvi.tex' defines the color macros as no-ops, and so will produce
+normal black/white printing. By this simple mechanism, the user can
+switch to all black/white printing without having to ferret out the
+color commands. Also, some device drivers, particularly non-PostScript
+ones like screen previewers, will simply ignore the color commands and
+so print in black/white. Hopefully, in the future screen previewers for
+color displays will be compatible with some form of color support.
+
+
+File: dvips.info, Node: Color device configuration, Next: Color support details, Prev: Ted Turner, Up: Color
+
+7.5 Color device configuration
+==============================
+
+To configure Dvips for a particular color device you need to fine tune
+the color parameters to match your device's color rendition. To do
+this, you will need a Pantone chart for your device. The header file
+'color.lpro' shows a (rough) correspondence between the Crayola crayon
+names and the Pantone numbers and also defines default CMYK values for
+each of the colors. Note that these colors must be defined in CMYK
+terms and not RGB, as Dvips outputs PostScript color commands in CMYK.
+This header file also defines (if they are not known to the interpreter)
+the PostScript commands 'setcmykcolor' and 'currentcmykcolor' in terms
+of a RGB equivalent so if your device only understands RGB, there should
+be no problem.
+
+ The parameters set in this file were determined by comparing the
+Pantone chart of a Tektronix Phaser printer with the actual Crayola
+Crayons. Because these were defined for a particular device, the actual
+color rendition on your device may be very different. There are two
+ways to adjust this. One is to use the PAntone chart for your device to
+rewrite 'color.lpro' prior to compilation and installation. A better
+alternative, which supports multiple devices, is to add a header file
+option in the configuration file (*note Configuration file commands::)
+for each device that defines, in 'userdict', the color parameters for
+those colors that need redefining.
+
+ For example, if you need to change the parameters defining
+'Goldenrod' (approximately Pantone 109 on the Phaser) for your device
+'mycolordev', do the following. In the Pantone chart for your device,
+find the CMYK values for Pantone 109. Let's say they are '{\ 0 0.10
+0.75 0.03 }'. Then create a header file named 'mycolordev.pro' with the
+commands
+
+ userdict begin
+ /Goldenrod { 0 0.10 0.75 0.03 setcmykcolor} bind def
+
+Finally, in 'config.mycolordev' add the line
+
+ h mycolordev.pro
+
+This will then define 'Goldenrod' in your device's CMYK values in
+'userdict' which is checked before defining it in 'TeXdict' by
+'color.pro'. (On MS-DOS, you will have to call this file
+'mycolordev.cfg'.)
+
+ This mechanism, together with additions to 'colordvi.tex' and
+'blackdvi.tex' (and the '.sty' files), can also be used to predefine
+other colors for your users.
+
+
+File: dvips.info, Node: Color support details, Prev: Color device configuration, Up: Color
+
+7.6 Color support details
+=========================
+
+To support color, Dvips recognizes a certain set of specials. These
+specials start with the keyword 'color' or the keyword 'background',
+followed by a color specification.
+
+* Menu:
+
+* Color specifications::
+* Color specials::
+
+
+File: dvips.info, Node: Color specifications, Next: Color specials, Up: Color support details
+
+7.6.1 Color specifications
+--------------------------
+
+What is a color specification? One of three things. First, it might be
+a PostScript procedure as defined in a PostScript header file. The
+'color.pro' file defines 64 of these, including 'Maroon'. This
+PostScript procedure must set the current color to be some value; in
+this case, 'Maroon' is defined as '0 0.87 0.68 0.32 setcmykcolor'.
+
+ The second possibility is the name of a color model (initially, one
+of 'rgb', 'hsb', 'cmyk', or 'gray') followed by the appropriate number
+of parameters. When Dvips encounters such a macro, it sends out the
+parameters first, followed by the string created by prefixing 'TeXcolor'
+to the color model. Thus, the color specification 'rgb 0.3 0.4 0.5'
+would generate the PostScript code '0.3 0.4 0.5 TeXrgbcolor'. Note that
+the case of zero arguments is disallowed, as that is handled by the
+single keyword case ('Maroon') above, where no changes to the name are
+made before it is sent to the PostScript file.
+
+ The third and final type of color specification is a double quote
+followed by any sequence of PostScript. The double quote is stripped
+from the output. For instance, the color specification '"AggiePattern
+setpattern' will set the 'color' to the Aggie logo pattern (assuming
+such exists.)
+
+
+File: dvips.info, Node: Color specials, Prev: Color specifications, Up: Color support details
+
+7.6.2 Color specials
+--------------------
+
+We will describe 'background' first, since it is the simplest. The
+'background' keyword must be followed by a color specification. That
+color specification is used as a fill color for the background. The
+last 'background' special on a page is the one that gets issued, and it
+gets issued at the very beginning of the page, before any text or
+specials are sent. (This is possible because the prescan phase of Dvips
+notices all of the color specials so that the appropriate information
+can be written out during the second phase.)
+
+ The 'color' special itself has three forms. The first is just
+'color' followed by a color specification. In this case, the current
+global color is set to that color; the color stack must be empty when
+such a command is executed.
+
+ The second form is 'color push' followed by a color specification.
+This saves the current color on the color stack and sets the color to be
+that given by the color specification. This is the most common way to
+set a color.
+
+ The final version of the 'color' special is just 'color pop', with no
+color specification; this says to pop the color last pushed on the color
+stack from the color stack and set the current color to be that color.
+
+ Dvips correctly handles these color specials across pages, even when
+the pages are repeated or reversed.
+
+ These color specials can be used for things such as patterns or
+screens as well as simple colors. However, note that in the PostScript,
+only one color specification can be active at a time. For instance, at
+the beginning of a page, only the bottommost entry on the color stack is
+sent; also, when a color is popped, all that is done is that the color
+specification from the previous stack entry is sent. No 'gsave' or
+'grestore' is used. This means that you cannot easily mix usage of the
+'color' specials for screens and colors, just one or the other. This
+may be addressed in the future by adding support for different
+categories of color-like state.
+
+
+File: dvips.info, Node: Index, Prev: Color, Up: Top
+
+Index
+*****
+
+
+* Menu:
+
+* ! special (literal PS header): Literal headers. (line 6)
+* ! starting output filename: Option details. (line 247)
+* " special (literal PostScript): " special. (line 6)
+* %%BoundingBox: Bounding box. (line 17)
+* %%Page, and multi-page information: PostScript hooks. (line 37)
+* %%Page, not generating: Option details. (line 212)
+* %%Page, removing: Option details. (line 165)
+* %%Page, required by Ghostview: Ghostscript installation.
+ (line 12)
+* %%Title: Option details. (line 357)
+* %%VMusage: Headers and memory usage.
+ (line 12)
+* %*Font: Fonts in figures. (line 6)
+* (atend), bounding box specification: Bounding box. (line 28)
+* +PSMAPFILE: Configuration file commands.
+ (line 126)
+* -: Option details. (line 11)
+* - as output filename: Option details. (line 247)
+* --help: Option summary. (line 7)
+* --help <1>: Option details. (line 15)
+* --version: Option details. (line 18)
+* -a: Option details. (line 21)
+* -A: Option details. (line 27)
+* -a <1>: Afm2tfm options. (line 33)
+* -B: Option details. (line 37)
+* -b NUM: Option details. (line 31)
+* -bitmapfontenc OPTION: Option details. (line 41)
+* -c NUM: Option details. (line 46)
+* -C NUM: Option details. (line 51)
+* -c RATIO: Afm2tfm options. (line 43)
+* -d NUM: Option details. (line 57)
+* -D NUM: Option details. (line 63)
+* -E: Option details. (line 87)
+* -e NUM: Option details. (line 76)
+* -e RATIO: Afm2tfm options. (line 47)
+* -f: Option details. (line 103)
+* -F: Option details. (line 115)
+* -G: Option details. (line 122)
+* -h NAME: Option details. (line 127)
+* -i: Option details. (line 132)
+* -j for partial font downloading: Option details. (line 151)
+* -K: Option details. (line 165)
+* -k for cropmarks: Option details. (line 157)
+* -L: Option details. (line 183)
+* -l [=]NUM: Option details. (line 174)
+* -m: Option details. (line 187)
+* -M: Option details. (line 199)
+* -mode MODE: Option details. (line 190)
+* -N: Option details. (line 212)
+* -n NUM: Option details. (line 209)
+* -noomega: Option details. (line 220)
+* -noptex: Option details. (line 226)
+* -O: Afm2tfm options. (line 51)
+* -o NAME: Option details. (line 242)
+* -O X-OFFSET,Y-OFFSET: Option details. (line 259)
+* -P PRINTER: Option details. (line 291)
+* -p PS-ENC: Changing PostScript encodings.
+ (line 6)
+* -p PS-ENC <1>: Afm2tfm options. (line 56)
+* -p [=]NUM: Option details. (line 277)
+* -pp FIRST-LAST: Option details. (line 286)
+* -pp RANGE: Option details. (line 286)
+* -PPRINTER, and config file searching: Configuration file searching.
+ (line 27)
+* -q: Option details. (line 310)
+* -r: Option details. (line 314)
+* -R: Option details. (line 317)
+* -s: Option details. (line 325)
+* -S NUM: Option details. (line 332)
+* -s SLANT: Afm2tfm options. (line 61)
+* -T ENC-FILE: Changing both encodings.
+ (line 6)
+* -T HSIZE,VSIZE: Option details. (line 363)
+* -t PAPERTYPE: Option details. (line 337)
+* -T PS-TEX-ENC: Afm2tfm options. (line 71)
+* -t TEX-ENC: Changing TeX encodings.
+ (line 6)
+* -t TEX-ENC <1>: Afm2tfm options. (line 66)
+* -title STR: Option details. (line 357)
+* -U: Option details. (line 378)
+* -u: Afm2tfm options. (line 75)
+* -u PSMAPFILE: Option details. (line 370)
+* -v: Option details. (line 386)
+* -V: Option details. (line 389)
+* -v VPL-FILE: Afm2tfm options. (line 81)
+* -V VPL-FILE: Afm2tfm options. (line 84)
+* -x NUM: Option details. (line 398)
+* -X NUM: Option details. (line 406)
+* -Y NUM: Option details. (line 413)
+* -z: Hypertext. (line 6)
+* -Z for compressing bitmap fonts: Option details. (line 422)
+* -z for recognizing hyperdvi: Option details. (line 416)
+* '..'-relative filenames: Option details. (line 317)
+* .afm Adobe metric files: Metric files. (line 26)
+* .dvipsrc, searched for: Configuration file searching.
+ (line 14)
+* .enc extension for encoding vectors: psfonts.map. (line 42)
+* .lpro long prologue files: Header files. (line 12)
+* .mf Metafont source files: Glyph files. (line 30)
+* .NNNpk packed font bitmaps: Glyph files. (line 35)
+* .pfa extension required for partial downloading: psfonts.map.
+ (line 46)
+* .pfa printer font ascii files: Glyph files. (line 25)
+* .pfb extension required for partial downloading: psfonts.map.
+ (line 46)
+* .pfb printer font binary files: Glyph files. (line 25)
+* .pfm printer font metric files: Metric files. (line 48)
+* .pl property list files: Metric files. (line 39)
+* .pro prologue files: Header files. (line 12)
+* .tfm TeX font metric files: Metric files. (line 31)
+* /#copies: Option details. (line 31)
+* /#copies <1>: Option details. (line 46)
+* /magscale: EPSF scaling. (line 66)
+* 612 792 bounding box size: Bounding box. (line 43)
+* 8r encoding, and extra characters: Changing PostScript encodings.
+ (line 24)
+* 8r font encoding: psfonts.map. (line 31)
+* 8r.enc: Encodings. (line 35)
+* < font downloading: psfonts.map. (line 11)
+* << whole font downloading: psfonts.map. (line 60)
+* <[ encoding vector downloading: psfonts.map. (line 36)
+* =: ligature operation: Encoding file format.
+ (line 59)
+* @ config command (define paper sizes): Configuration file commands.
+ (line 18)
+* \.: Reencoding with Afm2tfm.
+ (line 43)
+* \AA: Reencoding with Afm2tfm.
+ (line 43)
+* \COLORNAME: Color macro files. (line 31)
+* \dot: Reencoding with Afm2tfm.
+ (line 43)
+* \epsffile macro: EPSF macros. (line 38)
+* \epsfsize: EPSF scaling. (line 29)
+* \epsfverbosetrue: EPSF macros. (line 46)
+* \epsfxsize: EPSF scaling. (line 14)
+* \epsfysize: EPSF scaling. (line 20)
+* \H: Reencoding with Afm2tfm.
+ (line 43)
+* \includegraphics LaTeX macro: \includegraphics. (line 6)
+* \leavevmode: EPSF macros. (line 26)
+* \magnification: EPSF scaling. (line 62)
+* \rotninety: Literal examples. (line 27)
+* \textCOLORNAME: Color macro files. (line 46)
+* | starting output filename: Option details. (line 247)
+* a config command (conserve memory): Configuration file commands.
+ (line 21)
+* A ring, Scandinavian letter: Reencoding with Afm2tfm.
+ (line 32)
+* a3 papertype: Option details. (line 337)
+* a4 paper size: Config file paper sizes.
+ (line 82)
+* a4 papertype: Option details. (line 337)
+* A4size paper size: Config file paper sizes.
+ (line 90)
+* absolute filenames, disabling: Option details. (line 317)
+* absolute page number, and '-l': Option details. (line 174)
+* absolute page number, and '-p': Option details. (line 277)
+* accent height adjustment, omitting: Afm2tfm options. (line 33)
+* accents, in wrong position: Reencoding with Afm2tfm.
+ (line 32)
+* accents, wrong: Afm2tfm options. (line 17)
+* accuracy in positioning: Option details. (line 76)
+* afm files: Metric files. (line 26)
+* afm2tfm: Making a font available.
+ (line 46)
+* afm2tfm <1>: Invoking afm2tfm. (line 6)
+* afm2tfm options: Afm2tfm options. (line 6)
+* after header, inserting code: Including headers from TeX.
+ (line 28)
+* Aladdin Ghostscript: Ghostscript installation.
+ (line 6)
+* Anderson, Laurie: Hypertext specials. (line 42)
+* angle ('psfile' special option): psfile special. (line 36)
+* arcs: Glyph files. (line 17)
+* ASCII character codes, used by PostScript: PostScript typesetting.
+ (line 31)
+* atend, bounding box specification: Bounding box. (line 28)
+* b config command (#copies): Configuration file commands.
+ (line 24)
+* base: Hypertext specials. (line 57)
+* base encoding, recommended: psfonts.map. (line 31)
+* base fonts: Virtual fonts. (line 23)
+* bbfig: Bounding box. (line 37)
+* before header, inserting code: Including headers from TeX.
+ (line 28)
+* Bhattacharya, Tanmoy: Hypertext. (line 22)
+* big points: Bounding box. (line 11)
+* binary files, not supported: Including graphics fails.
+ (line 23)
+* bitmap font encoding: Option details. (line 41)
+* bitmap font encodings: Bitmap font encodings.
+ (line 6)
+* bitmap fonts: Glyph files. (line 30)
+* bitmapfontenc config command (bitmap font encoding): Configuration file commands.
+ (line 27)
+* bop undefined error: Printer errors. (line 6)
+* bop-hook: Paper trays. (line 6)
+* bop-hook <1>: EPSF scaling. (line 74)
+* bop-hook <2>: PostScript hooks. (line 11)
+* bop-hook, and offset pages: Option details. (line 272)
+* boundary character: Encoding file format.
+ (line 41)
+* bounding box, comment for: Bounding box. (line 6)
+* bounding box, defined: Bounding box. (line 11)
+* bounding box, determining: Bounding box. (line 37)
+* bounding box, finding tight: Option details. (line 87)
+* bounding box, for bitmap fonts: Bitmap font encodings.
+ (line 44)
+* bounding box, inaccurate: EPSF clipping. (line 6)
+* bounding box, supplying to TeX: \includegraphics. (line 36)
+* bounding box, supplying to TeX <1>: EPSF macros. (line 26)
+* c config command (include another config file): Configuration file commands.
+ (line 32)
+* changing PostScript encodings: Changing PostScript encodings.
+ (line 6)
+* changing TeX encodings: Changing TeX encodings.
+ (line 6)
+* character definitions in PostScript: PostScript typesetting.
+ (line 55)
+* character lookup procedure in PostScript: PostScript typesetting.
+ (line 6)
+* CharStrings Type 1 dictionary: PostScript typesetting.
+ (line 51)
+* clip ('psfile' special option): psfile special. (line 39)
+* clipping of EPSF: EPSF clipping. (line 6)
+* CODINGSCHEME: Reencoding with Afm2tfm.
+ (line 51)
+* collated copies: Option details. (line 51)
+* color: Color. (line 6)
+* color configuration: Color device configuration.
+ (line 6)
+* color macros: Color macro files. (line 6)
+* color names, mixed case: Color macro files. (line 17)
+* color nesting level: Color macro files. (line 39)
+* color separations: Option details. (line 31)
+* color specifications: Color specifications.
+ (line 6)
+* color subtleties: Color subtleties. (line 6)
+* colors, user-definable: User-definable colors.
+ (line 6)
+* command line, including headers from: Including headers from the command line.
+ (line 6)
+* command-line options: Invoking Dvips. (line 6)
+* comments, in configuration files: Configuration file commands.
+ (line 13)
+* comments, in encoding files: Encoding file format.
+ (line 20)
+* comments, removing included: Option details. (line 165)
+* compilation: Installation. (line 6)
+* compressed PostScript: Dynamic creation of graphics.
+ (line 6)
+* compressing bitmap fonts: Option details. (line 422)
+* Computer Modern in PostScript: Hypertext caveats. (line 6)
+* Computer Modern, encoding of: Encodings. (line 15)
+* condensed fonts: Afm2tfm options. (line 47)
+* config.proto: config.ps installation.
+ (line 14)
+* config.ps: Option details. (line 291)
+* config.ps installation: config.ps installation.
+ (line 6)
+* config.ps paper sizes: Config file paper sizes.
+ (line 82)
+* config.ps, searched for: Configuration file searching.
+ (line 10)
+* configuration file options: Configuration file commands.
+ (line 6)
+* configuration file paper size command: Config file paper sizes.
+ (line 6)
+* configuration file path: Environment variables.
+ (line 56)
+* configuration file searching: Configuration file searching.
+ (line 6)
+* configuration files: Config files. (line 6)
+* configuration files, creating: config.ps installation.
+ (line 6)
+* configuration files, prototype: config.ps installation.
+ (line 14)
+* configuration, of color devices: Color device configuration.
+ (line 6)
+* configuration, of Dvips: Installation. (line 6)
+* continuation lines, not supported: Configuration file commands.
+ (line 13)
+* control-D: Option details. (line 115)
+* coordinate system, for bitmap fonts: Bitmap font encodings.
+ (line 44)
+* copies, collated: Option details. (line 51)
+* copies, duplicated page bodies: Option details. (line 31)
+* copies, uncollated: Option details. (line 46)
+* Crayola crayon box: Color macro files. (line 17)
+* crop.pro: Option details. (line 157)
+* cropmarks: Option details. (line 157)
+* current font, in PostScript: PostScript typesetting.
+ (line 35)
+* D config command (dpi): Configuration file commands.
+ (line 36)
+* dated output: PostScript hooks. (line 16)
+* datestamp, in output: Configuration file commands.
+ (line 42)
+* debugging: Diagnosing problems. (line 6)
+* debugging <1>: Option details. (line 57)
+* debugging options: Debug options. (line 6)
+* default resolutions: Configuration file commands.
+ (line 147)
+* default_texsizes Make variable: Configuration file commands.
+ (line 163)
+* Deutsch, Peter: Ghostscript installation.
+ (line 6)
+* device dependency, and virtual fonts: Configuration file commands.
+ (line 186)
+* dictionary, 'CharStrings': PostScript typesetting.
+ (line 51)
+* dictionary, PostScript language: PostScript typesetting.
+ (line 35)
+* dictionary, 'SDict': Literal headers. (line 6)
+* dictionary, 'userdict': Header files. (line 21)
+* distillation, and '-z': Option details. (line 416)
+* distiller, for PDF files: Hypertext. (line 11)
+* document title, specifying: Option details. (line 357)
+* dot accent: Reencoding with Afm2tfm.
+ (line 32)
+* double-sided printing: Option details. (line 37)
+* downloading fonts partially: psfonts.map. (line 55)
+* downloading PostScript fonts: psfonts.map. (line 6)
+* Doyle, Mark: Hypertext. (line 22)
+* draft copies: PostScript hooks. (line 16)
+* dual paper trays: Paper trays. (line 6)
+* duplex printers: Including headers from the command line.
+ (line 13)
+* DVI magnification: EPSF scaling. (line 62)
+* dvihps, hyperdvi to PostScript: Hypertext. (line 22)
+* Dvips configuration file options: Configuration file commands.
+ (line 6)
+* dvips-all.enc: Bitmap font encodings.
+ (line 21)
+* dvips.enc: Encodings. (line 35)
+* DVIPSDEBUG: Environment variables.
+ (line 17)
+* DVIPSFONTS: Environment variables.
+ (line 26)
+* DVIPSHEADERS: Environment variables.
+ (line 31)
+* DVIPSHEADERS, overrides H: Configuration file commands.
+ (line 60)
+* DVIPSMAKEPK: Environment variables.
+ (line 35)
+* DVIPSRC: Environment variables.
+ (line 41)
+* DVIPSSIZES: Environment variables.
+ (line 46)
+* DVIPSSIZES, overrides R: Configuration file commands.
+ (line 160)
+* dynamic creation of graphics: Dynamic creation of graphics.
+ (line 6)
+* e config command (maxdrift): Configuration file commands.
+ (line 39)
+* E config command (shell escape): Configuration file commands.
+ (line 42)
+* efficiency, and fonts: Making a font available.
+ (line 104)
+* ehandler.ps: No output. (line 12)
+* embedding Type 1 fonts: Hypertext caveats. (line 6)
+* encoding changes: Changing font encodings.
+ (line 6)
+* encoding file format: Encoding file format.
+ (line 6)
+* encoding files: Encodings. (line 27)
+* Encoding Type 1 dictionary: PostScript typesetting.
+ (line 43)
+* encoding vectors, defined: Encodings. (line 27)
+* encoding vectors, in Type 1 fonts: PostScript typesetting.
+ (line 43)
+* encodings: Encodings. (line 6)
+* encodings, for bitmap fonts: Bitmap font encodings.
+ (line 6)
+* end-hook: PostScript hooks. (line 11)
+* environment variables: Environment variables.
+ (line 6)
+* EOF: Option details. (line 115)
+* eop-hook: PostScript hooks. (line 11)
+* EPS, and Ghostview: Ghostscript installation.
+ (line 12)
+* EPSF macros: EPSF macros. (line 6)
+* EPSF, generating: Option details. (line 87)
+* epsf.sty: EPSF macros. (line 15)
+* epsf.tex: EPSF macros. (line 13)
+* Epson printers: Ghostscript installation.
+ (line 6)
+* error messages from printer: Printer errors. (line 6)
+* even pages only: Option details. (line 37)
+* examples of literal PostScript: Literal examples. (line 6)
+* expanded fonts: Special font effects.
+ (line 24)
+* expanded fonts <1>: Afm2tfm options. (line 47)
+* expanded fonts <2>: psfonts.map. (line 19)
+* expansion, of virtual fonts: Virtual fonts. (line 33)
+* extended URL: Hypertext specials. (line 20)
+* ExtendFont: Special font effects.
+ (line 28)
+* extra characters, accessing: Changing PostScript encodings.
+ (line 18)
+* f config command (filter): Configuration file commands.
+ (line 50)
+* F config command (filter): Configuration file commands.
+ (line 50)
+* failure, and printer errors: Printer errors. (line 6)
+* failure, of long documents: Long documents fail. (line 6)
+* failure, to include graphics: Including graphics fails.
+ (line 6)
+* failure, to print at all: No output. (line 6)
+* fallback resolutions: Configuration file commands.
+ (line 147)
+* figures and fonts: Fonts in figures. (line 6)
+* figures, natural size: EPSF macros. (line 38)
+* figures, scaling: EPSF scaling. (line 6)
+* filter, running as a: Option details. (line 103)
+* first page printed: Option details. (line 277)
+* font concepts: Font concepts. (line 6)
+* font encodings, bitmap: Bitmap font encodings.
+ (line 6)
+* font generation, avoiding: Option details. (line 199)
+* fontinst: Invoking afm2tfm. (line 13)
+* fonts, as header files: Including headers from TeX.
+ (line 13)
+* fonts, changing encoding of: Changing font encodings.
+ (line 6)
+* fonts, downloading: psfonts.map. (line 6)
+* fonts, expanded: Special font effects.
+ (line 24)
+* fonts, in PostScript figures: Fonts in figures. (line 6)
+* fonts, installation of PostScript: PostScript font installation.
+ (line 6)
+* fonts, installing: Making a font available.
+ (line 6)
+* fonts, outlined: Special font effects.
+ (line 50)
+* fonts, slanted: Special font effects.
+ (line 6)
+* fonts, small caps: Special font effects.
+ (line 34)
+* fonts, system PostScript: PostScript font installation.
+ (line 11)
+* G config command (character shifting): Configuration file commands.
+ (line 53)
+* gf files: Glyph files. (line 41)
+* gftopk: Glyph files. (line 41)
+* Ghostscript installation: Ghostscript installation.
+ (line 6)
+* ghostview: Ghostscript installation.
+ (line 12)
+* Ghostview, and no 'N': Ghostscript installation.
+ (line 12)
+* glyph files: Glyph files. (line 6)
+* GLYPHFONTS, overrides P: Configuration file commands.
+ (line 135)
+* gnuplot: Dynamic creation of graphics.
+ (line 25)
+* graphics inclusion fails: Including graphics fails.
+ (line 6)
+* gs installation: Ghostscript installation.
+ (line 6)
+* gsave/grestore, and literal PS: Literal examples. (line 27)
+* gsftopk: Option details. (line 390)
+* h config command (download additional header): Configuration file commands.
+ (line 57)
+* H config command (PostScript header path): Configuration file commands.
+ (line 60)
+* Hafner, Jim: Color. (line 6)
+* header file, downloading: Option details. (line 127)
+* header files, defined: Header files. (line 6)
+* header path, defining: Configuration file commands.
+ (line 60)
+* header=FILE \special: Including headers from TeX.
+ (line 6)
+* headers and memory usage: Headers and memory usage.
+ (line 6)
+* headers, including from the command line: Including headers from the command line.
+ (line 6)
+* headers, including in TeX: Including headers from TeX.
+ (line 6)
+* hints: PostScript typesetting.
+ (line 55)
+* hoffset ('psfile' special option): psfile special. (line 18)
+* HP4Si printer and paper trays: Paper trays. (line 6)
+* href: Hypertext specials. (line 32)
+* hscale ('psfile' special option): psfile special. (line 30)
+* hsize ('psfile' special option): psfile special. (line 24)
+* html specials: Hypertext. (line 6)
+* html specials, and '-z': Option details. (line 416)
+* 'http://xxx.lanl.gov/hypertex': Hypertext. (line 22)
+* Hungarian umlaut: Reencoding with Afm2tfm.
+ (line 32)
+* hyperdvi extensions, enabling: Option details. (line 416)
+* hypertext and bitmap fonts: Hypertext caveats. (line 6)
+* hypertext caveats: Hypertext caveats. (line 6)
+* hypertext caveats <1>: Hypertext caveats. (line 6)
+* hypertext specials: Hypertext specials. (line 6)
+* hypertext support: Hypertext. (line 6)
+* i config command (pages/section): Configuration file commands.
+ (line 64)
+* Illustrator, workaround for: Including graphics fails.
+ (line 10)
+* img: Hypertext specials. (line 52)
+* including graphics fails: Including graphics fails.
+ (line 6)
+* including headers from the command line: Including headers from the command line.
+ (line 6)
+* including headers in TeX: Including headers from TeX.
+ (line 6)
+* installation of 'config.ps': config.ps installation.
+ (line 6)
+* installation of PostScript fonts: PostScript font installation.
+ (line 6)
+* installation, of Dvips: Installation. (line 6)
+* installing fonts: Making a font available.
+ (line 6)
+* interaction with PostScript: Interaction with PostScript.
+ (line 6)
+* inverted output: Small or inverted. (line 6)
+* invoking Dvips: Invoking Dvips. (line 6)
+* j config command (partial font downloading): Configuration file commands.
+ (line 68)
+* Japanese font metric file: Virtual fonts. (line 37)
+* Jeffrey, Alan: Invoking afm2tfm. (line 13)
+* JFM file, and virtual font fallback: Virtual fonts. (line 37)
+* K config command (comment removal): Configuration file commands.
+ (line 72)
+* kerning, defined: Metric files. (line 15)
+* KPATHSEA_DEBUG: Environment variables.
+ (line 18)
+* L config command (last paper size wins): Configuration file commands.
+ (line 76)
+* landscape orientation, defined: Paper size and landscape.
+ (line 11)
+* landscape papertype: Option details. (line 337)
+* landscape, as '\special': 'papersize' special. (line 16)
+* last page printed: Option details. (line 174)
+* last-resort font scaling, with 'DVIPSSIZES': Environment variables.
+ (line 47)
+* last-resort scaling, with 'R': Configuration file commands.
+ (line 147)
+* ledger papertype: Option details. (line 337)
+* legal papertype: Option details. (line 337)
+* letter paper size: Config file paper sizes.
+ (line 82)
+* letter papertype: Option details. (line 337)
+* letterhead tray: Paper trays. (line 10)
+* letterSize paper size: Config file paper sizes.
+ (line 90)
+* ligature operations: Encoding file format.
+ (line 54)
+* ligature, defined: Metric files. (line 15)
+* LIGKERN encoding file command: Encoding file format.
+ (line 37)
+* lines in figures, wrong width: EPSF clipping. (line 6)
+* links, hypertext: Hypertext specials. (line 33)
+* literal headers: Literal headers. (line 6)
+* literal PostScript, examples: Literal examples. (line 6)
+* literal PostScript, using: Literal PS. (line 6)
+* llx ('psfile' special option): psfile special. (line 42)
+* lly ('psfile' special option): psfile special. (line 42)
+* long documents not printing: Long documents fail. (line 6)
+* low characters, shifting: Option details. (line 122)
+* lpr spooler, MS-DOS emulation: Option details. (line 247)
+* m config command (available memory): Configuration file commands.
+ (line 80)
+* M config command (mf mode): Configuration file commands.
+ (line 107)
+* macros for color: Color macro files. (line 6)
+* macros for epsf inclusion: \includegraphics. (line 6)
+* macros for epsf inclusion <1>: EPSF macros. (line 6)
+* magnification, DVI: EPSF scaling. (line 62)
+* magnification, overriding DVI: Option details. (line 398)
+* magnification, vertical: Option details. (line 409)
+* mailcap and hypertext: Hypertext specials. (line 53)
+* manual feed: Option details. (line 187)
+* maxdrift: Option details. (line 76)
+* maximum pages printed: Option details. (line 209)
+* media: Option details. (line 337)
+* memory available: Configuration file commands.
+ (line 80)
+* memory of printer exhausted: Printer errors. (line 14)
+* memory usage, and headers: Headers and memory usage.
+ (line 6)
+* memory, conserving: Option details. (line 21)
+* memory, used by PostScript fonts: Making a font available.
+ (line 104)
+* Metafont ligature operations: Encoding file format.
+ (line 54)
+* Metafont mode, specifying: Option details. (line 190)
+* Metafont source files: Glyph files. (line 30)
+* metric files: Metric files. (line 6)
+* Minion typeface family: psfonts.map. (line 60)
+* missfont.log: Option details. (line 199)
+* MISSFONT_LOG: Option details. (line 202)
+* Mitsubishi Shinko CHC-S446i printer: No output. (line 14)
+* mkdvipspapers: Config file paper sizes.
+ (line 79)
+* mktexpk, avoiding: Option details. (line 199)
+* mktexpk, changing name: Environment variables.
+ (line 36)
+* mode name, specifying: Option details. (line 190)
+* mtpk: Option details. (line 390)
+* multiple master fonts: psfonts.map. (line 60)
+* multiple output files: Option details. (line 132)
+* multiple paper trays: Paper trays. (line 6)
+* Murphy, Tim: Hypertext specials. (line 20)
+* N config command (disable EPS): Configuration file commands.
+ (line 110)
+* name: Hypertext specials. (line 41)
+* narrow fonts: psfonts.map. (line 19)
+* no output at all: No output. (line 6)
+* non-printing characters, shifting: Option details. (line 122)
+* non-resident fonts: psfonts.map. (line 6)
+* nopaper, paper format for '-t': Config file paper sizes.
+ (line 74)
+* o config command (output destination): Configuration file commands.
+ (line 115)
+* O config command (page offsets): Configuration file commands.
+ (line 123)
+* oblique fonts: Special font effects.
+ (line 6)
+* octal character codes: Afm2tfm options. (line 51)
+* odd pages only: Option details. (line 27)
+* offset pages: Option details. (line 259)
+* Omega extensions: Option details. (line 220)
+* option, details of: Option details. (line 6)
+* options, debugging: Debug options. (line 6)
+* options, Dvips: Invoking Dvips. (line 6)
+* options, reading from standard input: Option details. (line 11)
+* options, summary: Option summary. (line 6)
+* options, to Afm2tfm: Afm2tfm options. (line 6)
+* outline fonts: Glyph files. (line 17)
+* outline fonts <1>: Special font effects.
+ (line 50)
+* output file, sectioning of: Headers and memory usage.
+ (line 6)
+* output file, setting: Configuration file commands.
+ (line 115)
+* output files, multiple: Option details. (line 132)
+* output title, specifying: Option details. (line 357)
+* output, inverted: Small or inverted. (line 6)
+* output, none: No output. (line 6)
+* output, redirecting: Option details. (line 242)
+* output, too small: Small or inverted. (line 6)
+* p config command (font aliases): Configuration file commands.
+ (line 126)
+* P config command (PK path): Configuration file commands.
+ (line 135)
+* page range: Option details. (line 286)
+* page, first printed: Option details. (line 277)
+* page, last printed: Option details. (line 174)
+* pages, maximum printed: Option details. (line 209)
+* PaintType: Special font effects.
+ (line 50)
+* Pantone colors: Color macro files. (line 17)
+* paper size configuration file command: Config file paper sizes.
+ (line 6)
+* paper size, default: config.ps installation.
+ (line 6)
+* paper size, general: Paper size and landscape.
+ (line 6)
+* paper trays: Paper trays. (line 6)
+* paper type: Option details. (line 337)
+* papersize special: 'papersize' special. (line 6)
+* papersize special, and no '-t': Option details. (line 337)
+* 'papersize' special, first vs. last: Option details. (line 183)
+* partial font downloading: psfonts.map. (line 55)
+* PDF files, font quality: Hypertext caveats. (line 6)
+* PDF files, making: Ghostscript installation.
+ (line 6)
+* PDF files, making <1>: Hypertext. (line 11)
+* PDF files, option for: Option details. (line 416)
+* pdfmark: Hypertext. (line 6)
+* pfa files: Glyph files. (line 25)
+* pfb files: Glyph files. (line 25)
+* pfb files, automatically unpacked: psfonts.map. (line 49)
+* pfm files: Metric files. (line 48)
+* Phaser printer, used for color calibration: Color device configuration.
+ (line 18)
+* physical page number, and '-l': Option details. (line 174)
+* physical page number, and '-p': Option details. (line 277)
+* physical page number, and 'bop-hook': PostScript hooks. (line 26)
+* pipes, not readable: Option details. (line 103)
+* pk files: Glyph files. (line 35)
+* PKFONTS, overrides P: Configuration file commands.
+ (line 135)
+* plotfile, 'ps' subspecial: ps special. (line 29)
+* pltotf: Metric files. (line 39)
+* popen for output: Option details. (line 247)
+* portrait orientation, defined: Paper size and landscape.
+ (line 11)
+* positioning accuracy: Option details. (line 76)
+* post code after headers: Including headers from TeX.
+ (line 28)
+* PostScript code, literal: Literal PS. (line 6)
+* PostScript encoding: Encodings. (line 27)
+* PostScript encoding, changing: Changing PostScript encodings.
+ (line 6)
+* PostScript font alias file: Option details. (line 370)
+* PostScript font alias file <1>: Configuration file commands.
+ (line 126)
+* PostScript fonts: PostScript fonts. (line 6)
+* PostScript fonts, installing: PostScript font installation.
+ (line 6)
+* PostScript fonts, on your system: PostScript font installation.
+ (line 11)
+* PostScript header files: Header files. (line 6)
+* PostScript hooks: PostScript hooks. (line 6)
+* PostScript interaction: Interaction with PostScript.
+ (line 6)
+* PostScript previewers: Ghostscript installation.
+ (line 6)
+* PostScript units: Bounding box. (line 11)
+* PowerPage PostScript implementation: No output. (line 14)
+* pre code before headers: Including headers from TeX.
+ (line 28)
+* previewing Dvips output: Ghostscript installation.
+ (line 6)
+* PRINTER: Environment variables.
+ (line 50)
+* printer configuration: config.ps installation.
+ (line 6)
+* printer configuration file, prototype: config.ps installation.
+ (line 14)
+* printer errors: Printer errors. (line 6)
+* printer memory: Configuration file commands.
+ (line 80)
+* printer memory exhausted: Printer errors. (line 14)
+* printer offset: Option details. (line 259)
+* PRINTER, and config file searching: Configuration file searching.
+ (line 36)
+* PRINTER, avoided with '-f': Option details. (line 103)
+* printer, driving directly: Option details. (line 115)
+* problems: Diagnosing problems. (line 6)
+* property list files: Metric files. (line 39)
+* prototype printer configuration file: config.ps installation.
+ (line 14)
+* ps special: ps special. (line 6)
+* psfile special: psfile special. (line 6)
+* psfonts.map: PostScript font installation.
+ (line 11)
+* psfonts.map <1>: Special font effects.
+ (line 19)
+* psfonts.map <2>: psfonts.map. (line 6)
+* psheaderdir: Header files. (line 12)
+* psi character missing: Hypertext caveats. (line 53)
+* pstopk: Option details. (line 390)
+* pTeX extensions: Option details. (line 220)
+* pTeX extensions <1>: Option details. (line 226)
+* ptex JFM: Virtual fonts. (line 37)
+* q config command (quiet): Configuration file commands.
+ (line 141)
+* Q config command (quiet): Configuration file commands.
+ (line 141)
+* quiet operation: Option details. (line 310)
+* R config command (fallback resolution): Configuration file commands.
+ (line 147)
+* r config command (page reversal): Configuration file commands.
+ (line 144)
+* raw tfm files: Afm2tfm options. (line 17)
+* reencode/*.enc: Encodings. (line 35)
+* reencoding: Reencoding with Afm2tfm.
+ (line 6)
+* reencoding PostScript fonts: psfonts.map. (line 24)
+* registered character, accessing: Changing PostScript encodings.
+ (line 18)
+* remapping: Reencoding with Afm2tfm.
+ (line 6)
+* resident fonts, different in different printers: Option details.
+ (line 370)
+* resident fonts, different in different printers <1>: Configuration file commands.
+ (line 126)
+* resolution: Option details. (line 406)
+* resolution <1>: Option details. (line 413)
+* resolution, setting: Option details. (line 63)
+* reverse pagination: Option details. (line 314)
+* rhi ('psfile' special option): psfile special. (line 46)
+* Rokicki, Tomas: Why Dvips. (line 52)
+* rotate.tex: ps special. (line 33)
+* rwi ('psfile' special option): psfile special. (line 46)
+* s config command (global save/restore): Configuration file commands.
+ (line 169)
+* S config command (pict path): Configuration file commands.
+ (line 172)
+* save/restore, and inverted output: Small or inverted. (line 6)
+* save/restore, and literal PS: Literal examples. (line 27)
+* save/restore, and specials: ps special. (line 6)
+* save/restore, generating global: Option details. (line 325)
+* scaleunit: psfile special. (line 66)
+* scaling of figures: EPSF scaling. (line 6)
+* scaling small caps: Afm2tfm options. (line 43)
+* Scandinavian A ring: Reencoding with Afm2tfm.
+ (line 32)
+* screen frequencies, setting: Including headers from the command line.
+ (line 13)
+* SDict: psfile special. (line 66)
+* SDict dictionary: Literal headers. (line 6)
+* searching config files, order of: Configuration file searching.
+ (line 6)
+* sections of output file, and memory: Headers and memory usage.
+ (line 6)
+* sections output, in separate files: Option details. (line 132)
+* security: Option details. (line 317)
+* shell command execution, disabling: Option details. (line 317)
+* shell escape, in config file: Configuration file commands.
+ (line 42)
+* Shinko CHC-S446i printer: No output. (line 14)
+* show PostScript operator: PostScript typesetting.
+ (line 23)
+* silent operation: Option details. (line 310)
+* simplex mode on duplex printers: Including headers from the command line.
+ (line 13)
+* slanted fonts: Special font effects.
+ (line 6)
+* slanted fonts, making: Afm2tfm options. (line 61)
+* SlantFont: Special font effects.
+ (line 17)
+* small caps fonts: Special font effects.
+ (line 34)
+* Smith, Arthur: Hypertext specials. (line 6)
+* spaces, dropped trailing: Hypertext caveats. (line 53)
+* specials, hypertext: Hypertext specials. (line 6)
+* splines: Glyph files. (line 17)
+* spooler, lacking: Option details. (line 115)
+* spooling to lpr on MS-DOS: Option details. (line 247)
+* standard I/O: Option details. (line 103)
+* standard input, reading options from: Option details. (line 11)
+* standard output, output to: Option details. (line 242)
+* standard PostScript, required by Ghostview: Ghostscript installation.
+ (line 12)
+* start-hook: PostScript hooks. (line 11)
+* structured comments: Option details. (line 212)
+* system in config file: Configuration file commands.
+ (line 42)
+* T config command (TFM path): Configuration file commands.
+ (line 177)
+* Tektronix Phaser printer, used for color calibration: Color device configuration.
+ (line 18)
+* testpage.tex: Option details. (line 266)
+* TeX encoding, changing: Changing TeX encodings.
+ (line 6)
+* TeX, including headers in: Including headers from TeX.
+ (line 6)
+* TEXCONFIG: Environment variables.
+ (line 55)
+* TEXFONTS, overrides P: Configuration file commands.
+ (line 135)
+* TEXFONTS, overrides T: Configuration file commands.
+ (line 177)
+* TEXINPUTS, overrides S: Configuration file commands.
+ (line 172)
+* texmext.enc: Encodings. (line 35)
+* TEXMFOUTPUT: Option details. (line 202)
+* texmital.enc: Encodings. (line 35)
+* texmsym.enc: Encodings. (line 35)
+* texmsym.enc <1>: Changing TeX encodings.
+ (line 16)
+* TEXPICTS: Environment variables.
+ (line 62)
+* TEXPICTS, overrides S: Configuration file commands.
+ (line 172)
+* TEXPKS, overrides P: Configuration file commands.
+ (line 135)
+* TEXSIZES, overrides R: Configuration file commands.
+ (line 160)
+* text in figures, chopped off: EPSF clipping. (line 6)
+* tfm files: Metric files. (line 31)
+* TFMFONTS, overrides T: Configuration file commands.
+ (line 177)
+* tftopl: Metric files. (line 39)
+* Theisen, Tim: Ghostscript installation.
+ (line 12)
+* tight bounding box, finding: Option details. (line 87)
+* title, specifying: Option details. (line 357)
+* too-small output: Small or inverted. (line 6)
+* trademark character, accessing: Changing PostScript encodings.
+ (line 18)
+* trailing spaces, dropped: Hypertext caveats. (line 53)
+* TranScript: Option details. (line 212)
+* transforming downloaded fonts: psfonts.map. (line 19)
+* trouble: Diagnosing problems. (line 6)
+* Type 1 fonts: Glyph files. (line 25)
+* typesetting in PostScript: PostScript typesetting.
+ (line 6)
+* U config command (Xerox 4045): Configuration file commands.
+ (line 182)
+* uncollated copies: Option details. (line 46)
+* uncompressing PostScript: Dynamic creation of graphics.
+ (line 6)
+* uniform resource locator: Hypertext specials. (line 20)
+* unknown, paper format for '-t': 'papersize' special. (line 29)
+* unknown, paper format for '-t' <1>: Config file paper sizes.
+ (line 69)
+* uptex JFM: Virtual fonts. (line 37)
+* URL, definition: Hypertext specials. (line 27)
+* URL, extended for TeX: Hypertext specials. (line 20)
+* urx ('psfile' special option): psfile special. (line 42)
+* ury ('psfile' special option): psfile special. (line 42)
+* usage, basic: Basic usage. (line 6)
+* user-definable colors: User-definable colors.
+ (line 6)
+* userdict, and dictionary files: Header files. (line 21)
+* userdict, used for header files: Option details. (line 127)
+* V config command (vf path): Configuration file commands.
+ (line 186)
+* verbose EPSF processing: EPSF macros. (line 46)
+* vf files: Virtual fonts. (line 16)
+* virtual font expansion: Virtual fonts. (line 33)
+* virtual font path: Configuration file commands.
+ (line 186)
+* virtual fonts: Virtual fonts. (line 6)
+* virtual fonts, creating: Invoking afm2tfm. (line 13)
+* VM exhausted: Printer errors. (line 14)
+* VMusage: Headers and memory usage.
+ (line 12)
+* voffset ('psfile' special option): psfile special. (line 21)
+* vpl files: Virtual fonts. (line 16)
+* vptovf: Making a font available.
+ (line 52)
+* vscale ('psfile' special option): psfile special. (line 33)
+* vsize ('psfile' special option): psfile special. (line 27)
+* W config command (emit warning): Configuration file commands.
+ (line 191)
+* warning messages, defining: Configuration file commands.
+ (line 191)
+* warnings, suppressing: Option details. (line 310)
+* whole font downloading: psfonts.map. (line 60)
+* wide fonts: psfonts.map. (line 19)
+* X config command (horizontal resolution): Configuration file commands.
+ (line 198)
+* Xerox 4045: Option details. (line 378)
+* Y config command (vertical resolution): Configuration file commands.
+ (line 201)
+* Z config command (compress fonts): Configuration file commands.
+ (line 204)
+* z config command (secure mode): Configuration file commands.
+ (line 207)
+
+
+
+Tag Table:
+Node: Top521
+Node: Why Dvips1271
+Node: Installation3854
+Node: config.ps installation4789
+Node: PostScript font installation7396
+Node: Ghostscript installation8316
+Node: Diagnosing problems9255
+Node: Debug options10346
+Node: No output11350
+Node: Small or inverted12816
+Node: Printer errors13534
+Node: Long documents fail14866
+Node: Including graphics fails15207
+Node: Invoking Dvips16446
+Node: Basic usage17068
+Node: Command-line options18066
+Node: Option summary18514
+Node: Option details20789
+Node: Environment variables41006
+Node: Config files43867
+Node: Configuration file searching44537
+Node: Configuration file commands47734
+Node: Paper size and landscape55708
+Node: 'papersize' special57335
+Node: Config file paper sizes59045
+Node: Paper trays63203
+Node: Interaction with PostScript64537
+Node: PostScript figures65190
+Node: Bounding box65916
+Node: \includegraphics69288
+Node: EPSF macros71580
+Node: EPSF scaling73579
+Node: EPSF clipping76149
+Node: psfile special76791
+Node: Dynamic creation of graphics79183
+Node: Fonts in figures80501
+Node: Header files82151
+Node: Including headers from TeX83361
+Node: Including headers from the command line85399
+Node: Headers and memory usage86498
+Node: Literal PS87709
+Node: " special88291
+Node: ps special89032
+Node: Literal headers90530
+Node: PostScript hooks91239
+Node: Literal examples93335
+Node: Hypertext94789
+Node: Hypertext caveats95963
+Node: Hypertext specials100319
+Node: PostScript fonts102953
+Node: Font concepts104070
+Node: Metric files105300
+Node: Glyph files108080
+Node: Virtual fonts110439
+Node: Encodings112594
+Node: Bitmap font encodings114996
+Node: PostScript typesetting117526
+Node: Making a font available120623
+Node: Invoking afm2tfm125657
+Node: Changing font encodings126677
+Node: Changing TeX encodings127468
+Node: Changing PostScript encodings128570
+Node: Changing both encodings129914
+Node: Reencoding with Afm2tfm130588
+Node: Encoding file format133691
+Node: Special font effects137895
+Node: Afm2tfm options140155
+Node: psfonts.map143680
+Node: Color148410
+Node: Color macro files149454
+Node: User-definable colors152664
+Node: Color subtleties153940
+Node: Ted Turner155592
+Node: Color device configuration156817
+Node: Color support details159261
+Node: Color specifications159639
+Node: Color specials161043
+Node: Index163172
+
+End Tag Table