diff options
Diffstat (limited to 'Build/source/texk/dvipsk/dvips.info')
-rw-r--r-- | Build/source/texk/dvipsk/dvips.info | 4797 |
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 |