diff options
Diffstat (limited to 'Master/texmf-dist/doc')
-rw-r--r-- | Master/texmf-dist/doc/chktex/ChkTeX.pdf | bin | 210637 -> 225402 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/info/dvipng.info | 1 | ||||
-rw-r--r-- | Master/texmf-dist/doc/info/dvips.info | 3113 | ||||
-rw-r--r-- | Master/texmf-dist/doc/info/kpathsea.info | 3234 | ||||
-rw-r--r-- | Master/texmf-dist/doc/info/web2c.info | 3160 |
5 files changed, 4675 insertions, 4833 deletions
diff --git a/Master/texmf-dist/doc/chktex/ChkTeX.pdf b/Master/texmf-dist/doc/chktex/ChkTeX.pdf Binary files differindex 9bc5f24e639..4bebc93ed6f 100644 --- a/Master/texmf-dist/doc/chktex/ChkTeX.pdf +++ b/Master/texmf-dist/doc/chktex/ChkTeX.pdf diff --git a/Master/texmf-dist/doc/info/dvipng.info b/Master/texmf-dist/doc/info/dvipng.info index 62d070278ad..c0f565d72be 100644 --- a/Master/texmf-dist/doc/info/dvipng.info +++ b/Master/texmf-dist/doc/info/dvipng.info @@ -1209,3 +1209,4 @@ Node: Copying45146 Node: Index45926 End Tag Table + diff --git a/Master/texmf-dist/doc/info/dvips.info b/Master/texmf-dist/doc/info/dvips.info index fd8b2fac5ee..71a64d83ba0 100644 --- a/Master/texmf-dist/doc/info/dvips.info +++ b/Master/texmf-dist/doc/info/dvips.info @@ -1,10 +1,8 @@ -This is ../../../texk/dvipsk/dvips.info, produced by makeinfo version -4.13 from ../../../texk/dvipsk/dvips.texi. - -This manual documents Dvips version 5.992 (May 2012), a program to -translate a DVI file into PostScript. You may freely use, modify -and/or distribute this file. +This is dvips.info, produced by makeinfo version 5.1 from dvips.texi. +This manual documents Dvips version 5.993 (April 2013), 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. @@ -18,9 +16,9 @@ File: dvips.info, Node: Top, Next: Why Dvips, Up: (dir) Dvips ***** -This manual documents Dvips version 5.992 (May 2012), a program to -translate a DVI file into PostScript. You may freely use, modify -and/or distribute this file. +This manual documents Dvips version 5.993 (April 2013), a program to +translate a DVI file into PostScript. You may freely use, modify and/or +distribute this file. * Menu: @@ -41,9 +39,9 @@ File: dvips.info, Node: Why Dvips, Next: Installation, Prev: Top, Up: Top 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. +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 @@ -65,9 +63,9 @@ 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 +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 @@ -77,11 +75,11 @@ different size can be used instead, although Dvips will complain loudly about the poor aesthetics of the resulting output. Users will appreciate features such as collated copies and support -for `tpic', `psfig', `emtex', and `METAPOST'; system administrators -will love the support for multiple printers, each with their own +for 'tpic', 'psfig', 'emtex', and 'METAPOST'; system administrators will +love the support for multiple printers, each with their own configuration file, and the ability to pipe the output directly to a -program such as `lpr'. Support for MS-DOS, OS/2, and VMS in addition -to Unix is provided in the standard distribution, and porting to other +program such as 'lpr'. Support for MS-DOS, OS/2, and VMS in addition to +Unix is provided in the standard distribution, and porting to other systems is easy. One of the most important features is the support of virtual fonts, @@ -89,8 +87,8 @@ which add an entirely new level of flexibility to TeX. Virtual fonts are used to give Dvips its excellent PostScript font support, handling all the font remapping in a natural, portable, elegant, and extensible way. Dvips even comes with its own Afm2tfm program that creates the -necessary virtual fonts and TeX font metric files automatically from -the Adobe font metric files. +necessary virtual fonts and TeX font metric files automatically from the +Adobe font metric files. Source is provided and freely distributable, so adding a site-specific feature is possible. Adding such features is made easier @@ -110,14 +108,13 @@ File: dvips.info, Node: Installation, Next: Invoking Dvips, Prev: Why Dvips, ************** Installing Dvips is mostly the same as installing any Kpathsea-using -program. Therefore, for the basic steps involved, *note Installation: -(kpathsea)Installation. +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 Bugs: -(kpathsea)Bugs.). For solutions to Dvips-specific problems, *note -Debug options::. Also see the Dvips home page at -`http://www.radicaleye.com/dvips'. +to report a bug, see the file 'kpathsea/BUGS' (*note (kpathsea)Bugs::). +For solutions to Dvips-specific problems, *note Debug options::. Also +see the Dvips home page at <http://www.radicaleye.com/dvips>. Dvips does require some additional installation, detailed in the sections below. Also, to configure color devices, *note Color device @@ -133,24 +130,22 @@ configuration::. File: dvips.info, Node: config.ps installation, Next: PostScript font installation, Up: Installation -2.1 `config.ps' 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 +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 Config files: (kpathsea)Config -files.). +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: +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. @@ -161,7 +156,7 @@ pleasure: % 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 + % <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 @@ -198,8 +193,8 @@ pleasure: %c FILENAME % You will also want definitions for alternative paper sizes -- A4, - % legal, and such. Examples in `contrib/papersize.level2' and - % `contrib/papersize.simple'. + % 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 @@ -208,76 +203,17 @@ File: dvips.info, Node: PostScript font installation, Next: Ghostscript instal ================================ 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::. - - To support the basic PostScript font set, the recommended (and -simplest) approach is to install the files at -`http://www.ctan.org/tex-archive/fonts/psfonts/lw35nfsx.zip'. This -archive contains metrics, outlines, and bitmaps (for previewing) for -the 35 de facto standard fonts donated by URW and the additional -high-quality freely available PostScript fonts donated by Adobe, -Bitstream, and URW, including geometrically-created variants such as -oblique and small caps. - - `CTAN:/fonts/psfonts' contains support for many additional fonts for -which you must buy outlines (Adobe, Bigelow & Holmes, Monotype, -Softkey, Y&Y). (For CTAN info, *note unixtex.ftp: -(kpathsea)unixtex.ftp.; a copy is in the top-level file `INSTALL'.) +('.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 with appropriate filenames; and (2) running +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' if necessary -(*note psfonts.map::); it contains everything contained in -`lw35nfsx.zip' and most fonts that come with Unix systems. - - Following are locations for vendor-supplied fonts. Please mail -<tex-k@tug.org> if you find fonts elsewhere on your system. - -DEC Ultrix - /usr/lib/DPS/outline/decwin - -DEC Digital Unix - /usr/lib/X11/fonts/Type1Adobe - -HP HP-UX 9, 10 - /usr/lib/X11/fonts/type1.st/typefaces - -IBM AIX - /usr/lpp/DPS/fonts/outlines - /usr/lpp/X11/lib/X11/fonts/Type1 - /usr/lpp/X11/lib/X11/fonts/Type1/DPS - -NeXT - /NextLibrary/Fonts/outline - -SGI IRIX - /usr/lib/DPS/outline/base /usr/lib/X11/fonts/Type1 - -Sun SunOS 4.x - (NeWSprint only) - newsprint_2.5/SUNWsteNP/reloc/$BASEDIR/ - NeWSprint/small_openwin/lib/fonts - /usr/openwin/lib/X11/fonts/Type1/outline - -Sun Solaris 2 - /usr/openwin/lib/X11/fonts/Type1/outline - -VMS - SYS$COMMON:[SYSFONT.XDPS.OUTLINE] - -The NeXT system supplies more fonts than any others, but there's a lot -of overlap. - - Finally, if you have an Hewlett-Packard printer, you should be able -to get Type 1 font files for the standard 35 fonts from HP, if the -freely available URW Type 1's do not satisfy for whatever reason. The -phone number for HP Printer Drivers is (in the United States) -303-339-7009. The driver set to ask for is Adobe Type Manager 2.51, -and the disk set number is `MP210en3'. Mentioning anything other than -Microsoft Windows when you ask for the driver set will likely lead to -great confusion on the other end. +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 @@ -289,17 +225,17 @@ Ghostscript is a PostScript interpreter freely available to end-users, 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 `http://www.cs.wisc.edu/~ghost/index.html' and -`ftp://ftp.cs.wisc.edu/pub/ghost/aladdin/'. +version is available via <http://www.cs.wisc.edu/~ghost/index.html> and +<ftp://ftp.cs.wisc.edu/pub/ghost/aladdin/>. A somewhat older version of Ghostscript is available under the GNU General Public License, free to everyone. You can get that from -`ftp://prep.ai.mit.edu/pub/gnu/'. +<ftp://prep.ai.mit.edu/pub/gnu/>. The program Ghostview, written by 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'). You can +specifically with '%%Page' comments (no 'N' in 'config.ps'). You can get Ghostview from the same places as Ghostscript. @@ -314,12 +250,12 @@ 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 Bugs: (kpathsea)Bugs. +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. +'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: @@ -336,55 +272,43 @@ File: dvips.info, Node: Debug options, Next: No output, Up: Diagnosing proble 2.4.1 Debug options ------------------- -The `-d' flag to Dvips helps in tracking down certain errors. The +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'. +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 Debugging: (kpathsea)Debugging.). + 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 - + Kpathsea 'stat' calls 1024 Kpathsea hash table lookups - 2048 Kpathsea path element expansion - 4096 Kpathsea path searches @@ -395,19 +319,19 @@ File: dvips.info, Node: No output, Next: Small or inverted, Prev: Debug optio ---------------------- If you are not getting any output at all, even from the simplest -one-character file (for instance, `\ \bye'), then something is very +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'.) +'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 +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 @@ -416,7 +340,7 @@ 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 +structured comments. Try the '-N' flag to turn off structured comments and see what happens. @@ -428,9 +352,9 @@ File: dvips.info, Node: Small or inverted, Next: Printer errors, Prev: No out 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), +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 +(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::. @@ -442,18 +366,18 @@ File: dvips.info, Node: Printer errors, Next: Long documents fail, Prev: Smal 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 +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 +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 + 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. +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. @@ -477,7 +401,7 @@ File: dvips.info, Node: Including graphics fails, Prev: Long documents fail, ------------------------------ The most common problem with including graphics is an incorrect bounding -box (*note Bounding box::). Complain to whoever wrote the software that +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 @@ -486,7 +410,7 @@ 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 + 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 @@ -513,9 +437,9 @@ environment variables, and command-line options. * Menu: * Basic usage:: -* Command-line options:: -* Environment variables:: -* Config files:: +* Command-line options:: +* Environment variables:: +* Config files:: File: dvips.info, Node: Basic usage, Next: Command-line options, Up: Invoking Dvips @@ -527,8 +451,8 @@ 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 +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 @@ -537,7 +461,7 @@ 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 Unable to generate fonts: (kpathsea)Unable to generate fonts.) +*Note (kpathsea)Unable to generate fonts::.) Many options are available (see the next section). For a brief summary of available options, just type @@ -555,7 +479,7 @@ section will give a good idea of the capabilities of the driver. * Menu: -* Option summary:: Quick listing, from Dvips --help. +* Option summary:: Quick listing, from Dvips -help. * Option details:: More information about each option. @@ -565,7 +489,7 @@ File: dvips.info, Node: Option summary, Next: Option details, Up: Command-lin -------------------- 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. +Dvips with no arguments or with the standard '--help' option. Usage: dvips [OPTION]... FILENAME[.dvi] Convert DVI input files to PostScript. @@ -614,215 +538,220 @@ File: dvips.info, Node: Option details, Prev: Option summary, Up: Command-lin -------------------- 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 `*'. +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' +'--help' Print a usage message and exit. -`--version' +'--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 +'-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' +'-A' Print only the odd pages. This option uses TeX page numbers, not physical page numbers. -`-b NUM' +'-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 + 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' +'-B' Print only the even pages. This option uses TeX page numbers, not physical page numbers. -`-c NUM' +'-c NUM' Generate NUM consecutive copies of every page, i.e., the output is uncollated. This merely sets the builtin PostScript variable - `/#copies'. + '/#copies'. -`-C NUM' +'-C NUM' Generate NUM copies, but collated (by replicating the data in the - PostScript file). Slower than the `-c' option, but easier on 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 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' +'-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 + 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 + 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 + (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 + 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 + <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*' +'-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*' + 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*' + 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*' +'-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 `-', +'-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'. + added to the PostScript 'userdict'. -`-i*' +'-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. + 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. - -`-j*' - Download only needed characters from Type 1 fonts. This is the + 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*' +'-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 + '-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'. + automatically. This works by downloading 'crop.pro'. -`-K*' +'-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 + 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) + 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 + 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. -`-m*' +'-m*' Specify manual feed, if supported by the output device. -`-mode MODE' +'-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 Unable to - generate fonts: (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 + 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. + Encapsulated PostScript. Beware: This also disables page movement, + etc., in PostScript viewers such as Ghostview. -`-noomega' +'-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. + 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' +'-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 + 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 @@ -830,196 +759,191 @@ reversal, use `-r0'. Such options are marked with a trailing `*'. 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 Bugs: (kpathsea)Bugs.). + 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 +'-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 + '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.) + 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' 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' +'-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 + 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 + 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 + 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 + 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 can set the output name (most likely `o |lpr - -PPRINTER'), resolution, Metafont mode, and perhaps font paths and - other printer-specific defaults. It works best to put sitewide - defaults in the one master `config.ps' file and only things that - vary printer to printer in the `config.PRINTER' files; `config.ps' - is read before `config.PRINTER'. - - A configuration file for creating Adobe PDF files is provided in - `config.pdf' and can be loaded with `-Ppdf', it will try to - include Type1 outline fonts into the PostScript file (*note - Hypertext caveats::). - - If no `-P' or `-o' is given, the environment variable `PRINTER' is +'-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. + 'config.PRINTER' ('PRINTER.cfg' on MS-DOS) file exists, it is read. *Note Configuration file searching::. -`-q*' +'-q*' Run quietly. Don't chatter about pages converted, etc. to standard output; report no warnings (only errors) to standard error. -`-r*' +'-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. +'-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*' +'-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 +'-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' +'-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. - + - 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. - + 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'. - + 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 + 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.) + document, you can use '-E' to get pure EPSF output.) -`-T HSIZE,VSIZE' +'-T HSIZE,VSIZE' Set the paper size to (HSIZE,VSIZE), a comma-separated pair of - dimensions such as `.1in,-.3cm' (*note papersize special::). It + 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'. + close enough. To disable this behavior, use '-tunknown'. -`-u PSMAPFILE' +'-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' + 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*' +'-V*' Download non-resident PostScript fonts as bitmaps. This requires - use of `mtpk' or `gsftopk' or `pstopk' or some combination thereof + 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 + 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 +'-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' +'-X NUM' Set the horizontal resolution in dots per inch to NUM. -`-y NUM' +'-y NUM' Set the magnification ratio to NUM/1000 times the magnification - specified in the DVI file. See `-x' above. + specified in the DVI file. See '-x' above. -`-Y NUM' - Set the vertical resolution in dots per inch to NUM. +'-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 +'-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::). - +'-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 @@ -1030,65 +954,64 @@ File: dvips.info, Node: Environment variables, Next: Config files, Prev: Comm 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. (Except for 'TEXCONFIG', which defines where the configuration files themselves are found.) - *Note Path specifications: (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. + *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' +'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 Debugging: (kpathsea)Debugging.). - (If `KPATHSEA_DEBUG' is set to any value, it automatically turns - on `DVIPSDEBUG'.) + 'KPATHSEA_DEBUG' to '-1' (*note (kpathsea)Debugging::). (If + 'KPATHSEA_DEBUG' is set to any value, it automatically turns on + 'DVIPSDEBUG'.) -`DVIPSFONTS' +'DVIPSFONTS' Default path to search for all fonts. Overrides all the font path config file options and other environment variables (*note - Supported file formats: (kpathsea)Supported file formats.). + (kpathsea)Supported file formats::). -`DVIPSHEADERS' +'DVIPSHEADERS' Default path to search for PostScript header files. Overrides the - `H' config file option (*note Configuration file commands::). + 'H' config file option (*note Configuration file commands::). -`DVIPSMAKEPK' - Overrides `mktexpk' as the name of the program to invoke to create +'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 - MakeTeX script arguments: (kpathsea)MakeTeX script arguments. + 'mktexpk' program with the 'MAKETEXPK' environment variable; *note + (kpathsea)MakeTeX script arguments::. -`DVIPSRC' +'DVIPSRC' Specifies the name of the startup file (*note Configuration file - searching::) which is read after `config.ps' but before any + 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' +'DVIPSSIZES' + Last-resort sizes for scaling of unfound fonts. Overrides the 'R' definition in config files (*note Configuration file commands::). -`PRINTER' +'PRINTER' Determine the default printer configuration file. (Dvips itself - does not use `PRINTER' to determine the output destination in any + 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 +'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.) + 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' +'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 Supported file formats: - (kpathsea)Supported file formats. - + set, 'TEXINPUTS' is looked for. *Note (kpathsea)Supported file + formats::. File: dvips.info, Node: Config files, Prev: Environment variables, Up: Invoking Dvips @@ -1096,10 +1019,10 @@ File: dvips.info, Node: Config files, Prev: Environment variables, Up: Invoki 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 Config files: (kpathsea)Config 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::. @@ -1119,41 +1042,40 @@ 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 Supported file formats: (kpathsea)Supported file formats. + 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 + 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 + 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 Supported file - formats: (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 + 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 + 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 usually includes the +latter. On the other hand, the 'TEXCONFIG' path usually includes the current directory, and can in any case be set to anything, so the users can always define their own printer-specific configuration files to be found before the system's. @@ -1161,23 +1083,22 @@ found before the system's. A few command-line options are treated specially, in that they are not overridden by configuration files: -`-D' +'-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. + '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. +'-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 +'-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 +having a mismatched mode and resolution (which 'mktexpk' cannot resolve), and (2) let command-line options override config files where possible. @@ -1192,70 +1113,72 @@ 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'). +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' +'@ NAME HSIZE VSIZE' Define paper sizes. *Note Config file paper sizes::. -`a*' - Memory conservation. Same as `-a', *note Option details::. +'a*' + Memory conservation. Same as '-a', *note Option details::. -`b #COPIES' - Multiple copies. Same as `-b', *note Option details::. +'b #COPIES' + Multiple copies. Same as '-b', *note Option details::. -`c FILENAME' +'c FILENAME' Include FILENAME as an additional configuration file, read immediately. -`D DPI' - Output resolution. Same as `-D', *note Option details::. +'D DPI' + Output resolution. Same as '-D', *note Option details::. -`e NUM' - Max drift. Same as `-e', *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 +'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::. +'f*' +'F' + Run as a filter. Same as '-f', *note Option details::. -`G*' - Shift low-numbered characters; obsolete. Same as `-G', *note +'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 HEADER' + Prepend HEADER to output. Same as 'h-', *note Option details::. -`H PATH' +'H PATH' Use PATH to search for PostScript header files. The environment - variable `DVIPSHEADERS' overrides this. + variable 'DVIPSHEADERS' overrides this. -`i N' - Make multiple output files. Same as `-i -S N', *note Option +'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 +'j*' + Partially download Type 1 fonts. Same as '-j', *note Option details::. -`K*' - Remove comments from included PostScript files. Same as `-K', +'K*' + Remove comments from included PostScript files. Same as '-K', *note Option details::. -`m NUM' +'m NUM' Declare NUM as the memory available for fonts and strings in the - printer. Default is 180000. 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: + 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 @@ -1268,115 +1191,119 @@ There is no provision for continuation lines. 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 one million works fine. + 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::. +'M MODE' + Metafont mode. Same as '-mode', *note Option details::. -`N*' +'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::. + 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 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'. + 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::. +'O XOFF,YOFF' + Origin offset. Same as '-O', *note Option details::. -`p [+]NAME' +'p [+]NAME' Examine NAME for PostScript font aliases. Default is - `psfonts.map'. This option allows you to specify different + '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 + 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' +'P PATH' Use PATH to search for bitmap PK font files is PATH. The - `PKFONTS', `TEXPKS', `GLYPHFONTS', and `TEXFONTS' environment - variables override this. *Note Supported file formats: - (kpathsea)Supported file formats. + 'PKFONTS', 'TEXPKS', 'GLYPHFONTS', and 'TEXFONTS' environment + variables override this. *Note (kpathsea)Supported file formats::. -`q*' -`Q' - Run quietly. Same as `-q', *note Option details::. +'q*' +'Q' + Run quietly. Same as '-q', *note Option details::. -`r*' - Page reversal. Same as `-r', *note Option details::. +'r*' + Page reversal. Same as '-r', *note Option details::. -`R NUM1 NUM2 ...' +'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. + 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' + 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'. + 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*' + Output global save/restore. Same as '-s', *note Option details::. -`S PATH' +'S PATH' Use PATH to search for special illustrations (Encapsulated - PostScript files or psfiles). The `TEXPICTS' and then `TEXINPUTS' + 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 +'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 +'U*' + Work around bug in Xerox 4045 printer. Same as '-U', *note Option details::. -`V PATH' +'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 +'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::). +'X NUM' + Horizontal resolution. Same as '-X' (*note Option details::). -`Y NUM' - Vertical resolution. Same as `-Y' (*note Option details::). +'Y NUM' + Vertical resolution. Same as '-Y' (*note Option details::). -`Z*' - Compress bitmap fonts. Same as `-Z' (*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 +'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 @@ -1399,10 +1326,10 @@ 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 +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' + 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. @@ -1415,10 +1342,10 @@ attempt to override it manually. File: dvips.info, Node: papersize special, Next: Config file paper sizes, Up: Paper size and landscape -4.1 `papersize' special +4.1 'papersize' special ======================= -The format of the `papersize' special is +The format of the 'papersize' special is \special{papersize=WIDTH,HEIGHT} @@ -1428,26 +1355,26 @@ size. The dimensions supported are the same as for TeX; namely, in 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: + For a US letter size landscape document, the 'papersize' would be: \special{papersize=11in,8.5in} -An alternate specification of `landscape': +An alternate specification of 'landscape': \special{landscape} This is supported for backward compatibility, but it is hoped that -reventually the `papersize' comment will dominate. +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 + 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 + 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'. +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. + The 'papersize' special must occur somewhere on the first page of the +document. Some packages, notably 'hyperref', insert this special. File: dvips.info, Node: Config file paper sizes, Next: Paper trays, Prev: papersize special, Up: Paper size and landscape @@ -1455,30 +1382,30 @@ File: dvips.info, Node: Config file paper sizes, Next: Paper trays, Prev: pap 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: +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 + 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: +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: + 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 @@ -1497,52 +1424,50 @@ For example: @+ %%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 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 +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 +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. + 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. +'-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. + 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' + 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. +'ps2pdf', so we want to execute one if we can. - The `letterSize' and `A4Size' paper size definitions are now -synonyms for `letter' and `a4'. + 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 @@ -1552,32 +1477,31 @@ File: dvips.info, Node: Paper trays, Prev: Config file paper sizes, Up: Paper 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::). +'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' +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 +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' command-line option (*note Option details::); or - * the `h' config file option (*note Configuration file commands::); + * the 'h' config file option (*note Configuration file commands::); or - * `\special{header=FILE}' in your TeX document (*note Including + * '\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 @@ -1628,8 +1552,8 @@ 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. +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, @@ -1651,31 +1575,31 @@ 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 + 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 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. +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 +starting with the two characters '%!'; if it is not, the file probably isn't PostScript.) %%BoundingBox: LLX LLY URX URY @@ -1696,11 +1620,11 @@ File: dvips.info, Node: \includegraphics, Next: EPSF macros, Prev: Bounding b ------------------------------------------ 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 +section) you are ready to import the graphic into a LaTeX document. For LaTeX 2e, 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, +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). @@ -1710,9 +1634,9 @@ epsf.sty). 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. +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 + Now, at the point you want to include a file 'foo.eps', enter a line such as: \includegraphics{foo.eps} @@ -1723,11 +1647,11 @@ such as: 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'. +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 +'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: @@ -1741,8 +1665,8 @@ 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. +'\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 @@ -1750,16 +1674,16 @@ File: dvips.info, Node: EPSF macros, Next: psfile special, Prev: \includegrap 5.1.3 Using the EPSF macros --------------------------- -If you are using LaTeX 2e, use the `graphics' or `graphicx' package. +If you are using LaTeX 2e, 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 + 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: +If you are using LaTeX 2.09, add the 'epsf' style option, as in: \documentstyle[12pt,epsf]{article} @@ -1770,11 +1694,11 @@ figures you plan to include. \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: + 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} @@ -1782,13 +1706,13 @@ 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. + 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: @@ -1797,8 +1721,8 @@ terminal when it processes each figure, give the command: * Menu: -* EPSF scaling:: -* EPSF clipping:: +* EPSF scaling:: +* EPSF clipping:: File: dvips.info, Node: EPSF scaling, Next: EPSF clipping, Up: EPSF macros @@ -1811,14 +1735,14 @@ 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' 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 +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 @@ -1830,38 +1754,37 @@ 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 +'\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: +'\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' +'\epsfxsize' This definition (the default) enables the default features listed - above, by setting `\epsfxsize' to the same value it had before the + above, by setting '\epsfxsize' to the same value it had before the macro was called. -`#1' +'#1' Force the natural size by returning the first parameter (the original width). -`0pt' - A special case, equivalent to `#1'. +'0pt' + A special case, equivalent to '#1'. -`0.5#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. +'\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 @@ -1870,13 +1793,13 @@ 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 +'\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::), +'bop-hook' or its ilk (*note PostScript hooks::), File: dvips.info, Node: EPSF clipping, Prev: EPSF scaling, Up: EPSF macros @@ -1889,8 +1812,8 @@ 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 +some text annotations might be sliced off. If you want to turn clipping +on, just use the command \epsfclipon @@ -1901,76 +1824,75 @@ and to turn clipping back off, use File: dvips.info, Node: psfile special, Next: Dynamic creation of graphics, Prev: EPSF macros, Up: PostScript figures -5.1.4 `psfile' special +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 +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' +'hoffset' The horizontal offset (default 0). -`voffset' +'voffset' The vertical offset (default 0). -`hsize' +'hsize' The horizontal clipping size (default 612). -`vsize' +'vsize' The vertical clipping size (default 792). -`hscale' +'hscale' The horizontal scaling factor, as a percentage (default 100). -`vscale' +'vscale' The vertical scaling factor, as a percentage (default 100). -`angle' +'angle' The rotation, in degrees (default 0). -`clip' +'clip' Enable clipping to the bounding box (default disabled). -`llx, lly, urx, ury' - Bounding box of the included image, just as in a `%%BoundingBox' +'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' +'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 + 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 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 +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. +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 @@ -1981,26 +1903,26 @@ File: dvips.info, Node: Dynamic creation of graphics, Next: Fonts in figures, 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: +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 +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 +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. +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 @@ -2009,7 +1931,7 @@ File: dvips.info, Node: Fonts in figures, Prev: Dynamic creation of graphics, ---------------------- 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. +by putting a '%*Font:' line in the leading commentary of the file. Schematically, this looks like: %*Font: TFMNAME SCALEDBP DESIGNBP HEX-START:HEX-BITSTRING @@ -2017,10 +1939,10 @@ Schematically, this looks like: 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. + 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 @@ -2028,24 +1950,23 @@ SCALEDBP 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'. + 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'. + 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'. - + 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 MetaPost: (web2c)MetaPost.). +used in a MetaPost label (*note (web2c)MetaPost::). File: dvips.info, Node: Header files, Next: Literal PS, Prev: PostScript figures, Up: Interaction with PostScript @@ -2061,20 +1982,20 @@ 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") +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. +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 + 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:: +* Including headers from TeX:: +* Including headers from the command line:: * Headers and memory usage:: @@ -2085,43 +2006,43 @@ File: dvips.info, Node: Including headers from TeX, Next: Including headers fr 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: +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 +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 + 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 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. +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 @@ -2131,18 +2052,18 @@ File: dvips.info, Node: Including headers from the command line, Next: Headers 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. +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. +'HEADER.cfg' on MS-DOS. - You can arrange for the same file to serve as a `-P' config file and + 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 +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 +setting various screen frequencies; 'contrib/volker/README' explains further.) @@ -2152,17 +2073,25 @@ File: dvips.info, Node: Headers and memory usage, Prev: Including headers from ------------------------------ Dvips tries to avoid overflowing the printer's memory by splitting the -output files into "sections" (see the `-i' option in *note Option +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. +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. - 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 @@ -2177,19 +2106,19 @@ ways. * " special:: To include inline PostScript code. * ps special:: Inline PostScript without save/restore. -* PostScript hooks:: Specifying code to run in the PS interpreter. * 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 +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 `"'. +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: @@ -2202,17 +2131,17 @@ was created by typing: closepath gsave 0.8 setgray fill grestore stroke}} You are responsible for leaving space for such literal graphics, as -with the `\vbox' above. +with the '\vbox' above. -File: dvips.info, Node: ps special, Next: PostScript hooks, Prev: " special, Up: Literal PS +File: dvips.info, Node: ps special, Next: Literal headers, Prev: " special, Up: Literal PS -5.3.2 `ps' special +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 +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 @@ -2226,12 +2155,11 @@ of the following will work: \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]'. +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 + 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 @@ -2240,29 +2168,29 @@ comments, for example. 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 +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: Literal examples, Prev: PostScript hooks, Up: Literal PS +File: dvips.info, Node: Literal headers, Next: PostScript hooks, Prev: ps special, Up: Literal PS -5.3.3 Literal headers: `!' `\special' +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'). +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 headers, Prev: ps special, Up: Literal PS +File: dvips.info, Node: PostScript hooks, Next: Literal examples, Prev: Literal headers, Up: Literal PS 5.3.4 PostScript hooks ---------------------- @@ -2272,40 +2200,40 @@ 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 + 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 +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 + 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: + 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 + 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: Literal headers, Up: Literal PS +File: dvips.info, Node: Literal examples, Prev: PostScript hooks, Up: Literal PS 5.3.5 Literal examples ---------------------- @@ -2319,8 +2247,8 @@ are presented without explanation: \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 ] + [ 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 @@ -2328,15 +2256,15 @@ common center point ] \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 + [ 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 + 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. +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 @@ -2345,30 +2273,30 @@ File: dvips.info, Node: Hypertext, Prev: Literal PS, Up: Interaction with Pos ============= 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. +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::). + 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::). Macros you can use in your TeX document to insert the specials in the -first place are available from `CTAN:/support/hypertex'. For CTAN -info, *note unixtex.ftp: (kpathsea)unixtex.ftp. +first place are available from 'CTAN:/support/hypertex'. For CTAN info, +*note (kpathsea)unixtex.ftp::. This hypertext support (and original form of the documentation) was -written by Mark Doyle and Tanmoy Bhattacharya as the `dvihps' program. +written by Mark Doyle and Tanmoy Bhattacharya as the 'dvihps' program. You can retrieve their software and additional documentation via the CTAN reference above. You may also be interested in the Java previewer -IDVI, available at `http://www.win.tue.nl/~dickie/idvi', and/or in -`http://www.emrg.com/texpdf.html', which describes the process of -making PDF files from TeX files in more detail. +IDVI, available at <http://www.win.tue.nl/~dickie/idvi>, and/or in +<http://www.emrg.com/texpdf.html>, which describes the process of making +PDF files from TeX files in more detail. Mail archives for the original project are at -`http://math.albany.edu:8800/hm/ht/'. +<http://math.albany.edu:8800/hm/ht/>. * Menu: @@ -2393,7 +2321,7 @@ 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 +add '-Ppdf' to the dvips command line switches. The printout for a run should look something like this: dvips report -Ppdf -o report.ps @@ -2409,54 +2337,53 @@ should look something like this: 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'. +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 + 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 +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 fonts, and the cm-super -fonts, are available from CTAN sites (for CTAN info, *note unixtex.ftp: -(kpathsea)unixtex.ftp.). +fonts, are available from CTAN sites (for CTAN info, *note +(kpathsea)unixtex.ftp::). - 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'. + 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 +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. +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' + <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'. +<http://www.emrg.com/texpdf.htmlhttp://zandtwerk.insead.fr/tex2pdf.html>. File: dvips.info, Node: Hypertext specials, Prev: Hypertext caveats, Up: Hypertext @@ -2465,62 +2392,62 @@ File: dvips.info, Node: Hypertext specials, Prev: Hypertext caveats, Up: Hype ------------------------ 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: +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 + 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, + 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. +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 +<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: + 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 + 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.) + for illustration. In practice, you most likely want to use macros + to insert the '\special' commands; reference above.) -`name' +'name' Defines URL targets in your TeX documents, so links can be - resolved. For example: + 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 + 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 + 'hyperref' for LaTeX. The HyperTeX FAQ (http://arxiv.org/hypertex/) has more information. -`img' +'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). + 'mailcap' file (see the Xdvi documentation). -`base' - Defines a base URL that is prepended to all the `name' targets. +'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 + The 'img' and 'base' tags are not yet implemented in Dvips or the NeXTSTEP DVI viewer. @@ -2534,12 +2461,12 @@ 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 +('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.) +supplied with Dvips. (Or if you're curious.) * Menu: @@ -2557,10 +2484,10 @@ File: dvips.info, Node: Font concepts, Next: Making a font available, Up: Pos 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. +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 @@ -2581,11 +2508,11 @@ 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. +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. @@ -2595,40 +2522,38 @@ 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.) +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. + * 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'. + <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 Fontmap: - (kpathsea)Fontmap.). TeX can then calculate the space occupied by - characters from the font when typesetting. In addition, the DVI + * 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 tftopl invocation: - (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 pltotf invocation: - (web2c)pltotf invocation.). Editing metrics by hand is not - something you're likely to want to do often, but the capability is - there. + 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. - + ('.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 @@ -2643,42 +2568,42 @@ File: dvips.info, Node: Glyph files, Next: Virtual fonts, Prev: Metric 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 +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. + 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 +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"). +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') +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 +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'.) +'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 +'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.) @@ -2690,20 +2615,19 @@ File: dvips.info, Node: Virtual fonts, Next: Encodings, Prev: Glyph files, U 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 +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), +primary document on virtual fonts is Donald E. Knuth, 'TUGboat' 11(1), Apr. 1990, pp. 13-23, "Virtual Fonts: More Fun for Grand Wizards" -(`CTAN:/info/virtual-fonts.knuth'; for CTAN info, *note unixtex.ftp: -(kpathsea)unixtex.ftp.). (Don't be intimidated by the subtitle.) +('CTAN:/info/virtual-fonts.knuth'; for CTAN info, *note +(kpathsea)unixtex.ftp::). (Don't be intimidated by the subtitle.) - A virtual font (`.vf') file specifies, for each character in the + 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 vftovp invocation: -(web2c)vftovp invocation, and *note vptovf invocation: (web2c)vptovf -invocation. +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 @@ -2713,11 +2637,11 @@ 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'. +when you run 'vptovf'. You can "expand" virtual fonts into their base fonts with DVIcopy -(*note dvicopy invocation: (web2c)dvicopy invocation.). This is useful -if you are using a DVI translator that doesn't understand vf's itself. +(*note (web2c)dvicopy invocation::). This is useful if you are using a +DVI translator that doesn't understand vf's itself. File: dvips.info, Node: Encodings, Next: PostScript typesetting, Prev: Virtual fonts, Up: Font concepts @@ -2728,41 +2652,41 @@ File: dvips.info, Node: Encodings, Next: PostScript typesetting, Prev: Virtua 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 +(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 +'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 +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::. +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 +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. + 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: PostScript typesetting, Prev: Encodings, Up: Font concepts @@ -2778,7 +2702,7 @@ 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 +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). @@ -2787,46 +2711,45 @@ running Dvips). 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: + 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': +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 + 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.) + 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', + 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'. + 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. + 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 + 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. - + 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 @@ -2842,10 +2765,10 @@ 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. +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 + 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 @@ -2857,15 +2780,15 @@ 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 + 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 + 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 + 3. Insert an entry for the font in 'psfonts.map' (*note psfonts.map::): rptmr Times-Roman <ptmr8a.pfa @@ -2880,58 +2803,58 @@ 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 +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. +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 +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 + 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 + 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 + 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 +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 +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 +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 +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::. +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': +'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 +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. @@ -2939,7 +2862,7 @@ 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 +(possibly compressed, with the 'Z' option) to be faster than using the built-in PostScript fonts. @@ -2956,9 +2879,9 @@ especially by the reencodings you can specify with those options. You can also obtain special effects such as an oblique font. An alternative to Afm2tfm for creating virtual fonts is Alan -Jeffrey's `fontinst' program, available from -`CTAN:fonts/utilities/fontinst' (for CTAN info, *note unixtex.ftp: -(kpathsea)unixtex.ftp.). +Jeffrey's 'fontinst' program, available from +'CTAN:fonts/utilities/fontinst' (for CTAN info, *note +(kpathsea)unixtex.ftp::). * Menu: @@ -2973,9 +2896,9 @@ File: dvips.info, Node: Changing font encodings, Next: Special font effects, ----------------------------- 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. +(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: @@ -2988,12 +2911,12 @@ and `-T' changes both simultaneously, as detailed in the sections below. File: dvips.info, Node: Changing TeX encodings, Next: Changing PostScript encodings, Up: Changing font encodings -6.3.1.1 `-t': Changing TeX 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 +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. @@ -3001,48 +2924,48 @@ 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 + 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 +'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 +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. +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::): +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 + 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. +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 + 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 +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 +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 @@ -3060,37 +2983,36 @@ 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. +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". + 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') +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. +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}} @@ -3100,23 +3022,22 @@ relevant accents. They are already part of the distributed \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 + 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' +'-p dc.enc' (CODINGSCHEME TeX text + DCEncoding) -`-t dc.enc' +'-t dc.enc' (CODINGSCHEME DCEncoding + AdobeStandardEncoding) -`-T dc.enc' +'-T dc.enc' (CODINGSCHEME DCEncoding + DCEncoding) - -The `CODINGSCHEME' line appears in the VPL file but is ignored by Dvips. +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 @@ -3128,8 +3049,8 @@ 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 `/' + % is 'LIGKERN'; see below. + /MyEncoding [ % exactly 256 entries follow, each with a leading '/' /Alpha /Beta /Gamma /Delta ... /A /B ... /Z ... /.notdef /xfooaccent /yfooaccent /zfooaccent @@ -3139,53 +3060,53 @@ PostScript font. Here is a skeletal example: 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). +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 +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. +']'. 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 +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. +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 + 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: + 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 +(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 -`* {} * ;'. +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. +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 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 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 +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 @@ -3215,38 +3136,38 @@ 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: + '-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 +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) +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' +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 +and by recording the pseudo-resident font rptmrre Times-Roman "1.2 ExtendFont" -in `psfonts.map'. +in 'psfonts.map'. - You can also create a small caps font with a command such as + 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: +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 @@ -3255,19 +3176,19 @@ 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 + 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' +'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. +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 @@ -3280,7 +3201,7 @@ Synopsis: Afm2tfm reads AFMFILE and writes a corresponding (but raw) TFM file. If TFMFILE is not supplied, the base name of the AFM file is extended -with `.tfm' to get the output filename. +with '.tfm' to get the output filename. The simplest example: @@ -3289,83 +3210,83 @@ with `.tfm' to get the output filename. The TFM file thus created is "raw" because it omits ligature and kern information, and does no character remapping; it simply contains the character information in the AFM file in TFM form, 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 +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 both schemes agree for the 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 +a virtual font as well with the '-v' or '-V' option. *Note Making a font available::. The command line options to Afm2tfm: -`-c RATIO' - See `-V'; overrides the default ratio of 0.8 for the scaling of +'-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. +'-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 +'-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. + where character names such as 'A' have no meaning. -`-p PS-ENC' +'-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::. + 'psfonts.map'. *Note Changing PostScript encodings::. -`-s SLANT' +'-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' +'-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'. + mentioned in 'psfonts.map'. -`-T PS-TEX-ENC' +'-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'. + the font. Equivalent to '-p FILE -t FILE'. -`-u' +'-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' +'-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 +'-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 + 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 +6.4 'psfonts.map': PostScript font catalog ========================================== -The `psfonts.map' file associates a PostScript font with related files +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 +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'. +*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" @@ -3373,29 +3294,29 @@ be `StoneInformal'. *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 +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' + 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 +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. + 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. +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 @@ -3403,17 +3324,17 @@ 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::. + 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 `<': +downloading for individual fonts, use '<<' instead '<': pmnr8r Minion <<Minion.pfb - Here is a brief summary of how `psfonts.map' is read: + 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. @@ -3423,34 +3344,33 @@ downloading for individual fonts, use `<<' instead `<': 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. + 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 + 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. + '.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, + 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 + 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, + 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 @@ -3461,8 +3381,8 @@ 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. +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 @@ -3483,15 +3403,15 @@ File: dvips.info, Node: Color macro files, Next: User-definable colors, Up: C 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 +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: +For (the obsolete) LaTeX 2.09, add the 'colordvi' style option as in: \documentstyle[12pt,colordvi]{article} - For LaTeX 2e, these examples are not applicable. Instead, please see +For LaTeX 2e, these examples are not applicable. Instead, please see the documentation for the graphics package, available from -`CTAN:doc/latex/graphics/'. See also `CTAN:doc/epslatex.ps'. +'CTAN:doc/latex/graphics/'. See also 'CTAN:doc/epslatex.ps'. 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 @@ -3499,16 +3419,15 @@ 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. +(*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 +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: @@ -3525,7 +3444,7 @@ nest too deeply lest you and the reader lose track of the color history. 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, +another such command or locally by local color commands. For example, expanding on the example above, we might have \textGreen @@ -3539,12 +3458,12 @@ expanding on the example above, we might have 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 +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. +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 @@ -3557,7 +3476,7 @@ File: dvips.info, Node: User-definable colors, Next: Color subtleties, Prev: ========================= There are two ways for the user to specify colors not already defined. -For local changes, there is the command `\Color' which takes two +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 @@ -3567,10 +3486,9 @@ 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 + 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 @@ -3587,11 +3505,11 @@ File: dvips.info, Node: Color subtleties, Next: Ted Turner, Prev: User-defina 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 +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 @@ -3610,12 +3528,12 @@ 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 +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'. +done by prefixing the color command with '\leavevmode'. File: dvips.info, Node: Ted Turner, Next: Color device configuration, Prev: Color subtleties, Up: Color @@ -3628,16 +3546,16 @@ 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 +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. +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 @@ -3648,47 +3566,47 @@ File: dvips.info, Node: Color device configuration, Next: Color support detail 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 +'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. +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. +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 +'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 +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 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 + 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. @@ -3698,7 +3616,7 @@ File: dvips.info, Node: Color support details, Prev: Color device configuratio ========================= To support color, Dvips recognizes a certain set of specials. These -specials start with the keyword `color' or the keyword `background', +specials start with the keyword 'color' or the keyword 'background', followed by a color specification. * Menu: @@ -3714,24 +3632,24 @@ File: dvips.info, Node: Color specifications, Next: Color specials, Up: Color 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 +'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'. +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 '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. +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 +from the output. For instance, the color specification '"AggiePattern +setpattern' will set the 'color' to the Aggie logo pattern (assuming such exists.) @@ -3740,43 +3658,42 @@ File: dvips.info, Node: Color specials, Prev: Color specifications, Up: Color 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 +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 +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.) +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 + 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. + 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. + 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. +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 @@ -3788,12 +3705,12 @@ Index * Menu: * ! special (literal PS header): Literal headers. (line 6) -* ! starting output filename: Option details. (line 233) +* ! starting output filename: Option details. (line 238) * " 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 198) -* %%Page, removing: Option details. (line 154) +* %%Page, not generating: Option details. (line 203) +* %%Page, removing: Option details. (line 160) * %%Page, required by Ghostview: Ghostscript installation. (line 17) * %%VMusage: Headers and memory usage. @@ -3801,81 +3718,81 @@ Index * %*Font: Fonts in figures. (line 6) * (atend), bounding box specification: Bounding box. (line 28) * +PSMAPFILE: Configuration file commands. - (line 109) + (line 117) * -: Option details. (line 11) -* - as output filename: Option details. (line 233) -* --help <1>: Option details. (line 15) +* - as output filename: Option details. (line 238) * --help: Option summary. (line 7) +* --help <1>: Option details. (line 15) * --version: Option details. (line 18) -* -A: Option details. (line 27) * -a: Option details. (line 21) +* -A: Option details. (line 27) * -B: Option details. (line 37) * -b NUM: Option details. (line 31) -* -C NUM: Option details. (line 46) * -c NUM: Option details. (line 41) +* -C NUM: Option details. (line 46) * -c RATIO: Afm2tfm options. (line 33) -* -D NUM: Option details. (line 58) * -d NUM: Option details. (line 52) +* -D NUM: Option details. (line 58) * -E: Option details. (line 82) * -e NUM: Option details. (line 71) * -e RATIO: Afm2tfm options. (line 37) -* -F: Option details. (line 110) * -f: Option details. (line 98) +* -F: Option details. (line 110) * -G: Option details. (line 117) * -h NAME: Option details. (line 122) * -i: Option details. (line 127) -* -j for partial font downloading: Option details. (line 140) -* -K: Option details. (line 154) -* -k for cropmarks: Option details. (line 146) -* -l [=]NUM: Option details. (line 163) -* -M: Option details. (line 184) -* -m: Option details. (line 172) -* -mode: Option details. (line 175) -* -mode MODE: Option details. (line 175) -* -N: Option details. (line 198) -* -n NUM: Option details. (line 195) -* -noomega: Option details. (line 206) -* -noptex: Option details. (line 212) +* -j for partial font downloading: Option details. (line 146) +* -K: Option details. (line 160) +* -k for cropmarks: Option details. (line 152) +* -l [=]NUM: Option details. (line 169) +* -m: Option details. (line 178) +* -M: Option details. (line 190) +* -mode: Option details. (line 181) +* -mode MODE: Option details. (line 181) +* -N: Option details. (line 203) +* -n NUM: Option details. (line 200) +* -noomega: Option details. (line 211) +* -noptex: Option details. (line 217) * -O: Afm2tfm options. (line 41) -* -o NAME: Option details. (line 228) -* -O X-OFFSET,Y-OFFSET: Option details. (line 245) -* -p [=]NUM: Option details. (line 263) -* -P PRINTER: Option details. (line 277) -* -p PS-ENC <1>: Afm2tfm options. (line 46) +* -o NAME: Option details. (line 233) +* -O X-OFFSET,Y-OFFSET: Option details. (line 250) +* -P PRINTER: Option details. (line 282) * -p PS-ENC: Changing PostScript encodings. (line 6) -* -pp FIRST-LAST: Option details. (line 272) -* -pp RANGE: Option details. (line 272) +* -p PS-ENC <1>: Afm2tfm options. (line 46) +* -p [=]NUM: Option details. (line 268) +* -pp FIRST-LAST: Option details. (line 277) +* -pp RANGE: Option details. (line 277) * -PPRINTER, and config file searching: Configuration file searching. (line 27) -* -q: Option details. (line 296) -* -R: Option details. (line 303) -* -r: Option details. (line 300) -* -s: Option details. (line 311) -* -S NUM: Option details. (line 318) +* -q: Option details. (line 301) +* -r: Option details. (line 305) +* -R: Option details. (line 308) +* -s: Option details. (line 316) +* -S NUM: Option details. (line 323) * -s SLANT: Afm2tfm options. (line 51) * -T ENC-FILE: Changing both encodings. (line 6) -* -T HSIZE,VSIZE: Option details. (line 347) -* -t PAPERTYPE: Option details. (line 323) +* -T HSIZE,VSIZE: Option details. (line 348) +* -t PAPERTYPE: Option details. (line 328) * -T PS-TEX-ENC: Afm2tfm options. (line 61) -* -t TEX-ENC <1>: Afm2tfm options. (line 56) * -t TEX-ENC: Changing TeX encodings. (line 6) +* -t TEX-ENC <1>: Afm2tfm options. (line 56) +* -U: Option details. (line 363) * -u: Afm2tfm options. (line 65) -* -U: Option details. (line 362) -* -u PSMAPFILE: Option details. (line 354) -* -V: Option details. (line 373) -* -v: Option details. (line 370) -* -V VPL-FILE: Afm2tfm options. (line 74) +* -u PSMAPFILE: Option details. (line 355) +* -v: Option details. (line 371) +* -V: Option details. (line 374) * -v VPL-FILE: Afm2tfm options. (line 71) -* -X NUM: Option details. (line 390) -* -x NUM: Option details. (line 382) -* -Y NUM: Option details. (line 397) +* -V VPL-FILE: Afm2tfm options. (line 74) +* -x NUM: Option details. (line 383) +* -X NUM: Option details. (line 391) +* -Y NUM: Option details. (line 398) * -z: Hypertext. (line 6) -* -Z for compressing bitmap fonts: Option details. (line 406) -* -z for recognizing hyperdvi: Option details. (line 400) -* ..-relative filenames: Option details. (line 303) +* -Z for compressing bitmap fonts: Option details. (line 407) +* -z for recognizing hyperdvi: Option details. (line 401) +* '..'-relative filenames: Option details. (line 308) * .afm Adobe metric files: Metric files. (line 26) * .dvipsrc, searched for: Configuration file searching. (line 14) @@ -3889,12 +3806,13 @@ Index * .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 49) +* .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) -* /magscale: EPSF scaling. (line 67) +* /#copies <1>: Option details. (line 41) +* /magscale: EPSF scaling. (line 66) * 612 792 bounding box size: Bounding box. (line 43) * 8r encoding, and extra characters: Changing PostScript encodings. (line 24) @@ -3908,56 +3826,53 @@ Index * @ paper size config command: Configuration file commands. (line 18) * \.: Reencoding with Afm2tfm. - (line 44) + (line 43) * \AA: Reencoding with Afm2tfm. - (line 44) -* \COLORNAME: Color macro files. (line 31) + (line 43) +* \COLORNAME: Color macro files. (line 30) * \dot: Reencoding with Afm2tfm. - (line 44) + (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 44) + (line 43) * \includegraphics LaTeX macro: \includegraphics. (line 6) * \leavevmode: EPSF macros. (line 26) -* \magnification: EPSF scaling. (line 63) +* \magnification: EPSF scaling. (line 62) * \rotninety: Literal examples. (line 27) -* \textCOLORNAME: Color macro files. (line 46) +* \textCOLORNAME: Color macro files. (line 45) +* | starting output filename: Option details. (line 238) * a config command (memory conservation): Configuration file commands. (line 21) * A ring, Scandinavian letter: Reencoding with Afm2tfm. (line 32) -* a3 papertype: Option details. (line 323) +* a3 papertype: Option details. (line 328) * a4 paper size: Config file paper sizes. - (line 84) -* a4 papertype: Option details. (line 323) + (line 82) +* a4 papertype: Option details. (line 328) * A4size paper size: Config file paper sizes. - (line 92) -* absolute filenames, disabling: Option details. (line 303) -* absolute page number, and -l: Option details. (line 163) -* absolute page number, and -p: Option details. (line 263) + (line 90) +* absolute filenames, disabling: Option details. (line 308) +* absolute page number, and '-l': Option details. (line 169) +* absolute page number, and '-p': Option details. (line 268) * accents, in wrong position: Reencoding with Afm2tfm. (line 32) * accents, wrong: Afm2tfm options. (line 17) * accuracy in positioning: Option details. (line 71) -* Adobe fonts: PostScript font installation. - (line 10) -* Adobe fonts, installing: PostScript font installation. - (line 19) * afm files: Metric files. (line 26) -* afm2tfm <1>: Invoking afm2tfm. (line 6) * 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) +* angle ('psfile' special option): psfile special. (line 36) * arcs: Glyph files. (line 17) * ASCII character codes, used by PostScript: PostScript typesetting. (line 31) @@ -3966,24 +3881,20 @@ Index (line 24) * base: Hypertext specials. (line 57) * base encoding, recommended: psfonts.map. (line 31) -* base fonts: Virtual fonts. (line 24) +* 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 21) * big points: Bounding box. (line 11) -* Bigelow & Holmes fonts: PostScript font installation. - (line 10) * binary files, not supported: Including graphics fails. (line 23) * bitmap fonts: Glyph files. (line 30) -* Bitstream fonts, installing: PostScript font installation. - (line 19) * bop undefined error: Printer errors. (line 6) -* bop-hook <1>: PostScript hooks. (line 11) -* bop-hook <2>: EPSF scaling. (line 75) * bop-hook: Paper trays. (line 6) -* bop-hook, and offset pages: Option details. (line 258) +* bop-hook <1>: EPSF scaling. (line 74) +* bop-hook <2>: PostScript hooks. (line 11) +* bop-hook, and offset pages: Option details. (line 263) * boundary character: Encoding file format. (line 41) * bounding box, comment for: Bounding box. (line 6) @@ -3991,8 +3902,8 @@ Index * bounding box, determining: Bounding box. (line 37) * bounding box, finding tight: Option details. (line 82) * bounding box, inaccurate: EPSF clipping. (line 6) -* bounding box, supplying to TeX <1>: EPSF macros. (line 26) * bounding box, supplying to TeX: \includegraphics. (line 36) +* bounding box, supplying to TeX <1>: EPSF macros. (line 26) * c include additional config file: Configuration file commands. (line 27) * changing PostScript encodings: Changing PostScript encodings. @@ -4005,17 +3916,17 @@ Index (line 6) * CharStrings Type 1 dictionary: PostScript typesetting. (line 51) -* clip (psfile special option): psfile special. (line 39) +* clip ('psfile' special option): psfile special. (line 39) * clipping of EPSF: EPSF clipping. (line 6) * CODINGSCHEME: Reencoding with Afm2tfm. - (line 52) + (line 51) * collated copies: Option details. (line 46) * 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 16) -* color nesting level: Color macro files. (line 39) +* color nesting level: Color macro files. (line 38) * color separations: Option details. (line 31) * color specifications: Color specifications. (line 6) @@ -4029,21 +3940,21 @@ Index (line 13) * comments, in encoding files: Encoding file format. (line 20) -* comments, removing included: Option details. (line 154) +* comments, removing included: Option details. (line 160) * compilation: Installation. (line 6) * compressed PostScript: Dynamic creation of graphics. (line 6) -* compressing bitmap fonts: Option details. (line 406) +* compressing bitmap fonts: Option details. (line 407) * Computer Modern in PostScript: Hypertext caveats. (line 6) * Computer Modern, encoding of: Encodings. (line 15) * condensed fonts: Afm2tfm options. (line 37) * config.proto: config.ps installation. - (line 15) -* config.ps: Option details. (line 277) + (line 14) +* config.ps: Option details. (line 282) * config.ps installation: config.ps installation. (line 6) * config.ps paper sizes: Config file paper sizes. - (line 84) + (line 82) * config.ps, searched for: Configuration file searching. (line 10) * configuration file options: Configuration file commands. @@ -4058,7 +3969,7 @@ Index * configuration files, creating: config.ps installation. (line 6) * configuration files, prototype: config.ps installation. - (line 15) + (line 14) * configuration, of color devices: Color device configuration. (line 6) * configuration, of Dvips: Installation. (line 6) @@ -4069,8 +3980,8 @@ Index * copies, duplicated page bodies: Option details. (line 31) * copies, uncollated: Option details. (line 41) * Crayola crayon box: Color macro files. (line 16) -* crop.pro: Option details. (line 146) -* cropmarks: Option details. (line 146) +* crop.pro: Option details. (line 152) +* cropmarks: Option details. (line 152) * current font, in PostScript: PostScript typesetting. (line 35) * D config command (dpi): Configuration file commands. @@ -4078,24 +3989,24 @@ Index * dated output: PostScript hooks. (line 16) * datestamp, in output: Configuration file commands. (line 37) -* debugging <1>: Option details. (line 52) * debugging: Diagnosing problems. (line 6) +* debugging <1>: Option details. (line 52) * debugging options: Debug options. (line 6) * default resolutions: Configuration file commands. - (line 131) + (line 138) * default_texsizes Make variable: Configuration file commands. - (line 147) + (line 154) * Deutsch, Peter: Ghostscript installation. (line 6) * device dependency, and virtual fonts: Configuration file commands. - (line 170) -* dictionary, CharStrings: PostScript typesetting. + (line 177) +* 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 400) +* dictionary, 'SDict': Literal headers. (line 6) +* dictionary, 'userdict': Header files. (line 21) +* distillation, and '-z': Option details. (line 401) * distiller, for PDF files: Hypertext. (line 11) * dot accent: Reencoding with Afm2tfm. (line 32) @@ -4107,7 +4018,7 @@ Index * dual paper trays: Paper trays. (line 6) * duplex printers: Including headers from the command line. (line 13) -* DVI magnification: EPSF scaling. (line 63) +* DVI magnification: EPSF scaling. (line 62) * dvihps, hyperdvi to PostScript: Hypertext. (line 21) * Dvips configuration file options: Configuration file commands. (line 6) @@ -4127,7 +4038,7 @@ Index * DVIPSSIZES: Environment variables. (line 46) * DVIPSSIZES, overrides R: Configuration file commands. - (line 144) + (line 151) * dynamic creation of graphics: Dynamic creation of graphics. (line 6) * e config command (maxdrift): Configuration file commands. @@ -4165,34 +4076,34 @@ Index * 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 <1>: psfonts.map. (line 19) -* expanded fonts <2>: Afm2tfm options. (line 37) * expanded fonts: Special font effects. (line 24) -* expansion, of virtual fonts: Virtual fonts. (line 34) +* expanded fonts <1>: Afm2tfm options. (line 37) +* 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 45) * f config command (filter): Configuration file commands. (line 45) +* F config command (filter): Configuration file commands. + (line 45) * 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 131) + (line 138) * 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 98) -* first page printed: Option details. (line 263) +* first page printed: Option details. (line 268) * font concepts: Font concepts. (line 6) -* font generation, avoiding: Option details. (line 184) +* font generation, avoiding: Option details. (line 190) * fontinst: Invoking afm2tfm. (line 13) * fonts, as header files: Including headers from TeX. (line 13) @@ -4213,7 +4124,7 @@ Index * fonts, small caps: Special font effects. (line 34) * fonts, system PostScript: PostScript font installation. - (line 24) + (line 11) * G character shifting config command: Configuration file commands. (line 48) * gf files: Glyph files. (line 41) @@ -4222,11 +4133,11 @@ Index (line 6) * ghostview: Ghostscript installation. (line 17) -* Ghostview, and no N: Ghostscript installation. +* Ghostview, and no 'N': Ghostscript installation. (line 17) * glyph files: Glyph files. (line 6) * GLYPHFONTS, overrides P: Configuration file commands. - (line 118) + (line 126) * GNU Ghostscript: Ghostscript installation. (line 13) * gnuplot: Dynamic creation of graphics. @@ -4236,7 +4147,7 @@ Index * gs installation: Ghostscript installation. (line 6) * gsave/grestore, and literal PS: Literal examples. (line 27) -* gsftopk: Option details. (line 374) +* gsftopk: Option details. (line 375) * h header downloading config command: Configuration file commands. (line 52) * H header path config command: Configuration file commands. @@ -4256,22 +4167,21 @@ Index (line 6) * hints: PostScript typesetting. (line 55) -* hoffset (psfile special option): psfile special. (line 18) -* HP printers and Type 1 fonts: PostScript font installation. - (line 69) +* 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) +* 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 400) -* http://www.win.tue.nl/~dickie/idvi: Hypertext. (line 21) -* http://xxx.lanl.gov/hypertex: Hypertext. (line 21) +* html specials, and '-z': Option details. (line 401) +* 'http://www.win.tue.nl/~dickie/idvi': Hypertext. (line 21) +* 'http://xxx.lanl.gov/hypertex': Hypertext. (line 21) * Hungarian umlaut: Reencoding with Afm2tfm. (line 32) -* hyperdvi extensions, enabling: Option details. (line 400) +* hyperdvi extensions, enabling: Option details. (line 401) * 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. @@ -4286,7 +4196,7 @@ Index (line 6) * including headers in TeX: Including headers from TeX. (line 6) -* installation of config.ps: config.ps installation. +* installation of 'config.ps': config.ps installation. (line 6) * installation of PostScript fonts: PostScript font installation. (line 6) @@ -4308,21 +4218,21 @@ Index (line 18) * landscape orientation, defined: Paper size and landscape. (line 11) -* landscape papertype: Option details. (line 323) -* landscape, as \special: papersize special. (line 16) -* last page printed: Option details. (line 163) -* last-resort font scaling, with DVIPSSIZES: Environment variables. +* landscape papertype: Option details. (line 328) +* landscape, as '\special': papersize special. (line 16) +* last page printed: Option details. (line 169) +* last-resort font scaling, with 'DVIPSSIZES': Environment variables. (line 47) -* last-resort scaling, with R: Configuration file commands. - (line 131) -* ledger papertype: Option details. (line 323) -* legal papertype: Option details. (line 323) +* last-resort scaling, with 'R': Configuration file commands. + (line 138) +* ledger papertype: Option details. (line 328) +* legal papertype: Option details. (line 328) * letter paper size: Config file paper sizes. - (line 84) -* letter papertype: Option details. (line 323) + (line 82) +* letter papertype: Option details. (line 328) * letterhead tray: Paper trays. (line 10) * letterSize paper size: Config file paper sizes. - (line 92) + (line 90) * ligature operations: Encoding file format. (line 54) * ligature, defined: Metric files. (line 15) @@ -4333,28 +4243,26 @@ Index * 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) +* 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 117) -* lpr spooler, MS-DOS emulation: Option details. (line 233) -* Lucida, installing: PostScript font installation. - (line 10) +* lpr spooler, MS-DOS emulation: Option details. (line 238) * m config command (available memory): Configuration file commands. (line 71) * M config command (mf mode): Configuration file commands. - (line 90) + (line 98) * macros for color: Color macro files. (line 6) -* macros for epsf inclusion <1>: EPSF macros. (line 6) * macros for epsf inclusion: \includegraphics. (line 6) -* magnification, DVI: EPSF scaling. (line 63) -* magnification, overriding DVI: Option details. (line 382) -* magnification, vertical: Option details. (line 393) +* macros for epsf inclusion <1>: EPSF macros. (line 6) +* magnification, DVI: EPSF scaling. (line 62) +* magnification, overriding DVI: Option details. (line 383) +* magnification, vertical: Option details. (line 394) * mailcap and hypertext: Hypertext specials. (line 53) -* manual feed: Option details. (line 172) +* manual feed: Option details. (line 178) * maxdrift: Option details. (line 71) -* maximum pages printed: Option details. (line 195) -* media: Option details. (line 323) +* maximum pages printed: Option details. (line 200) +* media: Option details. (line 328) * memory available: Configuration file commands. (line 71) * memory of printer exhausted: Printer errors. (line 14) @@ -4365,73 +4273,69 @@ Index (line 104) * Metafont ligature operations: Encoding file format. (line 54) -* Metafont mode, specifying: Option details. (line 175) +* Metafont mode, specifying: Option details. (line 181) * 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 184) -* MISSFONT_LOG: Option details. (line 187) +* missfont.log: Option details. (line 190) +* MISSFONT_LOG: Option details. (line 193) * Mitsubishi Shinko CHC-S446i printer: No output. (line 14) * mkdvipspapers: Config file paper sizes. - (line 80) -* mktexpk, avoiding: Option details. (line 184) + (line 79) +* mktexpk, avoiding: Option details. (line 190) * mktexpk, changing name: Environment variables. (line 36) -* mode name, specifying: Option details. (line 175) -* Monotype fonts: PostScript font installation. - (line 10) -* Monotype fonts, installing: PostScript font installation. - (line 19) -* mtpk: Option details. (line 374) +* mode name, specifying: Option details. (line 181) +* mtpk: Option details. (line 375) * multiple master fonts: psfonts.map. (line 60) * multiple output files: Option details. (line 127) * multiple paper trays: Paper trays. (line 6) * Murphy, Tim: Hypertext specials. (line 20) * N EPS-disabling config command: Configuration file commands. - (line 93) + (line 101) * 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 117) * non-resident fonts: psfonts.map. (line 6) -* nopaper, paper format for -t: Config file paper sizes. - (line 75) +* nopaper, paper format for '-t': Config file paper sizes. + (line 74) * O config command (offset): Configuration file commands. - (line 106) + (line 114) * o config command (output file): Configuration file commands. - (line 98) + (line 106) * oblique fonts: Special font effects. (line 6) * octal character codes: Afm2tfm options. (line 41) * odd pages only: Option details. (line 27) -* offset pages: Option details. (line 245) -* Omega extensions: Option details. (line 206) +* offset pages: Option details. (line 250) +* Omega extensions: Option details. (line 211) * 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) -* outline fonts: Glyph files. (line 17) * output file, sectioning of: Headers and memory usage. (line 6) * output file, setting: Configuration file commands. - (line 98) + (line 106) * output files, multiple: Option details. (line 127) * output, inverted: Small or inverted. (line 6) * output, none: No output. (line 6) -* output, redirecting: Option details. (line 228) +* output, redirecting: Option details. (line 233) * output, too small: Small or inverted. (line 6) * p config command (font aliases): Configuration file commands. - (line 109) + (line 117) * P config command (PK path): Configuration file commands. - (line 118) -* page range: Option details. (line 272) -* page, first printed: Option details. (line 263) -* page, last printed: Option details. (line 163) -* pages, maximum printed: Option details. (line 195) + (line 126) +* page range: Option details. (line 277) +* page, first printed: Option details. (line 268) +* page, last printed: Option details. (line 169) +* pages, maximum printed: Option details. (line 200) * PaintType: Special font effects. (line 50) * Pantone colors: Color macro files. (line 16) @@ -4442,32 +4346,32 @@ Index * paper size, general: Paper size and landscape. (line 6) * paper trays: Paper trays. (line 6) -* paper type: Option details. (line 323) +* paper type: Option details. (line 328) * papersize special: papersize special. (line 6) -* papersize special, and no -t: Option details. (line 323) +* papersize special, and no '-t': Option details. (line 328) * partial font downloading: psfonts.map. (line 55) * PDF files, font quality: Hypertext caveats. (line 6) -* PDF files, making <1>: Hypertext. (line 11) * PDF files, making: Ghostscript installation. (line 6) -* PDF files, option for: Option details. (line 400) +* PDF files, making <1>: Hypertext. (line 11) +* PDF files, option for: Option details. (line 401) * 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 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 163) -* physical page number, and -p: Option details. (line 263) -* physical page number, and bop-hook: PostScript hooks. (line 26) +* physical page number, and '-l': Option details. (line 169) +* physical page number, and '-p': Option details. (line 268) +* physical page number, and 'bop-hook': PostScript hooks. (line 26) * pipes, not readable: Option details. (line 98) * pk files: Glyph files. (line 35) * PKFONTS, overrides P: Configuration file commands. - (line 118) -* plotfile, ps subspecial: ps special. (line 30) + (line 126) +* plotfile, 'ps' subspecial: ps special. (line 29) * pltotf: Metric files. (line 39) -* popen for output: Option details. (line 233) +* popen for output: Option details. (line 238) * portrait orientation, defined: Paper size and landscape. (line 11) * positioning accuracy: Option details. (line 71) @@ -4477,14 +4381,14 @@ Index * PostScript encoding: Encodings. (line 27) * PostScript encoding, changing: Changing PostScript encodings. (line 6) +* PostScript font alias file: Option details. (line 355) * PostScript font alias file <1>: Configuration file commands. - (line 109) -* PostScript font alias file: Option details. (line 354) + (line 117) * PostScript fonts: PostScript fonts. (line 6) * PostScript fonts, installing: PostScript font installation. (line 6) * PostScript fonts, on your system: PostScript font installation. - (line 24) + (line 11) * PostScript header files: Header files. (line 6) * PostScript hooks: PostScript hooks. (line 6) * PostScript interaction: Interaction with PostScript. @@ -4502,40 +4406,41 @@ Index * printer configuration: config.ps installation. (line 6) * printer configuration file, prototype: config.ps installation. - (line 15) + (line 14) * printer errors: Printer errors. (line 6) * printer memory: Configuration file commands. (line 71) * printer memory exhausted: Printer errors. (line 14) -* printer offset: Option details. (line 245) +* printer offset: Option details. (line 250) * PRINTER, and config file searching: Configuration file searching. (line 36) -* PRINTER, avoided with -f: Option details. (line 98) +* PRINTER, avoided with '-f': Option details. (line 98) * printer, driving directly: Option details. (line 110) * problems: Diagnosing problems. (line 6) * property list files: Metric files. (line 39) * prototype printer configuration file: config.ps installation. - (line 15) + (line 14) * ps special: ps special. (line 6) * psfile special: psfile special. (line 6) -* psfonts.map <1>: psfonts.map. (line 6) -* psfonts.map <2>: Special font effects. - (line 19) * psfonts.map: PostScript font installation. - (line 24) + (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 55) -* pstopk: Option details. (line 374) -* pTeX extensions: Option details. (line 206) -* Q config command (quiet): Configuration file commands. - (line 125) +* psi character missing: Hypertext caveats. (line 54) +* pstopk: Option details. (line 375) +* pTeX extensions: Option details. (line 211) +* pTeX extensions <1>: Option details. (line 217) * q config command (quiet): Configuration file commands. - (line 125) -* quiet operation: Option details. (line 296) + (line 132) +* Q config command (quiet): Configuration file commands. + (line 132) +* quiet operation: Option details. (line 301) * r config command (page reversal): Configuration file commands. - (line 128) + (line 135) * R fallback resolution config command: Configuration file commands. - (line 131) + (line 138) * reencode/*.enc: Encodings. (line 35) * reencoding: Reencoding with Afm2tfm. (line 6) @@ -4544,47 +4449,48 @@ Index (line 18) * remapping: Reencoding with Afm2tfm. (line 6) -* resident fonts, different in different printers <1>: Configuration file commands. - (line 109) * resident fonts, different in different printers: Option details. - (line 354) -* resolution: Option details. (line 390) + (line 355) +* resident fonts, different in different printers <1>: Configuration file commands. + (line 117) +* resolution: Option details. (line 391) +* resolution <1>: Option details. (line 398) * resolution, setting: Option details. (line 58) -* reverse pagination: Option details. (line 300) -* rhi (psfile special option): psfile special. (line 46) +* reverse pagination: Option details. (line 305) +* rhi ('psfile' special option): psfile special. (line 46) * Rokicki, Tomas: Why Dvips. (line 68) -* rotate.tex: ps special. (line 34) -* rwi (psfile special option): psfile special. (line 46) +* rotate.tex: ps special. (line 33) +* rwi ('psfile' special option): psfile special. (line 46) * S config command (pict path): Configuration file commands. - (line 156) + (line 163) * s config command (save/restore): Configuration file commands. - (line 153) + (line 160) * 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 311) -* scaleunit: psfile special. (line 67) +* save/restore, generating global: Option details. (line 316) +* scaleunit: psfile special. (line 66) * scaling of figures: EPSF scaling. (line 6) * scaling small caps: Afm2tfm options. (line 33) * Scandinavian A ring: Reencoding with Afm2tfm. (line 32) * screen frequencies, setting: Including headers from the command line. (line 13) -* SDict: psfile special. (line 67) +* 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 127) -* security: Option details. (line 303) -* shell command execution, disabling: Option details. (line 303) +* security: Option details. (line 308) +* shell command execution, disabling: Option details. (line 308) * shell escape, in config file: Configuration file commands. (line 37) * Shinko CHC-S446i printer: No output. (line 14) * show PostScript operator: PostScript typesetting. (line 23) -* silent operation: Option details. (line 296) +* silent operation: Option details. (line 301) * simplex mode on duplex printers: Including headers from the command line. (line 13) * slanted fonts: Special font effects. @@ -4595,29 +4501,25 @@ Index * small caps fonts: Special font effects. (line 34) * Smith, Arthur: Hypertext specials. (line 6) -* Softkey fonts: PostScript font installation. - (line 10) -* Softkey fonts, installing: PostScript font installation. - (line 19) -* spaces, dropped trailing: Hypertext caveats. (line 55) +* spaces, dropped trailing: Hypertext caveats. (line 54) * specials, hypertext: Hypertext specials. (line 6) * splines: Glyph files. (line 17) * spooler, lacking: Option details. (line 110) -* spooling to lpr on MS-DOS: Option details. (line 233) +* spooling to lpr on MS-DOS: Option details. (line 238) * standard I/O: Option details. (line 98) * standard input, reading options from: Option details. (line 11) -* standard output, output to: Option details. (line 228) +* standard output, output to: Option details. (line 233) * standard PostScript, required by Ghostview: Ghostscript installation. (line 17) * start-hook: PostScript hooks. (line 11) -* structured comments: Option details. (line 198) +* structured comments: Option details. (line 203) * system in config file: Configuration file commands. (line 37) * T config command (TFM path): Configuration file commands. - (line 161) + (line 168) * Tektronix Phaser printer, used for color calibration: Color device configuration. (line 18) -* testpage.tex: Option details. (line 252) +* testpage.tex: Option details. (line 257) * TeX encoding, changing: Changing TeX encodings. (line 6) * TeX, including headers in: Including headers from TeX. @@ -4625,29 +4527,29 @@ Index * TEXCONFIG: Environment variables. (line 55) * TEXFONTS, overrides P: Configuration file commands. - (line 118) + (line 126) * TEXFONTS, overrides T: Configuration file commands. - (line 161) + (line 168) * TEXINPUTS, overrides S: Configuration file commands. - (line 156) + (line 163) * texmext.enc: Encodings. (line 35) -* TEXMFOUTPUT: Option details. (line 187) +* TEXMFOUTPUT: Option details. (line 193) * texmital.enc: Encodings. (line 35) +* texmsym.enc: Encodings. (line 35) * texmsym.enc <1>: Changing TeX encodings. (line 16) -* texmsym.enc: Encodings. (line 35) * TEXPICTS: Environment variables. (line 62) * TEXPICTS, overrides S: Configuration file commands. - (line 156) + (line 163) * TEXPKS, overrides P: Configuration file commands. - (line 118) + (line 126) * TEXSIZES, overrides R: Configuration file commands. - (line 144) + (line 151) * text in figures, chopped off: EPSF clipping. (line 6) * tfm files: Metric files. (line 31) * TFMFONTS, overrides T: Configuration file commands. - (line 161) + (line 168) * tftopl: Metric files. (line 39) * Theisen, Tim: Ghostscript installation. (line 17) @@ -4655,148 +4557,145 @@ Index * too-small output: Small or inverted. (line 6) * trademark character, accessing: Changing PostScript encodings. (line 18) -* trailing spaces, dropped: Hypertext caveats. (line 55) -* TranScript: Option details. (line 198) +* trailing spaces, dropped: Hypertext caveats. (line 54) +* TranScript: Option details. (line 203) * 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 166) + (line 173) * uncollated copies: Option details. (line 41) * uncompressing PostScript: Dynamic creation of graphics. (line 6) * uniform resource locator: Hypertext specials. (line 20) -* unknown, paper format for -t <1>: Config file paper sizes. +* unknown, paper format for '-t': papersize special. (line 29) +* unknown, paper format for '-t' <1>: Config file paper sizes. (line 69) -* unknown, paper format for -t: papersize special. (line 29) * 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) +* 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 122) * V config command (vf path): Configuration file commands. - (line 170) + (line 177) * verbose EPSF processing: EPSF macros. (line 46) * vf files: Virtual fonts. (line 16) -* virtual font expansion: Virtual fonts. (line 34) +* virtual font expansion: Virtual fonts. (line 33) * virtual font path: Configuration file commands. - (line 170) + (line 177) * 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) +* 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) +* vscale ('psfile' special option): psfile special. (line 33) +* vsize ('psfile' special option): psfile special. (line 27) * W config command (warning): Configuration file commands. - (line 175) + (line 182) * warning messages, defining: Configuration file commands. - (line 175) -* warnings, suppressing: Option details. (line 296) + (line 182) +* warnings, suppressing: Option details. (line 301) * whole font downloading: psfonts.map. (line 60) * wide fonts: psfonts.map. (line 19) * X config command (horizontal resolution): Configuration file commands. - (line 182) -* Xerox 4045: Option details. (line 362) + (line 189) +* Xerox 4045: Option details. (line 363) * Y config command (vertical resolution): Configuration file commands. - (line 185) -* Y&Y fonts, installing: PostScript font installation. - (line 19) + (line 192) * Z config command (compression): Configuration file commands. - (line 188) + (line 195) * z config command (secure mode): Configuration file commands. - (line 191) -* | starting output filename: Option details. (line 233) + (line 198) Tag Table: -Node: Top559 -Node: Why Dvips1303 -Node: Installation4751 -Node: config.ps installation5772 -Node: PostScript font installation8396 -Node: Ghostscript installation11270 -Node: Diagnosing problems12367 -Node: Debug options13462 -Node: No output14488 -Node: Small or inverted15956 -Node: Printer errors16675 -Node: Long documents fail18007 -Node: Including graphics fails18348 -Node: Invoking Dvips19586 -Node: Basic usage20177 -Node: Command-line options21205 -Node: Option summary21654 -Node: Option details23850 -Node: Environment variables43214 -Node: Config files46173 -Node: Configuration file searching46856 -Node: Configuration file commands50156 -Node: Paper size and landscape57365 -Node: papersize special58963 -Node: Config file paper sizes60372 -Node: Paper trays64527 -Node: Interaction with PostScript65861 -Node: PostScript figures66514 -Node: Bounding box67240 -Node: \includegraphics70611 -Node: EPSF macros72902 -Node: EPSF scaling74872 -Node: EPSF clipping77442 -Node: psfile special78084 -Node: Dynamic creation of graphics80477 -Node: Fonts in figures81795 -Node: Header files83455 -Node: Including headers from TeX84661 -Node: Including headers from the command line86695 -Node: Headers and memory usage87795 -Node: Literal PS88505 -Node: " special89087 -Node: ps special89828 -Node: Literal headers91326 -Node: PostScript hooks92041 -Node: Literal examples94131 -Node: Hypertext95583 -Node: Hypertext caveats97141 -Node: Hypertext specials101538 -Node: PostScript fonts104172 -Node: Font concepts105288 -Node: Metric files106455 -Node: Glyph files109281 -Node: Virtual fonts111637 -Node: Encodings113527 -Node: PostScript typesetting115930 -Node: Making a font available119012 -Node: Invoking afm2tfm124042 -Node: Changing font encodings125012 -Node: Changing TeX encodings125802 -Node: Changing PostScript encodings126902 -Node: Changing both encodings128246 -Node: Reencoding with Afm2tfm128919 -Node: Encoding file format132023 -Node: Special font effects136226 -Node: Afm2tfm options138489 -Node: psfonts.map141474 -Node: Color146206 -Node: Color macro files147250 -Node: User-definable colors150448 -Node: Color subtleties151723 -Node: Ted Turner153374 -Node: Color device configuration154599 -Node: Color support details157041 -Node: Color specifications157419 -Node: Color specials158822 -Node: Index160951 +Node: Top517 +Node: Why Dvips1263 +Node: Installation4711 +Node: config.ps installation5714 +Node: PostScript font installation8321 +Node: Ghostscript installation9241 +Node: Diagnosing problems10338 +Node: Debug options11429 +Node: No output12433 +Node: Small or inverted13899 +Node: Printer errors14617 +Node: Long documents fail15949 +Node: Including graphics fails16290 +Node: Invoking Dvips17529 +Node: Basic usage18151 +Node: Command-line options19155 +Node: Option summary19603 +Node: Option details21797 +Node: Environment variables41442 +Node: Config files44303 +Node: Configuration file searching44973 +Node: Configuration file commands48226 +Node: Paper size and landscape55883 +Node: papersize special57481 +Node: Config file paper sizes58890 +Node: Paper trays63046 +Node: Interaction with PostScript64380 +Node: PostScript figures65033 +Node: Bounding box65759 +Node: \includegraphics69131 +Node: EPSF macros71424 +Node: EPSF scaling73424 +Node: EPSF clipping75994 +Node: psfile special76636 +Node: Dynamic creation of graphics79028 +Node: Fonts in figures80346 +Node: Header files81996 +Node: Including headers from TeX83206 +Node: Including headers from the command line85244 +Node: Headers and memory usage86343 +Node: Literal PS87554 +Node: " special88136 +Node: ps special88877 +Node: Literal headers90375 +Node: PostScript hooks91084 +Node: Literal examples93180 +Node: Hypertext94634 +Node: Hypertext caveats96182 +Node: Hypertext specials100570 +Node: PostScript fonts103204 +Node: Font concepts104321 +Node: Metric files105488 +Node: Glyph files108268 +Node: Virtual fonts110627 +Node: Encodings112453 +Node: PostScript typesetting114856 +Node: Making a font available117941 +Node: Invoking afm2tfm122975 +Node: Changing font encodings123933 +Node: Changing TeX encodings124724 +Node: Changing PostScript encodings125826 +Node: Changing both encodings127170 +Node: Reencoding with Afm2tfm127844 +Node: Encoding file format130947 +Node: Special font effects135151 +Node: Afm2tfm options137411 +Node: psfonts.map140397 +Node: Color145127 +Node: Color macro files146171 +Node: User-definable colors149364 +Node: Color subtleties150640 +Node: Ted Turner152292 +Node: Color device configuration153517 +Node: Color support details155961 +Node: Color specifications156339 +Node: Color specials157743 +Node: Index159872 End Tag Table diff --git a/Master/texmf-dist/doc/info/kpathsea.info b/Master/texmf-dist/doc/info/kpathsea.info index 54e179d0f3d..b28c541d762 100644 --- a/Master/texmf-dist/doc/info/kpathsea.info +++ b/Master/texmf-dist/doc/info/kpathsea.info @@ -1,10 +1,9 @@ -This is ../../../../texk/kpathsea/doc/kpathsea.info, produced by -makeinfo version 4.13 from ../../../../texk/kpathsea/doc/kpathsea.texi. +This is kpathsea.info, produced by makeinfo version 5.1 from +kpathsea.texi. This file documents the Kpathsea library for path searching. - Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -2005, 2007, 2008, 2009, 2010, 2011, 2012 Karl Berry & Olaf Weber. + Copyright (C) 1996-2013 Karl Berry & Olaf Weber. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are @@ -19,7 +18,6 @@ permission notice identical to this one. manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the TeX Users Group. - INFO-DIR-SECTION TeX START-INFO-DIR-ENTRY * Kpathsea: (kpathsea). File lookup along search paths. @@ -39,8 +37,8 @@ Kpathsea library **************** This manual documents how to install and use the Kpathsea library for -filename lookup. It corresponds to version 6.1.0, released in -May 2012. +filename lookup. It corresponds to version 6.1.1, released in April +2013. * Menu: @@ -60,24 +58,20 @@ File: kpathsea.info, Node: Introduction, Next: Installation, Prev: Top, Up: 1 Introduction ************** -This manual corresponds to version 6.1.0 of the Kpathsea library, -released in May 2012. +This manual corresponds to version 6.1.1 of the Kpathsea library, +released in April 2013. - The library's fundamental purpose is to return a filename from a -list of directories specified by the user, similar to what shells do -when looking up program names to execute. + The library's fundamental purpose is to return a filename from a list +of directories specified by the user, similar to what shells do when +looking up program names to execute. The following software, all of which we maintain, uses this library: - * Dviljk (see the `dvilj' man page) - + * Dviljk (see the 'dvilj' man page) * Dvipsk (*note Introduction: (dvips)Top.) - * GNU font utilities (*note Introduction: (fontu)Top.) - * Web2c (*note Introduction: (web2c)Top.) - - * Xdvik (see the `xdvi' man page) + * Xdvik (see the 'xdvi' man page) Other software that we do not maintain also uses it. @@ -86,19 +80,19 @@ will be, despite our hopes). If you have comments or suggestions, please send them to us (*note Reporting bugs::). We distribute the library under the GNU Library General Public -License (LGPL). In short, this means if you write a program using the -library, you must (offer to) distribute the source to the library, -along with any changes you have made, and allow anyone to modify the -library source and distribute their modifications. It does not mean -you have to distribute the source to your program, although we hope you -will. See the accompanying files for the text of the GNU licenses. +License (LGPL). In short, this means if you write a program using the +library, you must (offer to) distribute the source to the library, along +with any changes you have made, and allow anyone to modify the library +source and distribute their modifications. It does not mean you have to +distribute the source to your program, although we hope you will. See +the accompanying files for the text of the GNU licenses. If you know enough about TeX to be reading this manual, then you (or -your institution) should consider joining the TeX Users Group (if -you're already a member, thanks!). TUG produces the periodical -`TUGboat', sponsors an annual meeting and publishes the proceedings, -and arranges courses on TeX for all levels of users throughout the -world. See `http://tug.org' for information. +your institution) should consider joining the TeX Users Group (if you're +already a member, thanks!). TUG produces the periodical 'TUGboat', +sponsors an annual meeting and publishes the proceedings, and arranges +courses on TeX for all levels of users throughout the world. See +<http://tug.org> for information. * Menu: @@ -113,7 +107,7 @@ File: kpathsea.info, Node: History, Up: Introduction (This section is for those people who are curious about how the library came about.) (If you like to read historical accounts of software, we urge you to seek out the GNU Autoconf manual and the "Errors of TeX" -paper by Don Knuth, published in `Software--Practice and Experience' +paper by Don Knuth, published in 'Software--Practice and Experience' 19(7), July 1989.) [Karl writes.] My first ChangeLog entry for Web2c seems to be @@ -121,18 +115,18 @@ February 1990, but I may have done some work before then. In any case, Tim Morgan and I were jointly maintaining it for a time. (I should mention here that Tim had made Web2c into a real distribution long before I had ever used it or even heard of it, and Tom Rokicki did the -original implementation. I was using `pxp' and `pc' on VAX 11/750's -and the hot new Sun 2 machines.) +original implementation. I was using 'pxp' and 'pc' on VAX 11/750's and +the hot new Sun 2 machines.) It must have been later in 1990 and 1991 that I started working on -`TeX for the Impatient'. Dvips, Xdvi, Web2c, and the GNU fontutils +'TeX for the Impatient'. Dvips, Xdvi, Web2c, and the GNU fontutils (which I was also writing at the time) all used different environment variables, and, more importantly, had different bugs in their path -searching. This became extremely painful, as I was stressing everything +searching. This became extremely painful, as I was stressing everything to the limit working on the book. I also desperately wanted to implement subdirectory searching, since I couldn't stand putting everything in one big directory, and also couldn't stand having to -explicitly specify `cm', `pandora', ... in a path. +explicitly specify 'cm', 'pandora', ... in a path. In the first incarnation, I just hacked separately on each program--that was the original subdirectory searching code in both Xdvi @@ -143,11 +137,11 @@ common routines. Then, as bugs inevitably appeared, I found I was fixing the same thing three times (Web2c and fontutils were always sharing code, since I -maintained those--there was no Dvipsk or Xdvik or Dviljk at this -point). After a while, I finally started sharing source files. They -weren't yet a library, though. I just kept things up to date with shell -scripts. (I was developing on a 386 running ISC 2.2 at the time, and so -didn't have symbolic links. An awful experience.) +maintained those--there was no Dvipsk or Xdvik or Dviljk at this point). +After a while, I finally started sharing source files. They weren't yet +a library, though. I just kept things up to date with shell scripts. +(I was developing on a 386 running ISC 2.2 at the time, and so didn't +have symbolic links. An awful experience.) The ChangeLogs for Xdvik and Dvipsk record initial releases of those distributions in May and June 1992. I think it was because I was tired @@ -170,11 +164,11 @@ besides Palatino!) By spring of 1995, I had implemented just about all the path-searching features in Kpathsea that I plan to, driven beyond my initial goals by Thomas Esser and others. I then started to integrate -Web2c with Kpathsea. After the release of a stable Web2c, I hope to be +Web2c with Kpathsea. After the release of a stable Web2c, I hope to be able to stop development, and turn most of my attention back to making -fonts for GNU. (Always assuming Micros**t hasn't completely -obliterated Unix by then, or that software patents haven't stopped -software development by anybody smaller than a company with a +fonts for GNU. (Always assuming Micros**t hasn't completely obliterated +Unix by then, or that software patents haven't stopped software +development by anybody smaller than a company with a million-dollar-a-year legal budget. Which is actually what I think is likely to happen, but that's another story...) @@ -189,11 +183,11 @@ File: kpathsea.info, Node: Installation, Next: Path searching, Prev: Introduc 2 Installation ************** -(A copy of this chapter is in the distribution file `kpathsea/INSTALL'.) +(A copy of this chapter is in the distribution file 'kpathsea/INSTALL'.) -The procedure for Kpathsea (and Web2c, etc.) configuration and + The procedure for Kpathsea (and Web2c, etc.) configuration and installation follows. If you encounter trouble, see *note Common -problems::, a copy of which is in the file `kpathsea/BUGS'. +problems::, a copy of which is in the file 'kpathsea/BUGS'. * Menu: @@ -219,7 +213,7 @@ everything, and generally to install in the simplest possible way. Most steps here refer to corresponding subsection in the next section which explains how to override defaults and generally gives more details. - By default everything will be installed under `/usr/local' and the + By default everything will be installed under '/usr/local' and the following discussion assumes this. However, if you already have TeX installed, its location is used to derive the directory under which everything is to be installed. @@ -230,33 +224,33 @@ everything is to be installed. *Note Disk space::. 2. Retrieve these distribution archives: - `ftp://ftp.tug.org/tex/texk.tar.gz' + <ftp://ftp.tug.org/tex/texk.tar.gz> These are the sources, which you will be compiling. - `ftp://ftp.tug.org/tex/texklib.tar.gz' + <ftp://ftp.tug.org/tex/texklib.tar.gz> This is a basic set of input files. You should unpack it in - the directory `/usr/local/share'; doing so will create a - `texmf' subdirectory there. + the directory '/usr/local/share'; doing so will create a + 'texmf' subdirectory there. These archives are mirrored on the CTAN hosts, in the - `systems/web2c' directory. + 'systems/web2c' directory. *Note Kpathsea application distributions::. 3. When using the default search paths, there is no need to edit any - distribution files. *Note Changing search paths::. + distribution files. *Note Changing search paths::. - 4. At the top level of the distribution, run `sh configure'. (If you - have the GNU Bash shell installed, run `bash configure'.) *Note + 4. At the top level of the distribution, run 'sh configure'. (If you + have the GNU Bash shell installed, run 'bash configure'.) *Note Running configure::. - 5. `make'. *Note Running make::. If you are using a BSD 4.4 system + 5. 'make'. *Note Running make::. If you are using a BSD 4.4 system such as FreeBSD or NetBSD, you may have to use GNU make (often - installed in `/usr/local/bin'), not the BSD make. + installed in '/usr/local/bin'), not the BSD make. - 6. `make install'. *Note Installing files::. + 6. 'make install'. *Note Installing files::. - 7. `make distclean'. *Note Cleaning up::. + 7. 'make distclean'. *Note Cleaning up::. 8. Set up a cron job to rebuild the filename database that makes searching faster. This line will rebuild it every midnight: @@ -266,25 +260,24 @@ everything is to be installed. 9. If you're installing Dvips, you also need to set up configuration files for your printers and make any additional PostScript fonts - available. *Note Installation: (dvips)Installation. If you have - any color printers, see *note Color device configuration: - (dvips)Color device configuration. + available. *Note (dvips)Installation::. If you have any color + printers, see *note (dvips)Color device configuration::. - 10. The first time you run a DVI driver, a bunch of PK fonts will be - built by Metafont via `mktexpk' (and added to the filename + 10. The first time you run a DVI driver, a bunch of PK fonts will be + built by Metafont via 'mktexpk' (and added to the filename database). This will take some time. Don't be alarmed; they will created only this first time (unless something is wrong with your path definitions). - By default, `mktexpk' will create these fonts in a hierarchy under - `/var/tmp/texfonts'; it simply assumes that `/var/tmp' exists and + By default, 'mktexpk' will create these fonts in a hierarchy under + '/var/tmp/texfonts'; it simply assumes that '/var/tmp' exists and is globally writable. If you need a different arrangement, see *note mktex configuration::. *Note mktex scripts::. - 11. For some simple tests, try `tex story \\bye' and `latex sample2e'. - Then run `xdvi story' or `dvips sample2e' on the resulting DVI + 11. For some simple tests, try 'tex story \\bye' and 'latex sample2e'. + Then run 'xdvi story' or 'dvips sample2e' on the resulting DVI files to preview/print the documents. *Note Installation testing::. @@ -295,17 +288,14 @@ File: kpathsea.info, Node: Custom installation, Next: Security, Prev: Simple ======================= Most sites need to modify the default installation procedure in some -way, perhaps merely changing the prefix from `/usr/local', perhaps -adding extra compiler or loader options to work around `configure' -bugs. This section explains how to override default choices. For -additional distribution-specific information: - * `dviljk/INSTALL'. - - * *Note Installation: (dvips)Installation. - - * *Note Installation: (web2c)Installation. - - * `xdvik/INSTALL'. +way, perhaps merely changing the prefix from '/usr/local', perhaps +adding extra compiler or loader options to work around 'configure' bugs. +This section explains how to override default choices. For additional +distribution-specific information: + * 'dviljk/INSTALL'. + * *Note (dvips)Installation::. + * *Note (web2c)Installation::. + * 'xdvik/INSTALL'. These instructions are for Unix systems. Other operating-system specific distributions have their own instructions. The code base @@ -316,16 +306,16 @@ describes the simplest installation), but with much more detail. * Menu: -* Disk space:: -* Kpathsea application distributions:: -* Changing search paths:: -* Running configure:: -* Running make:: -* Installing files:: -* Cleaning up:: -* Filename database generation:: -* mktex scripts:: -* Installation testing:: +* Disk space:: +* Kpathsea application distributions:: +* Changing search paths:: +* Running configure:: +* Running make:: +* Installing files:: +* Cleaning up:: +* Filename database generation:: +* mktex scripts:: +* Installation testing:: File: kpathsea.info, Node: Disk space, Next: Kpathsea application distributions, Up: Custom installation @@ -334,16 +324,16 @@ File: kpathsea.info, Node: Disk space, Next: Kpathsea application distribution ---------------- Here is a table showing the disk space needed for each distribution -(described in the next section). The `(totals)' line reflects the -`texk' source distribution and `texklib'; the individual distributions +(described in the next section). The '(totals)' line reflects the +'texk' source distribution and 'texklib'; the individual distributions don't enter into it. Sizes are in megabytes. All numbers are approximate. Distribution .tar.gz Unpacked Compiled Installed -dviljk .9 3.8 -dvipsk .9 3.2 -xdvik .7 2.5 -web2c 1.3 5.0 +dviljk .9 3.8 +dvipsk .9 3.2 +xdvik .7 2.5 +web2c 1.3 5.0 web 1.9 6.5 - - texk 7.5 32.1 95.3 33.5 texklib 6.3 15.0 - 15.0 @@ -355,31 +345,30 @@ File: kpathsea.info, Node: Kpathsea application distributions, Next: Changing 2.2.2 Kpathsea application distributions ---------------------------------------- -The archive `ftp://ftp.tug.org/tex/texk.tar.gz' contains all of the +The archive <ftp://ftp.tug.org/tex/texk.tar.gz> contains all of the Kpathsea applications I maintain, and the library itself. For example, since NeXT does not generally support X11, you'd probably want to skip -`xdvik' (or simply remove it after unpacking `texk.tar.gz'. If you are +'xdvik' (or simply remove it after unpacking 'texk.tar.gz'. If you are not interested in all of them, you can also retrieve them separately: -`dviljk.tar.gz' +'dviljk.tar.gz' DVI to PCL, for LaserJet printers. -`dvipsk.tar.gz' +'dvipsk.tar.gz' DVI to PostScript, for previewers, printers, or PDF generation. -`web2c.tar.gz' +'web2c.tar.gz' The software needed to compile TeX and friends. -`web.tar.gz' +'web.tar.gz' The original WEB source files, also used in compilation. -`xdvik.tar.gz' +'xdvik.tar.gz' DVI previewing under the X window system. - If you want to use the Babel LaTeX package for support of non-English typesetting, you may need to retrieve additional files. See the file -`install.txt' in the Babel distribution. +'install.txt' in the Babel distribution. File: kpathsea.info, Node: Changing search paths, Next: Running configure, Prev: Kpathsea application distributions, Up: Custom installation @@ -389,27 +378,27 @@ File: kpathsea.info, Node: Changing search paths, Next: Running configure, Pr If the search paths for your installation differ from the standard TeX directory structure (*note Introduction: (tds)Top.), edit the file -`kpathsea/texmf.in' as desired, before running `configure'. For +'kpathsea/texmf.in' as desired, before running 'configure'. For example, if you have all your fonts or macros in one big directory. - You may also wish to edit the file `mktex.cnf', either before or -after installation, to control various aspects of `mktexpk' and -friends. *Note mktex configuration::. + You may also wish to edit the file 'mktex.cnf', either before or +after installation, to control various aspects of 'mktexpk' and friends. +*Note mktex configuration::. - You do not need to edit `texmf.in' to change the default top-level -or other installation _directories_ (only the paths). You can and -should do that when you run `configure' (next step). + You do not need to edit 'texmf.in' to change the default top-level or +other installation _directories_ (only the paths). You can and should +do that when you run 'configure' (next step). - You also do not need to edit `texmf.in' if you are willing to rely -on `texmf.cnf' at runtime to define the paths, and let the compile-time + You also do not need to edit 'texmf.in' if you are willing to rely on +'texmf.cnf' at runtime to define the paths, and let the compile-time default paths be incorrect. Usually there is no harm in doing this. The section below explains default generation in more detail. * Menu: -* Default path features:: -* Default path generation:: +* Default path features:: +* Default path generation:: File: kpathsea.info, Node: Default path features, Next: Default path generation, Up: Changing search paths @@ -418,39 +407,39 @@ File: kpathsea.info, Node: Default path features, Next: Default path generatio ............................. The purpose of having all the different files described in the section -above is to avoid having the same information in more than one place. If -you change the installation directories or top-level prefix at -`configure'-time, those changes will propagate through the whole -sequence. And if you change the default paths in `texmf.in', those +above is to avoid having the same information in more than one place. +If you change the installation directories or top-level prefix at +'configure'-time, those changes will propagate through the whole +sequence. And if you change the default paths in 'texmf.in', those changes are propagated to the compile-time defaults. The Make definitions are all repeated in several Makefile's; but -changing the top-level `Makefile' should suffice, as it passes down all +changing the top-level 'Makefile' should suffice, as it passes down all the variable definitions, thus overriding the submakes. (The definitions are repeated so you can run Make in the subdirectories, if you should have occasion to.) - By default, the bitmap font paths end with `/$MAKETEX_MODE', thus + By default, the bitmap font paths end with '/$MAKETEX_MODE', thus including the device name (usually a Metafont mode name such as -`ljfour'). This distinguishes two different devices with the same +'ljfour'). This distinguishes two different devices with the same resolution--a write/white from a write/black 300dpi printer, for example. However, since most sites don't have this complication, Kpathsea -(specifically, the `kpse_init_prog' function in `kpathsea/proginit.c') +(specifically, the 'kpse_init_prog' function in 'kpathsea/proginit.c') has a special case: if the mode has not been explicitly set by the user -(or in a configuration file), it sets `MAKETEX_MODE' to `/'. This -makes the default PK path, for example, expand into `.../pk//', so -fonts will be found even if there is no subdirectory for the mode (if -you arranged things that way because your site has only one printer, -for example) or if the program is mode-independent (e.g., `pktype'). +(or in a configuration file), it sets 'MAKETEX_MODE' to '/'. This makes +the default PK path, for example, expand into '.../pk//', so fonts will +be found even if there is no subdirectory for the mode (if you arranged +things that way because your site has only one printer, for example) or +if the program is mode-independent (e.g., 'pktype'). - To make the paths independent of the mode, simply edit `texmf.in' -before installation, or the installed `texmf.cnf', and remove the -`$MAKETEX_MODE'. + To make the paths independent of the mode, simply edit 'texmf.in' +before installation, or the installed 'texmf.cnf', and remove the +'$MAKETEX_MODE'. *Note mktex script arguments::, for how this interacts with -`mktexpk'. +'mktexpk'. *Note TeX directory structure: TeX directory structure, for a description of the default arrangement of the input files that comprise @@ -464,124 +453,124 @@ File: kpathsea.info, Node: Default path generation, Prev: Default path feature This section describes how the default paths are constructed. - You may wish to ignore the whole mess and simply edit `texmf.cnf' + You may wish to ignore the whole mess and simply edit 'texmf.cnf' after it is installed, perhaps even copying it into place beforehand so you can complete the installation, if it seems necessary. To summarize the chain of events that go into defining the default paths: - 1. `configure' creates a `Makefile' from each `Makefile.in'. + 1. 'configure' creates a 'Makefile' from each 'Makefile.in'. - 2. When Make runs in the `kpathsea' directory, it creates a file - `texmf.sed' that substitutes the Make value of `$(var)' for a - string `@var@'. The variables in question are the one that define + 2. When Make runs in the 'kpathsea' directory, it creates a file + 'texmf.sed' that substitutes the Make value of '$(var)' for a + string '@var@'. The variables in question are the one that define the installation directories. - 3. `texmf.sed' (together with a little extra magic--see - `kpathsea/Makefile') is applied to `texmf.in' to generate - `texmf.cnf'. This is the file that will eventually be installed + 3. 'texmf.sed' (together with a little extra magic--see + 'kpathsea/Makefile') is applied to 'texmf.in' to generate + 'texmf.cnf'. This is the file that will eventually be installed and used. - 4. The definitions in `texmf.cnf' are recast as C `#define''s in - `paths.h'. These values will be the compile-time defaults; they - are not used at runtime unless no `texmf.cnf' file can be found. + 4. The definitions in 'texmf.cnf' are recast as C '#define''s in + 'paths.h'. These values will be the compile-time defaults; they + are not used at runtime unless no 'texmf.cnf' file can be found. (That's a lie: the compile-time defaults are what any extra :'s in - `texmf.cnf' expand into; but the paths as distributed have no extra + 'texmf.cnf' expand into; but the paths as distributed have no extra :'s, and there's no particular reason for them to.) File: kpathsea.info, Node: Running configure, Next: Running make, Prev: Changing search paths, Up: Custom installation -2.2.4 Running `configure' +2.2.4 Running 'configure' ------------------------- -Run `sh configure OPTIONS' (in the top-level directory, the one -containing `kpathsea/'), possibly using a shell other than `sh' (*note +Run 'sh configure OPTIONS' (in the top-level directory, the one +containing 'kpathsea/'), possibly using a shell other than 'sh' (*note configure shells::). - `configure' adapts the source distribution to the present system via -`#define''s in `*/c-auto.h', which are created from the corresponding -`c-auto.in'. It also creates a `Makefile' from the corresponding -`Makefile.in', doing `@VAR@' and `ac_include' substitutions). + 'configure' adapts the source distribution to the present system via +'#define''s in '*/c-auto.h', which are created from the corresponding +'c-auto.in'. It also creates a 'Makefile' from the corresponding +'Makefile.in', doing '@VAR@' and 'ac_include' substitutions). - `configure' is the best place to control the configuration, + 'configure' is the best place to control the configuration, compilation, and installed location of the software, either via command-line options, or by setting environment variables before -invoking it. For example, you can disable `mktexpk' by default with -the option `--disable-mktexpk'. *Note configure options::. +invoking it. For example, you can disable 'mktexpk' by default with the +option '--disable-mktexpk'. *Note configure options::. * Menu: -* configure shells:: -* configure options:: +* configure shells:: +* configure options:: * configure environment:: -* configure scenarios:: +* configure scenarios:: * Shared library:: File: kpathsea.info, Node: configure shells, Next: configure options, Up: Running configure -2.2.4.1 `configure' shells +2.2.4.1 'configure' shells .......................... -Considerable effort has gone into trying to ensure that the `configure' -scripts can be run by most Bourne shell variants. If `sh' runs into -trouble, your best bet is to use Bash, the GNU Bourne-again shell -(*note Top: (bash)Top.). +Considerable effort has gone into trying to ensure that the 'configure' +scripts can be run by most Bourne shell variants. If 'sh' runs into +trouble, your best bet is to use Bash, the GNU Bourne-again shell (*note +(bash)Top::). Bourne shell variants for which problems have been reported in the past are: -`ksh' - Old versions of the Korn shell may fail to handle the scripts. - The Korn shell may be installed as `/bin/sh' on AIX, in which case - `/bin/bsh' may serve instead. +'ksh' + Old versions of the Korn shell may fail to handle the scripts. The + Korn shell may be installed as '/bin/sh' on AIX, in which case + '/bin/bsh' may serve instead. -`ash' +'ash' Old versions of ash are unable to handle the scripts. Ash is - sometimes installed as `/bin/sh' on NetBSD, FreeBSD, and Linux - systems. `/bin/bash' should be available for those systems, but + sometimes installed as '/bin/sh' on NetBSD, FreeBSD, and Linux + systems. '/bin/bash' should be available for those systems, but might not be part of a default installation. -`Ultrix /bin/sh' - `/bin/sh' under Ultrix is a DEC-grown shell that is notably - deficient in many ways. `/bin/sh5' may be necessary. +'Ultrix /bin/sh' + '/bin/sh' under Ultrix is a DEC-grown shell that is notably + deficient in many ways. '/bin/sh5' may be necessary. File: kpathsea.info, Node: configure options, Next: configure environment, Prev: configure shells, Up: Running configure -2.2.4.2 `configure' options +2.2.4.2 'configure' options ........................... -For a complete list of all `configure' options, run `configure --help' -or see *note Running `configure' scripts: (autoconf)Invoking configure, -(a copy is in the file `kpathsea/README.CONFIGURE'). The generic -options are listed first in the `--help' output, and the +For a complete list of all 'configure' options, run 'configure --help' +or see *note Running 'configure' scripts: (autoconf)Invoking configure, +(a copy is in the file 'kpathsea/README.CONFIGURE'). The generic +options are listed first in the '--help' output, and the package-specific options come last. The environment variables -`configure' pays attention to are listed below. +'configure' pays attention to are listed below. - Options particularly likely to be useful are `--prefix', -`--datadir', and the like; see *note configure scenarios::. + Options particularly likely to be useful are '--prefix', '--datadir', +and the like; see *note configure scenarios::. - This section gives pointers to descriptions of the `--with' and -`--enable' options to `configure' that Kpathsea-using programs accept. + This section gives pointers to descriptions of the '--with' and +'--enable' options to 'configure' that Kpathsea-using programs accept. -`--without-mktexmf-default' -`--without-mktexpk-default' -`--without-mktextfm-default' -`--with-mktextex-default' +'--without-mktexmf-default' +'--without-mktexpk-default' +'--without-mktextfm-default' +'--with-mktextex-default' Enable or disable the dynamic generation programs. *Note mktex configuration::. -`--enable-shared' +'--enable-shared' Build Kpathsea as a shared library, and link against it. Also build the usual static library. *Note Shared library::. -`--disable-static' - Build only the shared library. Implies `--enable-shared'. +'--disable-static' + Build only the shared library. Implies '--enable-shared'. -`--enable-maintainer-mode' +'--enable-maintainer-mode' Enables make targets that are useful for the maintainer and likely to be a pain for anyone else; the makefiles created when this option is enabled may not work at all for you. You have been @@ -590,52 +579,52 @@ package-specific options come last. The environment variables File: kpathsea.info, Node: configure environment, Next: configure scenarios, Prev: configure options, Up: Running configure -2.2.4.3 `configure' environment +2.2.4.3 'configure' environment ............................... -`configure' uses the value of the following environment variables in +'configure' uses the value of the following environment variables in determining your system's characteristics, and substitutes for them in Makefile's: -`CC' - The compiler to use: default is `gcc' if it's installed, otherwise - `cc'. +'CC' + The compiler to use: default is 'gcc' if it's installed, otherwise + 'cc'. -`CFLAGS' - Options to give the compiler: default is `-g -O2' for `gcc', `-g' - otherwise. `CFLAGS' comes after any other options. You may need - to include `-w' here if your compilations commonly have useless - warnings (e.g., `NULL redefined'), or `configure' may fail to +'CFLAGS' + Options to give the compiler: default is '-g -O2' for 'gcc', '-g' + otherwise. 'CFLAGS' comes after any other options. You may need + to include '-w' here if your compilations commonly have useless + warnings (e.g., 'NULL redefined'), or 'configure' may fail to detect the presence of header files (it takes the messages on standard error to mean the header file doesn't exist). -`CPPFLAGS' +'CPPFLAGS' Options to pass to the compiler preprocessor; this matters most for - configuration, not the actual source compilation. The `configure' + configuration, not the actual source compilation. The 'configure' script often does only preprocessing (e.g., to check for the - existence of #include files), and `CFLAGS' is not used for this. + existence of #include files), and 'CFLAGS' is not used for this. You may need to set this to something like - `-I/usr/local/include/wwwhatever' if you have the libwww library - installed for hyper-xdvik (see `xdvik/INSTALL'). + '-I/usr/local/include/wwwhatever' if you have the libwww library + installed for hyper-xdvik (see 'xdvik/INSTALL'). -`DEFS' - Additional preprocessor options, but not used by `configure'. +'DEFS' + Additional preprocessor options, but not used by 'configure'. Provided for enabling or disabling program features, as documented - in the various program-specific installation instructions. `DEFS' + in the various program-specific installation instructions. 'DEFS' comes before any compiler options included by the distribution - `Makefile's or by `configure'. + 'Makefile's or by 'configure'. -`LDFLAGS' - Additional options to give to the loader. `LDFLAGS' comes before +'LDFLAGS' + Additional options to give to the loader. 'LDFLAGS' comes before any other linker options. -`LIBS' +'LIBS' Additional libraries to link with. File: kpathsea.info, Node: configure scenarios, Next: Shared library, Prev: configure environment, Up: Running configure -2.2.4.4 `configure' scenarios +2.2.4.4 'configure' scenarios ............................. Here are some common installation scenarios: @@ -646,18 +635,18 @@ Here are some common installation scenarios: configure --with-x * Putting the binaries, TeX files, GNU info files, etc. into a single - TeX hierarchy, say `/here/texmf', requires overriding defaults in - `configure': + TeX hierarchy, say '/here/texmf', requires overriding defaults in + 'configure': configure --prefix=/here/texmf --datadir=/here * You can compile on multiple architectures simultaneously either by - building symbolic link trees with the `lndir' script from the X11 - distribution, or with the `--srcdir' option: + building symbolic link trees with the 'lndir' script from the X11 + distribution, or with the '--srcdir' option: configure --srcdir=SRCDIR * If you are installing binaries for multiple architectures into a single hierarchy, you will probably want to override the default - `bin' and `lib' directories, something like this: + 'bin' and 'lib' directories, something like this: configure --prefix=TEXMF --datadir=TEXMF \ --bindir=TEXMF/ARCH/bin --libdir=TEXMF/ARCH/lib make texmf=TEXMF @@ -665,7 +654,7 @@ Here are some common installation scenarios: other ways, e.g., with Depot or an automounter.) * To compile with optimization (to compile without debugging, remove - the `-g'): + the '-g'): env CFLAGS="-g -O" sh configure ... For a potential problem if you optimize, see *note TeX or Metafont failing: TeX or Metafont failing. @@ -677,7 +666,7 @@ File: kpathsea.info, Node: Shared library, Prev: configure scenarios, Up: Run ...................... You can compile Kpathsea as a shared library on a few systems, by -specifying the option `--enable-shared' when you run `configure'. +specifying the option '--enable-shared' when you run 'configure'. The main advantage in doing this is that the executables can then share the code, thus decreasing memory and disk space requirements. @@ -685,67 +674,66 @@ share the code, thus decreasing memory and disk space requirements. On some systems, you can record the location of shared libraries in a binary, usually by giving certain options to the linker. Then individual users do not need to set their system's environment variable -(e.g., `LD_LIBRARY_PATH') to find shared libraries. If you want to do -this, you will need to add the necessary options to `LDFLAGS' yourself; -for example, on Solaris, include something like `-R${prefix}/lib', on -IRIX or Linux, use `-rpath${prefix}/lib'. (Unfortunately, making this +(e.g., 'LD_LIBRARY_PATH') to find shared libraries. If you want to do +this, you will need to add the necessary options to 'LDFLAGS' yourself; +for example, on Solaris, include something like '-R${prefix}/lib', on +IRIX or Linux, use '-rpath${prefix}/lib'. (Unfortunately, making this happen by default is very difficult, because of interactions with an existing installed shared library.) File: kpathsea.info, Node: Running make, Next: Installing files, Prev: Running configure, Up: Custom installation -2.2.5 Running `make' +2.2.5 Running 'make' -------------------- -`make' (still in the top-level directory). This also creates the -`texmf.cnf' and `paths.h' files that define the default search paths, -and (by default) the `plain' and `latex' TeX formats. +'make' (still in the top-level directory). This also creates the +'texmf.cnf' and 'paths.h' files that define the default search paths, +and (by default) the 'plain' and 'latex' TeX formats. - You can override directory names and other values at `make'-time. -`make/paths.make' lists the variables most commonly reset. For -example, `make default_texsizes=600' changes the list of fallback -resolutions. + You can override directory names and other values at 'make'-time. +'make/paths.make' lists the variables most commonly reset. For example, +'make default_texsizes=600' changes the list of fallback resolutions. - You can also override each of `configure''s environment variables + You can also override each of 'configure''s environment variables (*note configure environment::). The Make variables have the same names. Finally, you can supply additional options via the following -variables. (`configure' does not use these.) +variables. ('configure' does not use these.) -`XCPPFLAGS' -`XDEFS' +'XCPPFLAGS' +'XDEFS' Preprocessor options. -`XCFLAGS' +'XCFLAGS' Compiler options. -`XLDFLAGS' +'XLDFLAGS' Loader options (included at beginning of link commands). -`XLOADLIBES' +'XLOADLIBES' More loader options (included at end of link commands). -`XMAKEARGS' - Additional Make arguments passed to all sub-`make''s. You may need - to include assignments to the other variables here via `XMAKEARGS'; - for example: `make XMAKEARGS="CFLAGS=-O XDEFS=-DA4"'. +'XMAKEARGS' + Additional Make arguments passed to all sub-'make''s. You may need + to include assignments to the other variables here via 'XMAKEARGS'; + for example: 'make XMAKEARGS="CFLAGS=-O XDEFS=-DA4"'. - It's generally a bad idea to use a different compiler (`CC') or -libraries (`LIBS') for compilation than you did for configuration, -since the values `configure' determined may then be incorrect. + It's generally a bad idea to use a different compiler ('CC') or +libraries ('LIBS') for compilation than you did for configuration, since +the values 'configure' determined may then be incorrect. Adding compiler options to change the "universe" you are using -(typically BSD vs. system V) is generally a cause of trouble. It's -best to use the native environment, whatever that is; `configure' and -the software usually adapt best to that. In particular, under Solaris -2.x, you should not use the BSD-compatibility library (`libucb') or -include files (`ucbinclude'). +(typically BSD vs. system V) is generally a cause of trouble. It's best +to use the native environment, whatever that is; 'configure' and the +software usually adapt best to that. In particular, under Solaris 2.x, +you should not use the BSD-compatibility library ('libucb') or include +files ('ucbinclude'). If you want to use the Babel LaTeX package for support of non-English typesetting, you need to modify some files before making the LaTeX -format. See the file `install.txt' in the Babel distribution. +format. See the file 'install.txt' in the Babel distribution. File: kpathsea.info, Node: Installing files, Next: Cleaning up, Prev: Running make, Up: Custom installation @@ -753,43 +741,43 @@ File: kpathsea.info, Node: Installing files, Next: Cleaning up, Prev: Running 2.2.6 Installing files ---------------------- -The basic command is the usual `make install'. For security issues, +The basic command is the usual 'make install'. For security issues, *note Security::. The first time you install any manual in the GNU Info system, you -should add a line (you choose where) to the file `dir' in your -`$(infodir)' directory. Sample text for this is given near the top of -the Texinfo source files (`kpathsea/kpathsea.texi', -`dvipsk/dvips.texi', and `web2c/doc/web2c.texi'). If you have a recent -version of the GNU Texinfo distribution installed -(`ftp://prep.ai.mit.edu/pub/gnu/texinfo-3.9.tar.gz' or later), this +should add a line (you choose where) to the file 'dir' in your +'$(infodir)' directory. Sample text for this is given near the top of +the Texinfo source files ('kpathsea/kpathsea.texi', 'dvipsk/dvips.texi', +and 'web2c/doc/web2c.texi'). If you have a recent version of the GNU +Texinfo distribution installed +(<ftp://prep.ai.mit.edu/pub/gnu/texinfo-3.9.tar.gz> or later), this should happen automatically. - On the offchance that this is your first Info installation, the -`dir' file I use is included in the distribution as `etc/dir-example'. + On the offchance that this is your first Info installation, the 'dir' +file I use is included in the distribution as 'etc/dir-example'. You may wish to use one of the following targets, especially if you are installing on multiple architectures: - * `make install-exec' to install in architecture-dependent - directories, i.e., ones that depend on the `$(exec_prefix)' Make + * 'make install-exec' to install in architecture-dependent + directories, i.e., ones that depend on the '$(exec_prefix)' Make variable. This includes links to binaries, libraries, etc., not just "executables". - * `make install-data' to install in architecture-independent + * 'make install-data' to install in architecture-independent directories, such as documentation, configuration files, pool files, etc. - If you use the Andrew File System, the normal path (e.g., -PREFIX/bin) only gets you to a read-only copy of the files, and you -must specify a different path for installation. The best way to do this -is by setting the `prefix' variable on the `make' command line. The -sequence becomes something like this: + If you use the Andrew File System, the normal path (e.g., PREFIX/bin) +only gets you to a read-only copy of the files, and you must specify a +different path for installation. The best way to do this is by setting +the 'prefix' variable on the 'make' command line. The sequence becomes +something like this: configure --prefix=/whatever make make install prefix=/afs/.SYSTEM.NAME/system/1.3/@sys/whatever - With AFS, you will definitely want to use relative filenames in -`ls-R' (*note Filename database::), not absolute filenames. This is -done by default, but check anyway. +With AFS, you will definitely want to use relative filenames in 'ls-R' +(*note Filename database::), not absolute filenames. This is done by +default, but check anyway. File: kpathsea.info, Node: Cleaning up, Next: Filename database generation, Prev: Installing files, Up: Custom installation @@ -797,25 +785,25 @@ File: kpathsea.info, Node: Cleaning up, Next: Filename database generation, P 2.2.7 Cleaning up ----------------- -The basic command is `make distclean'. This removes all files created +The basic command is 'make distclean'. This removes all files created by the build. Alternatively, - * `make mostlyclean' if you intend to compile on another + * 'make mostlyclean' if you intend to compile on another architecture. For Web2C, since the generated C files are portable, - they are not removed. If the `lex' vs. `flex' situation is going - to be different on the next machine, `rm web2c/lex.yy.c'. + they are not removed. If the 'lex' vs. 'flex' situation is going + to be different on the next machine, 'rm web2c/lex.yy.c'. - * `make clean' to remove files created by compiling, but leave + * 'make clean' to remove files created by compiling, but leave configuration files and Makefiles. - * `make maintainer-clean' to remove everything that the Makefiles can - rebuild. This is more than `distclean' removes, and you should + * 'make maintainer-clean' to remove everything that the Makefiles can + rebuild. This is more than 'distclean' removes, and you should only use it if you are thoroughly conversant with (and have the necessary versions of) Autoconf. - * `make extraclean' to remove other junk, e.g., core files, log - files, patch rejects. This is independent of the other `clean' + * 'make extraclean' to remove other junk, e.g., core files, log + files, patch rejects. This is independent of the other 'clean' targets. @@ -824,25 +812,25 @@ File: kpathsea.info, Node: Filename database generation, Next: mktex scripts, 2.2.8 Filename database generation ---------------------------------- -You will probably want to set up a `cron' entry on the appropriate +You will probably want to set up a 'cron' entry on the appropriate machine(s) to rebuild the filename database nightly or so, as in: 0 0 * * * cd TEXMF && /BINDIR/mktexlsr - *Note Filename database::. +*Note Filename database::. - Although the `mktex...' scripts make every effort to add + Although the 'mktex...' scripts make every effort to add newly-created files on the fly, it can't hurt to make sure you get a fresh version every so often. File: kpathsea.info, Node: mktex scripts, Next: Installation testing, Prev: Filename database generation, Up: Custom installation -2.2.9 `mktex' scripts +2.2.9 'mktex' scripts --------------------- If Kpathsea cannot otherwise find a file, for some file types it is configured by default to invoke an external program to create it -dynamically (*note mktex configuration::). These are collectively -known as "`mktex' scripts", since most of them are named `mktex...'. +dynamically (*note mktex configuration::). These are collectively known +as "'mktex' scripts", since most of them are named 'mktex...'. For example, this is useful for fonts (bitmaps, TFM's, and arbitrarily-sizable Metafont sources such as the Sauter and EC fonts), @@ -850,8 +838,8 @@ since any given document can use fonts never before referenced. Building all fonts in advance is therefore impractical, if not impossible. - It is also useful for the TeX `.fmt' (and Metafont `.base' and -Metapost `.mem' files, *note Memory dumps: (Web2c)Memory dumps.), where + It is also useful for the TeX '.fmt' (and Metafont '.base' and +Metapost '.mem' files, *note (Web2c)Memory dumps::), where pre-generating every format consumes a lot of both time and space. The script is passed the name of the file to create and possibly @@ -868,13 +856,13 @@ diagnostics to standard error. File: kpathsea.info, Node: mktex configuration, Next: mktex script names, Up: mktex scripts -2.2.9.1 `mktex' configuration +2.2.9.1 'mktex' configuration ............................. The list of file types and program names that can run an external program to create missing files is listed in the next section. In the -absence of `configure' options specifying otherwise, everything but -`mktextex' will be enabled by default. The `configure' options to +absence of 'configure' options specifying otherwise, everything but +'mktextex' will be enabled by default. The 'configure' options to change the defaults are: --without-mktexfmt-default @@ -885,193 +873,187 @@ change the defaults are: --without-mktextfm-default --with-mktextex-default - The `configure' setting is overridden if the environment variable or -configuration file value named for the script is set; e.g., `MKTEXPK' + The 'configure' setting is overridden if the environment variable or +configuration file value named for the script is set; e.g., 'MKTEXPK' (*note mktex script arguments::). - `mktexfmt' reads a file `fmtutil.cnf', typically located in -`texmf/web2c/' to glean its configuration information. The rest of the + 'mktexfmt' reads a file 'fmtutil.cnf', typically located in +'texmf/web2c/' to glean its configuration information. The rest of the files and features in this section are primarily intended for the font generation scripts. - As distributed, all the scripts source a file -`texmf/web2c/mktex.cnf' if it exists, so you can override various -defaults. See `mktex.opt', for instance, which defines the default -mode, resolution, some special directory names, etc. If you prefer not -to change the distributed scripts, you can simply create `mktex.cnf' -with the appropriate definitions (you do not need to create it if you -have nothing to put in it). `mktex.cnf' has no special syntax; it's an -arbitrary Bourne shell script. The distribution contains a sample -`mktex.cnf' for you to copy and modify as you please (it is not -installed anywhere). + As distributed, all the scripts source a file 'texmf/web2c/mktex.cnf' +if it exists, so you can override various defaults. See 'mktex.opt', +for instance, which defines the default mode, resolution, some special +directory names, etc. If you prefer not to change the distributed +scripts, you can simply create 'mktex.cnf' with the appropriate +definitions (you do not need to create it if you have nothing to put in +it). 'mktex.cnf' has no special syntax; it's an arbitrary Bourne shell +script. The distribution contains a sample 'mktex.cnf' for you to copy +and modify as you please (it is not installed anywhere). In addition, you can configure a number of features with the -`MT_FEATURES' variable, which you can define: +'MT_FEATURES' variable, which you can define: - * in `mktex.opt', as just mentioned; + * in 'mktex.opt', as just mentioned; - * by editing the file `mktex.opt', either before `make install' (in + * by editing the file 'mktex.opt', either before 'make install' (in the source hierarchy) or after (in the installed hierarchy); * or in the environment. - If none of the options below are enabled, `mktexpk', `mktextfm', and -`mktexmf' follow the following procedure to decide where fonts should -be installed. Find the tree where the font's sources are, and test the -permissions of the `fonts' directory of that tree to determine whether + If none of the options below are enabled, 'mktexpk', 'mktextfm', and +'mktexmf' follow the following procedure to decide where fonts should be +installed. Find the tree where the font's sources are, and test the +permissions of the 'fonts' directory of that tree to determine whether it is writable. If it is, put the files in the tree in appropriate locations. If it isn't writable, see whether the tree is a system tree -(named in `SYSTEXMF'). If so, the `VARTEXFONTS' tree is used. In all +(named in 'SYSTEXMF'). If so, the 'VARTEXFONTS' tree is used. In all other cases the working directory is used. - The `appendonlydir' option is enabled by default. + The 'appendonlydir' option is enabled by default. -`appendonlydir' - Tell `mktexdir' to create directories append-only, i.e., set their - sticky bit (*note Mode Structure: (coreutils)Mode Structure.). - This feature is silently ignored on non-Unix platforms (e.g. - Windows/NT and MS-DOS) which don't support similar functionality. - This feature is enabled by default. +'appendonlydir' + Tell 'mktexdir' to create directories append-only, i.e., set their + sticky bit (*note (coreutils)Mode Structure::). This feature is + silently ignored on non-Unix platforms (e.g. Windows/NT and + MS-DOS) which don't support similar functionality. This feature is + enabled by default. -`dosnames' - Use 8.3 names; e.g., `dpi600/cmr10.pk' instead of `cmr10.600pk'. +'dosnames' + Use 8.3 names; e.g., 'dpi600/cmr10.pk' instead of 'cmr10.600pk'. Note that this feature only affects filenames that would otherwise - clash with other TeX-related filenames; `mktex' scripts do nothing + clash with other TeX-related filenames; 'mktex' scripts do nothing about filenames which exceed the 8+3 MS-DOS limits but remain unique when truncated (by the OS) to these limits, and nether do the scripts care about possible clashes with files which aren't - related with TeX. For example, `cmr10.600pk' would clash with - `cmr10.600gf' and is therefore changed when `dosnames' is in - effect, but `mf.pool' and `mp.base' don't clash with any + related with TeX. For example, 'cmr10.600pk' would clash with + 'cmr10.600gf' and is therefore changed when 'dosnames' is in + effect, but 'mf.pool' and 'mp.base' don't clash with any TeX-related files and are therefore unchanged. - This feature is turned on by default on MS-DOS. If you do not wish - `dosnames' to be set on an MS-DOS platform, you need to set the - `MT_FEATURES' environment variable to a value that doesn't include - `dosnames'. You can also change the default setting by editing - `mktex.opt', but only if you use the `mktex' shell scripts; the - emulation programs don't consult `mktex.opt'. + This feature is turned on by default on MS-DOS. If you do not wish + 'dosnames' to be set on an MS-DOS platform, you need to set the + 'MT_FEATURES' environment variable to a value that doesn't include + 'dosnames'. You can also change the default setting by editing + 'mktex.opt', but only if you use the 'mktex' shell scripts; the + emulation programs don't consult 'mktex.opt'. -`fontmaps' +'fontmaps' Instead of deriving the location of a font in the destination tree from the location of the sources, the aliases and directory names - from the Fontname distribution are used. (*note Introduction: + from the Fontname distribution are used. (*note Introduction: (fontname)Top.). -`nomfdrivers' +'nomfdrivers' Let mktexpk and mktextfm create metafont driver files in a temporary directory. These will be used for just one metafont run and not installed permanently. -`nomode' +'nomode' Omit the directory level for the mode name; this is fine as long as you generate fonts for only one mode. -`stripsupplier' +'stripsupplier' Omit the font supplier name directory level. -`striptypeface' +'striptypeface' Omit the font typeface name directory level. -`strip' +'strip' Omit the font supplier and typeface name directory levels. This - feature is deprecated in favour of `stripsupplier' and - `striptypeface'. + feature is deprecated in favour of 'stripsupplier' and + 'striptypeface'. -`varfonts' +'varfonts' When this option is enabled, fonts that would otherwise be written - in system texmf tree go to the `VARTEXFONTS' tree instead. The - default value in `kpathsea/Makefile.in' is `/var/tmp/texfonts'. - The `Linux File System Standard' recommends `/var/tex/fonts'. + in system texmf tree go to the 'VARTEXFONTS' tree instead. The + default value in 'kpathsea/Makefile.in' is '/var/tmp/texfonts'. + The 'Linux File System Standard' recommends '/var/tex/fonts'. - The `varfonts' setting in `MT_FEATURES' is overridden by the - `USE_VARTEXFONTS' environment variable: if set to `1', the feature - is enabled, and if set to `0', the feature is disabled. + The 'varfonts' setting in 'MT_FEATURES' is overridden by the + 'USE_VARTEXFONTS' environment variable: if set to '1', the feature + is enabled, and if set to '0', the feature is disabled. -`texmfvar' +'texmfvar' Force generated files that would go into a system tree (as defined - by `SYSTEXMF') into `TEXMFVAR'. Starting with teTeX-3.0, the - variable `TEXMFVAR' is always set. The `varfonts' feature takes + by 'SYSTEXMF') into 'TEXMFVAR'. Starting with teTeX-3.0, the + variable 'TEXMFVAR' is always set. The 'varfonts' feature takes precedence if also set. - The `texmfvar' setting in `MT_FEATURES' is overridden by the - `USE_TEXMFVAR' environment variable: if set to `1', the feature is - enabled, and if set to `0', the feature is disabled. + The 'texmfvar' setting in 'MT_FEATURES' is overridden by the + 'USE_TEXMFVAR' environment variable: if set to '1', the feature is + enabled, and if set to '0', the feature is disabled. File: kpathsea.info, Node: mktex script names, Next: mktex script arguments, Prev: mktex configuration, Up: mktex scripts -2.2.9.2 `mktex' script names +2.2.9.2 'mktex' script names ............................ -The following table shows the default name of the script for each of -the file types which support runtime generation. +The following table shows the default name of the script for each of the +file types which support runtime generation. -`mktexfmt' - (`.fmt', `.base', `.mem') TeX/Metafont/MetaPost formats. This - script is also named `fmtutil', and reads `fmtutil.cnf' for +'mktexfmt' + ('.fmt', '.base', '.mem') TeX/Metafont/MetaPost formats. This + script is also named 'fmtutil', and reads 'fmtutil.cnf' for configuration information. -`mktexmf' - (`.mf') Metafont input files. +'mktexmf' + ('.mf') Metafont input files. -`mkocp' - (`.ocp') Omega compiled process files. +'mkocp' + ('.ocp') Omega compiled process files. -`mkofm' - (`.ofm') Omega font metric files. +'mkofm' + ('.ofm') Omega font metric files. -`mktexpk' - (`pk') Glyph fonts. +'mktexpk' + ('pk') Glyph fonts. -`mktextex' - (`.tex') TeX input files (disabled by default). +'mktextex' + ('.tex') TeX input files (disabled by default). -`mktextfm' - (`.tfm') TFM files. +'mktextfm' + ('.tfm') TFM files. -These names can be overridden by an environment variable specific to -the program--for example, `DVIPSMAKEPK' for Dvipsk. +These names can be overridden by an environment variable specific to the +program--for example, 'DVIPSMAKEPK' for Dvipsk. - If a `mktex...' script fails, the invocation is appended to a file -`missfont.log' (by default) in the current directory. You can then + If a 'mktex...' script fails, 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. + 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. File: kpathsea.info, Node: mktex script arguments, Prev: mktex script names, Up: mktex scripts -2.2.9.3 `mktex' script arguments +2.2.9.3 'mktex' script arguments ................................ -The first argument to a `mktex' script is always the name of the file -to be created. +The first argument to a 'mktex' script is always the name of the file to +be created. - In the default `mktexpk' implementation, additional arguments may + In the default 'mktexpk' implementation, additional arguments may also be passed: -`--dpi NUM' +'--dpi NUM' Sets the resolution of the generated font to NUM. - -`--mfmode NAME' +'--mfmode NAME' Sets the Metafont mode to NAME. - -`--bdpi NUM' +'--bdpi NUM' Sets the "base dpi" for the font. This must match the mode being used. - -`--mag STRING' - A "magstep" string suitable for the Metafont `mag' variable. This +'--mag STRING' + A "magstep" string suitable for the Metafont 'mag' variable. This must match the combination of BDPI and DPI being used. - -`--destdir STRING' - A directory name. If the directory is absolute, it is used as-is. +'--destdir STRING' + A directory name. If the directory is absolute, it is used as-is. Otherwise, it is appended to the root destination directory set in the script. @@ -1082,8 +1064,8 @@ File: kpathsea.info, Node: Installation testing, Prev: mktex scripts, Up: Cus --------------------------- Besides the tests listed in *note Simple installation::, you can try -running `make check'. This includes the torture tests (trip, trap, and -mptrap) that come with Web2c (*note Triptrap: (web2c)Triptrap.). +running 'make check'. This includes the torture tests (trip, trap, and +mptrap) that come with Web2c (*note (web2c)Triptrap::). File: kpathsea.info, Node: Security, Next: TeX directory structure, Prev: Custom installation, Up: Installation @@ -1096,48 +1078,48 @@ privileges, so there's no first-level security concern of people gaining illegitimate root access. A TeX document, however, can write to arbitrary files, e.g., -`~/.rhosts', and thus an unwitting user who runs TeX on a random +'~/.rhosts', and thus an unwitting user who runs TeX on a random document is vulnerable to a trojan horse attack. This loophole is closed by default, but you can be permissive if you so desire in -`texmf.cnf'. *Note tex invocation: (web2c)tex invocation. MetaPost has -the same issue. +'texmf.cnf'. *Note (web2c)tex invocation::. MetaPost has the same +issue. Dvips, Xdvi, and TeX can also execute shell commands under some -circumstances. To disable this, see the `-R' option in *note Option -details: (dvips)Option details, the xdvi man page, and *note tex -invocation: (web2c)tex invocation, respectively. +circumstances. To disable this, see the '-R' option in *note +(dvips)Option details::, the xdvi man page, and *note (web2c)tex +invocation::, respectively. Another security issue arises because it's very useful--almost -necessary--to make arbitrary fonts on user demand with `mktexpk' and -friends. Where do these files get installed? By default, the -`mktexpk' distributed with Kpathsea assumes a world-writable `/var/tmp' -directory; this is a simple and convenient approach, but it may not -suit your situation because it means that a local cache of fonts is -created on every machine. +necessary--to make arbitrary fonts on user demand with 'mktexpk' and +friends. Where do these files get installed? By default, the 'mktexpk' +distributed with Kpathsea assumes a world-writable '/var/tmp' directory; +this is a simple and convenient approach, but it may not suit your +situation because it means that a local cache of fonts is created on +every machine. To avoid this duplication, many people consider a shared, globally writable font tree desirable, in spite of the potential security -problems. To do this you should change the value of `VARTEXFONTS' in -`texmf.cnf' to refer to some globally known directory. *Note mktex +problems. To do this you should change the value of 'VARTEXFONTS' in +'texmf.cnf' to refer to some globally known directory. *Note mktex configuration::. The first restriction you can apply is to make newly-created -directories under `texmf' be append-only with an option in `mktex.cnf'. +directories under 'texmf' be append-only with an option in 'mktex.cnf'. *Note mktex configuration::. Another approach is to establish a group (or user) for TeX files, -make the `texmf' tree writable only to that group (or user), and make -`mktexpk' et al. setgid to that group (or setuid to that user). Then +make the 'texmf' tree writable only to that group (or user), and make +'mktexpk' et al. setgid to that group (or setuid to that user). Then users must invoke the scripts to install things. (If you're worried -about the inevitable security holes in scripts, then you could write a -C wrapper to exec the script.) +about the inevitable security holes in scripts, then you could write a C +wrapper to exec the script.) - The `mktex...' scripts install files with the same read and write + The 'mktex...' scripts install files with the same read and write permissions as the directory they are installed in. The executable, sgid, suid, and sticky bits are always cleared. - Any directories created by the `mktex...' scripts have the same -permissions as their parent directory, unless the `appendonlydir' + Any directories created by the 'mktex...' scripts have the same +permissions as their parent directory, unless the 'appendonlydir' feature is used, in which case the sticky bit is always set. @@ -1150,67 +1132,67 @@ This section describes the default installation hierarchy of the distribution. It conforms to both the GNU coding standards and the TeX directory structure (TDS) standard. For rationale and further explanation, please see those documents. The GNU standard is available -as `ftp://prep.ai.mit.edu/pub/gnu/standards/standards.texi' and -mirrors. The TDS document is available from `CTAN:/tex-archive/tds' -(*note unixtex.ftp::). +as <ftp://prep.ai.mit.edu/pub/gnu/standards/standards.texi> and mirrors. +The TDS document is available from 'CTAN:/tex-archive/tds' (*note +unixtex.ftp::). You can change the default paths in many ways (*note Changing search paths::). One common desire is to put everything (binaries and all) -under a single top-level directory such as `/usr/local/texmf' or -`/opt/texmf'--in the terms used below, make PREFIX and TEXMF the same. +under a single top-level directory such as '/usr/local/texmf' or +'/opt/texmf'--in the terms used below, make PREFIX and TEXMF the same. For specific instructions on doing that, see *note configure scenarios::. Here is a skeleton of the default directory structure, extracted from the TDS document: - PREFIX/ installation root (`/usr/local' by default) + PREFIX/ installation root ('/usr/local' by default) bin/ executables man/ man pages include/ C header files info/ GNU info files - lib/ libraries (`libkpathsea.*') + lib/ libraries ('libkpathsea.*') share/ architecture-independent files texmf/ TDS root bibtex/ BibTeX input files bib/ BibTeX databases - base/ base distribution (e.g., `xampl.bib') + base/ base distribution (e.g., 'xampl.bib') misc/ single-file databases PKG/ name of a package bst/ BibTeX style files - base/ base distribution (e.g., `plain.bst', `acm.bst') + base/ base distribution (e.g., 'plain.bst', 'acm.bst') misc/ single-file styles PKG/ name of a package doc/ additional documentation - dvips/ `.pro', `.ps', `psfonts.map' + dvips/ '.pro', '.ps', 'psfonts.map' fonts/ font-related files - TYPE/ file type (e.g., `tfm', `pk') - MODE/ type of output device (types `pk' and `gf' only) - SUPPLIER/ name of a font supplier (e.g., `public') - TYPEFACE/ name of a typeface (e.g., `cm') - dpiNNN/ font resolution (types `pk' and `gf' only) + TYPE/ file type (e.g., 'tfm', 'pk') + MODE/ type of output device (types 'pk' and 'gf' only) + SUPPLIER/ name of a font supplier (e.g., 'public') + TYPEFACE/ name of a typeface (e.g., 'cm') + dpiNNN/ font resolution (types 'pk' and 'gf' only) metafont/ Metafont (non-font) input files - base/ base distribution (e.g., `plain.mf') - misc/ single-file packages (e.g., `modes.mf') - PKG/ name of a package (e.g., `mfpic') + base/ base distribution (e.g., 'plain.mf') + misc/ single-file packages (e.g., 'modes.mf') + PKG/ name of a package (e.g., 'mfpic') metapost/ MetaPost input files - base/ base distribution (e.g., `plain.mp') + base/ base distribution (e.g., 'plain.mp') misc/ single-file packages PKG/ name of a package - support/ support files for MetaPost-related utilities (e.g., `trfonts.map') - mft/ `MFT' inputs (e.g., `plain.mft') + support/ support files for MetaPost-related utilities (e.g., 'trfonts.map') + mft/ 'MFT' inputs (e.g., 'plain.mft') tex/ TeX input files - FORMAT/ name of a format (e.g., `plain') - base/ base distribution for FORMAT (e.g., `plain.tex') - misc/ single-file packages (e.g., `webmac.tex') + FORMAT/ name of a format (e.g., 'plain') + base/ base distribution for FORMAT (e.g., 'plain.tex') + misc/ single-file packages (e.g., 'webmac.tex') local/ local additions to or local configuration files for FORMAT - PKG/ name of a package (e.g., `graphics', `mfnfss') + PKG/ name of a package (e.g., 'graphics', 'mfnfss') generic/ format-independent packages - hyphen/ hyphenation patterns (e.g., `hyphen.tex') + hyphen/ hyphenation patterns (e.g., 'hyphen.tex') images/ image input files (e.g., Encapsulated PostScript) - misc/ single-file format-independent packages (e.g., `null.tex'). - PKG/ name of a package (e.g., `babel') - web2c/ implementation-dependent files (`.pool', `.fmt', `texmf.cnf', etc.) + misc/ single-file format-independent packages (e.g., 'null.tex'). + PKG/ name of a package (e.g., 'babel') + web2c/ implementation-dependent files ('.pool', '.fmt', 'texmf.cnf', etc.) Some concrete examples for most file types: @@ -1234,30 +1216,30 @@ the TDS document: File: kpathsea.info, Node: unixtex.ftp, Next: Reporting bugs, Prev: TeX directory structure, Up: Installation -2.5 `unixtex.ftp': Obtaining TeX +2.5 'unixtex.ftp': Obtaining TeX ================================ -This is `ftp://ftp.tug.org/tex/unixtex.ftp', last updated 13 June 2010. -Also available as `http://www.tug.org/unixtex.ftp'. Email +This is <ftp://ftp.tug.org/tex/unixtex.ftp>, last updated 13 June 2010. +Also available as <http://www.tug.org/unixtex.ftp>. Email <tex-k@tug.org> with comments or questions. The principal free TeX distribution for Unix-like systems is TeX -Live, on the web at `http://tug.org/texlive'. The pages there describe +Live, on the web at <http://tug.org/texlive>. The pages there describe many ways to acquire TeX, over the Internet or on physical media, both -the sources and precompiled binaries for many systems, either -standalone or as part of various operating system distributions. +the sources and precompiled binaries for many systems, either standalone +or as part of various operating system distributions. Web2C, Kpathsea, Dvips, and Dviljk are no longer released as a separate packages. Their sources are now maintained as part of TeX Live. - The host ftp.cs.stanford.edu is the original source for the files -for which Donald Knuth is directly responsible: `tex.web', `plain.tex', -etc. However, unless you want to build your TeX library tree ab initio, -it is more reliable and less work to retrieve these files as part of a -larger package. In any case, that ftp site is not the canonical source -for anything except what was created as part of Stanford TeX project, -so do not rely on the other files available there being up-to-date. + The host ftp.cs.stanford.edu is the original source for the files for +which Donald Knuth is directly responsible: 'tex.web', 'plain.tex', etc. +However, unless you want to build your TeX library tree ab initio, it is +more reliable and less work to retrieve these files as part of a larger +package. In any case, that ftp site is not the canonical source for +anything except what was created as part of Stanford TeX project, so do +not rely on the other files available there being up-to-date. File: kpathsea.info, Node: Reporting bugs, Prev: unixtex.ftp, Up: Installation @@ -1265,9 +1247,9 @@ File: kpathsea.info, Node: Reporting bugs, Prev: unixtex.ftp, Up: Installatio 2.6 Reporting bugs ================== -(A copy of this chapter is in the file `kpathsea/BUGS'.) +(A copy of this chapter is in the file 'kpathsea/BUGS'.) -If you have problems or suggestions, please report them to + If you have problems or suggestions, please report them to <tex-k@tug.org> using the bug checklist below. Please report bugs in the documentation; not only factual errors or @@ -1298,60 +1280,60 @@ information necessary for reproduction. Therefore, to enable investigation, your report should include the following: * The version number(s) of the program(s) involved, and of Kpathsea - itself. You can get the former by giving a sole option `--version' - to the program, and the latter by running `kpsewhich --version'. - The `NEWS' and `ChangeLog' files also contain the version number. + itself. You can get the former by giving a sole option '--version' + to the program, and the latter by running 'kpsewhich --version'. + The 'NEWS' and 'ChangeLog' files also contain the version number. * The hardware, operating system (including version number), - compiler, and `make' program you are using (the output of `uname + compiler, and 'make' program you are using (the output of 'uname -a' is a start on the first two, though often incomplete). If the bug involves the X window system, include X version and supplier information as well (examples: X11R6 from MIT; X11R4 from HP; OpenWindows 3.3 bundled with SunOS 4.1.4). - * Any options you gave to `configure'. This is recorded in the - `config.status' files. + * Any options you gave to 'configure'. This is recorded in the + 'config.status' files. - If you are reporting a bug in `configure' itself, it's probably + If you are reporting a bug in 'configure' itself, it's probably system-dependent, and it will be unlikely the maintainers can do anything useful if you merely report that thus-and-such is broken. Therefore, you need to do some additional work: for some bugs, you - can look in the file `config.log' where the test that failed should + can look in the file 'config.log' where the test that failed should appear, along with the compiler invocation and source program in question. You can then compile it yourself by hand, and discover - why the test failed. Other `configure' bugs do not involve the + why the test failed. Other 'configure' bugs do not involve the compiler; in that case, the only recourse is to inspect the - `configure' shell script itself, or the Autoconf macros that - generated `configure'. + 'configure' shell script itself, or the Autoconf macros that + generated 'configure'. * The log of all debugging output, if the bug is in path searching. You can get this by setting the environment variable - `KPATHSEA_DEBUG' to `-1' before running the program. Please look + 'KPATHSEA_DEBUG' to '-1' before running the program. Please look at the log yourself to make sure the behavior is really a bug before reporting it; perhaps "old" environment variable settings are causing files not to be found, for example. * The contents of any input files necessary to reproduce the bug. - For bugs in DVI-reading programs, for example, this generally - means a DVI file (and any EPS or other files it uses)--TeX source - files are helpful, but the DVI file is necessary, because that's - the actual program input. + For bugs in DVI-reading programs, for example, this generally means + a DVI file (and any EPS or other files it uses)--TeX source files + are helpful, but the DVI file is necessary, because that's the + actual program input. - * If you are sending a patch (do so if you can!), please do so in - the form of a context diff (`diff -c') against the original + * If you are sending a patch (do so if you can!), please do so in the + form of a context diff ('diff -c') against the original distribution source. Any other form of diff is either not as complete or harder for me to understand. Please also include a - `ChangeLog' entry. + 'ChangeLog' entry. * If the bug involved is an actual crash (i.e., core dump), it is easy and useful to include a stack trace from a debugger (I recommend the GNU debugger GDB, available from - `ftp://prep.ai.mit.edu/pub/gnu'). If the cause is apparent (a - `NULL' value being dereferenced, for example), please send the - details along. If the program involved is TeX or Metafont, and - the crash is happening at apparently-sound code, however, the bug - may well be in the compiler, rather than in the program or the - library (*note TeX or Metafont failing: TeX or Metafont failing.). + <ftp://prep.ai.mit.edu/pub/gnu>). If the cause is apparent (a + 'NULL' value being dereferenced, for example), please send the + details along. If the program involved is TeX or Metafont, and the + crash is happening at apparently-sound code, however, the bug may + well be in the compiler, rather than in the program or the library + (*note TeX or Metafont failing: TeX or Metafont failing.). * Any additional information that will be helpful in reproducing, diagnosing, or fixing the bug. @@ -1371,20 +1353,20 @@ consisting of in the body of the message. You do not need to join to submit a report, nor will it affect -whether you get a response. There is no Usenet newsgroup equivalent -(if you can be the one to set this up, email `tex-k-request'). Traffic -on the list is fairly light, and is mainly bug reports and enhancement -requests to the software. The best way to decide if you want to join -or not is read some of the archives from -`ftp://ftp.tug.org/mail/archives/tex-k/'. +whether you get a response. There is no Usenet newsgroup equivalent (if +you can be the one to set this up, email 'tex-k-request'). Traffic on +the list is fairly light, and is mainly bug reports and enhancement +requests to the software. The best way to decide if you want to join or +not is read some of the archives from +<ftp://ftp.tug.org/mail/archives/tex-k/>. Be aware that large data files are sometimes included in bug reports. If this is a problem for you, do not join the list. If you are looking for general TeX help, such as how to use LaTeX, please use the mailing list <texhax@tug.org> mailing list -(`http://lists.tug.org/texhax') which is gatewayed to the -`comp.text.tex' Usenet newsgroup (or post to the newsgroup; the gateway +(<http://lists.tug.org/texhax>) which is gatewayed to the +'comp.text.tex' Usenet newsgroup (or post to the newsgroup; the gateway is bidirectional). @@ -1398,19 +1380,19 @@ by their names and corresponding numeric values. When the files you expect aren't being found, the thing to do is enable these options and examine the output. - You can set these with some runtime argument (e.g., `-d') to the + You can set these with some runtime argument (e.g., '-d') to the program; in that case, you should use the numeric values described in the program's documentation (which, for Dvipsk and Xdvik, are different -than those below). It's best to give the `-d' (or whatever) option +than those below). It's best to give the '-d' (or whatever) option first, for maximal output. Dvipsk and Xdvik have additional program-specific debugging options as well. - You can also set the environment variable `KPATHSEA_DEBUG'; in this + You can also set the environment variable 'KPATHSEA_DEBUG'; in this case, you should use the numbers below. If you run the program under a -debugger and set the instance variable `kpse->debug', also use the +debugger and set the instance variable 'kpse->debug', also use the numbers below. - In any case, by far the simplest value to use is `-1', which will + In any case, by far the simplest value to use is '-1', which will turn on all debugging output. This is usually better than guessing which particular values will yield the output you need. @@ -1421,82 +1403,82 @@ it easily. For example, in Bourne-compatible shells: It is sometimes helpful to run the standalone Kpsewhich utility (*note Invoking kpsewhich::), instead of the original program. - In any case, you can _not_ use the _names_ below; you must always -use somebody's numbers. (Sorry.) To set more than one option, just -sum the corresponding numbers. + In any case, you can _not_ use the _names_ below; you must always use +somebody's numbers. (Sorry.) To set more than one option, just sum the +corresponding numbers. -`KPSE_DEBUG_STAT (1)' - Report `stat'(2) calls. This is useful for verifying that your +'KPSE_DEBUG_STAT (1)' + Report 'stat'(2) calls. This is useful for verifying that your directory structure is not forcing Kpathsea to do many additional file tests (*note Slow path searching::, and *note Subdirectory - expansion::). If you are using an up-to-date `ls-R' database + expansion::). If you are using an up-to-date 'ls-R' database (*note Filename database::), this should produce no output unless a nonexistent file that must exist is searched for. -`KPSE_DEBUG_HASH (2)' - Report lookups in all hash tables: `ls-R' and `aliases' (*note +'KPSE_DEBUG_HASH (2)' + Report lookups in all hash tables: 'ls-R' and 'aliases' (*note Filename database::); font aliases (*note Fontmap::); and config file values (*note Config files::). Useful when expected values are not being found, e.g.., file searches are looking at the disk - instead of using `ls-R'. + instead of using 'ls-R'. -`KPSE_DEBUG_FOPEN (4)' - Report file openings and closings. Especially useful when your +'KPSE_DEBUG_FOPEN (4)' + Report file openings and closings. Especially useful when your system's file table is full, for seeing which files have been - opened but never closed. In case you want to set breakpoints in a - debugger: this works by redefining `fopen' (`fclose') to be - `kpse_fopen_trace' (`kpse_fclose_trace'). + opened but never closed. In case you want to set breakpoints in a + debugger: this works by redefining 'fopen' ('fclose') to be + 'kpse_fopen_trace' ('kpse_fclose_trace'). -`KPSE_DEBUG_PATHS (8)' +'KPSE_DEBUG_PATHS (8)' Report general path information for each file type Kpathsea is - asked to search. This is useful when you are trying to track down - how a particular path got defined--from `texmf.cnf', `config.ps', + asked to search. This is useful when you are trying to track down + how a particular path got defined--from 'texmf.cnf', 'config.ps', an environment variable, the compile-time default, etc. This is - the contents of the `kpse_format_info_type' structure defined in - `tex-file.h'. + the contents of the 'kpse_format_info_type' structure defined in + 'tex-file.h'. -`KPSE_DEBUG_EXPAND (16)' +'KPSE_DEBUG_EXPAND (16)' Report the directory list corresponding to each path element - Kpathsea searches. This is only relevant when Kpathsea searches - the disk, since `ls-R' searches don't look through directory lists + Kpathsea searches. This is only relevant when Kpathsea searches + the disk, since 'ls-R' searches don't look through directory lists in this way. -`KPSE_DEBUG_SEARCH (32)' +'KPSE_DEBUG_SEARCH (32)' Report on each file search: the name of the file searched for, the path searched in, whether or not the file must exist (when drivers - search for `cmr10.vf', it need not exist), and whether or not we + search for 'cmr10.vf', it need not exist), and whether or not we are collecting all occurrences of the file in the path (as with, - e.g., `texmf.cnf' and `texfonts.map'), or just the first (as with + e.g., 'texmf.cnf' and 'texfonts.map'), or just the first (as with most lookups). This can help you correlate what Kpathsea is doing with what is in your input file. -`KPSE_DEBUG_VARS (64)' +'KPSE_DEBUG_VARS (64)' Report the value of each variable Kpathsea looks up. This is useful for verifying that variables do indeed obtain their correct values. -`GSFTOPK_DEBUG (128)' - Activates debugging printout specific to `gsftopk' program. +'GSFTOPK_DEBUG (128)' + Activates debugging printout specific to 'gsftopk' program. -`MAKETEX_DEBUG (512)' - If you use the optional `mktex' programs instead of the - traditional shell scripts, this will report the name of the site - file (`mktex.cnf' by default) which is read, directories created by - `mktexdir', the full path of the `ls-R' database built by - `mktexlsr', font map searches, `MT_FEATURES' in effect, parameters - from `mktexnam', filenames added by `mktexupd', and some - subsidiary commands run by the programs. +'MAKETEX_DEBUG (512)' + If you use the optional 'mktex' programs instead of the traditional + shell scripts, this will report the name of the site file + ('mktex.cnf' by default) which is read, directories created by + 'mktexdir', the full path of the 'ls-R' database built by + 'mktexlsr', font map searches, 'MT_FEATURES' in effect, parameters + from 'mktexnam', filenames added by 'mktexupd', and some subsidiary + commands run by the programs. -`MAKETEX_FINE_DEBUG (1024)' - When the optional `mktex' programs are used, this will print +'MAKETEX_FINE_DEBUG (1024)' + When the optional 'mktex' programs are used, this will print additional debugging info from functions internal to these programs. Debugging output from Kpathsea is always written to standard error, -and begins with the string `kdebug:'. (Except for hash table buckets, +and begins with the string 'kdebug:'. (Except for hash table buckets, which just start with the number, but you can only get that output -running under a debugger. See comments at the `hash_summary_only' -variable in `kpathsea/db.c'.) +running under a debugger. See comments at the 'hash_summary_only' +variable in 'kpathsea/db.c'.) File: kpathsea.info, Node: Logging, Next: Common problems, Prev: Debugging, Up: Reporting bugs @@ -1509,18 +1491,18 @@ search. This may be useful in finding good candidates for deletion when your filesystem is full, or in discovering usage patterns at your site. To do this, define the environment or config file variable -`TEXMFLOG'. The value is the name of the file to append the -information to. The file is created if it doesn't exist, and appended -to if it does. +'TEXMFLOG'. The value is the name of the file to append the information +to. The file is created if it doesn't exist, and appended to if it +does. Each successful search turns into one line in the log file: two words -separated by a space. The first word is the time of the search, as the +separated by a space. The first word is the time of the search, as the integer number of seconds since "the epoch", i.e., UTC midnight 1 -January 1970 (more precisely, the result of the `time' system call). +January 1970 (more precisely, the result of the 'time' system call). The second word is the filename. - For example, after `setenv TEXMFLOG /tmp/log', running Dvips on -`story.dvi' appends the following lines: + For example, after 'setenv TEXMFLOG /tmp/log', running Dvips on +'story.dvi' appends the following lines: 774455887 /usr/local/share/texmf/dvips/config.ps 774455887 /usr/local/share/texmf/dvips/psfonts.map @@ -1533,13 +1515,13 @@ The second word is the filename. Only filenames that are absolute are recorded, to preserve some semblance of privacy. - In addition to this Kpathsea-specific logging, `pdftex' provides an -option `-recorder' to write the names of all files accessed during a -run to the file `BASEFILE.fls'. + In addition to this Kpathsea-specific logging, 'pdftex' provides an +option '-recorder' to write the names of all files accessed during a run +to the file 'BASEFILE.fls'. Finally, most systems provide a general tool to output each system call, thus including opening and closing files. It might be named -`strace', `truss', `struss', or something else. +'strace', 'truss', 'struss', or something else. File: kpathsea.info, Node: Common problems, Prev: Logging, Up: Reporting bugs @@ -1580,12 +1562,12 @@ debugging options helpful. *Note Debugging::. * You have (perhaps unknowingly) told Kpathsea to use search paths that don't reflect where the files actually are. One common cause is having environment variables set from a previous installation, - thus overriding what you carefully set in `texmf.cnf' (*note - Supported file formats::). System `/etc/profile' or other files + thus overriding what you carefully set in 'texmf.cnf' (*note + Supported file formats::). System '/etc/profile' or other files such may be the culprit. * Your files reside in a directory that is only pointed to via a - symbolic link, in a leaf directory and is not listed in `ls-R'. + symbolic link, in a leaf directory and is not listed in 'ls-R'. Unfortunately, Kpathsea's subdirectory searching has an irremediable deficiency: If a directory D being searched for @@ -1595,24 +1577,24 @@ debugging options helpful. *Note Debugging::. *Note Subdirectory expansion::. You can work around this problem by creating an empty dummy - subdirectory in D. Then D will no longer be a leaf, and the + subdirectory in D. Then D will no longer be a leaf, and the symlinks will be followed. - The directory immediately followed by the `//' in the path - specification, however, is always searched for subdirectories, - even if it is a leaf. Presumably you would not have asked for the + The directory immediately followed by the '//' in the path + specification, however, is always searched for subdirectories, even + if it is a leaf. Presumably you would not have asked for the directory to be searched for subdirectories if you didn't want it to be. - * If the fonts (or whatever) don't already exist, `mktexpk' (or - `mktexmf' or `mktextfm') will try to create them. If these rather + * If the fonts (or whatever) don't already exist, 'mktexpk' (or + 'mktexmf' or 'mktextfm') will try to create them. If these rather complicated shell scripts fail, you'll eventually get an error - message saying something like `Can't find font FONTNAME'. The best - solution is to fix (or at least report) the bug in `mktexpk'; the + message saying something like 'Can't find font FONTNAME'. The best + solution is to fix (or at least report) the bug in 'mktexpk'; the workaround is to generate the necessary fonts by hand with Metafont, or to grab them from a CTAN site (*note unixtex.ftp::). - * There is a bug in the library. *Note Reporting bugs::. + * There is a bug in the library. *Note Reporting bugs::. File: kpathsea.info, Node: Slow path searching, Next: Unable to generate fonts, Prev: Unable to find files, Up: Common problems @@ -1625,21 +1607,21 @@ input files, but does eventually succeed, here are some possible culprits: * Most likely, you just have a lot of directories to search, and that - takes a noticeable time. The solution is to create and maintain a - separate `ls-R' file that lists all the files in your main TeX - hierarchy. *Note Filename database::. Kpathsea always uses `ls-R' - if it's present; there's no need to recompile or reconfigure any - of the programs. + takes a noticeable time. The solution is to create and maintain a + separate 'ls-R' file that lists all the files in your main TeX + hierarchy. *Note Filename database::. Kpathsea always uses 'ls-R' + if it's present; there's no need to recompile or reconfigure any of + the programs. * Your recursively-searched directories (e.g., - `/usr/local/share/texmf/fonts//'), contain a mixture of files and - directories. This prevents Kpathsea from using a useful + '/usr/local/share/texmf/fonts//'), contain a mixture of files and + directories. This prevents Kpathsea from using a useful optimization (*note Subdirectory expansion::). - It is best to have only directories (and perhaps a `README') in the - upper levels of the directory structure, and it's very important - to have _only_ files, and no subdirectories, in the leaf - directories where the dozens of TFM, PK, or whatever files reside. + It is best to have only directories (and perhaps a 'README') in the + upper levels of the directory structure, and it's very important to + have _only_ files, and no subdirectories, in the leaf directories + where the dozens of TFM, PK, or whatever files reside. In any case, you may find the debugging options helpful in determining precisely when the disk or network is being pounded. *Note @@ -1653,21 +1635,21 @@ File: kpathsea.info, Node: Unable to generate fonts, Next: TeX or Metafont fai Metafont outputs fonts in bitmap format, tuned for a particular device at a particular resolution, in order to allow for the highest-possible -quality of output. Some DVI-to-whatever programs, such as Dvips, try -to generate these on the fly when they are needed, but this generation -may fail in several cases. +quality of output. Some DVI-to-whatever programs, such as Dvips, try to +generate these on the fly when they are needed, but this generation may +fail in several cases. - If `mktexpk' runs, but fails with this error: + If 'mktexpk' runs, but fails with this error: mktexpk: Can't guess mode for NNN dpi devices. mktexpk: Use a config file to specify the mode, or update me. - you need to ensure the resolution and mode match; just specifying -the resolution, as in `-D 360', is not enough. + you need to ensure the resolution and mode match; just specifying the +resolution, as in '-D 360', is not enough. - You can specify the mode name with the `-mode' option on the Dvips -command line, or in a Dvips configuration file (*note Config files: -(dvips)Config files.), such as `config.ps' in your document directory, -`~/.dvipsrc' in your home directory, or in a system directory (again -named `config.ps'). (Other drivers use other files, naturally.) + You can specify the mode name with the '-mode' option on the Dvips +command line, or in a Dvips configuration file (*note (dvips)Config +files::), such as 'config.ps' in your document directory, '~/.dvipsrc' +in your home directory, or in a system directory (again named +'config.ps'). (Other drivers use other files, naturally.) For example, if you need 360dpi fonts, you could include this in a configuration file: @@ -1675,29 +1657,28 @@ configuration file: M lqmed If Metafont runs, but generates fonts at the wrong resolution or for -the wrong device, most likely `mktexpk''s built-in guess for the mode -is wrong, and you should override it as above. +the wrong device, most likely 'mktexpk''s built-in guess for the mode is +wrong, and you should override it as above. - See `ftp://ftp.tug.org/tex/modes.mf' for a list of resolutions and + See <ftp://ftp.tug.org/tex/modes.mf> for a list of resolutions and mode names for most devices (additional submissions are welcome). If Metafont runs but generates fonts at a resolution of 2602dpi (and prints out the name of each character as well as just a character number, and maybe tries to display the characters), then your Metafont base file probably hasn't been made properly. (It's using the default -`proof' mode, instead of an actual device mode.) To make a proper -`plain.base', assuming the local mode definitions are contained in a -file `modes.mf', run the following command (assuming Unix): +'proof' mode, instead of an actual device mode.) To make a proper +'plain.base', assuming the local mode definitions are contained in a +file 'modes.mf', run the following command (assuming Unix): inimf "plain; input modes; dump" -Then copy the `plain.base' file from the current directory to where the -base files are stored on your system (`/usr/local/share/texmf/web2c' by -default), and make a link (either hard or soft) from `plain.base' to -`mf.base' in that directory. *Note inimf invocation: (web2c)inimf -invocation. +Then copy the 'plain.base' file from the current directory to where the +base files are stored on your system ('/usr/local/share/texmf/web2c' by +default), and make a link (either hard or soft) from 'plain.base' to +'mf.base' in that directory. *Note (web2c)inimf invocation::. - If `mf' is a command not found at all by `mktexpk', then you need to + If 'mf' is a command not found at all by 'mktexpk', then you need to install Metafont (*note unixtex.ftp::). @@ -1720,9 +1701,9 @@ omit optimization entirely. In any case, the way to find the facts is to run the program under the debugger and see where it's failing. Also, if you have trouble with a system C compiler, I advise trying -the GNU C compiler. And vice versa, unfortunately; but in that case I -also recommend reporting a bug to the GCC mailing list; see *note Bugs: -(gcc)Bugs. +the GNU C compiler. And vice versa, unfortunately; but in that case I +also recommend reporting a bug to the GCC mailing list; see *note +(gcc)Bugs::. To report compiler bugs effectively requires perseverance and perspicacity: you must find the miscompiled line, and that usually @@ -1735,7 +1716,7 @@ the Pascal arrays have a lower index other than 0, and the C code will take the pointer to the allocated memory, subtract the lower index, and use the resulting pointer for the array. While this trick often works, ANSI C doesn't guarantee that it will. It it known to fail on HP-UX 10 -machines when the native compiler is used, unless the `+u' compiler +machines when the native compiler is used, unless the '+u' compiler switch was specified. Using GCC will work on this platform as well. @@ -1744,8 +1725,8 @@ File: kpathsea.info, Node: Empty Makefiles, Next: XtStrings, Prev: TeX or Met 2.6.5.5 Empty Makefiles ....................... -On some systems (NetBSD, FreeBSD, AIX 4.1, and Mach10), `configure' may -fail to properly create the Makefiles. Instead, you get an error which +On some systems (NetBSD, FreeBSD, AIX 4.1, and Mach10), 'configure' may +fail to properly create the Makefiles. Instead, you get an error which looks something like this: prompt$ ./configure @@ -1754,31 +1735,31 @@ looks something like this: sed: 1: "\\@^ac_include make/pat ...": \ can not be used as a string delimiter - So far as I know, the bug here is in `/bin/sh' on these systems. I + So far as I know, the bug here is in '/bin/sh' on these systems. I don't have access to a machine running any of them, so if someone can find a workaround that avoids the quoting bug, I'd be most grateful. -(Search for `ac_include' in the `configure' script to get to the +(Search for 'ac_include' in the 'configure' script to get to the problematic code.) - It should work to run `bash configure', instead of using `/bin/sh'. -You can get Bash from `ftp://prep.ai.mit.edu/pub/gnu' and mirrors. + It should work to run 'bash configure', instead of using '/bin/sh'. +You can get Bash from <ftp://prep.ai.mit.edu/pub/gnu> and mirrors. - Another possible cause (reported for NeXT) is a bug in the `sed' + Another possible cause (reported for NeXT) is a bug in the 'sed' command. In that case the error may look like this: Unrecognized command: \@^ac_include make/paths.make@r make/paths.make - In this case, installing GNU `sed' should solve the problem. You -can get GNU `sed' from the same places as Bash. + In this case, installing GNU 'sed' should solve the problem. You can +get GNU 'sed' from the same places as Bash. File: kpathsea.info, Node: XtStrings, Next: dlopen, Prev: Empty Makefiles, Up: Common problems -2.6.5.6 `XtStrings' +2.6.5.6 'XtStrings' ................... You may find that linking X programs results in an error from the linker -that `XtStrings' is undefined, something like this: +that 'XtStrings' is undefined, something like this: gcc -o virmf ... .../x11.c:130: undefined reference to `XtStrings' @@ -1788,80 +1769,78 @@ files with which you compiled and the X libraries with which you linked; often, the include files are from MIT and the libraries from Sun. The solution is to use the same X distribution for compilation and -linking. Probably `configure' was unable to guess the proper -directories from your installation. You can use the `configure' -options `--x-includes=PATH' and `--x-libraries=PATH' to explicitly -specify them. +linking. Probably 'configure' was unable to guess the proper +directories from your installation. You can use the 'configure' options +'--x-includes=PATH' and '--x-libraries=PATH' to explicitly specify them. File: kpathsea.info, Node: dlopen, Next: ShellWidgetClass, Prev: XtStrings, Up: Common problems -2.6.5.7 `dlopen' +2.6.5.7 'dlopen' ................ -(This section adapted from the file `dlsym.c' in the X distribution.) +(This section adapted from the file 'dlsym.c' in the X distribution.) - The `Xlib' library uses the standard C function `wcstombs'. Under -SunOS 4.1, `wcstombs' uses the `dlsym' interface defined in `libdl.so'. + The 'Xlib' library uses the standard C function 'wcstombs'. Under +SunOS 4.1, 'wcstombs' uses the 'dlsym' interface defined in 'libdl.so'. Unfortunately, the SunOS 4.1 distribution does not include a static -`libdl.a' library. +'libdl.a' library. As a result, if you try to link an X program statically under SunOS, -you may get undefined references to `dlopen', `dlsym', and `dlclose'. +you may get undefined references to 'dlopen', 'dlsym', and 'dlclose'. One workaround is to include these definitions when you link: void *dlopen() { return 0; } void *dlsym() { return 0; } int dlclose() { return -1; } -These are contained in the `dlsym.c' file in the MIT X distribution. +These are contained in the 'dlsym.c' file in the MIT X distribution. File: kpathsea.info, Node: ShellWidgetClass, Next: Pointer combination warnings, Prev: dlopen, Up: Common problems -2.6.5.8 `ShellWidgetClass' +2.6.5.8 'ShellWidgetClass' .......................... (This section adapted from the comp.sys.sun.admin FAQ.) If you are linking with Sun's OpenWindows libraries in SunOS 4.1.x, -you may get undefined symbols `_get_wmShellWidgetClass' and -`_get_applicationShellWidgetClass' when linking. This problem does not +you may get undefined symbols '_get_wmShellWidgetClass' and +'_get_applicationShellWidgetClass' when linking. This problem does not arise using the standard MIT X libraries under SunOS. - The cause is bugs in the `Xmu' shared library as shipped from Sun. + The cause is bugs in the 'Xmu' shared library as shipped from Sun. There are several fixes: - * Install the free MIT distribution from `ftp.x.org' and mirrors. + * Install the free MIT distribution from 'ftp.x.org' and mirrors. * Get the OpenWindows patches listed below. - * Statically link the `Xmu' library into the executable. - - * Avoid using `Xmu' at all. If you are compiling Metafont, see *note - Online Metafont graphics: (web2c)Online Metafont graphics. If you - are compiling Xdvi, see the `-DNOTOOL' option in `xdvik/INSTALL'. + * Statically link the 'Xmu' library into the executable. - * Ignore the errors. The binary runs fine regardless. + * Avoid using 'Xmu' at all. If you are compiling Metafont, see *note + (web2c)Online Metafont graphics::. If you are compiling Xdvi, see + the '-DNOTOOL' option in 'xdvik/INSTALL'. + * Ignore the errors. The binary runs fine regardless. Here is the information for getting the two patches: Patch ID: 100512-02 Bug ID's: 1086793, 1086912, 1074766 - Description: 4.1.x OpenWindows 3.0 `libXt' jumbo patch + Description: 4.1.x OpenWindows 3.0 'libXt' jumbo patch Patch ID: 100573-03 Bug ID: 1087332 - Description: 4.1.x OpenWindows 3.0 undefined symbols when using shared `libXmu'. + Description: 4.1.x OpenWindows 3.0 undefined symbols when using shared 'libXmu'. - The way to statically link with `libXmu' depends on whether you are -using a Sun compiler (e.g., `cc') or `gcc'. If the latter, alter the -`x_libs' Make variable to include + The way to statically link with 'libXmu' depends on whether you are +using a Sun compiler (e.g., 'cc') or 'gcc'. If the latter, alter the +'x_libs' Make variable to include -static -lXmu -dynamic - If you are using the Sun compiler, use `-Bstatic' and `-Bdynamic'. + If you are using the Sun compiler, use '-Bstatic' and '-Bdynamic'. File: kpathsea.info, Node: Pointer combination warnings, Prev: ShellWidgetClass, Up: Common problems @@ -1898,24 +1877,24 @@ File: kpathsea.info, Node: Searching overview, Next: Path sources, Up: Path s ====================== A "search path" is a colon-separated list of "path elements", which are -directory names with a few extra frills. A search path can come from -(a combination of) many sources; see below. To look up a file `foo' -along a path `.:/dir', Kpathsea checks each element of the path in -turn: first `./foo', then `/dir/foo', returning the first match (or -possibly all matches). - - The "colon" and "slash" mentioned here aren't necessarily `:' and -`/' on non-Unix systems. Kpathsea tries to adapt to other operating +directory names with a few extra frills. A search path can come from (a +combination of) many sources; see below. To look up a file 'foo' along +a path '.:/dir', Kpathsea checks each element of the path in turn: first +'./foo', then '/dir/foo', returning the first match (or possibly all +matches). + + The "colon" and "slash" mentioned here aren't necessarily ':' and '/' +on non-Unix systems. Kpathsea tries to adapt to other operating systems' conventions. To check a particular path element E, Kpathsea first sees if a -prebuilt database (*note Filename database::) applies to E, i.e., if -the database is in a directory that is a prefix of E. If so, the path +prebuilt database (*note Filename database::) applies to E, i.e., if the +database is in a directory that is a prefix of E. If so, the path specification is matched against the contents of the database. If the database does not exist, or does not apply to this path -element, or contains no matches, the filesystem is searched (if this -was not forbidden by the specification with `!!' and if the file being +element, or contains no matches, the filesystem is searched (if this was +not forbidden by the specification with '!!' and if the file being searched for must exist). Kpathsea constructs the list of directories that correspond to this path element, and then checks in each for the file being searched for. (To help speed future lookups of files in the @@ -1923,16 +1902,16 @@ same directory, the directory in which a file is found is floated to the top of the directory list.) The "file must exist" condition comes into play with VF files and -input files read by the TeX `\openin' command. These files might very -well not exist (consider `cmr10.vf'), and so it would be wrong to -search the disk for them. Therefore, if you fail to update `ls-R' when -you install a new VF file, it will not be found. +input files read by the TeX '\openin' command. These files might very +well not exist (consider 'cmr10.vf'), and so it would be wrong to search +the disk for them. Therefore, if you fail to update 'ls-R' when you +install a new VF file, it will not be found. Each path element is checked in turn: first the database, then the -disk. If a match is found, the search stops and the result is -returned. This avoids possibly-expensive processing of path -specifications that are never needed on a particular run. (Unless the -search explicitly requested all matches.) +disk. If a match is found, the search stops and the result is returned. +This avoids possibly-expensive processing of path specifications that +are never needed on a particular run. (Unless the search explicitly +requested all matches.) Although the simplest and most common path element is a directory name, Kpathsea supports additional features in search paths: layered @@ -1944,20 +1923,20 @@ process is described in the sections below. It happens in the same order as the sections. Exception to all of the above: If the filename being searched for is -absolute or explicitly relative, i.e., starts with `/' or `./' or -`../', Kpathsea simply checks if that file exists. +absolute or explicitly relative, i.e., starts with '/' or './' or '../', +Kpathsea simply checks if that file exists. Ordinarily, if Kpathsea tries to access a file or directory that cannot be read, it gives a warning. This is so you will be alerted to directories or files that accidentally lack any read permission (for -example, a `lost+found' directory). If you prefer not to see these -warnings, include the value `readable' in the `TEX_HUSH' environment +example, a 'lost+found' directory). If you prefer not to see these +warnings, include the value 'readable' in the 'TEX_HUSH' environment variable or config file value. This generic path searching algorithm is implemented in -`kpathsea/pathsearch.c'. It is employed by a higher-level algorithm -when searching for a file of a particular type (*note File lookup::, -and *note Glyph lookup::). +'kpathsea/pathsearch.c'. It is employed by a higher-level algorithm +when searching for a file of a particular type (*note File lookup::, and +*note Glyph lookup::). File: kpathsea.info, Node: Path sources, Next: Path expansion, Prev: Searching overview, Up: Path searching @@ -1968,18 +1947,18 @@ File: kpathsea.info, Node: Path sources, Next: Path expansion, Prev: Searchin A search path can come from many sources. In the order in which Kpathsea uses them: - 1. A user-set environment variable, e.g., `TEXINPUTS'. Environment + 1. A user-set environment variable, e.g., 'TEXINPUTS'. Environment variables with an underscore and the program name appended - override; for example, `TEXINPUTS_latex' overrides `TEXINPUTS' if - the program being run is named `latex'. + override; for example, 'TEXINPUTS_latex' overrides 'TEXINPUTS' if + the program being run is named 'latex'. - 2. A program-specific configuration file, e.g., an `S /a:/b' line in - Dvips' `config.ps' (*note Config files: (dvips)Config files.). + 2. A program-specific configuration file, e.g., an 'S /a:/b' line in + Dvips' 'config.ps' (*note (dvips)Config files::). - 3. A line in a Kpathsea configuration file `texmf.cnf', e.g., - `TEXINPUTS=/c:/d' (see below). + 3. A line in a Kpathsea configuration file 'texmf.cnf', e.g., + 'TEXINPUTS=/c:/d' (see below). - 4. The compile-time default (specified in `kpathsea/paths.h'). + 4. The compile-time default (specified in 'kpathsea/paths.h'). You can see each of these values for a given search path by using the debugging options (*note Debugging::). @@ -1998,29 +1977,29 @@ File: kpathsea.info, Node: Config files, Up: Path sources ------------------ As mentioned above, Kpathsea reads "runtime configuration files" named -`texmf.cnf' for search path and other definitions. The search path -used to look for these configuration files is named `TEXMFCNF', and is +'texmf.cnf' for search path and other definitions. The search path used +to look for these configuration files is named 'TEXMFCNF', and is constructed in the usual way, as described above, except that configuration files cannot be used to define the path, naturally; also, -an `ls-R' database is not used to search for them. +an 'ls-R' database is not used to search for them. - Kpathsea reads _all_ `texmf.cnf' files in the search path, not just + Kpathsea reads _all_ 'texmf.cnf' files in the search path, not just the first one found; definitions in earlier files override those in -later files. Thus, if the search path is `.:$TEXMF', values from -`./texmf.cnf' override those from `$TEXMF/texmf.cnf'. +later files. Thus, if the search path is '.:$TEXMF', values from +'./texmf.cnf' override those from '$TEXMF/texmf.cnf'. - If Kpathsea cannot find any `texmf.cnf' file, it reports a warning -including all the directories it checked. If you don't want to see -this warning, set the environment variable `KPATHSEA_WARNING' to the -single character `0' (zero, not oh). + If Kpathsea cannot find any 'texmf.cnf' file, it reports a warning +including all the directories it checked. If you don't want to see this +warning, set the environment variable 'KPATHSEA_WARNING' to the single +character '0' (zero, not oh). While (or instead of) reading this description, you may find it -helpful to look at the distributed `texmf.cnf', which uses or at least -mentions most features. The format of `texmf.cnf' files follows: +helpful to look at the distributed 'texmf.cnf', which uses or at least +mentions most features. The format of 'texmf.cnf' files follows: - * Comments start with `%', either at the beginning of a line or + * Comments start with '%', either at the beginning of a line or preceded by whitespace, and continue to the end of the line. That - is, as with most shells, a `%' in the "middle" of a value does not + is, as with most shells, a '%' in the "middle" of a value does not start a comment. Examples: % this is a comment @@ -2028,7 +2007,7 @@ mentions most features. The format of `texmf.cnf' files follows: * Blank lines are ignored. - * A `\' at the end of a line acts as a continuation character, i.e., + * A '\' at the end of a line acts as a continuation character, i.e., the next line is appended. Whitespace at the beginning of continuation lines is not ignored. @@ -2036,25 +2015,25 @@ mentions most features. The format of `texmf.cnf' files follows: VARIABLE [. PROGNAME] [=] VALUE - where the `=' and surrounding whitespace is optional. + where the '=' and surrounding whitespace is optional. * The VARIABLE name may contain any character other than whitespace, - `=', or `.', but sticking to `A-Za-z_' is safest. + '=', or '.', but sticking to 'A-Za-z_' is safest. - * If `.PROGNAME' is present, the definition only applies if the + * If '.PROGNAME' is present, the definition only applies if the program that is running is named (i.e., the last component of - `argv[0]' is) PROGNAME or `PROGNAME.{exe,bat,cmd,...}'. Most + 'argv[0]' is) PROGNAME or 'PROGNAME.{exe,bat,cmd,...}'. Most notably, this allows different flavors of TeX to have different search paths. - * VALUE may contain any characters except `%' and `@'. (These + * VALUE may contain any characters except '%' and '@'. (These restrictions are only necessary because of the processing done on - `texmf.cnf' at build time, so you can stick those characters in - after installation if you have to.) The `$VAR.PROG' feature is - not available on the right-hand side; instead, you must use an - additional variable (see below for example). A `;' in VALUE is - translated to `:' if running under Unix; this is useful to write a - single `texmf.cnf' which can be used under both Unix and Windows. + 'texmf.cnf' at build time, so you can stick those characters in + after installation if you have to.) The '$VAR.PROG' feature is not + available on the right-hand side; instead, you must use an + additional variable (see below for example). A ';' in VALUE is + translated to ':' if running under Unix; this is useful to write a + single 'texmf.cnf' which can be used under both Unix and Windows. * All definitions are read before anything is expanded, so you can use variables before they are defined (like Make, unlike most other @@ -2071,13 +2050,13 @@ Here is a configuration file fragment illustrating most of these points: TEXINPUTS.latex = $latex2e_inputs This format has obvious similarities to Bourne shell scripts--change -the comment character to `#', disallow spaces around the `=', and get -rid of the `.NAME' convention, and it could be run through the shell. +the comment character to '#', disallow spaces around the '=', and get +rid of the '.NAME' convention, and it could be run through the shell. However, there seemed little advantage in this, since all the information would have to passed back to Kpathsea and parsed there -anyway, since the `sh' process couldn't affect its parent's environment. +anyway, since the 'sh' process couldn't affect its parent's environment. - The implementation of all this is in `kpathsea/cnf.c'. + The implementation of all this is in 'kpathsea/cnf.c'. File: kpathsea.info, Node: Path expansion, Next: Filename database, Prev: Path sources, Up: Path searching @@ -2087,9 +2066,9 @@ File: kpathsea.info, Node: Path expansion, Next: Filename database, Prev: Pat Kpathsea recognizes certain special characters and constructions in search paths, similar to that in shells. As a general example: -`~$USER/{foo,bar}//baz' expands to all subdirectories under directories -`foo' and `bar' in $USER's home directory that contain a directory or -file `baz'. These expansions are explained in the sections below. +'~$USER/{foo,bar}//baz' expands to all subdirectories under directories +'foo' and 'bar' in $USER's home directory that contain a directory or +file 'baz'. These expansions are explained in the sections below. * Menu: @@ -2107,9 +2086,9 @@ File: kpathsea.info, Node: Default expansion, Next: Variable expansion, Up: P ----------------------- If the highest-priority search path (*note Path sources::) contains an -"extra colon" (i.e., leading, trailing, or doubled), Kpathsea inserts -at that point the next-highest-priority search path that is defined. -If that inserted path has an extra colon, the same happens with the +"extra colon" (i.e., leading, trailing, or doubled), Kpathsea inserts at +that point the next-highest-priority search path that is defined. If +that inserted path has an extra colon, the same happens with the next-highest. (An extra colon in the compile-time default value has unpredictable results, so installers beware.) @@ -2117,7 +2096,7 @@ unpredictable results, so installers beware.) setenv TEXINPUTS /home/karl: -and a `TEXINPUTS' value from `texmf.cnf' of +and a 'TEXINPUTS' value from 'texmf.cnf' of .:$TEXMF//tex @@ -2125,9 +2104,9 @@ then the final value used for searching will be: /home/karl:.:$TEXMF//tex - Put another way, default expansion works on "formats" (search -paths), and not directly on environment variables. Example, showing -the trailing `:' ignored in the first case and expanded in the second: + Put another way, default expansion works on "formats" (search paths), +and not directly on environment variables. Example, showing the +trailing ':' ignored in the first case and expanded in the second: $ env TTFONTS=/tmp: kpsewhich --expand-path '$TTFONTS' /tmp @@ -2135,22 +2114,21 @@ the trailing `:' ignored in the first case and expanded in the second: /tmp:.:/home/olaf/texmf/fonts/truetype//:... Since Kpathsea looks for multiple configuration files, it would be -natural to expect that (for example) an extra colon in `./texmf.cnf' -would expand to the path in `$TEXMF/texmf.cnf'. Or, with Dvips' -configuration files, that an extra colon in `config.$PRINTER' would -expand to the path in `config.ps'. This doesn't happen. It's not -clear this would be desirable in all cases, and trying to devise a way -to specify the path to which the extra colon should expand seemed truly -baroque. +natural to expect that (for example) an extra colon in './texmf.cnf' +would expand to the path in '$TEXMF/texmf.cnf'. Or, with Dvips' +configuration files, that an extra colon in 'config.$PRINTER' would +expand to the path in 'config.ps'. This doesn't happen. It's not clear +this would be desirable in all cases, and trying to devise a way to +specify the path to which the extra colon should expand seemed truly +baroque. Technicality: Since it would be useless to insert the default value -in more than one place, Kpathsea changes only one extra `:' and leaves +in more than one place, Kpathsea changes only one extra ':' and leaves any others in place (they will eventually be ignored). Kpathsea checks -first for a leading `:', then a trailing `:', then a doubled `:'. +first for a leading ':', then a trailing ':', then a doubled ':'. - You can trace this by debugging "paths" (*note Debugging::). -Default expansion is implemented in the source file -`kpathsea/kdefault.c'. + You can trace this by debugging "paths" (*note Debugging::). Default +expansion is implemented in the source file 'kpathsea/kdefault.c'. File: kpathsea.info, Node: Variable expansion, Next: Tilde expansion, Prev: Default expansion, Up: Path expansion @@ -2158,34 +2136,34 @@ File: kpathsea.info, Node: Variable expansion, Next: Tilde expansion, Prev: D 3.3.2 Variable expansion ------------------------ -`$foo' or `${foo}' in a path element is replaced by (1) the value of an -environment variable `foo' (if defined); (2) the value of `foo' from -`texmf.cnf' (if defined); (3) the empty string. +'$foo' or '${foo}' in a path element is replaced by (1) the value of an +environment variable 'foo' (if defined); (2) the value of 'foo' from +'texmf.cnf' (if defined); (3) the empty string. - If the character after the `$' is alphanumeric or `_', the variable -name consists of all consecutive such characters. If the character -after the `$' is a `{', the variable name consists of everything up to -the next `}' (braces may not be nested around variable names). -Otherwise, Kpathsea gives a warning and ignores the `$' and its + If the character after the '$' is alphanumeric or '_', the variable +name consists of all consecutive such characters. If the character +after the '$' is a '{', the variable name consists of everything up to +the next '}' (braces may not be nested around variable names). +Otherwise, Kpathsea gives a warning and ignores the '$' and its following character. You must quote the $'s and braces as necessary for your shell. _Shell_ variable values cannot be seen by Kpathsea, i.e., ones defined -by `set' in C shells and without `export' in Bourne shells. +by 'set' in C shells and without 'export' in Bourne shells. For example, given setenv tex /home/texmf setenv TEXINPUTS .:$tex:${tex}prev - the final `TEXINPUTS' path is the three directories: +the final 'TEXINPUTS' path is the three directories: .:/home/texmf:/home/texmfprev - The `.PROGNAME' suffix on variables and `_PROGNAME' on environment + The '.PROGNAME' suffix on variables and '_PROGNAME' on environment variable names are not implemented for general variable expansions. These are only recognized when search paths are initialized (*note Path sources::). Variable expansion is implemented in the source file -`kpathsea/variable.c'. +'kpathsea/variable.c'. File: kpathsea.info, Node: Tilde expansion, Next: Brace expansion, Prev: Variable expansion, Up: Path expansion @@ -2193,26 +2171,26 @@ File: kpathsea.info, Node: Tilde expansion, Next: Brace expansion, Prev: Vari 3.3.3 Tilde expansion --------------------- -A leading `~' in a path element is replaced by the value of the -environment variable `HOME', or `.' if `HOME' is not set. On Windows, -the environment variable `USERPROFILE' is checked instead of `HOME'. +A leading '~' in a path element is replaced by the value of the +environment variable 'HOME', or '.' if 'HOME' is not set. On Windows, +the environment variable 'USERPROFILE' is checked instead of 'HOME'. - A leading `~USER' in a path element is replaced by USER's home -directory from the system `passwd' database. + A leading '~USER' in a path element is replaced by USER's home +directory from the system 'passwd' database. For example, setenv TEXINPUTS ~/mymacros: -will prepend a directory `mymacros' in your home directory to the +will prepend a directory 'mymacros' in your home directory to the default path. - As a special case, if a home directory ends in `/', the trailing -slash is dropped, to avoid inadvertently creating a `//' construct in -the path. For example, if the home directory of the user `root' is -`/', the path element `~root/mymacros' expands to just `/mymacros', not -`//mymacros'. + As a special case, if a home directory ends in '/', the trailing +slash is dropped, to avoid inadvertently creating a '//' construct in +the path. For example, if the home directory of the user 'root' is '/', +the path element '~root/mymacros' expands to just '/mymacros', not +'//mymacros'. - Tilde expansion is implemented in the source file `kpathsea/tilde.c'. + Tilde expansion is implemented in the source file 'kpathsea/tilde.c'. File: kpathsea.info, Node: Brace expansion, Next: KPSE_DOT expansion, Prev: Tilde expansion, Up: Path expansion @@ -2220,40 +2198,40 @@ File: kpathsea.info, Node: Brace expansion, Next: KPSE_DOT expansion, Prev: T 3.3.4 Brace expansion --------------------- -`x{A,B}y' expands to `xAy:xBy'. For example: +'x{A,B}y' expands to 'xAy:xBy'. For example: foo/{1,2}/baz -expands to `foo/1/baz:foo/2/baz'. `:' is the path separator on the -current system; e.g., on a DOS system, it's `;'. +expands to 'foo/1/baz:foo/2/baz'. ':' is the path separator on the +current system; e.g., on a DOS system, it's ';'. - Braces can be nested; for example, `x{A,B{1,2}}y' expands to -`xAy:xB1y:xB2y'. + Braces can be nested; for example, 'x{A,B{1,2}}y' expands to +'xAy:xB1y:xB2y'. Multiple non-nested braces are expanded from right to left; for -example, `x{A,B}{1,2}y' expands to `x{A,B}1y:x{A,B}2y', which expands -to `xA1y:xB1y:xA2y:xB2y'. +example, 'x{A,B}{1,2}y' expands to 'x{A,B}1y:x{A,B}2y', which expands to +'xA1y:xB1y:xA2y:xB2y'. This feature can be used to implement multiple TeX hierarchies, by -assigning a brace list to `$TEXMF', as mentioned in `texmf.in'. +assigning a brace list to '$TEXMF', as mentioned in 'texmf.in'. You can also use the path separator instead of the comma. The last -example could have been written `x{A:B}{1:2}y'. +example could have been written 'x{A:B}{1:2}y'. Brace expansion is implemented in the source file -`kpathsea/expand.c'. +'kpathsea/expand.c'. File: kpathsea.info, Node: KPSE_DOT expansion, Next: Subdirectory expansion, Prev: Brace expansion, Up: Path expansion -3.3.5 `KPSE_DOT' expansion +3.3.5 'KPSE_DOT' expansion -------------------------- -When `KPSE_DOT' is defined in the environment, it names a directory -that should be considered the current directory for the purpose of -looking up files in the search paths. This feature is needed by the -`mktex...' scripts *note mktex scripts::, because these change the -working directory. You should not ever define it yourself. +When 'KPSE_DOT' is defined in the environment, it names a directory that +should be considered the current directory for the purpose of looking up +files in the search paths. This feature is needed by the 'mktex...' +scripts *note mktex scripts::, because these change the working +directory. You should not ever define it yourself. File: kpathsea.info, Node: Subdirectory expansion, Prev: KPSE_DOT expansion, Up: Path expansion @@ -2263,53 +2241,53 @@ File: kpathsea.info, Node: Subdirectory expansion, Prev: KPSE_DOT expansion, Two or more consecutive slashes in a path element following a directory D is replaced by all subdirectories of D: first those subdirectories -directly under D, then the subsubdirectories under those, and so on. -At each level, the order in which the directories are searched is +directly under D, then the subsubdirectories under those, and so on. At +each level, the order in which the directories are searched is unspecified. (It's "directory order", and definitely not alphabetical.) - If you specify any filename components after the `//', only + If you specify any filename components after the '//', only subdirectories which match those components are included. For example, -`/a//b' would expand into directories `/a/1/b', `/a/2/b', `/a/1/1/b', -and so on, but not `/a/b/c' or `/a/1'. +'/a//b' would expand into directories '/a/1/b', '/a/2/b', '/a/1/1/b', +and so on, but not '/a/b/c' or '/a/1'. - You can include multiple `//' constructs in the path. + You can include multiple '//' constructs in the path. - `//' at the beginning of a path is ignored; you didn't really want -to search every directory on the system, did you? + '//' at the beginning of a path is ignored; you didn't really want to +search every directory on the system, did you? I should mention one related implementation trick, which I took from -GNU find. Matthew Farwell suggested it, and David MacKenzie -implemented it. +GNU find. Matthew Farwell suggested it, and David MacKenzie implemented +it. The trick is that in every real Unix implementation (as opposed to the POSIX specification), a directory which contains no subdirectories -will have exactly two links (namely, one for `.' and one for `..'). -That is to say, the `st_nlink' field in the `stat' structure will be +will have exactly two links (namely, one for '.' and one for '..'). +That is to say, the 'st_nlink' field in the 'stat' structure will be two. Thus, we don't have to stat everything in the bottom-level (leaf) -directories--we can just check `st_nlink', notice it's two, and do no +directories--we can just check 'st_nlink', notice it's two, and do no more work. But if you have a directory that contains a single subdirectory and -500 regular files, `st_nlink' will be 3, and Kpathsea has to stat every +500 regular files, 'st_nlink' will be 3, and Kpathsea has to stat every one of those 501 entries. Therein lies slowness. - You can disable the trick by undefining `ST_NLINK_TRICK' in -`kpathsea/config.h'. (It is undefined by default except under Unix.) + You can disable the trick by undefining 'ST_NLINK_TRICK' in +'kpathsea/config.h'. (It is undefined by default except under Unix.) - Unfortunately, in some cases files in leaf directories are `stat''d: -if the path specification is, say, `$TEXMF/fonts//pk//', then files in -a subdirectory `.../pk', even if it is a leaf, are checked. The reason + Unfortunately, in some cases files in leaf directories are 'stat''d: +if the path specification is, say, '$TEXMF/fonts//pk//', then files in a +subdirectory '.../pk', even if it is a leaf, are checked. The reason cannot be explained without reference to the implementation, so read -`kpathsea/elt-dirs.c' (search for `may descend') if you are curious. +'kpathsea/elt-dirs.c' (search for 'may descend') if you are curious. And if you can find a way to _solve_ the problem, please let me know. Subdirectory expansion is implemented in the source file -`kpathsea/elt-dirs.c'. +'kpathsea/elt-dirs.c'. File: kpathsea.info, Node: Filename database, Next: Invoking kpsewhich, Prev: Path expansion, Up: Path searching -3.4 Filename database (`ls-R') +3.4 Filename database ('ls-R') ============================== Kpathsea goes to some lengths to minimize disk accesses for searches @@ -2318,15 +2296,15 @@ each possible directory in typical TeX installations takes an excessively long time. Therefore, Kpathsea can use an externally-built "filename database" -file named `ls-R' that maps files to directories, thus avoiding the -need to exhaustively search the disk. +file named 'ls-R' that maps files to directories, thus avoiding the need +to exhaustively search the disk. - A second database file `aliases' allows you to give additional names -to the files listed in `ls-R'. This can be helpful to adapt to "8.3" + A second database file 'aliases' allows you to give additional names +to the files listed in 'ls-R'. This can be helpful to adapt to "8.3" filename conventions in source files. - The `ls-R' and `aliases' features are implemented in the source file -`kpathsea/db.c'. + The 'ls-R' and 'aliases' features are implemented in the source file +'kpathsea/db.c'. * Menu: @@ -2337,63 +2315,62 @@ filename conventions in source files. File: kpathsea.info, Node: ls-R, Next: Filename aliases, Up: Filename database -3.4.1 `ls-R' +3.4.1 'ls-R' ------------ -As mentioned above, you must name the main filename database `ls-R'. +As mentioned above, you must name the main filename database 'ls-R'. You can put one at the root of each TeX installation hierarchy you wish -to search (`$TEXMF' by default); most sites have only one hierarchy. -Kpathsea looks for `ls-R' files along the `TEXMFDBS' path, so that +to search ('$TEXMF' by default); most sites have only one hierarchy. +Kpathsea looks for 'ls-R' files along the 'TEXMFDBS' path, so that should presumably match the list of hierarchies. - The recommended way to create and maintain `ls-R' is to run the -`mktexlsr' script, which is installed in `$(bindir)' (`/usr/local/bin' + The recommended way to create and maintain 'ls-R' is to run the +'mktexlsr' script, which is installed in '$(bindir)' ('/usr/local/bin' by default). That script goes to some trouble to follow symbolic links -as necessary, etc. It's also invoked by the distributed `mktex...' +as necessary, etc. It's also invoked by the distributed 'mktex...' scripts. - At its simplest, though, you can build `ls-R' with the command + At its simplest, though, you can build 'ls-R' with the command cd /YOUR/TEXMF/ROOT && ls -LAR ./ >ls-R -presuming your `ls' produces the right output format (see the section -below). GNU `ls', for example, outputs in this format. Also presuming -your `ls' hasn't been aliased in a system file (e.g., `/etc/profile') -to something problematic, e.g., `ls --color=tty'. In that case, you -will have to disable the alias before generating `ls-R'. For the -precise definition of the file format, see *note Database format::. +presuming your 'ls' produces the right output format (see the section +below). GNU 'ls', for example, outputs in this format. Also presuming +your 'ls' hasn't been aliased in a system file (e.g., '/etc/profile') to +something problematic, e.g., 'ls --color=tty'. In that case, you will +have to disable the alias before generating 'ls-R'. For the precise +definition of the file format, see *note Database format::. Regardless of whether you use the supplied script or your own, you -will almost certainly want to invoke it via `cron', so when you make -changes in the installed files (say if you install a new LaTeX -package), `ls-R' will be automatically updated. +will almost certainly want to invoke it via 'cron', so when you make +changes in the installed files (say if you install a new LaTeX package), +'ls-R' will be automatically updated. - The `-A' option to `ls' includes files beginning with `.' (except -for `.' and `..'), such as the file `.tex' included with the LaTeX -tools package. (On the other hand, _directories_ whose names begin -with `.' are always ignored.) + The '-A' option to 'ls' includes files beginning with '.' (except for +'.' and '..'), such as the file '.tex' included with the LaTeX tools +package. (On the other hand, _directories_ whose names begin with '.' +are always ignored.) - If your system does not support symbolic links, omit the `-L'. + If your system does not support symbolic links, omit the '-L'. - `ls -LAR /YOUR/TEXMF/ROOT' will also work. But using `./' avoids + 'ls -LAR /YOUR/TEXMF/ROOT' will also work. But using './' avoids embedding absolute pathnames, so the hierarchy can be easily -transported. It also avoids possible trouble with automounters or -other network filesystem conventions. +transported. It also avoids possible trouble with automounters or other +network filesystem conventions. - Kpathsea warns you if it finds an `ls-R' file, but the file does not -contain any usable entries. The usual culprit is running plain `ls -R' -instead of `ls -LR ./' or `ls -R /YOUR/TEXMF/ROOT'. Another -possibility is some system directory name starting with a `.' (perhaps -if you are using AFS); Kpathsea ignores everything under such -directories. + Kpathsea warns you if it finds an 'ls-R' file, but the file does not +contain any usable entries. The usual culprit is running plain 'ls -R' +instead of 'ls -LR ./' or 'ls -R /YOUR/TEXMF/ROOT'. Another possibility +is some system directory name starting with a '.' (perhaps if you are +using AFS); Kpathsea ignores everything under such directories. Because the database may be out-of-date for a particular run, if a file is not found in the database, by default Kpathsea goes ahead and -searches the disk. If a particular path element begins with `!!', +searches the disk. If a particular path element begins with '!!', however, _only_ the database will be searched for that element, never the disk. If the database does not exist, nothing will be searched. -Because this can surprise users ("I see the font `foo.tfm' when I do an -`ls'; why can't Dvips find it?"), it is not in any of the default -search paths. +Because this can surprise users ("I see the font 'foo.tfm' when I do an +'ls'; why can't Dvips find it?"), it is not in any of the default search +paths. File: kpathsea.info, Node: Filename aliases, Next: Database format, Prev: ls-R, Up: Filename database @@ -2403,24 +2380,24 @@ File: kpathsea.info, Node: Filename aliases, Next: Database format, Prev: ls- In some circumstances, you may wish to find a file under several names. For example, suppose a TeX document was created using a DOS system and -tries to read `longtabl.sty'. But now it's being run on a Unix system, -and the file has its original name, `longtable.sty'. The file won't be -found. You need to give the actual file `longtable.sty' an alias -`longtabl.sty'. +tries to read 'longtabl.sty'. But now it's being run on a Unix system, +and the file has its original name, 'longtable.sty'. The file won't be +found. You need to give the actual file 'longtable.sty' an alias +'longtabl.sty'. - You can handle this by creating a file `aliases' as a companion to -the `ls-R' for the hierarchy containing the file in question. (You -must have an `ls-R' for the alias feature to work.) + You can handle this by creating a file 'aliases' as a companion to +the 'ls-R' for the hierarchy containing the file in question. (You must +have an 'ls-R' for the alias feature to work.) - The format of `aliases' is simple: two whitespace-separated words -per line; the first is the real name `longtable.sty', and second is the -alias (`longtabl.sty'). These must be base filenames, with no -directory components. `longtable.sty' must be in the sibling `ls-R'. + The format of 'aliases' is simple: two whitespace-separated words per +line; the first is the real name 'longtable.sty', and second is the +alias ('longtabl.sty'). These must be base filenames, with no directory +components. 'longtable.sty' must be in the sibling 'ls-R'. - Also, blank lines and lines starting with `%' or `#' are ignored in -`aliases', to allow for comments. + Also, blank lines and lines starting with '%' or '#' are ignored in +'aliases', to allow for comments. - If a real file `longtabl.sty' exists, it is used regardless of any + If a real file 'longtabl.sty' exists, it is used regardless of any aliases. @@ -2430,22 +2407,22 @@ File: kpathsea.info, Node: Database format, Prev: Filename aliases, Up: Filen --------------------- The "database" read by Kpathsea is a line-oriented file of plain text. -The format is that generated by GNU (and most other) `ls' programs -given the `-R' option, as follows. +The format is that generated by GNU (and most other) 'ls' programs given +the '-R' option, as follows. * Blank lines are ignored. - * If a line begins with `/' or `./' or `../' and ends with a colon, - it's the name of a directory. (`../' lines aren't useful, - however, and should not be generated.) + * If a line begins with '/' or './' or '../' and ends with a colon, + it's the name of a directory. ('../' lines aren't useful, however, + and should not be generated.) * All other lines define entries in the most recently seen directory. /'s in such lines will produce possibly-strange results. * Files with no preceding directory line are ignored. - For example, here's the first few lines of `ls-R' (which totals -about 30K bytes) on my system: + For example, here's the first few lines of 'ls-R' (which totals about +30K bytes) on my system: bibtex dvips @@ -2469,21 +2446,21 @@ about 30K bytes) on my system: File: kpathsea.info, Node: Invoking kpsewhich, Prev: Filename database, Up: Path searching -3.5 `kpsewhich': Standalone path searching +3.5 'kpsewhich': Standalone path searching ========================================== The Kpsewhich program exercises the path searching functionality independent of any particular application. This can also be useful as a -sort of `find' program to locate files in your TeX hierarchies, perhaps +sort of 'find' program to locate files in your TeX hierarchies, perhaps in administrative scripts. It is used heavily in the distributed -`mktex...' scripts. +'mktex...' scripts. Synopsis: kpsewhich OPTION... FILENAME... The options and filename(s) to look up can be intermixed. Options -can start with either `-' or `--', and any unambiguous abbreviation is +can start with either '-' or '--', and any unambiguous abbreviation is accepted. * Menu: @@ -2491,7 +2468,7 @@ accepted. * Path searching options:: Changing the mode, resolution, etc. * Specially-recognized files:: Default formats for texmf.cnf, etc. * Auxiliary tasks:: Path and variable expansion. -* Standard options:: --help and --version. +* Standard options:: -help and -version. File: kpathsea.info, Node: Path searching options, Next: Specially-recognized files, Up: Invoking kpsewhich @@ -2504,41 +2481,40 @@ filename, and returns the first file found. Various options alter the path searching behavior: -`--all' +'--all' Report all matches found, one per line. By default, if there is more than one match, just one will be reported (chosen effectively at random). -`--dpi=NUM' - Set the resolution to NUM; this only affects `gf' and `pk' - lookups. `-D' is a synonym, for compatibility with Dvips. - Default is 600. - -`--engine=NAME' - Set the engine name to NAME. By default it is not set. The - engine name is used in some search paths to allow files with the - same name but used by different engines to coexist. - - In particular, since the memory dump files (`.fmt'/`.base'/`.mem') - are now stored in subdirectories named for the engine (`tex', - `pdftex', `xetex', etc.), you must specify an engine name in order - to find them. For example, `cont-en.fmt' typically exists for both - `pdftex' and `xetex'. With the default path settings, you can use - `--engine=/' to look for any dump file, regardless of engine; if a - dump file exists for more than one engine, it's indeterminate - which one is returned. (The `/' ends up specifying a normal - recursive search along the path where the dumps are stored, namely - `$TEXMF/web2c{/$engine,}'.) - -`--format=NAME' +'--dpi=NUM' + Set the resolution to NUM; this only affects 'gf' and 'pk' lookups. + '-D' is a synonym, for compatibility with Dvips. Default is 600. + +'--engine=NAME' + Set the engine name to NAME. By default it is not set. The engine + name is used in some search paths to allow files with the same name + but used by different engines to coexist. + + In particular, since the memory dump files ('.fmt'/'.base'/'.mem') + are now stored in subdirectories named for the engine ('tex', + 'pdftex', 'xetex', etc.), you must specify an engine name in order + to find them. For example, 'cont-en.fmt' typically exists for both + 'pdftex' and 'xetex'. With the default path settings, you can use + '--engine=/' to look for any dump file, regardless of engine; if a + dump file exists for more than one engine, it's indeterminate which + one is returned. (The '/' ends up specifying a normal recursive + search along the path where the dumps are stored, namely + '$TEXMF/web2c{/$engine,}'.) + +'--format=NAME' Set the format for lookup to NAME. By default, the format is - guessed from the filename, with `tex' being used if nothing else + guessed from the filename, with 'tex' being used if nothing else fits. The recognized filename extensions (including any leading - `.') are also allowable NAMEs. + '.') are also allowable NAMEs. All formats also have a name, which is the only way to specify formats with no associated suffix. For example, for Dvips - configuration files you can use `--format="dvips config"'. (The + configuration files you can use '--format="dvips config"'. (The quotes are for the sake of the shell.) Here's the current list of recognized names and the associated @@ -2546,7 +2522,7 @@ filename, and returns the first file found. each of these. The strings in parentheses are abbreviations recognized only by - `kpsewhich' (not the underlying library calls). They are provided + 'kpsewhich' (not the underlying library calls). They are provided when it would otherwise require an argument containing a space to specify the format, to simplify quoting of calls from shells. @@ -2610,51 +2586,50 @@ filename, and returns the first file found. ris: .ris bltxml: .bltxml - This option and `--path' are mutually exclusive. + This option and '--path' are mutually exclusive. -`--interactive' +'--interactive' After processing the command line, read additional filenames to look up from standard input. -`--mktex=FILETYPE' -`--no-mktex=FILETYPE' - Turn on or off the `mktex' script associated with FILETYPE. Usual - values for FILETYPE are `pk', `mf', `tex', and `tfm'. By default, +'--mktex=FILETYPE' +'--no-mktex=FILETYPE' + Turn on or off the 'mktex' script associated with FILETYPE. Usual + values for FILETYPE are 'pk', 'mf', 'tex', and 'tfm'. By default, all are off in Kpsewhich, even if they are enabled for TeX. This - option implies setting `--must-exist'. *Note mktex scripts::. + option implies setting '--must-exist'. *Note mktex scripts::. -`--mode=STRING' - Set the mode name to STRING; this also only affects `gf' and `pk' +'--mode=STRING' + Set the mode name to STRING; this also only affects 'gf' and 'pk' lookups. No default: any mode will be found. *Note mktex script arguments::. -`--must-exist' +'--must-exist' Do everything possible to find the files, notably including - searching the disk and running the `mktex' scripts. By default, - only the `ls-R' database is checked, in the interest of efficiency. - -`--path=STRING' - Search along the path STRING (colon-separated as usual), instead - of guessing the search path from the filename. `//' and all the - usual expansions are supported (*note Path expansion::). This - option and `--format' are mutually exclusive. To output the - complete directory expansion of a path, instead of doing a - one-shot lookup, see `--expand-path' and `--show-path' in the - following section. - -`--progname=NAME' - Set the program name to NAME; default is `kpsewhich'. This can - affect the search paths via the `.PROGNAM' feature in - configuration files (*note Config files::). - -`--safe-in-name=NAME' -`--safe-out-name=NAME' + searching the disk and running the 'mktex' scripts. By default, + only the 'ls-R' database is checked, in the interest of efficiency. + +'--path=STRING' + Search along the path STRING (colon-separated as usual), instead of + guessing the search path from the filename. '//' and all the usual + expansions are supported (*note Path expansion::). This option and + '--format' are mutually exclusive. To output the complete + directory expansion of a path, instead of doing a one-shot lookup, + see '--expand-path' and '--show-path' in the following section. + +'--progname=NAME' + Set the program name to NAME; default is 'kpsewhich'. This can + affect the search paths via the '.PROGNAM' feature in configuration + files (*note Config files::). + +'--safe-in-name=NAME' +'--safe-out-name=NAME' Exit successfully if NAME is safe to open for reading or writing, respectively, else unsuccessfully. No output is written. These tests take account of the related Kpathsea configuration settings (*note Calling sequence::). -`--subdir=STRING' +'--subdir=STRING' Report only those matches whose directory part _ends_ with STRING (compared literally, except case is ignored on a case-insensitive operating system). For example, suppose there are two matches for @@ -2665,7 +2640,7 @@ filename, and returns the first file found. /another/place/foo.sty Then we can narrow the result to what we are interested in with - `--subdir': + '--subdir': kpsewhich --subdir=where foo.sty => /some/where/foo.sty @@ -2684,21 +2659,21 @@ filename, and returns the first file found. kpsewhich --subdir=some/where foo.sty => /some/where/foo.sty - `--subdir' implies `--all'; if there is more than one match, they - will all be reported (in our example, both `where' and `place' end - in `e'): + '--subdir' implies '--all'; if there is more than one match, they + will all be reported (in our example, both 'where' and 'place' end + in 'e'): kpsewhich --subdir=e => /some/where/foo.sty /another/place/foo.sty - Because of the above rules, the presence of a leading `/' is + Because of the above rules, the presence of a leading '/' is important, since it "anchors" the match to a full component name: kpsewhich --subdir=/lace foo.sty => - However, a trailing `/' is immaterial (and ignored), since the + However, a trailing '/' is immaterial (and ignored), since the match always takes place at the end of the directory part: kpsewhich --subdir=lace/ foo.sty @@ -2706,66 +2681,64 @@ filename, and returns the first file found. The purpose of these rules is to make it convenient to find results only within a particular area of the tree. For instance, a given - script named `foo.lua' might exist within both - `texmf-dist/scripts/pkg1/' and `texmf-dist/scripts/pkg2/'. By - specifying, say, `--subdir=/pkg1', you can be sure of getting the + script named 'foo.lua' might exist within both + 'texmf-dist/scripts/pkg1/' and 'texmf-dist/scripts/pkg2/'. By + specifying, say, '--subdir=/pkg1', you can be sure of getting the one you are interested in. We only match at the end because a site might happen to install TeX - in `/some/coincidental/pkg1/path/', and we wouldn't want to match - `texmf-dist/scripts/pkg2/' that when searching for `/pkg1'. - + in '/some/coincidental/pkg1/path/', and we wouldn't want to match + 'texmf-dist/scripts/pkg2/' that when searching for '/pkg1'. File: kpathsea.info, Node: Specially-recognized files, Next: Auxiliary tasks, Prev: Path searching options, Up: Invoking kpsewhich -3.5.2 Specially-recognized files for `kpsewhich' +3.5.2 Specially-recognized files for 'kpsewhich' ------------------------------------------------ -`kpsewhich' recognizes a few special filenames on the command line and -defaults to using the `known' file formats for them, merely to save the +'kpsewhich' recognizes a few special filenames on the command line and +defaults to using the 'known' file formats for them, merely to save the time and trouble of specifying the format. This is only a feature of -`kpsewhich'; when using the Kpathsea library itself, none of these +'kpsewhich'; when using the Kpathsea library itself, none of these special filenames are recognized, and it's still up to the caller to specify the desired format. - Here is the list of special filenames to `kpsewhich', along with + Here is the list of special filenames to 'kpsewhich', along with their corresponding format: -`config.ps' - `dvips config' - -`dvipdfmx.cfg' - `other text files' +'config.ps' + 'dvips config' -`fmtutil.cnf' - `web2c files' +'dvipdfmx.cfg' + 'other text files' -`glyphlist.txt' - `map' +'fmtutil.cnf' + 'web2c files' -`mktex.cnf' - `web2c files' +'glyphlist.txt' + 'map' -`pdfglyphlist.txt' - `map' +'mktex.cnf' + 'web2c files' -`pdftex.cfg' - `pdftex config' (although `pdftex.cfg' is not used any more; look - for the file `pdftexconfig.tex' instead.) +'pdfglyphlist.txt' + 'map' -`texmf.cnf' - `cnf' +'pdftex.cfg' + 'pdftex config' (although 'pdftex.cfg' is not used any more; look + for the file 'pdftexconfig.tex' instead.) -`XDvi' - `other text files' +'texmf.cnf' + 'cnf' +'XDvi' + 'other text files' A user-specified format will override the above defaults. - Another useful configuration file in this regard is `tcfmgr.map', -found in `texmf/texconfig/tcfmgr.map', which records various -information about the above configuration files (among others). + Another useful configuration file in this regard is 'tcfmgr.map', +found in 'texmf/texconfig/tcfmgr.map', which records various information +about the above configuration files (among others). File: kpathsea.info, Node: Auxiliary tasks, Next: Standard options, Prev: Specially-recognized files, Up: Invoking kpsewhich @@ -2776,27 +2749,27 @@ File: kpathsea.info, Node: Auxiliary tasks, Next: Standard options, Prev: Spe Kpsewhich provides some additional features not strictly related to path lookup: - * `--debug=NUM' sets the debugging options to NUM. *Note + * '--debug=NUM' sets the debugging options to NUM. *Note Debugging::. - * `--var-value=VARIABLE' outputs the value of VARIABLE, expanding - `$' (*note Variable expansion:: and `~' (*note Tilde expansion::) + * '--var-value=VARIABLE' outputs the value of VARIABLE, expanding '$' + (*note Variable expansion:: and '~' (*note Tilde expansion::) constructs, but not performing other expansions. - * `--expand-braces=STRING' outputs the variable and brace expansion + * '--expand-braces=STRING' outputs the variable and brace expansion of STRING. *Note Path expansion::. - * `--expand-var=STRING' outputs the variable and tilde expansion of - STRING. For example, the `mktex...' scripts run `kpsewhich + * '--expand-var=STRING' outputs the variable and tilde expansion of + STRING. For example, the 'mktex...' scripts run 'kpsewhich --expand-var='$TEXMF'' to find the root of the TeX system hierarchy. *Note Path expansion::. - * `--expand-path=STRING' outputs the complete expansion of STRING, + * '--expand-path=STRING' outputs the complete expansion of STRING, with each element separated by the usual path separator on the - current system (`;' on Windows, `:' otherwise). This may be - useful to construct a custom search path for a format not - otherwise supported. To retrieve the search path for a format - that is already supported, see `--show-path', next. + current system (';' on Windows, ':' otherwise). This may be useful + to construct a custom search path for a format not otherwise + supported. To retrieve the search path for a format that is + already supported, see '--show-path', next. Nonexistent directories are culled from the output: @@ -2806,14 +2779,13 @@ lookup: => For one-shot uses of an arbitrary (not built in to Kpathsea) path, - see `--path' in the previous section. + see '--path' in the previous section. - * `--show-path=NAME' shows the path that would be used for file - lookups of file type NAME. Either a filename extension (`pk', - `.vf', etc.) or an integer can be used, just as with `--format', + * '--show-path=NAME' shows the path that would be used for file + lookups of file type NAME. Either a filename extension ('pk', + '.vf', etc.) or an integer can be used, just as with '--format', described in the previous section. - File: kpathsea.info, Node: Standard options, Prev: Auxiliary tasks, Up: Invoking kpsewhich @@ -2822,10 +2794,10 @@ File: kpathsea.info, Node: Standard options, Prev: Auxiliary tasks, Up: Invok Kpsewhich accepts the standard GNU options: - * `--help' prints a help message on standard output and exits + * '--help' prints a help message on standard output and exits successfully. - * `--version' prints the Kpathsea version number and exits + * '--version' prints the Kpathsea version number and exits successfully. @@ -2849,7 +2821,7 @@ particularly). Kpathsea provides a standard way to search for files of any of the supported file types; glyph fonts are a bit different than all the rest. Searches are based solely on filenames, not file contents--if a GF file -is named `cmr10.600pk', it will be found as a PK file. +is named 'cmr10.600pk', it will be found as a PK file. * Menu: @@ -2871,239 +2843,235 @@ finding files (see the next section). Some also define additional suffixes, and/or a program to be run to create missing files on the fly. Since environment variables containing periods, such as -`TEXINPUTS.latex', are not allowed on some systems, Kpathsea looks for -environment variables with an underscore, e.g., `TEXINPUTS_latex' -(*note Config files::). +'TEXINPUTS.latex', are not allowed on some systems, Kpathsea looks for +environment variables with an underscore, e.g., 'TEXINPUTS_latex' (*note +Config files::). The following table lists the above information. -`afm' - (Adobe font metrics, *note Metric files: (dvips)Metric files.) - `AFMFONTS'; suffix `.afm'. +'afm' + (Adobe font metrics, *note (dvips)Metric files::) 'AFMFONTS'; + suffix '.afm'. -`base' - (Metafont memory dump, *note Memory dumps: (web2c)Memory dumps.) - `MFBASES', `TEXMFINI'; suffix `.base'. +'base' + (Metafont memory dump, *note (web2c)Memory dumps::) 'MFBASES', + 'TEXMFINI'; suffix '.base'. -`bib' - (BibTeX bibliography source, *note bibtex invocation: - (web2c)bibtex invocation.) `BIBINPUTS', `TEXBIB'; suffix `.bib'. +'bib' + (BibTeX bibliography source, *note (web2c)bibtex invocation::) + 'BIBINPUTS', 'TEXBIB'; suffix '.bib'. -`bst' +'bst' (BibTeX style, *note Basic BibTeX style files: (web2c)Basic BibTeX - style files.) `BSTINPUTS'; suffix `.bst'. + style files.) 'BSTINPUTS'; suffix '.bst'. -`cmap' - (character map files) `CMAPFONTS'; suffix `.cmap'. +'cmap' + (character map files) 'CMAPFONTS'; suffix '.cmap'. -`cnf' - (Runtime configuration files, *note Config files::) `TEXMFCNF'; - suffix `.cnf'. +'cnf' + (Runtime configuration files, *note Config files::) 'TEXMFCNF'; + suffix '.cnf'. -`cweb' - (CWEB input files) `CWEBINPUTS'; suffixes `.w', `.web'; additional - suffix `.ch'. +'cweb' + (CWEB input files) 'CWEBINPUTS'; suffixes '.w', '.web'; additional + suffix '.ch'. -`dvips config' - (Dvips `config.*' files, such as `config.ps', *note Config files: - (dvips)Config files.) `TEXCONFIG'. +'dvips config' + (Dvips 'config.*' files, such as 'config.ps', *note (dvips)Config + files::) 'TEXCONFIG'. -`enc files' - (encoding vectors) `ENCFONTS'; suffix `.enc'. +'enc files' + (encoding vectors) 'ENCFONTS'; suffix '.enc'. -`fmt' - (TeX memory dump, *note Memory dumps: (web2c)Memory dumps.) - `TEXFORMATS', `TEXMFINI'; suffix `.fmt'. +'fmt' + (TeX memory dump, *note (web2c)Memory dumps::) 'TEXFORMATS', + 'TEXMFINI'; suffix '.fmt'. -`font cid map' - (CJK mapping) `FONTCIDMAPS' suffix `.cid'. +'font cid map' + (CJK mapping) 'FONTCIDMAPS' suffix '.cid'. -`font feature files' - (primarily for OpenType font features) `FONTFEATURES' suffix - `.fea'. +'font feature files' + (primarily for OpenType font features) 'FONTFEATURES' suffix + '.fea'. -`gf' - (generic font bitmap, *note Glyph files: (dvips)Glyph files.) - `PROGRAMFONTS', `GFFONTS', `GLYPHFONTS', `TEXFONTS'; suffix `gf'. +'gf' + (generic font bitmap, *note (dvips)Glyph files::) 'PROGRAMFONTS', + 'GFFONTS', 'GLYPHFONTS', 'TEXFONTS'; suffix 'gf'. -`graphic/figure' - (Encapsulated PostScript figures, *note PostScript figures: - (dvips)PostScript figures.) `TEXPICTS', `TEXINPUTS'; additional - suffixes: `.eps', `.epsi'. +'graphic/figure' + (Encapsulated PostScript figures, *note (dvips)PostScript + figures::) 'TEXPICTS', 'TEXINPUTS'; additional suffixes: '.eps', + '.epsi'. -`ist' - (makeindex style files) `TEXINDEXSTYLE', `INDEXSTYLE'; suffix - `.ist'. +'ist' + (makeindex style files) 'TEXINDEXSTYLE', 'INDEXSTYLE'; suffix + '.ist'. -`lig files' - (ligature definition files) `LIGFONTS'; suffix `.lig'. +'lig files' + (ligature definition files) 'LIGFONTS'; suffix '.lig'. -`ls-R' - (Filename databases, *note Filename database::) `TEXMFDBS'. +'ls-R' + (Filename databases, *note Filename database::) 'TEXMFDBS'. -`map' - (Fontmaps, *note Fontmap::) `TEXFONTMAPS'; suffix `.map'. +'map' + (Fontmaps, *note Fontmap::) 'TEXFONTMAPS'; suffix '.map'. -`mem' - (MetaPost memory dump, *note Memory dumps: (web2c)Memory dumps.) - `MPMEMS', `TEXMFINI'; suffix `.mem'. +'mem' + (MetaPost memory dump, *note (web2c)Memory dumps::) 'MPMEMS', + 'TEXMFINI'; suffix '.mem'. -`MetaPost support' - (MetaPost support files, used by DMP; *note dmp invocation: - (web2c)dmp invocation.) `MPSUPPORT'. +'MetaPost support' + (MetaPost support files, used by DMP; *note (web2c)dmp + invocation::) 'MPSUPPORT'. -`mf' - (Metafont source, *note mf invocation: (web2c)mf invocation.) - `MFINPUTS'; suffix `.mf'; dynamic creation program: `mktexmf'. +'mf' + (Metafont source, *note (web2c)mf invocation::) 'MFINPUTS'; suffix + '.mf'; dynamic creation program: 'mktexmf'. -`mfpool' - (Metafont program strings, *note pooltype invocation: - (web2c)pooltype invocation.) `MFPOOL', `TEXMFINI'; suffix `.pool'. +'mfpool' + (Metafont program strings, *note (web2c)pooltype invocation::) + 'MFPOOL', 'TEXMFINI'; suffix '.pool'. -`mft' - (`MFT' style file, *note mft invocation: (web2c)mft invocation.) - `MFTINPUTS'; suffix `.mft'. +'mft' + ('MFT' style file, *note (web2c)mft invocation::) 'MFTINPUTS'; + suffix '.mft'. -`misc fonts' +'misc fonts' (font-related files that don't fit the other categories) - `MISCFONTS' + 'MISCFONTS' -`mlbib' - (MlBibTeX bibliography source) `MLBIBINPUTS', `BIBINPUTS', - `TEXBIB'; suffixes `.mlbib', `.mlbib'. +'mlbib' + (MlBibTeX bibliography source) 'MLBIBINPUTS', 'BIBINPUTS', + 'TEXBIB'; suffixes '.mlbib', '.mlbib'. -`mlbst' - (MlBibTeX style) `MLBSTINPUTS', `BSTINPUTS'; suffixes `.mlbst', - `.bst'. +'mlbst' + (MlBibTeX style) 'MLBSTINPUTS', 'BSTINPUTS'; suffixes '.mlbst', + '.bst'. -`mp' - (MetaPost source, *note mpost invocation: (web2c)mpost invocation.) - `MPINPUTS'; suffix `.mp'. +'mp' + (MetaPost source, *note (web2c)mpost invocation::) 'MPINPUTS'; + suffix '.mp'. -`mppool' - (MetaPost program strings, *note pooltype invocation: - (web2c)pooltype invocation.) `MPPOOL', `TEXMFINI'; suffix `.pool'. +'mppool' + (MetaPost program strings, *note (web2c)pooltype invocation::) + 'MPPOOL', 'TEXMFINI'; suffix '.pool'. -`ocp' - (Omega compiled process files) `OCPINPUTS'; - suffix `.ocp'; dynamic creation program: `MakeOmegaOCP'. +'ocp' + (Omega compiled process files) 'OCPINPUTS'; + suffix '.ocp'; dynamic creation program: 'MakeOmegaOCP'. -`ofm' - (Omega font metrics) `OFMFONTS', `TEXFONTS'; - suffixes `.ofm', `.tfm'; dynamic creation program: `MakeOmegaOFM'. +'ofm' + (Omega font metrics) 'OFMFONTS', 'TEXFONTS'; + suffixes '.ofm', '.tfm'; dynamic creation program: 'MakeOmegaOFM'. -`opentype fonts' - (OpenType fonts) `OPENTYPEFONTS'. +'opentype fonts' + (OpenType fonts) 'OPENTYPEFONTS'. -`opl' - (Omega property lists) `OPLFONTS', `TEXFONTS'; suffix `.opl'. +'opl' + (Omega property lists) 'OPLFONTS', 'TEXFONTS'; suffix '.opl'. -`otp' - (Omega translation process files) `OTPINPUTS'; suffix `.otp'. +'otp' + (Omega translation process files) 'OTPINPUTS'; suffix '.otp'. -`ovf' - (Omega virtual fonts) `OVFFONTS', `TEXFONTS'; suffix `.ovf'. +'ovf' + (Omega virtual fonts) 'OVFFONTS', 'TEXFONTS'; suffix '.ovf'. -`ovp' - (Omega virtual property lists) `OVPFONTS', `TEXFONTS'; suffix - `.ovp'. +'ovp' + (Omega virtual property lists) 'OVPFONTS', 'TEXFONTS'; suffix + '.ovp'. -`pdftex config' - (PDFTeX-specific configuration files) `PDFTEXCONFIG'. +'pdftex config' + (PDFTeX-specific configuration files) 'PDFTEXCONFIG'. -`pk' - (packed bitmap fonts, *note Glyph files: (dvips)Glyph files.) - `PROGRAMFONTS' (PROGRAM being `XDVI', etc.), `PKFONTS', `TEXPKS', - `GLYPHFONTS', `TEXFONTS'; suffix `pk'; dynamic creation program: - `mktexpk'. +'pk' + (packed bitmap fonts, *note (dvips)Glyph files::) 'PROGRAMFONTS' + (PROGRAM being 'XDVI', etc.), 'PKFONTS', 'TEXPKS', 'GLYPHFONTS', + 'TEXFONTS'; suffix 'pk'; dynamic creation program: 'mktexpk'. -`PostScript header' - (downloadable PostScript, *note Header files: (dvips)Header files.) - `TEXPSHEADERS', `PSHEADERS'; additional suffix `.pro'. +'PostScript header' + (downloadable PostScript, *note (dvips)Header files::) + 'TEXPSHEADERS', 'PSHEADERS'; additional suffix '.pro'. -`subfont definition files' - (subfont definition files) `SFDFONTS' suffix `.sfd'. +'subfont definition files' + (subfont definition files) 'SFDFONTS' suffix '.sfd'. -`tex' - (TeX source, *note tex invocation: (web2c)tex invocation.) - `TEXINPUTS'; suffix `.tex'; additional suffixes: none, because - such a list cannot be complete; dynamic creation program: - `mktextex'. +'tex' + (TeX source, *note (web2c)tex invocation::) 'TEXINPUTS'; suffix + '.tex'; additional suffixes: none, because such a list cannot be + complete; dynamic creation program: 'mktextex'. -`TeX system documentation' - (Documentation files for the TeX system) `TEXDOCS'. +'TeX system documentation' + (Documentation files for the TeX system) 'TEXDOCS'. -`TeX system sources' - (Source files for the TeX system) `TEXSOURCES'. +'TeX system sources' + (Source files for the TeX system) 'TEXSOURCES'. -`texmfscripts' +'texmfscripts' (Architecture-independent executables distributed in the texmf - trees) `TEXMFSCRIPTS'. + trees) 'TEXMFSCRIPTS'. -`texpool' - (TeX program strings, *note pooltype invocation: (web2c)pooltype - invocation.) `TEXPOOL', `TEXMFINI'; suffix `.pool'. +'texpool' + (TeX program strings, *note (web2c)pooltype invocation::) + 'TEXPOOL', 'TEXMFINI'; suffix '.pool'. -`tfm' - (TeX font metrics, *note Metric files: (dvips)Metric files.) - `TFMFONTS', `TEXFONTS'; suffix `.tfm'; dynamic creation program: - `mktextfm'. +'tfm' + (TeX font metrics, *note (dvips)Metric files::) 'TFMFONTS', + 'TEXFONTS'; suffix '.tfm'; dynamic creation program: 'mktextfm'. -`Troff fonts' - (Troff fonts, used by DMP; *note DMP invocation: (web2c)DMP - invocation.) `TRFONTS'. +'Troff fonts' + (Troff fonts, used by DMP; *note (web2c)DMP invocation::) + 'TRFONTS'. -`truetype fonts' - (TrueType outline fonts) `TTFONTS'; suffixes `.ttf' and `.TTF', - `.ttc' and `.TTC', `.dfont'. +'truetype fonts' + (TrueType outline fonts) 'TTFONTS'; suffixes '.ttf' and '.TTF', + '.ttc' and '.TTC', '.dfont'. -`type1 fonts' - (Type 1 PostScript outline fonts, *note Glyph files: (dvips)Glyph - files.) `T1FONTS', `T1INPUTS', `TEXPSHEADERS', `DVIPSHEADERS'; - suffixes `.pfa', `.pfb'. +'type1 fonts' + (Type 1 PostScript outline fonts, *note (dvips)Glyph files::) + 'T1FONTS', 'T1INPUTS', 'TEXPSHEADERS', 'DVIPSHEADERS'; suffixes + '.pfa', '.pfb'. -`type42 fonts' - (Type 42 PostScript outline fonts) `T42FONTS'. +'type42 fonts' + (Type 42 PostScript outline fonts) 'T42FONTS'. -`vf' - (virtual fonts, *note Virtual fonts: (dvips)Virtual fonts.) - `VFFONTS', `TEXFONTS'; suffix `.vf'. +'vf' + (virtual fonts, *note (dvips)Virtual fonts::) 'VFFONTS', + 'TEXFONTS'; suffix '.vf'. -`web' - (WEB input files) `WEBINPUTS'; suffix `.web'; additional suffix - `.ch'. +'web' + (WEB input files) 'WEBINPUTS'; suffix '.web'; additional suffix + '.ch'. -`web2c files' - (files specific to the web2c implementation) `WEB2C'. +'web2c files' + (files specific to the web2c implementation) 'WEB2C'. There are two special cases, because the paths and environment variables always depend on the name of the program: the variable name is constructed by converting the program name to upper case, and then -appending `INPUTS'. Assuming the program is called `foo', this gives -us the following table. +appending 'INPUTS'. Assuming the program is called 'foo', this gives us +the following table. -`other text files' - (text files used by `foo') `FOOINPUTS'. +'other text files' + (text files used by 'foo') 'FOOINPUTS'. -`other binary files' - (binary files used by `foo') `FOOINPUTS'. +'other binary files' + (binary files used by 'foo') 'FOOINPUTS'. If an environment variable by these names are set, the corresponding -`texmf.cnf' definition won't be looked at (unless, as usual, the -environment variable value has an extra `:'). *Note Default +'texmf.cnf' definition won't be looked at (unless, as usual, the +environment variable value has an extra ':'). *Note Default expansion::. For the font variables, the intent is that: - * `TEXFONTS' is the default for everything. + * 'TEXFONTS' is the default for everything. - * `GLYPHFONTS' is the default for bitmap (or, more precisely, + * 'GLYPHFONTS' is the default for bitmap (or, more precisely, non-metric) files. * Each font format has a variable of its own. * Each program has its own font override path as well; e.g., - `DVIPSFONTS' for Dvipsk. Again, this is for bitmaps, not metrics. - + 'DVIPSFONTS' for Dvipsk. Again, this is for bitmaps, not metrics. File: kpathsea.info, Node: File lookup, Next: Glyph lookup, Prev: Supported file formats, Up: TeX support @@ -3116,35 +3084,35 @@ searches are the exception, as described in the next section). Here is the search strategy for a file NAME: - 1. If the file format defines default suffixes, and the suffix of - NAME name is not already a known suffix for that format, try the - name with each default appended, and use alternative names found in - the fontmaps if necessary. Example: given `foo.bar', look for - `foo.bar.tex'. + 1. If the file format defines default suffixes, and the suffix of NAME + name is not already a known suffix for that format, try the name + with each default appended, and use alternative names found in the + fontmaps if necessary. Example: given 'foo.bar', look for + 'foo.bar.tex'. 2. Search for NAME, and if necessary for alternative names found in - the fontmaps. Example: given `foo.bar', we also look for - `foo.bar'. + the fontmaps. Example: given 'foo.bar', we also look for + 'foo.bar'. 3. If the file format defines a program to invoke to create missing files, run it (*note mktex scripts::). The order in which we search for "suffixed" name (item 1) or the -"as-is" name (item 2) is controlled by the `try_std_extension_first' -configuration value. The default set in `texmf.cnf' is true, since -common suffixes are already recognized: `babel.sty' will only look for -`babel.sty', not `babel.sty.tex', regardless of this setting. +"as-is" name (item 2) is controlled by the 'try_std_extension_first' +configuration value. The default set in 'texmf.cnf' is true, since +common suffixes are already recognized: 'babel.sty' will only look for +'babel.sty', not 'babel.sty.tex', regardless of this setting. - When the suffix is unknown (e.g., `foo.bar'), both names are always + When the suffix is unknown (e.g., 'foo.bar'), both names are always tried; the difference is the order in which they are tried. - `try_std_extension_first' only affects names being looked up which -*already* have an extension. A name without an extension (e.g., `tex + 'try_std_extension_first' only affects names being looked up which +*already* have an extension. A name without an extension (e.g., 'tex story') will always have an extension added first. - This algorithm is implemented in the function `kpathsea_find_file' -in the source file `kpathsea/tex-file.c'. You can watch it in action -with the debugging options (*note Debugging::). + This algorithm is implemented in the function 'kpathsea_find_file' in +the source file 'kpathsea/tex-file.c'. You can watch it in action with +the debugging options (*note Debugging::). File: kpathsea.info, Node: Glyph lookup, Next: Suppressing warnings, Prev: File lookup, Up: TeX support @@ -3153,27 +3121,27 @@ File: kpathsea.info, Node: Glyph lookup, Next: Suppressing warnings, Prev: Fi ================ This section describes how Kpathsea searches for a bitmap font in GF or -PK format (or either) given a font name (e.g., `cmr10') and a -resolution (e.g., 600). +PK format (or either) given a font name (e.g., 'cmr10') and a resolution +(e.g., 600). Here is an outline of the search strategy (details in the sections -below) for a file NAME at resolution DPI. The search stops at the -first successful lookup. +below) for a file NAME at resolution DPI. The search stops at the first +successful lookup. 1. Look for an existing file NAME.DPIFORMAT in the specified format(s). 2. If NAME is an alias for a file F in the fontmap file - `texfonts.map', look for F.DPI. + 'texfonts.map', look for F.DPI. - 3. Run an external program (typically named `mktexpk') to generate - the font (*note mktex scripts::) + 3. Run an external program (typically named 'mktexpk') to generate the + font (*note mktex scripts::) 4. Look for FALLBACK.DPI, where FALLBACK is some last-resort font - (typically `cmr10'). + (typically 'cmr10'). - This is implemented in `kpathsea_find_glyph' in -`kpathsea/tex-glyph.c'. + This is implemented in 'kpathsea_find_glyph' in +'kpathsea/tex-glyph.c'. * Menu: @@ -3187,20 +3155,20 @@ File: kpathsea.info, Node: Basic glyph lookup, Next: Fontmap, Up: Glyph looku 4.3.1 Basic glyph lookup ------------------------ -When Kpathsea looks for a bitmap font NAME at resolution DPI in a -format FORMAT, it first checks each directory in the search path for a -file `NAME.DPIFORMAT'; for example, `cmr10.600pk'. Kpathsea looks for -a PK file first, then a GF file. +When Kpathsea looks for a bitmap font NAME at resolution DPI in a format +FORMAT, it first checks each directory in the search path for a file +'NAME.DPIFORMAT'; for example, 'cmr10.600pk'. Kpathsea looks for a PK +file first, then a GF file. - If that fails, Kpathsea looks for `dpiDPI/NAME.FORMAT'; for example, -`dpi600/cmr10.pk'. This is how fonts are typically stored on + If that fails, Kpathsea looks for 'dpiDPI/NAME.FORMAT'; for example, +'dpi600/cmr10.pk'. This is how fonts are typically stored on filesystems (such as DOS) that permit only three-character extensions. If that fails, Kpathsea looks for a font with a close-enough DPI. -"Close enough" is defined by the macro `KPSE_BITMAP_TOLERANCE' in -`kpathsea/tex-glyph.h' to be `DPI / 500 + 1'. This is slightly more +"Close enough" is defined by the macro 'KPSE_BITMAP_TOLERANCE' in +'kpathsea/tex-glyph.h' to be 'DPI / 500 + 1'. This is slightly more than the 0.2% minimum allowed by the DVI standard -(`CTAN:/dviware/driv-standard/level-0'). +(<CTAN:/dviware/driv-standard/level-0>). File: kpathsea.info, Node: Fontmap, Next: Fallback font, Prev: Basic glyph lookup, Up: Glyph lookup @@ -3209,50 +3177,43 @@ File: kpathsea.info, Node: Fontmap, Next: Fallback font, Prev: Basic glyph lo ------------- If a bitmap font or metric file is not found with the original name (see -the previous section), Kpathsea looks through any "fontmap" files for -an "alias" for the original font name. These files are named -`texfonts.map' and searched for along the `TEXFONTMAPS' -environment/config file variable. All `texfonts.map' files that are +the previous section), Kpathsea looks through any "fontmap" files for an +"alias" for the original font name. These files are named +'texfonts.map' and searched for along the 'TEXFONTMAPS' +environment/config file variable. All 'texfonts.map' files that are found are read; earlier definitions override later ones. This feature is intended to help in two respects: - 1. An alias name is limited in length only by available memory, not - by your filesystem. Therefore, if you want to ask for - `Times-Roman' instead of `ptmr', you can (you get `ptmr8r'). + 1. An alias name is limited in length only by available memory, not by + your filesystem. Therefore, if you want to ask for 'Times-Roman' + instead of 'ptmr', you can (you get 'ptmr8r'). 2. A few fonts have historically had multiple names: specifically, - LaTeX's "circle font" has variously been known as `circle10', - `lcircle10', and `lcirc10'. Aliases can make all the names + LaTeX's "circle font" has variously been known as 'circle10', + 'lcircle10', and 'lcirc10'. Aliases can make all the names equivalent, so that it no longer matters what the name of the installed file is; TeX documents will find their favorite name. - The format of fontmap files is straightforward: - * Comments start with `%' and continue to the end of the line. - + * Comments start with '%' and continue to the end of the line. * Blank lines are ignored. - - * Each nonblank line is broken up into a series of "words": a - sequence of non-whitespace characters. - - * If the first word is `include', the second word is used as a + * Each nonblank line is broken up into a series of "words": a + sequence of non-whitespace characters. + * If the first word is 'include', the second word is used as a filename, and it is searched for and read. - * Otherwise, the first word on each line is the true filename; - * the second word is the alias; - * subsequent words are ignored. If an alias has an extension, it matches only those files with that extension; otherwise, it matches anything with the same root, regardless -of extension. For example, an alias `foo.tfm' matches only when -`foo.tfm' is being searched for; but an alias `foo' matches `foo.vf', -`foo.600pk', etc. +of extension. For example, an alias 'foo.tfm' matches only when +'foo.tfm' is being searched for; but an alias 'foo' matches 'foo.vf', +'foo.600pk', etc. - As an example, here is an excerpt from the `texfonts.map' in the + As an example, here is an excerpt from the 'texfonts.map' in the Web2c distribution. It makes the circle fonts equivalent and includes automatically generated maps for most PostScript fonts available from various font suppliers. @@ -3269,9 +3230,9 @@ various font suppliers. include bitstrea.map ... - Fontmaps are implemented in the file `kpathsea/fontmap.c'. The + Fontmaps are implemented in the file 'kpathsea/fontmap.c'. The Fontname distribution has much more information on font naming (*note -Introduction: (fontname)Introduction.). +(fontname)Introduction::). File: kpathsea.info, Node: Fallback font, Prev: Fontmap, Up: Glyph lookup @@ -3283,15 +3244,15 @@ If a bitmap font cannot be found or created at the requested size, Kpathsea looks for the font at a set of "fallback resolutions". You specify these resolutions as a colon-separated list (like search paths). Kpathsea looks first for a program-specific environment variable (e.g., -`DVIPSSIZES' for Dvipsk), then the environment variable `TEXSIZES', -then a default specified at compilation time (the Make variable -`default_texsizes'). You can set this list to be empty if you prefer -to find fonts at their stated size or not at all. +'DVIPSSIZES' for Dvipsk), then the environment variable 'TEXSIZES', then +a default specified at compilation time (the Make variable +'default_texsizes'). You can set this list to be empty if you prefer to +find fonts at their stated size or not at all. Finally, if the font cannot be found even at the fallback -resolutions, Kpathsea looks for a fallback font, typically `cmr10'. -Programs must enable this feature by calling `kpathsea_init_prog' -(*note Calling sequence::); the default is no fallback font. +resolutions, Kpathsea looks for a fallback font, typically 'cmr10'. +Programs must enable this feature by calling 'kpathsea_init_prog' (*note +Calling sequence::); the default is no fallback font. File: kpathsea.info, Node: Suppressing warnings, Prev: Glyph lookup, Up: TeX support @@ -3303,31 +3264,31 @@ Kpathsea provides a way to suppress selected usually-harmless warnings; this is useful at large sites where most users are not administrators, and thus the warnings are merely a source of confusion, not a help. To do this, you set the environment variable or configuration file value -`TEX_HUSH' to a colon-separated list of values. Here are the +'TEX_HUSH' to a colon-separated list of values. Here are the possibilities: -`all' +'all' Suppress everything possible. -`checksum' +'checksum' Suppress mismatched font checksum warnings. -`lostchar' +'lostchar' Suppress warnings when a character is missing from a font that a DVI or VF file tries to typeset. -`none' +'none' Don't suppress any warnings. -`readable' +'readable' Suppress warnings about attempts to access a file whose permissions render it unreadable. -`special' - Suppresses warnings about an unimplemented or unparsable - `\special' command. +'special' + Suppresses warnings about an unimplemented or unparsable '\special' + command. -`tex-hush.c' defines the function that checks the variable value. Each +'tex-hush.c' defines the function that checks the variable value. Each driver implements its own checks where appropriate. @@ -3352,45 +3313,45 @@ File: kpathsea.info, Node: Programming overview, Next: Calling sequence, Up: 5.1 Programming overview ======================== -Aside from this manual, your best source of information is the source -to the programs that use Kpathsea (*note Introduction::). Of those, -Dviljk is probably the simplest, and hence a good place to start. -Xdvik adds VF support and the complication of X resources. Dvipsk adds -the complication of its own config files. Web2c is source code I also -maintain, so it uses Kpathsea rather straightforwardly, but is of -course complicated by the Web to C translation. Finally, Kpsewhich is -a small utility program whose sole purpose is to exercise the main +Aside from this manual, your best source of information is the source to +the programs that use Kpathsea (*note Introduction::). Of those, Dviljk +is probably the simplest, and hence a good place to start. Xdvik adds +VF support and the complication of X resources. Dvipsk adds the +complication of its own config files. Web2c is source code I also +maintain, so it uses Kpathsea rather straightforwardly, but is of course +complicated by the Web to C translation. Finally, Kpsewhich is a small +utility program whose sole purpose is to exercise the main path-searching functionality. When looking at these program sources, you should know that previous versions of the library had a different programming interface, to support re-entrancy. In that interface the library function names were -prefixed with `kpse_' instead of `kpathsea_', and they did not need an +prefixed with 'kpse_' instead of 'kpathsea_', and they did not need an instance variable as first argument. This change was made in 2009. Some of the programs mentioned above may still be using the previous interface. - Beyond these examples, the `.h' files in the Kpathsea source -describe the interfaces and functionality (and of course the `.c' files -define the actual routines, which are the ultimate documentation). -`pathsearch.h' declares the basic searching routine. `tex-file.h' and -`tex-glyph.h' define the interfaces for looking up particular kinds of + Beyond these examples, the '.h' files in the Kpathsea source describe +the interfaces and functionality (and of course the '.c' files define +the actual routines, which are the ultimate documentation). +'pathsearch.h' declares the basic searching routine. 'tex-file.h' and +'tex-glyph.h' define the interfaces for looking up particular kinds of files. In view of the way the headers depend on each other, it is -recommended to use `#include <kpathsea/kpathsea.h>', which includes +recommended to use '#include <kpathsea/kpathsea.h>', which includes every Kpathsea header. If you want to include only specific headers, you should still -consider including `kpathsea/config.h' before including any other -Kpathsea header, as it provides symbols used in the other headers. -Note that `kpathsea/config.h' includes `kpathsea/c-auto.h', which is +consider including 'kpathsea/config.h' before including any other +Kpathsea header, as it provides symbols used in the other headers. Note +that 'kpathsea/config.h' includes 'kpathsea/c-auto.h', which is generated by Autoconf. The library provides no way for an external program to register new -file types: `tex-file.[ch]' must be modified to do this. For example, +file types: 'tex-file.[ch]' must be modified to do this. For example, Kpathsea has support for looking up Dvips config files, even though no program other than Dvips will likely ever want to do so. I felt this was acceptable, since along with new file types should also come new -defaults in `texmf.cnf' (and its descendant `paths.h'), since it's +defaults in 'texmf.cnf' (and its descendant 'paths.h'), since it's simplest for users if they can modify one configuration file for all kinds of paths. @@ -3408,121 +3369,119 @@ File: kpathsea.info, Node: Calling sequence, Next: Program-specific files, Pr The typical way to use Kpathsea in your program goes something like this: - 1. Call `kpathsea_new' to create a new library instance. This variable - must be passed as the first argument to all the following library - functions. The rest of this manual will be using `kpse' as a - placeholder for the name of this variable. - - 2. Call `kpathsea_set_program_name' with `argv[0]' as the second - argument; the third argument is a string or `NULL'. The third - argument is used by Kpathsea as the program name for the - `.PROGRAM' feature of config files (*note Config files::). If the - third argument is `NULL', the value of the second argument is - used. This function must be called before any other use of the - Kpathsea library. - - `kpathsea_set_program_name' always sets the variables - `kpse->invocation_name' and `kpse->invocation_short_name'. These + 1. Call 'kpathsea_new' to create a new library instance. This + variable must be passed as the first argument to all the following + library functions. The rest of this manual will be using 'kpse' as + a placeholder for the name of this variable. + + 2. Call 'kpathsea_set_program_name' with 'argv[0]' as the second + argument; the third argument is a string or 'NULL'. The third + argument is used by Kpathsea as the program name for the '.PROGRAM' + feature of config files (*note Config files::). If the third + argument is 'NULL', the value of the second argument is used. This + function must be called before any other use of the Kpathsea + library. + + 'kpathsea_set_program_name' always sets the variables + 'kpse->invocation_name' and 'kpse->invocation_short_name'. These variables are used in the error message macros defined in - `kpathsea/lib.h'. It sets the variable `kpse->program_name' to - the program name it uses. + 'kpathsea/lib.h'. It sets the variable 'kpse->program_name' to the + program name it uses. It also initializes debugging options based on the environment - variable `KPATHSEA_DEBUG' (if that is set). + variable 'KPATHSEA_DEBUG' (if that is set). - Finally, it sets the environment variables `SELFAUTOLOC', - `SELFAUTODIR' and `SELFAUTOPARENT' to the location, parent and - grandparent directory of the executable, removing `.' and `..' path + Finally, it sets the environment variables 'SELFAUTOLOC', + 'SELFAUTODIR' and 'SELFAUTOPARENT' to the location, parent and + grandparent directory of the executable, removing '.' and '..' path elements and resolving symbolic links. These are used in the default configuration file to allow people to invoke TeX from - anywhere. You can use `kpsewhich --expand-var=\$SELFAUTOLOC', + anywhere. You can use 'kpsewhich --expand-var=\$SELFAUTOLOC', etc., to see the values. - 3. Set debugging options. *Note Debugging::. If your program doesn't + 3. Set debugging options. *Note Debugging::. If your program doesn't have a debugging option already, you can define one and set - `kpse->debug' to the number that the user supplies (as in Dviljk - and Web2c), or you can just omit this altogether (people can - always set `KPATHSEA_DEBUG'). If you do have runtime debugging - already, you need to merge Kpathsea's options with yours (as in - Dvipsk and Xdvik). + 'kpse->debug' to the number that the user supplies (as in Dviljk + and Web2c), or you can just omit this altogether (people can always + set 'KPATHSEA_DEBUG'). If you do have runtime debugging already, + you need to merge Kpathsea's options with yours (as in Dvipsk and + Xdvik). 4. If your program has its own configuration files that can define - search paths, you should assign those paths to the `client_path' - member in the appropriate element of the `kpse->format_info' - array. (This array is indexed by file type; see `tex-file.h'.) - See `resident.c' in Dvipsk for an example. + search paths, you should assign those paths to the 'client_path' + member in the appropriate element of the 'kpse->format_info' array. + (This array is indexed by file type; see 'tex-file.h'.) See + 'resident.c' in Dvipsk for an example. - 5. Call `kpathsea_init_prog' (see `proginit.c'). It's useful for the + 5. Call 'kpathsea_init_prog' (see 'proginit.c'). It's useful for the DVI drivers, at least, but for other programs it may be simpler to extract the parts of it that actually apply. This does not initialize any paths, it just looks for (and sets) certain - environment variables and other random information. (A search - path is always initialized at the first call to find a file of - that type; this eliminates much useless work, e.g., initializing - the BibTeX search paths in a DVI driver.) + environment variables and other random information. (A search path + is always initialized at the first call to find a file of that + type; this eliminates much useless work, e.g., initializing the + BibTeX search paths in a DVI driver.) 6. The routine to actually find a file of type FORMAT is - `kpathsea_find_file'. You can call `kpathsea_find_file' after + 'kpathsea_find_file'. You can call 'kpathsea_find_file' after doing only the first and second of the initialization steps - above--Kpathsea automatically reads the `texmf.cnf' generic config + above--Kpathsea automatically reads the 'texmf.cnf' generic config files, looks for environment variables, and does expansions at the first lookup. 7. To find PK and/or GF bitmap fonts, the routine is - `kpathsea_find_glyph', defined in `tex-glyph.h'. This returns a + 'kpathsea_find_glyph', defined in 'tex-glyph.h'. This returns a structure in addition to the resultant filename, because fonts can - be found in so many ways. See the documentation in the source. + be found in so many ways. See the documentation in the source. 8. To actually open a file, not just return a filename, call - `kpathsea_open_file'. This function takes the name to look up and - a Kpathsea file format as arguments, and returns the usual `FILE + 'kpathsea_open_file'. This function takes the name to look up and + a Kpathsea file format as arguments, and returns the usual 'FILE *'. It always assumes the file must exist, and thus will search - the disk if necessary (unless the search path specified `!!', + the disk if necessary (unless the search path specified '!!', etc.). In other words, if you are looking up a VF or some other file that need not exist, don't use this. - 9. TeX can write output files, via the `\openout' primitive; this + 9. TeX can write output files, via the '\openout' primitive; this opens a security hole vulnerable to Trojan horse attack: an unwitting user could run a TeX program that overwrites, say, - `~/.rhosts'. Analogous security holes exist for many other + '~/.rhosts'. Analogous security holes exist for many other programs. To alleviate this, there is a configuration variable - `openout_any', which selects one of three levels of security. - When it is set to `a' (for "any"), no restrictions are imposed. - When it is set to `r' (for "restricted"), filenames beginning with - `.' are disallowed (except `.tex' because LaTeX needs it). When - it is set to `p' (for "paranoid") additional restrictions are - imposed: an absolute filename must refer to a file in (a - subdirectory) of `TEXMFOUTPUT', and any attempt to go up a - directory level is forbidden (that is, paths may not contain a - `..' component). The paranoid setting is the default. (For - backwards compatibility, `y' and `1' are synonyms of `a', while - `n' and `0' are synonyms for `r'.) The function - `kpathsea_out_name_ok', with a filename as second argument, - returns `true' if that filename is acceptable to be opend for - output or `false' otherwise. - - 10. Similarly, the function `kpathsea_in_name_ok', with a filename as - second argument, returns `true' if that filename is acceptable to - be opend for input or `false' otherwise, depending on the value of - the configuration variable `openin_any' (with `a' as default). - - 11. To close the kpathsea library instance you are using, call - `kpathsea_finish'. This function closes any open log files and + 'openout_any', which selects one of three levels of security. When + it is set to 'a' (for "any"), no restrictions are imposed. When it + is set to 'r' (for "restricted"), filenames beginning with '.' are + disallowed (except '.tex' because LaTeX needs it). When it is set + to 'p' (for "paranoid") additional restrictions are imposed: an + absolute filename must refer to a file in (a subdirectory) of + 'TEXMFOUTPUT', and any attempt to go up a directory level is + forbidden (that is, paths may not contain a '..' component). The + paranoid setting is the default. (For backwards compatibility, 'y' + and '1' are synonyms of 'a', while 'n' and '0' are synonyms for + 'r'.) The function 'kpathsea_out_name_ok', with a filename as + second argument, returns 'true' if that filename is acceptable to + be opend for output or 'false' otherwise. + + 10. Similarly, the function 'kpathsea_in_name_ok', with a filename as + second argument, returns 'true' if that filename is acceptable to + be opend for input or 'false' otherwise, depending on the value of + the configuration variable 'openin_any' (with 'a' as default). + + 11. To close the kpathsea library instance you are using, call + 'kpathsea_finish'. This function closes any open log files and frees the memory used by the instance. - - Kpathsea also provides many utility routines. Some are generic: hash + Kpathsea also provides many utility routines. Some are generic: hash tables, memory allocation, string concatenation and copying, string -lists, reading input lines of arbitrary length, etc. Others are -filename-related: default path, tilde, and variable expansion, `stat' -calls, etc. (Perhaps someday I'll move the former to a separate +lists, reading input lines of arbitrary length, etc. Others are +filename-related: default path, tilde, and variable expansion, 'stat' +calls, etc. (Perhaps someday I'll move the former to a separate library.) - The `c-*.h' header files can also help your program adapt to many + The 'c-*.h' header files can also help your program adapt to many different systems. You will almost certainly want to use Autoconf and probably Automake for configuring and building your software if you use Kpathsea; I strongly recommend using Autoconf and Automake regardless. -They are available from `ftp://ftp.gnu.og/pub/gnu/'. +They are available from <ftp://ftp.gnu.og/pub/gnu/>. File: kpathsea.info, Node: Program-specific files, Next: Programming with config files, Prev: Calling sequence, Up: Programming @@ -3534,17 +3493,17 @@ Many programs will need to find some configuration files. Kpathsea contains some support to make it easy to place them in their own directories. The Standard TeX directory structure (*note Introduction: (tds)Top.), specifies that such files should go into a subdirectory -named after the program, like `texmf/ttf2pk'. +named after the program, like 'texmf/ttf2pk'. - Two formats, `kpse_program_text_format' and -`kpse_program_binary_format', use `.:$TEXMF/PROGRAM//' as their + Two formats, 'kpse_program_text_format' and +'kpse_program_binary_format', use '.:$TEXMF/PROGRAM//' as their compiled-in search path. To override this default, you can use the -variable `PROGRAMINPUTS' in the environment and/or `texmf.cnf'. That -is to say, the name of the variable is constructed by converting the -name of the program to upper case, and appending `INPUTS'. +variable 'PROGRAMINPUTS' in the environment and/or 'texmf.cnf'. That is +to say, the name of the variable is constructed by converting the name +of the program to upper case, and appending 'INPUTS'. The only difference between these two formats is whether -`kpathsea_open_file' will open the files it finds in text or binary +'kpathsea_open_file' will open the files it finds in text or binary mode. @@ -3553,26 +3512,26 @@ File: kpathsea.info, Node: Programming with config files, Prev: Program-specif 5.4 Programming with config files ================================= -You can (and probably should) use the same `texmf.cnf' configuration +You can (and probably should) use the same 'texmf.cnf' configuration file that Kpathsea uses for your program. This helps installers by keeping all configuration in one place. To retrieve a value VAR from config files, the best way is to call -`kpathsea_var_value' on the string `VAR'. This will look first for an +'kpathsea_var_value' on the string 'VAR'. This will look first for an environment variable VAR, then a config file value. The result will be -the value found or `NULL'. This function is declared in -`kpathsea/variable.h'. For an example, see the `shell_escape' code in -`web2c/lib/texmfmp.c'. +the value found or 'NULL'. This function is declared in +'kpathsea/variable.h'. For an example, see the 'shell_escape' code in +'web2c/lib/texmfmp.c'. The routine to do variable expansion in the context of a search path -(as opposed to simply retrieving a value) is `kpathsea_var_expand', also -declared in `kpathsea/variable.h'. It's generally only necessary to -set the search path structure components as explained in the previous +(as opposed to simply retrieving a value) is 'kpathsea_var_expand', also +declared in 'kpathsea/variable.h'. It's generally only necessary to set +the search path structure components as explained in the previous section, rather than using this yourself. If for some reason you want to retrieve a value _only_ from a config file, not automatically looking for a corresponding environment -variable, call `kpathsea_cnf_get' (declared in `kpathsea/cnf.h') with +variable, call 'kpathsea_cnf_get' (declared in 'kpathsea/cnf.h') with the string VAR. No initialization calls are needed. @@ -3586,7 +3545,7 @@ Index * Menu: -* !! in path specifications: ls-R. (line 52) +* !! in path specifications: ls-R. (line 51) * $ expansion: Variable expansion. (line 6) * --all: Path searching options. (line 12) @@ -3597,39 +3556,39 @@ Index (line 17) * --enable options: configure options. (line 16) * --enable-maintainer-mode: configure options. (line 34) -* --enable-shared <1>: Shared library. (line 6) * --enable-shared: configure options. (line 27) +* --enable-shared <1>: Shared library. (line 6) * --engine=NAME: Path searching options. - (line 22) + (line 21) * --expand-braces=STRING: Auxiliary tasks. (line 16) * --expand-path=STRING: Auxiliary tasks. (line 24) * --expand-var=STRING: Auxiliary tasks. (line 19) * --format=NAME: Path searching options. - (line 38) + (line 37) * --help: Standard options. (line 8) * --interactive: Path searching options. - (line 120) + (line 119) * --mktex=FILETYPE: Path searching options. - (line 125) + (line 124) * --mode=STRING: Path searching options. - (line 131) + (line 130) * --must-exist: Path searching options. - (line 136) + (line 135) * --no-mktex=FILETYPE: Path searching options. - (line 125) + (line 124) * --path=STRING: Path searching options. - (line 141) + (line 140) * --progname=NAME: Path searching options. - (line 150) + (line 148) * --safe-in-name=NAME: Path searching options. - (line 156) + (line 154) * --safe-out-name=NAME: Path searching options. - (line 156) + (line 154) * --show-path=NAME: Auxiliary tasks. (line 41) * --srcdir, for building multiple architectures: configure scenarios. (line 18) * --subdir=STRING: Path searching options. - (line 162) + (line 160) * --var-value=VARIABLE: Auxiliary tasks. (line 12) * --version: Standard options. (line 11) * --with options: configure options. (line 16) @@ -3641,16 +3600,16 @@ Index * --without-mktexpk-default: mktex configuration. (line 12) * --without-mktextfm-default: mktex configuration. (line 12) * -1 debugging value: Debugging. (line 23) -* -A option to ls: ls-R. (line 33) -* -Bdynamic: ShellWidgetClass. (line 45) -* -Bstatic: ShellWidgetClass. (line 45) +* -A option to 'ls': ls-R. (line 33) +* -Bdynamic: ShellWidgetClass. (line 44) +* -Bstatic: ShellWidgetClass. (line 44) * -D NUM: Path searching options. (line 17) -* -dynamic: ShellWidgetClass. (line 43) +* -dynamic: ShellWidgetClass. (line 42) * -g, compiling without: configure scenarios. (line 32) -* -L option to ls: ls-R. (line 38) +* -L option to 'ls': ls-R. (line 38) * -O, compiling with: configure scenarios. (line 32) -* -static: ShellWidgetClass. (line 43) +* -static: ShellWidgetClass. (line 42) * . directories, ignored: ls-R. (line 33) * . files: ls-R. (line 33) * .2602gf: Unable to generate fonts. @@ -3710,33 +3669,39 @@ Index * .ovp: Supported file formats. (line 147) * .pfa: Supported file formats. - (line 200) + (line 197) * .pfb: Supported file formats. - (line 200) + (line 197) * .pk: Supported file formats. (line 154) * .pool: Supported file formats. (line 99) +* .pool <1>: Supported file formats. + (line 123) +* .pool <2>: Supported file formats. + (line 181) * .pro: Supported file formats. - (line 160) + (line 159) * .rhosts, writable by TeX: Security. (line 10) * .sfd: Supported file formats. - (line 164) + (line 163) * .tex: Supported file formats. - (line 167) -* .tex file, included in ls-R: ls-R. (line 33) + (line 166) +* .tex file, included in 'ls-R': ls-R. (line 33) * .tfm: Supported file formats. - (line 187) + (line 185) * .ttc: Supported file formats. - (line 196) + (line 193) * .ttf: Supported file formats. - (line 196) + (line 193) * .vf: Supported file formats. - (line 208) + (line 205) * .w: Supported file formats. (line 43) * .web: Supported file formats. (line 43) +* .web <1>: Supported file formats. + (line 209) * / may not be /: Searching overview. (line 13) * /, trailing in home directory: Tilde expansion. (line 19) * //: Subdirectory expansion. @@ -3745,25 +3710,27 @@ Index * /etc/profile: Unable to find files. (line 14) * /etc/profile and aliases: ls-R. (line 21) -* /var/tmp/texfonts: mktex configuration. (line 114) +* /var/tmp/texfonts: mktex configuration. (line 113) * 2602gf: Unable to generate fonts. (line 36) -* 8.3 filenames, using: mktex configuration. (line 69) +* 8.3 filenames, using: mktex configuration. (line 68) * : may not be :: Searching overview. (line 13) * :: expansion: Default expansion. (line 6) * @VAR@ substitutions: Running configure. (line 6) -* \, line continuation in texmf.cnf: Config files. (line 37) +* \, line continuation in 'texmf.cnf': Config files. (line 37) * \openin: Searching overview. (line 31) * \special, suppressing warnings about: Suppressing warnings. (line 31) +* { expansion: Brace expansion. (line 6) +* ~ expansion: Tilde expansion. (line 6) * absolute filenames: Searching overview. (line 52) -* ac_include, Autoconf extension: Running configure. (line 6) * access warnings: Searching overview. (line 56) +* ac_include, Autoconf extension: Running configure. (line 6) * AFMFONTS: Supported file formats. (line 20) * AFS: Installing files. (line 32) -* AIX 4.1 configure error: Empty Makefiles. (line 6) -* AIX shells and configure: configure shells. (line 14) +* AIX 4.1 'configure' error: Empty Makefiles. (line 6) +* AIX shells and 'configure': configure shells. (line 14) * aliases for fonts: Fontmap. (line 6) * aliases, for filenames: Filename aliases. (line 6) * all: Suppressing warnings. @@ -3772,47 +3739,52 @@ Index (line 12) * alphabetical order, not: Subdirectory expansion. (line 6) -* Amiga support: Custom installation. (line 19) +* Amiga support: Custom installation. (line 16) * Andrew File System, installing with: Installing files. (line 32) * announcement mailing list: Mailing lists. (line 6) * ANSI C: TeX or Metafont failing. (line 30) * API, re-entrant: Programming overview. (line 16) -* append-only directories and mktexpk: Security. (line 36) -* appendonlydir: mktex configuration. (line 61) +* append-only directories and 'mktexpk': Security. (line 36) +* appendonlydir: mktex configuration. (line 60) * architecture-(in)dependent files, installing only: Installing files. (line 21) * architectures, compiling multiple: configure scenarios. (line 18) -* arguments to mktex: mktex script arguments. +* arguments to 'mktex': mktex script arguments. (line 6) * argv[0]: Calling sequence. (line 14) -* ash, losing with configure: configure shells. (line 19) -* autoconf, recommended: Calling sequence. (line 119) +* ash, losing with 'configure': configure shells. (line 19) +* autoconf, recommended: Calling sequence. (line 117) * automounter, and configuration: configure scenarios. (line 29) -* automounter, and ls-R: ls-R. (line 40) +* automounter, and 'ls-R': ls-R. (line 40) * auxiliary tasks: Auxiliary tasks. (line 6) -* Babel <1>: Running make. (line 51) * Babel: Kpathsea application distributions. - (line 28) + (line 27) +* Babel <1>: Running make. (line 50) * Bach, Johann Sebastian: Default expansion. (line 41) * backslash-newline: Config files. (line 37) -* bash, recommended for running configure: configure shells. (line 6) +* bash, recommended for running 'configure': configure shells. + (line 6) * basic glyph lookup: Basic glyph lookup. (line 6) * Berry, Karl: History. (line 12) * BIBINPUTS: Supported file formats. (line 28) -* blank lines, in texmf.cnf: Config files. (line 35) +* BIBINPUTS <1>: Supported file formats. + (line 111) +* blank lines, in 'texmf.cnf': Config files. (line 35) * brace expansion: Brace expansion. (line 6) -* BSD universe: Running make. (line 44) -* bsh, ok with configure: configure shells. (line 14) +* BSD universe: Running make. (line 43) +* bsh, ok with 'configure': configure shells. (line 14) * BSTINPUTS: Supported file formats. (line 32) +* BSTINPUTS <1>: Supported file formats. + (line 115) * bug address: Reporting bugs. (line 8) * bug checklist: Bug checklist. (line 6) * bug mailing list: Mailing lists. (line 6) * bugs, reporting: Reporting bugs. (line 6) -* c-*.h: Calling sequence. (line 119) +* c-*.h: Calling sequence. (line 117) * c-auto.h: Programming overview. (line 33) * c-auto.in: Running configure. (line 6) @@ -3832,7 +3804,7 @@ Index (line 16) * circle fonts: Fontmap. (line 19) * clean Make target: Cleaning up. (line 15) -* client_path in kpse->format_info: Calling sequence. (line 47) +* client_path in 'kpse->format_info': Calling sequence. (line 47) * CMAPFONTS: Supported file formats. (line 36) * cmr10, as fallback font: Fallback font. (line 15) @@ -3842,9 +3814,9 @@ Index (line 23) * code sharing: Shared library. (line 9) * color printers, configuring: Simple installation. (line 60) -* comments, in fontmap files: Fontmap. (line 28) -* comments, in texmf.cnf: Config files. (line 27) -* comments, making: Introduction. (line 27) +* comments, in fontmap files: Fontmap. (line 27) +* comments, in 'texmf.cnf': Config files. (line 27) +* comments, making: Introduction. (line 23) * common features in glyph lookup: Basic glyph lookup. (line 6) * common problems: Common problems. (line 6) * comp.sys.sun.admin FAQ: ShellWidgetClass. (line 6) @@ -3855,13 +3827,13 @@ Index (line 6) * compiler bugs, finding: TeX or Metafont failing. (line 24) -* compiler options, additional: Running make. (line 27) +* compiler options, additional: Running make. (line 26) * compiler options, specifying: configure environment. (line 15) -* compiler, changing: Running make. (line 40) +* compiler, changing: Running make. (line 39) * compiling on HP-UX: TeX or Metafont failing. (line 30) -* conditions for use: Introduction. (line 31) +* conditions for use: Introduction. (line 27) * config files: Config files. (line 6) * config files, for Kpathsea-using programs: Calling sequence. (line 47) @@ -3881,11 +3853,12 @@ Index (line 23) * configuration file, source for path: Path sources. (line 17) * configuration files as shell scripts.: Config files. (line 79) -* configuration of mktex scripts: mktex configuration. (line 6) +* configuration of 'mktex' scripts: mktex configuration. (line 6) * configuration of optional features: configure options. (line 16) -* configure error from sed: Empty Makefiles. (line 6) -* configure options: configure options. (line 6) -* configure options for mktex scripts: mktex configuration. (line 12) +* configure error from 'sed': Empty Makefiles. (line 6) +* 'configure' options: configure options. (line 6) +* 'configure' options for 'mktex' scripts: mktex configuration. + (line 12) * configure, running: Running configure. (line 6) * context diff: Bug checklist. (line 55) * continuation character: Config files. (line 37) @@ -3905,8 +3878,8 @@ Index * debugging options, in Kpathsea-using program: Calling sequence. (line 39) * debugging output: Debugging. (line 27) -* debugging with -g, disabling: configure scenarios. (line 32) -* DEC shells and configure: configure shells. (line 25) +* debugging with '-g', disabling: configure scenarios. (line 32) +* DEC shells and 'configure': configure shells. (line 25) * default expansion: Default expansion. (line 6) * default path features: Default path features. (line 6) @@ -3922,13 +3895,13 @@ Index (line 29) * directories, changing default installation: Default path generation. (line 6) -* directories, making append-only: mktex configuration. (line 62) +* directories, making append-only: mktex configuration. (line 61) * directory permissions: Security. (line 51) * directory structure, for TeX files: TeX directory structure. (line 6) -* disabling mktex scripts: mktex configuration. (line 6) +* disabling 'mktex' scripts: mktex configuration. (line 6) * disk search: Searching overview. (line 22) -* disk searching, avoiding: ls-R. (line 52) +* disk searching, avoiding: ls-R. (line 51) * disk space, needed: Disk space. (line 6) * disk usage, reducing: Logging. (line 6) * distclean Make target: Cleaning up. (line 6) @@ -3941,13 +3914,13 @@ Index * dlsym: dlopen. (line 6) * dlsym.c: dlopen. (line 21) * doc files: Supported file formats. - (line 173) -* DOS compatible names: mktex configuration. (line 69) -* DOS support: Custom installation. (line 19) -* dosnames: mktex configuration. (line 68) + (line 171) +* DOS compatible names: mktex configuration. (line 68) +* DOS support: Custom installation. (line 16) +* dosnames: mktex configuration. (line 67) * dot files: ls-R. (line 33) * doubled colons: Default expansion. (line 6) -* dpiNNN directories: mktex configuration. (line 69) +* dpiNNN directories: mktex configuration. (line 68) * DVI drivers: Kpathsea application distributions. (line 12) * DVILJMAKEPK: mktex script names. (line 32) @@ -3955,9 +3928,9 @@ Index * dvipdfmx.cfg: Specially-recognized files. (line 19) * DVIPSFONTS: Supported file formats. - (line 243) + (line 240) * DVIPSHEADERS: Supported file formats. - (line 200) + (line 197) * DVIPSMAKEPK: mktex script names. (line 32) * DVIPSSIZES: Fallback font. (line 6) * dynamic creation of files: mktex scripts. (line 6) @@ -3966,11 +3939,13 @@ Index * EC fonts, and dynamic source creation: mktex scripts. (line 6) * elt-dirs.c: Subdirectory expansion. (line 41) -* enabling mktex scripts: mktex configuration. (line 6) +* elt-dirs.c <1>: Subdirectory expansion. + (line 48) +* enabling 'mktex' scripts: mktex configuration. (line 6) * ENCFONTS: Supported file formats. (line 51) * engine name: Path searching options. - (line 22) + (line 21) * environment variable, source for path: Path sources. (line 9) * environment variables for TeX: Supported file formats. (line 6) @@ -3994,7 +3969,7 @@ Index * externally-built filename database: Filename database. (line 6) * extra colons: Default expansion. (line 6) * extraclean Make target: Cleaning up. (line 23) -* failed mktex... script invocation: mktex script names. (line 35) +* failed 'mktex...' script invocation: mktex script names. (line 35) * fallback font: Fallback font. (line 6) * fallback resolutions: Fallback font. (line 6) * fallback resolutions, overriding: Running make. (line 10) @@ -4034,16 +4009,19 @@ Index * FONTFEATURES: Supported file formats. (line 61) * fontmap files: Fontmap. (line 6) -* fontmaps: mktex configuration. (line 87) -* fontname: mktex configuration. (line 88) +* fontmaps: mktex configuration. (line 86) +* fontmaps <1>: mktex configuration. (line 87) +* fontname: mktex configuration. (line 87) * fontnames, arbitrary length: Fontmap. (line 15) -* fonts, being created: Simple installation. (line 79) +* fonts, being created: Simple installation. (line 78) * FOOINPUTS: Supported file formats. + (line 222) +* FOOINPUTS <1>: Supported file formats. (line 225) * fopen, redefined: Debugging. (line 54) * format of external database: Database format. (line 6) -* FreeBSD configure error: Empty Makefiles. (line 6) -* FreeBSD shells and configure: configure shells. (line 19) +* FreeBSD 'configure' error: Empty Makefiles. (line 6) +* FreeBSD shells and 'configure': configure shells. (line 19) * ftp.cs.stanford.edu: unixtex.ftp. (line 20) * ftp.tug.org: unixtex.ftp. (line 6) * fundamental purpose of Kpathsea: Introduction. (line 6) @@ -4063,15 +4041,17 @@ Index * glyph lookup bitmap tolerance: Basic glyph lookup. (line 15) * GLYPHFONTS: Supported file formats. (line 65) +* GLYPHFONTS <1>: Supported file formats. + (line 154) * glyphlist.txt: Specially-recognized files. (line 25) * GNU C compiler bugs: TeX or Metafont failing. (line 19) -* GNU General Public License: Introduction. (line 31) +* GNU General Public License: Introduction. (line 27) * group-writable directories: Security. (line 40) * GSFTOPK_DEBUG (128): Debugging. (line 88) * hash table buckets, printing: Debugging. (line 105) -* hash table routines: Calling sequence. (line 112) +* hash table routines: Calling sequence. (line 110) * hash_summary_only variable for debugging: Debugging. (line 105) * help, mailing list for general TeX: Mailing lists. (line 25) * history of Kpathsea: History. (line 6) @@ -4082,11 +4062,11 @@ Index * identifiers, characters valid in: Config files. (line 47) * illegal pointer combination warnings: Pointer combination warnings. (line 6) -* include fontmap directive: Fontmap. (line 33) +* include fontmap directive: Fontmap. (line 30) * INDEXSTYLE: Supported file formats. (line 74) * info-tex@shsu.edu: Mailing lists. (line 25) -* input lines, reading: Calling sequence. (line 112) +* input lines, reading: Calling sequence. (line 110) * install-data Make target: Installing files. (line 28) * install-exec Make target: Installing files. (line 23) * installation: Installation. (line 6) @@ -4102,14 +4082,14 @@ Index * installation, simple: Simple installation. (line 6) * installing files: Installing files. (line 6) * interactive query: Path searching options. - (line 120) -* interface, not frozen: Introduction. (line 27) + (line 119) +* interface, not frozen: Introduction. (line 23) * introduction: Introduction. (line 6) -* kdebug:: Debugging. (line 105) +* 'kdebug:': Debugging. (line 105) * kdefault.c: Default expansion. (line 48) * Knuth, Donald E.: History. (line 6) * Knuth, Donald E., archive of programs by: unixtex.ftp. (line 20) -* Korn shell, losing with configure: configure shells. (line 14) +* Korn shell, losing with 'configure': configure shells. (line 14) * kpathsae_var_value: Programming with config files. (line 10) * Kpathsea config file, source for path: Path sources. (line 17) @@ -4120,26 +4100,29 @@ Index * kpathsea/README.CONFIGURE: Running configure. (line 15) * kpathsea_cnf_get: Programming with config files. (line 23) -* KPATHSEA_DEBUG <1>: Calling sequence. (line 28) * KPATHSEA_DEBUG: Debugging. (line 18) +* KPATHSEA_DEBUG <1>: Calling sequence. (line 28) +* kpathsea_find_file: File lookup. (line 38) * kpathsea_find_file <1>: Calling sequence. (line 62) -* kpathsea_find_file: File lookup. (line 37) * kpathsea_find_glyph: Glyph lookup. (line 26) -* kpathsea_finish: Calling sequence. (line 107) -* kpathsea_in_name_ok: Calling sequence. (line 102) -* kpathsea_init_prog <1>: Calling sequence. (line 53) +* kpathsea_finish: Calling sequence. (line 106) * kpathsea_init_prog: Fallback font. (line 15) +* kpathsea_init_prog <1>: Calling sequence. (line 53) +* kpathsea_in_name_ok: Calling sequence. (line 101) * kpathsea_new: Calling sequence. (line 9) * kpathsea_open_file: Calling sequence. (line 74) * kpathsea_out_name_ok: Calling sequence. (line 82) * kpathsea_set_program_name: Calling sequence. (line 14) * KPATHSEA_WARNING: Config files. (line 18) * kpse->debug: Debugging. (line 6) +* kpse->debug <1>: Debugging. (line 18) * kpse->debug variable: Calling sequence. (line 39) * kpse->format_info: Calling sequence. (line 47) * kpse->invocation_name: Calling sequence. (line 22) * kpse->invocation_short_name: Calling sequence. (line 22) * kpse->program_name: Calling sequence. (line 22) +* kpsewhich: Invoking kpsewhich. (line 6) +* Kpsewhich, and debugging: Debugging. (line 31) * KPSE_BITMAP_TOLERANCE: Basic glyph lookup. (line 15) * KPSE_DEBUG_EXPAND (16): Debugging. (line 68) * KPSE_DEBUG_FOPEN (4): Debugging. (line 53) @@ -4150,11 +4133,9 @@ Index * KPSE_DEBUG_VARS (64): Debugging. (line 83) * KPSE_DOT expansion: KPSE_DOT expansion. (line 6) * kpse_format_info_type: Debugging. (line 61) -* kpse_init_prog, and MAKETEX_MODE: Default path features. +* kpse_init_prog, and 'MAKETEX_MODE': Default path features. (line 25) -* kpsewhich: Invoking kpsewhich. (line 6) -* Kpsewhich, and debugging: Debugging. (line 31) -* ksh, losing with configure: configure shells. (line 14) +* ksh, losing with 'configure': configure shells. (line 14) * LaserJet drive: Kpathsea application distributions. (line 13) * last-resort font: Fallback font. (line 6) @@ -4168,23 +4149,23 @@ Index * leaf directory trick: Subdirectory expansion. (line 22) * libdl.a: dlopen. (line 6) -* libraries, changing: Running make. (line 40) +* libraries, changing: Running make. (line 39) * libraries, specifying additional: configure environment. (line 43) * LIBS: configure environment. (line 42) -* libucb, avoiding: Running make. (line 44) -* license for using the library: Introduction. (line 31) +* libucb, avoiding: Running make. (line 43) +* license for using the library: Introduction. (line 27) * LIGFONTS: Supported file formats. (line 78) -* lines, reading arbitrary-length: Calling sequence. (line 112) -* Linux File System Standard: mktex configuration. (line 114) -* Linux shells and configure: configure shells. (line 19) +* lines, reading arbitrary-length: Calling sequence. (line 110) +* Linux File System Standard: mktex configuration. (line 113) +* Linux shells and 'configure': configure shells. (line 19) * lndir for building symlink trees: configure scenarios. (line 18) * loader options: configure environment. (line 39) -* loader options, final: Running make. (line 33) -* loader options, initial: Running make. (line 30) +* loader options, final: Running make. (line 32) +* loader options, initial: Running make. (line 29) * local cache of fonts: Security. (line 22) * log file: Logging. (line 6) * logging successful searches: Logging. (line 6) @@ -4196,14 +4177,14 @@ Index * ls-R and AFS: Installing files. (line 40) * ls-R database file: ls-R. (line 6) * ls-R, simplest build: ls-R. (line 18) -* Mach10 configure error: Empty Makefiles. (line 6) +* Mach10 'configure' error: Empty Makefiles. (line 6) +* MacKenzie, David: History. (line 45) * MacKenzie, David <1>: Subdirectory expansion. (line 22) -* MacKenzie, David: History. (line 45) * magic characters: Searching overview. (line 13) * mailing lists: Mailing lists. (line 6) * maintainer-clean Make target: Cleaning up. (line 18) -* Make arguments, additional: Running make. (line 36) +* Make arguments, additional: Running make. (line 35) * make, running: Running make. (line 6) * Makefile.in: Running configure. (line 6) * Makefiles, empty: Empty Makefiles. (line 6) @@ -4211,12 +4192,12 @@ Index * MAKETEX_FINE_DEBUG (1024): Debugging. (line 100) * MAKETEX_MODE: Default path features. (line 19) -* memory allocation routines: Calling sequence. (line 112) -* metafont driver files: mktex configuration. (line 94) +* memory allocation routines: Calling sequence. (line 110) +* metafont driver files: mktex configuration. (line 93) * Metafont failures: TeX or Metafont failing. (line 6) * Metafont installation: Unable to generate fonts. - (line 52) + (line 51) * Metafont making too-large fonts: Unable to generate fonts. (line 36) * Metafont using the wrong device: Unable to generate fonts. @@ -4239,19 +4220,20 @@ Index (line 20) * mkocp: mktex script names. (line 18) * mkofm: mktex script names. (line 21) -* mktex script configuration: mktex configuration. (line 6) -* mktex script names: mktex script names. (line 6) -* mktex scripts: mktex scripts. (line 6) +* 'mktex' script configuration: mktex configuration. (line 6) +* 'mktex' script names: mktex script names. (line 6) +* 'mktex' scripts: mktex scripts. (line 6) +* mktex.cnf: mktex configuration. (line 29) * mktex.cnf <1>: Specially-recognized files. (line 28) -* mktex.cnf: mktex configuration. (line 29) * mktex.opt: mktex configuration. (line 29) -* mktexdir: mktex configuration. (line 62) +* mktex.opt <1>: mktex configuration. (line 39) +* mktexdir: mktex configuration. (line 61) * mktexfmt: mktex script names. (line 10) * mktexmf: mktex script names. (line 15) * mktexpk: mktex script names. (line 24) -* mktexpk , initial runs: Simple installation. (line 79) -* mktexpk can't guess mode: Unable to generate fonts. +* mktexpk , initial runs: Simple installation. (line 78) +* 'mktexpk' can't guess mode: Unable to generate fonts. (line 12) * mktextex: mktex script names. (line 27) * mktextfm: mktex script names. (line 30) @@ -4259,7 +4241,7 @@ Index (line 111) * MLBSTINPUTS: Supported file formats. (line 115) -* mode directory, omitting: mktex configuration. (line 99) +* mode directory, omitting: mktex configuration. (line 98) * Morgan, Tim: History. (line 12) * mostlyclean Make target: Cleaning up. (line 10) * MPINPUTS: Supported file formats. @@ -4270,27 +4252,27 @@ Index (line 123) * MPSUPPORT: Supported file formats. (line 91) -* MT_FEATURES: mktex configuration. (line 40) +* MT_FEATURES: mktex configuration. (line 39) * multiple architectures, compiling on: configure scenarios. (line 18) * multiple architectures, directories for: configure scenarios. (line 23) * multiple architectures, installing on: Installing files. (line 21) * multiple TeX hierarchies: Brace expansion. (line 20) * must exist: Searching overview. (line 31) -* names for mktex scripts: mktex script names. (line 6) -* NetBSD configure error: Empty Makefiles. (line 6) -* NetBSD shells and configure: configure shells. (line 19) +* names for 'mktex' scripts: mktex script names. (line 6) +* NetBSD 'configure' error: Empty Makefiles. (line 6) +* NetBSD shells and 'configure': configure shells. (line 19) * Neumann, Gustaf: History. (line 57) * newsgroup for TeX: Mailing lists. (line 25) -* NeXT sed error: Empty Makefiles. (line 6) +* NeXT 'sed' error: Empty Makefiles. (line 6) * NeXT, lacking X11: Kpathsea application distributions. (line 6) -* NFS and ls-R: ls-R. (line 40) -* nomfdrivers: mktex configuration. (line 93) -* nomode: mktex configuration. (line 98) +* NFS and 'ls-R': ls-R. (line 40) +* nomfdrivers: mktex configuration. (line 92) +* nomode: mktex configuration. (line 97) * non-English typesetting: Kpathsea application distributions. - (line 28) -* non-Unix operating systems: Custom installation. (line 19) + (line 27) +* non-Unix operating systems: Custom installation. (line 16) * none: Suppressing warnings. (line 23) * null pointers, dereferencing: Bug checklist. (line 61) @@ -4310,8 +4292,8 @@ Index (line 15) * optimization, enabling: configure scenarios. (line 32) * options for debugging: Debugging. (line 6) -* options to configure: configure options. (line 16) -* OS/2 support: Custom installation. (line 19) +* options to 'configure': configure options. (line 16) +* OS/2 support: Custom installation. (line 16) * OTPINPUTS: Supported file formats. (line 141) * overview of path searching: Searching overview. (line 6) @@ -4321,7 +4303,7 @@ Index (line 144) * OVPFONTS: Supported file formats. (line 147) -* patches, Sun OpenWin: ShellWidgetClass. (line 29) +* patches, Sun OpenWin: ShellWidgetClass. (line 28) * path expansion: Path expansion. (line 6) * path searching: Path searching. (line 6) * path searching options: Path searching options. @@ -4329,10 +4311,10 @@ Index * path searching, overview: Searching overview. (line 6) * path searching, standalone: Invoking kpsewhich. (line 6) * path sources: Path sources. (line 6) -* paths, changing default <1>: Default path generation. - (line 6) * paths, changing default: Changing search paths. (line 6) +* paths, changing default <1>: Default path generation. + (line 6) * paths, device name included in: Default path features. (line 19) * paths.h: Default path generation. @@ -4369,7 +4351,7 @@ Index (line 6) * preprocessor options: configure environment. (line 32) -* preprocessor options, additional: Running make. (line 24) +* preprocessor options, additional: Running make. (line 23) * printer configuration files: Simple installation. (line 60) * privacy, semblance of: Logging. (line 32) * problems, common: Common problems. (line 6) @@ -4387,18 +4369,18 @@ Index * proof mode: Unable to generate fonts. (line 36) * PSHEADERS: Supported file formats. - (line 160) + (line 159) * pxp Pascal preprocessor: History. (line 12) * quoting variable values: Variable expansion. (line 17) * re-entrant API: Programming overview. (line 16) * readable: Suppressing warnings. (line 26) -* reading arbitrary-length lines: Calling sequence. (line 112) +* reading arbitrary-length lines: Calling sequence. (line 110) * README.CONFIGURE: Running configure. (line 15) * recording successful searches: Logging. (line 6) * relative filenames: Searching overview. (line 52) -* relative filenames in ls-R: Installing files. (line 40) +* relative filenames in 'ls-R': Installing files. (line 40) * reporting bugs: Reporting bugs. (line 6) * resident.c: Calling sequence. (line 47) * resolution, setting: Path searching options. @@ -4421,55 +4403,56 @@ Index * searching the database: Searching overview. (line 17) * searching the disk: Searching overview. (line 22) * security considerations: Security. (line 6) -* sed error from configure: Empty Makefiles. (line 6) +* sed error from 'configure': Empty Makefiles. (line 6) * SELFAUTODIR: Calling sequence. (line 31) * SELFAUTOLOC: Calling sequence. (line 31) * SELFAUTOPARENT: Calling sequence. (line 31) * sending patches: Bug checklist. (line 55) * setgid scripts: Security. (line 40) * SFDFONTS: Supported file formats. - (line 164) -* sh5, ok with configure: configure shells. (line 25) + (line 163) +* sh5, ok with 'configure': configure shells. (line 25) * shared library, making: Shared library. (line 6) * shell scripts as configuration files: Config files. (line 79) * shell variables: Variable expansion. (line 17) +* shells and 'configure': configure shells. (line 6) * shell_escape, example for code: Programming with config files. (line 10) -* shells and configure: configure shells. (line 6) * simple installation: Simple installation. (line 6) -* site overrides for mktex...: mktex configuration. (line 29) +* site overrides for 'mktex...': mktex configuration. (line 29) * size of distribution archives: Disk space. (line 6) * skeleton TeX directory: TeX directory structure. (line 6) * slow startup time: Slow path searching. (line 6) -* Solaris BSD compatibility, not: Running make. (line 44) +* Solaris BSD compatibility, not: Running make. (line 43) * source files: Supported file formats. - (line 176) + (line 174) * sources for search paths: Path sources. (line 6) * special: Suppressing warnings. (line 30) -* st_nlink: Subdirectory expansion. - (line 26) -* ST_NLINK_TRICK: Subdirectory expansion. - (line 38) * stack trace: Bug checklist. (line 61) * standalone path searching: Invoking kpsewhich. (line 6) * standard error and debugging output: Debugging. (line 27) * standard options: Standard options. (line 6) * startup time, excessive: Slow path searching. (line 6) -* static linking: ShellWidgetClass. (line 39) -* static linking and dlsym: dlopen. (line 6) -* string routines: Calling sequence. (line 112) -* strip: mktex configuration. (line 108) -* stripsupplier: mktex configuration. (line 102) -* striptypeface: mktex configuration. (line 105) +* static linking: ShellWidgetClass. (line 38) +* static linking and 'dlsym': dlopen. (line 6) +* string routines: Calling sequence. (line 110) +* strip: mktex configuration. (line 107) +* stripsupplier: mktex configuration. (line 101) +* striptypeface: mktex configuration. (line 104) +* st_nlink: Subdirectory expansion. + (line 26) +* ST_NLINK_TRICK: Subdirectory expansion. + (line 38) * subdirectory searching: Subdirectory expansion. (line 6) * suffixes, filename: File lookup. (line 24) -* suggestions, making: Introduction. (line 27) +* suggestions, making: Introduction. (line 23) * Sun 2: History. (line 12) -* Sun OpenWin patches: ShellWidgetClass. (line 29) -* supplier directory, omitting: mktex configuration. (line 103) +* Sun OpenWin patches: ShellWidgetClass. (line 28) +* supplier directory, omitting: mktex configuration. (line 102) +* supplier directory, omitting <1>: mktex configuration. (line 108) * supported file formats: Supported file formats. (line 6) * suppressing warnings: Suppressing warnings. @@ -4478,31 +4461,31 @@ Index (line 18) * symbolic links not found: Unable to find files. (line 21) -* symbolic links, and ls-R: ls-R. (line 38) +* symbolic links, and 'ls-R': ls-R. (line 38) * symlinks, resolving: Calling sequence. (line 31) * system C compiler bugs: TeX or Metafont failing. (line 19) * system dependencies: Running configure. (line 6) -* system V universe: Running make. (line 44) +* system V universe: Running make. (line 43) * T1FONTS: Supported file formats. - (line 200) + (line 197) * T1INPUTS: Supported file formats. - (line 200) + (line 197) * T42FONTS: Supported file formats. - (line 205) + (line 202) * tcfmgr.map: Specially-recognized files. - (line 47) -* TDS <1>: TeX directory structure. - (line 6) + (line 46) * TDS: Default path features. (line 41) -* testing, post-installation: Installation testing. +* TDS <1>: TeX directory structure. (line 6) -* tests, simple: Simple installation. (line 79) -* TeX directory structure <1>: TeX directory structure. +* testing, post-installation: Installation testing. (line 6) +* tests, simple: Simple installation. (line 78) * TeX directory structure: Default path features. (line 41) +* TeX directory structure <1>: TeX directory structure. + (line 6) * TeX environment variables: Supported file formats. (line 6) * TeX failures: TeX or Metafont failing. @@ -4512,8 +4495,8 @@ Index * TeX help mailing list: Mailing lists. (line 25) * TeX hierarchy, one: configure scenarios. (line 13) * TeX support: TeX support. (line 6) -* TeX Users Group: Introduction. (line 39) -* tex-file.c: File lookup. (line 37) +* TeX Users Group: Introduction. (line 35) +* tex-file.c: File lookup. (line 38) * tex-file.h: Programming overview. (line 24) * tex-glyph.c: Glyph lookup. (line 26) @@ -4522,19 +4505,24 @@ Index * tex-k-request@tug.org: Mailing lists. (line 7) * tex-k@tug.org (bug address): Reporting bugs. (line 8) * tex.web: unixtex.ftp. (line 20) -* TEX_HUSH <1>: Suppressing warnings. - (line 6) -* TEX_HUSH: Searching overview. (line 56) * TEXBIB: Supported file formats. (line 28) +* TEXBIB <1>: Supported file formats. + (line 111) * TEXCONFIG: Supported file formats. (line 47) * TEXDOCS: Supported file formats. - (line 173) + (line 171) * TEXFONTMAPS: Supported file formats. (line 84) * TEXFONTS: Supported file formats. (line 65) +* TEXFONTS <1>: Supported file formats. + (line 154) +* TEXFONTS <2>: Supported file formats. + (line 185) +* TEXFONTS <3>: Supported file formats. + (line 205) * texfonts.map: Fontmap. (line 6) * TEXFORMATS: Supported file formats. (line 54) @@ -4542,11 +4530,13 @@ Index (line 74) * TEXINPUTS: Supported file formats. (line 69) +* TEXINPUTS <1>: Supported file formats. + (line 166) * TEXMF: TeX directory structure. (line 6) * texmf.cnf: Specially-recognized files. (line 38) -* texmf.cnf missing, warning about: Config files. (line 18) +* 'texmf.cnf' missing, warning about: Config files. (line 18) * texmf.cnf, and variable expansion: Variable expansion. (line 6) * texmf.cnf, creating: Running make. (line 6) * texmf.cnf, definition for: Config files. (line 6) @@ -4559,88 +4549,98 @@ Index (line 6) * texmf.sed: Default path generation. (line 17) +* TEXMFCNF: Config files. (line 6) * TEXMFCNF <1>: Supported file formats. (line 39) -* TEXMFCNF: Config files. (line 6) +* TEXMFDBS: ls-R. (line 6) * TEXMFDBS <1>: Supported file formats. (line 81) -* TEXMFDBS: ls-R. (line 6) * TEXMFINI: Supported file formats. (line 24) +* TEXMFINI <1>: Supported file formats. + (line 54) +* TEXMFINI <2>: Supported file formats. + (line 87) * TEXMFLOG: Logging. (line 10) * TEXMFOUTPUT: mktex script names. (line 40) * TEXMFSCRIPTS: Supported file formats. - (line 179) -* TEXMFVAR: mktex configuration. (line 124) -* texmfvar: mktex configuration. (line 123) + (line 177) +* texmfvar: mktex configuration. (line 122) +* TEXMFVAR: mktex configuration. (line 123) * TEXPICTS: Supported file formats. (line 69) * TEXPKS: Supported file formats. (line 154) * TEXPOOL: Supported file formats. - (line 183) + (line 181) * TEXPSHEADERS: Supported file formats. - (line 160) + (line 159) +* TEXPSHEADERS <1>: Supported file formats. + (line 197) * TEXSIZES: Fallback font. (line 6) * TEXSOURCES: Supported file formats. - (line 176) + (line 174) +* TEX_HUSH: Searching overview. (line 56) +* TEX_HUSH <1>: Suppressing warnings. + (line 6) * TFMFONTS: Supported file formats. - (line 187) + (line 185) * tilde expansion: Tilde expansion. (line 6) * tilde.c: Tilde expansion. (line 25) * time system call: Logging. (line 15) * tolerance for glyph lookup: Basic glyph lookup. (line 15) * total disk space: Disk space. (line 6) -* trailing / in home directory: Tilde expansion. (line 19) +* trailing '/' in home directory: Tilde expansion. (line 19) * trailing colons: Default expansion. (line 6) * TRFONTS: Supported file formats. - (line 192) + (line 189) * trick for detecting leaf directories: Subdirectory expansion. (line 22) * trojan horse attack: Security. (line 10) * try_std_extension_first: File lookup. (line 24) * TTFONTS: Supported file formats. - (line 196) + (line 193) * tug.org: unixtex.ftp. (line 6) -* typeface directory, omitting: mktex configuration. (line 106) -* ucbinclude, avoiding: Running make. (line 44) -* Ultrix shells and configure: configure shells. (line 25) +* typeface directory, omitting: mktex configuration. (line 105) +* typeface directory, omitting <1>: mktex configuration. (line 108) +* ucbinclude, avoiding: Running make. (line 43) +* Ultrix shells and 'configure': configure shells. (line 25) * unable to find files: Unable to find files. (line 6) * unable to generate fonts: Unable to generate fonts. (line 6) * uname: Bug checklist. (line 20) -* universe, BSD vs. system V: Running make. (line 44) +* universe, BSD vs. system V: Running make. (line 43) * unixtex.ftp: unixtex.ftp. (line 6) * unknown special warnings: Suppressing warnings. (line 31) * unreadable file warnings: Suppressing warnings. (line 27) * unreadable files: Searching overview. (line 56) -* unusable ls-R warning: ls-R. (line 45) +* unusable 'ls-R' warning: ls-R. (line 45) * usage patterns, finding: Logging. (line 6) -* USE_TEXMFVAR: mktex configuration. (line 129) -* USE_VARTEXFONTS: mktex configuration. (line 119) * Usenet TeX newsgroup: Mailing lists. (line 25) * USERPROFILE, as ~ expansion: Tilde expansion. (line 6) -* varfonts: mktex configuration. (line 113) +* USE_TEXMFVAR: mktex configuration. (line 128) +* USE_VARTEXFONTS: mktex configuration. (line 118) +* varfonts: mktex configuration. (line 112) * variable expansion: Variable expansion. (line 6) * variable.c: Variable expansion. (line 32) * variable.h: Programming with config files. (line 10) -* VARTEXFONTS: mktex configuration. (line 114) +* VARTEXFONTS: mktex configuration. (line 113) * VAX 11/750: History. (line 12) * version number, of Kpathsea: Kpathsea application distributions. (line 6) * version numbers, determining: Bug checklist. (line 15) * VF files, not found: Searching overview. (line 31) * VFFONTS: Supported file formats. - (line 208) -* VMS support: Custom installation. (line 19) + (line 205) +* VMS support: Custom installation. (line 16) * Vojta, Paul: History. (line 30) * Walsh, Norman: History. (line 57) -* warning about unusable ls-R: ls-R. (line 45) -* warning, about missing texmf.cnf: Config files. (line 18) +* warning about unusable 'ls-R': ls-R. (line 45) +* warning, about missing 'texmf.cnf': Config files. (line 18) * warnings, file access: Searching overview. (line 56) * warnings, pointer combinations: Pointer combination warnings. (line 6) @@ -4648,11 +4648,11 @@ Index (line 6) * wcstombs: dlopen. (line 6) * WEB2C: Supported file formats. - (line 216) + (line 213) * Weber, Olaf: History. (line 74) * WEBINPUTS: Supported file formats. - (line 212) -* whitespace, in fontmap files: Fontmap. (line 28) + (line 209) +* whitespace, in fontmap files: Fontmap. (line 27) * whitespace, not ignored on continuation lines: Config files. (line 37) * www.tug.org: unixtex.ftp. (line 6) @@ -4660,104 +4660,102 @@ Index (line 25) * X11, lacking on NeXT: Kpathsea application distributions. (line 6) -* XCFLAGS: Running make. (line 26) -* XCPPFLAGS: Running make. (line 22) -* XDEFS: Running make. (line 23) +* XCFLAGS: Running make. (line 25) +* XCPPFLAGS: Running make. (line 21) +* XDEFS: Running make. (line 22) * XDvi: Specially-recognized files. (line 41) * XDVIFONTS: Supported file formats. - (line 243) + (line 240) * XDVIMAKEPK: mktex script names. (line 32) * XDVISIZES: Fallback font. (line 6) -* XLDFLAGS: Running make. (line 29) -* XLOADLIBES: Running make. (line 32) -* XMAKEARGS: Running make. (line 35) +* XLDFLAGS: Running make. (line 28) +* XLOADLIBES: Running make. (line 31) +* XMAKEARGS: Running make. (line 34) * Xmu library problems: ShellWidgetClass. (line 13) * XtStrings: XtStrings. (line 6) * zuhn, david: History. (line 51) -* { expansion: Brace expansion. (line 6) -* ~ expansion: Tilde expansion. (line 6) Tag Table: -Node: Top1627 -Node: Introduction2269 -Node: History4090 -Node: Installation8182 -Node: Simple installation8972 -Node: Custom installation12555 -Node: Disk space13729 -Node: Kpathsea application distributions14613 -Node: Changing search paths15728 -Node: Default path features16910 -Node: Default path generation18993 -Node: Running configure20436 -Node: configure shells21487 -Node: configure options22539 -Node: configure environment24046 -Node: configure scenarios25848 -Node: Shared library27434 -Node: Running make28448 -Node: Installing files30495 -Node: Cleaning up32442 -Node: Filename database generation33490 -Node: mktex scripts34057 -Node: mktex configuration35334 -Node: mktex script names41153 -Node: mktex script arguments42544 -Node: Installation testing43430 -Node: Security43794 -Node: TeX directory structure46361 -Node: unixtex.ftp50783 -Node: Reporting bugs52117 -Node: Bug checklist52852 -Node: Mailing lists56549 -Node: Debugging57758 -Node: Logging62836 -Node: Common problems64706 -Node: Unable to find files65537 -Node: Slow path searching67948 -Node: Unable to generate fonts69325 -Node: TeX or Metafont failing71834 -Node: Empty Makefiles73713 -Node: XtStrings74950 -Node: dlopen75786 -Node: ShellWidgetClass76604 -Node: Pointer combination warnings78236 -Node: Path searching78625 -Node: Searching overview79272 -Node: Path sources82668 -Node: Config files83739 -Node: Path expansion87666 -Node: Default expansion88615 -Node: Variable expansion90685 -Node: Tilde expansion92088 -Node: Brace expansion93068 -Node: KPSE_DOT expansion93993 -Node: Subdirectory expansion94506 -Node: Filename database96857 -Node: ls-R97911 -Node: Filename aliases100805 -Node: Database format101983 -Node: Invoking kpsewhich102996 -Node: Path searching options103942 -Node: Specially-recognized files112159 -Node: Auxiliary tasks113515 -Node: Standard options115340 -Node: TeX support115696 -Node: Supported file formats116987 -Node: File lookup124541 -Node: Glyph lookup126290 -Node: Basic glyph lookup127414 -Node: Fontmap128293 -Node: Fallback font130910 -Node: Suppressing warnings131823 -Node: Programming132928 -Node: Programming overview133441 -Node: Calling sequence136135 -Node: Program-specific files142658 -Node: Programming with config files143681 -Node: Index144993 +Node: Top1480 +Node: Introduction2124 +Node: History3942 +Node: Installation8034 +Node: Simple installation8828 +Node: Custom installation12376 +Node: Disk space13697 +Node: Kpathsea application distributions14505 +Node: Changing search paths15619 +Node: Default path features16812 +Node: Default path generation18895 +Node: Running configure20338 +Node: configure shells21421 +Node: configure options22470 +Node: configure environment23976 +Node: configure scenarios25778 +Node: Shared library27364 +Node: Running make28378 +Node: Installing files30426 +Node: Cleaning up32370 +Node: Filename database generation33418 +Node: mktex scripts33982 +Node: mktex configuration35246 +Node: mktex script names41053 +Node: mktex script arguments42443 +Node: Installation testing43326 +Node: Security43681 +Node: TeX directory structure46206 +Node: unixtex.ftp50627 +Node: Reporting bugs51962 +Node: Bug checklist52700 +Node: Mailing lists56397 +Node: Debugging57606 +Node: Logging62692 +Node: Common problems64563 +Node: Unable to find files65394 +Node: Slow path searching67808 +Node: Unable to generate fonts69187 +Node: TeX or Metafont failing71667 +Node: Empty Makefiles73543 +Node: XtStrings74782 +Node: dlopen75618 +Node: ShellWidgetClass76436 +Node: Pointer combination warnings78048 +Node: Path searching78437 +Node: Searching overview79084 +Node: Path sources82479 +Node: Config files83537 +Node: Path expansion87464 +Node: Default expansion88413 +Node: Variable expansion90483 +Node: Tilde expansion91884 +Node: Brace expansion92864 +Node: KPSE_DOT expansion93789 +Node: Subdirectory expansion94302 +Node: Filename database96656 +Node: ls-R97710 +Node: Filename aliases100605 +Node: Database format101783 +Node: Invoking kpsewhich102796 +Node: Path searching options103740 +Node: Specially-recognized files111946 +Node: Auxiliary tasks113301 +Node: Standard options115126 +Node: TeX support115482 +Node: Supported file formats116773 +Node: File lookup123972 +Node: Glyph lookup125721 +Node: Basic glyph lookup126845 +Node: Fontmap127725 +Node: Fallback font130314 +Node: Suppressing warnings131226 +Node: Programming132331 +Node: Programming overview132844 +Node: Calling sequence135541 +Node: Program-specific files142071 +Node: Programming with config files143094 +Node: Index144406 End Tag Table diff --git a/Master/texmf-dist/doc/info/web2c.info b/Master/texmf-dist/doc/info/web2c.info index 1e5bf0428d3..a0349985ccc 100644 --- a/Master/texmf-dist/doc/info/web2c.info +++ b/Master/texmf-dist/doc/info/web2c.info @@ -1,10 +1,29 @@ -This is ../../../../texk/web2c/doc/web2c.info, produced by makeinfo -version 4.13 from ../../../../texk/web2c/doc/web2c.texi. +This is web2c.info, produced by makeinfo version 5.1 from web2c.texi. +This file documents the installation and use of the programs in Web2c, +an implementation of Donald Knuth's TeX system. + + Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +2005, 2007, 2008, 2009 Karl Berry & Olaf Weber. + + Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + + Permission is granted to copy and distribute modified versions of +this manual under the conditions for verbatim copying, provided that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + + Permission is granted to copy and distribute translations of this +manual into another language, under the above conditions for modified +versions, except that this permission notice may be stated in a +translation INFO-DIR-SECTION TeX START-INFO-DIR-ENTRY * Web2c: (web2c). TeX, Metafont, and companion programs. END-INFO-DIR-ENTRY + INFO-DIR-SECTION Individual utilities START-INFO-DIR-ENTRY * bibtex: (web2c)bibtex invocation. Maintaining bibliographies. @@ -31,26 +50,6 @@ START-INFO-DIR-ENTRY * weave: (web2c)weave invocation. WEB to TeX. END-INFO-DIR-ENTRY - This file documents the installation and use of the programs in -Web2c, an implementation of Donald Knuth's TeX system. - - Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -2005, 2007, 2008, 2009 Karl Berry & Olaf Weber. - - Permission is granted to make and distribute verbatim copies of this -manual provided the copyright notice and this permission notice are -preserved on all copies. - - Permission is granted to copy and distribute modified versions of -this manual under the conditions for verbatim copying, provided that the -entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - - Permission is granted to copy and distribute translations of this -manual into another language, under the above conditions for modified -versions, except that this permission notice may be stated in a -translation - File: web2c.info, Node: Top, Next: Introduction, Up: (dir) @@ -59,7 +58,7 @@ Web2c This document describes how to install and use the programs in the Web2c implementation of the TeX system, especially for Unix systems. It -corresponds to Web2c version 2012, released in May 2012. +corresponds to Web2c version 2013, released in April 2013. * Menu: @@ -83,49 +82,51 @@ File: web2c.info, Node: Introduction, Next: Installation, Prev: Top, Up: Top 1 Introduction ************** -This manual corresponds to version 2012 of Web2c, released in May 2012. +This manual corresponds to version 2013 of Web2c, released in April +2013. - "Web2c" is the name of a TeX implementation, originally for Unix, -but now also running under DOS, Amiga, and other operating systems. By -"TeX implementation", we mean all of the standard programs developed by -the Stanford TeX project directed by Donald E. Knuth: Metafont, -DVItype, GFtoDVI, BibTeX, Tangle, etc., as well as TeX itself. Other -programs are also included: DVIcopy, written by Peter Breitenlohner, -MetaPost and its utilities (derived from Metafont), by John Hobby, etc. + "Web2c" is the name of a TeX implementation, originally for Unix, but +now also running under DOS, Amiga, and other operating systems. By "TeX +implementation", we mean all of the standard programs developed by the +Stanford TeX project directed by Donald E. Knuth: Metafont, DVItype, +GFtoDVI, BibTeX, Tangle, etc., as well as TeX itself. Other programs +are also included: DVIcopy, written by Peter Breitenlohner, MetaPost and +its utilities (derived from Metafont), by John Hobby, etc. General strategy: Web2c works, as its name implies, by translating -the WEB source in which TeX is written into C source code. Its output is -not self-contained, however; it makes extensive use of many macros and -functions in a library (the `web2c/lib' directory in the sources). +the WEB source in which TeX is written into C source code. Its output +is not self-contained, however; it makes extensive use of many macros +and functions in a library (the 'web2c/lib' directory in the sources). Therefore, it will not work without change on an arbitrary WEB program. Availability: All of Web2c is freely available--"free" both in the sense of no cost (free ice cream) and of having the source code to -modify and/or redistribute (free speech). *Note unixtex.ftp: -(kpathsea)unixtex.ftp, for the practical details of how to obtain Web2c. +modify and/or redistribute (free speech). *Note +(kpathsea)unixtex.ftp::, for the practical details of how to obtain +Web2c. Different parts of the Web2c distribution have different licensing terms, however, reflecting the different circumstances of their creation; consult each source file for exact details. The main practical implication for redistributors of Web2c is that the -executables are covered by the GNU General Public License, and -therefore anyone who gets a binary distribution must also get the -sources, as explained by the terms of the GPL (*note Copying: -(kpathsea)Copying.). The GPL covers the Web2c executables, including -`tex', because the Free Software Foundation sponsored the initial -development of the Kpathsea library that Web2c uses. The basic source -files from Stanford, however, have their own copyright terms or are in -the public domain, and are not covered by the GPL. +executables are covered by the GNU General Public License, and therefore +anyone who gets a binary distribution must also get the sources, as +explained by the terms of the GPL (*note (kpathsea)Copying::). The GPL +covers the Web2c executables, including 'tex', because the Free Software +Foundation sponsored the initial development of the Kpathsea library +that Web2c uses. The basic source files from Stanford, however, have +their own copyright terms or are in the public domain, and are not +covered by the GPL. History: Tomas Rokicki originated the TeX-to-C system in 1987, working from the first change files for TeX under Unix, which were done -primarily by Howard Trickey and Pavel Curtis. Tim Morgan then took over +primarily by Howard Trickey and Pavel Curtis. Tim Morgan then took over development and maintenance for a number of years; the name changed to -Web-to-C somewhere in there. In 1990, Karl Berry became the -maintainer. He made many changes to the original sources, and started -using the shorter name Web2c. In 1997, Olaf Weber took over. Dozens of -other people have contributed; their names are listed in the -`ChangeLog' files. +Web-to-C somewhere in there. In 1990, Karl Berry became the maintainer. +He made many changes to the original sources, and started using the +shorter name Web2c. In 1997, Olaf Weber took over. Dozens of other +people have contributed; their names are listed in the 'ChangeLog' +files. Other acknowledgements: The University of Massachusetts at Boston (particularly Rick Martin and Bob Morris) provided computers and ftp @@ -143,48 +144,46 @@ File: web2c.info, Node: Installation, Next: Commonalities, Prev: Introduction 2 Installation ************** -(A copy of this chapter is in the distribution file `web2c/INSTALL'.) +(A copy of this chapter is in the distribution file 'web2c/INSTALL'.) -Installing Web2c is mostly the same as installing any other + Installing Web2c is mostly the same as installing any other Kpathsea-using program. Therefore, for the basic steps involved, see -*note Installation: (kpathsea)Installation. (A copy is in the file -`kpathsea/INSTALL'.) +*note (kpathsea)Installation::. (A copy is in the file +'kpathsea/INSTALL'.) One peculiarity to Web2c is that the source distribution comes in two -files: `web.tar.gz' and `web2c.tar.gz'. You must retrieve and unpack +files: 'web.tar.gz' and 'web2c.tar.gz'. You must retrieve and unpack them both. (We have two because the former archive contains the very large and seldom-changing original WEB source files.) *Note -unixtex.ftp: (kpathsea)unixtex.ftp. +(kpathsea)unixtex.ftp::. Another peculiarity is the MetaPost program. Although it has been -installed previously as `mp', as of Web2c 7.0 the installed name is now -`mpost', to avoid conflict with the `mp' program that does +installed previously as 'mp', as of Web2c 7.0 the installed name is now +'mpost', to avoid conflict with the 'mp' program that does prettyprinting. This approach was recommended by the MetaPost author, John Hobby. If you as the TeX administrator wish to make it available under its shorter name as well, you will have to set up a link or some such yourself. And of course individual users can do the same. For solutions to common installation problems and information on how -to report a bug, see the file `kpathsea/BUGS' (*note Bugs: -(kpathsea)Bugs.). See also the Web2c home page, -`http://www.tug.org/web2c'. +to report a bug, see the file 'kpathsea/BUGS' (*note (kpathsea)Bugs::). +See also the Web2c home page, <http://www.tug.org/web2c>. Points worth repeating: * Before starting the standard compilation and installation you must install the basic fonts, macros, and other library files. *Note - Installation: (kpathsea)Installation. + (kpathsea)Installation::. * If you do not wish to use the standard file locations, see *note - Changing search paths: (kpathsea)Changing search paths. - - * Some Web2c features are enabled or disabled at `configure' time, - as described in the first section below. + (kpathsea)Changing search paths::. + * Some Web2c features are enabled or disabled at 'configure' time, as + described in the first section below. * Menu: -* configure options:: Especially --with and --enable. +* configure options:: Especially -with and -enable. * Compile-time options:: Unusual -D's. * Additional targets:: Breaking down the task. * Triptrap:: Running the torture tests. @@ -193,64 +192,62 @@ to report a bug, see the file `kpathsea/BUGS' (*note Bugs: File: web2c.info, Node: configure options, Next: Compile-time options, Up: Installation -2.1 `configure' options +2.1 'configure' options ======================= -This section gives pointers to descriptions of the `--with' and -`--enable' `configure' arguments that Web2c accepts. Some are specific +This section gives pointers to descriptions of the '--with' and +'--enable' 'configure' arguments that Web2c accepts. Some are specific to Web2c, others are generic to all Kpathsea-using programs. - For a list of all the options `configure' accepts, run `configure ---help'. The generic options are listed first, and the -package-specific options come last. + For a list of all the options 'configure' accepts, run 'configure +--help'. The generic options are listed first, and the package-specific +options come last. For a description of the generic options (which mainly allow you to -specify installation directories) and basic `configure' usage, see -*note Running `configure' scripts: (autoconf)Invoking configure, a copy -is in the file `kpathsea/CONFIGURE'. +specify installation directories) and basic 'configure' usage, see *note +Running 'configure' scripts: (autoconf)Invoking configure, a copy is in +the file 'kpathsea/CONFIGURE'. -`--disable-dump-share' +'--disable-dump-share' Do not make fmt/base/mem files sharable across different endian architectures. *Note Hardware and memory dumps::. -`--without-maketexmf-default' -`--without-maketexpk-default' -`--without-maketextfm-default' -`--with-maketextex-default' - Enable or disable the dynamic generation programs. *Note mktex - configuration: (kpathsea)mktex configuration. The defaults are - the inverse of the options, i.e., everything is enabled except - `mktextex'. - -`--enable-shared' - Build Kpathsea as a shared library. *Note Shared library: - (kpathsea)Shared library. - -`--with-editor=CMD' - Change the default editor invoked by the `e' interactive command. +'--without-maketexmf-default' +'--without-maketexpk-default' +'--without-maketextfm-default' +'--with-maketextex-default' + Enable or disable the dynamic generation programs. *Note + (kpathsea)mktex configuration::. The defaults are the inverse of + the options, i.e., everything is enabled except 'mktextex'. + +'--enable-shared' + Build Kpathsea as a shared library. *Note (kpathsea)Shared + library::. + +'--with-editor=CMD' + Change the default editor invoked by the 'e' interactive command. *Note Editor invocation::. -`--with-epsfwin' -`--with-hp2627win' -`--with-mftalkwin' -`--with-nextwin' -`--with-regiswin' -`--with-suntoolswin' -`--with-tektronixwin' -`--with-unitermwin' -`--with-x' -`--with-x-toolkit=KIT' -`--with-x11win' -`--with-x11' +'--with-epsfwin' +'--with-hp2627win' +'--with-mftalkwin' +'--with-nextwin' +'--with-regiswin' +'--with-suntoolswin' +'--with-tektronixwin' +'--with-unitermwin' +'--with-x' +'--with-x-toolkit=KIT' +'--with-x11win' +'--with-x11' Define Metafont graphics support; by default, no graphics support is enabled. *Note Online Metafont graphics::. -`--x-includes=DIR' -`--x-libraries=DIR' +'--x-includes=DIR' +'--x-libraries=DIR' Define the locations of the X11 include files and libraries; by - default, `configure' does its best to guess). *Note Optional - Features: (autoconf)Optional Features. A copy is in - `kpathsea/CONFIGURE'. + default, 'configure' does its best to guess). *Note + (autoconf)Optional Features::. A copy is in 'kpathsea/CONFIGURE'. File: web2c.info, Node: Compile-time options, Next: Additional targets, Prev: configure options, Up: Installation @@ -258,31 +255,30 @@ File: web2c.info, Node: Compile-time options, Next: Additional targets, Prev: 2.2 Compile-time options ======================== -In addition to the `configure' options listed in the previous section, +In addition to the 'configure' options listed in the previous section, there are a few things that can be affected at compile-time with C -definitions, rather than with `configure'. Using any of these is +definitions, rather than with 'configure'. Using any of these is unusual. - To specify extra compiler flags (`-DNAME' in this case), the -simplest thing to do is: + To specify extra compiler flags ('-DNAME' in this case), the simplest +thing to do is: make XCFLAGS="CCOPTIONS" - You can also set the `CFLAGS' environment variable before running -`configure'. *Note configure environment: (kpathsea)configure -environment. +You can also set the 'CFLAGS' environment variable before running +'configure'. *Note (kpathsea)configure environment::. Anyway, here are the possibilities: -`-DFIXPT' -`-DNO_MF_ASM' +'-DFIXPT' +'-DNO_MF_ASM' Use the original WEB fixed-point routines for Metafont and MetaPost arithmetic calculations regarding fractions. By default, assembly-language routines are used on x86 hardware with GNU C - (unless `NO_MF_ASM' is defined), and floating-point routines are + (unless 'NO_MF_ASM' is defined), and floating-point routines are used otherwise. -`-DIPC_DEBUG' - Report on various interprocess communication activities. *Note - IPC and TeX: IPC and TeX. +'-DIPC_DEBUG' + Report on various interprocess communication activities. *Note IPC + and TeX: IPC and TeX. File: web2c.info, Node: Additional targets, Next: Triptrap, Prev: Compile-time options, Up: Installation @@ -292,53 +288,52 @@ File: web2c.info, Node: Additional targets, Next: Triptrap, Prev: Compile-tim Web2c has several Make targets besides the standard ones. You can invoke these either in the top level directory of the source -distribution (the one containing `kpathsea/' and `web2c/'), or in the -`web2c/' directory. +distribution (the one containing 'kpathsea/' and 'web2c/'), or in the +'web2c/' directory. -`c-sources' +'c-sources' Make only the C files, translated from the Web sources, presumably because you want to take them to a non-Unix machine. -`formats' -`install-formats' +'formats' +'install-formats' Make or install all the memory dumps (*note Memory dumps::). By - default, the standard plain formats plus `latex.fmt' are made. You - can add other formats by redefining the `fmts', `bases', and - `mems' variables. See the top of `web2c/Makefile' for the - possibilities. - -`fmts' -`install-fmts' - Make or install the TeX `.fmt' files. *Note Initial TeX::. - -`bases' -`install-bases' - Make or install the Metafont `.base' files. *Note Initial + default, the standard plain formats plus 'latex.fmt' are made. You + can add other formats by redefining the 'fmts', 'bases', and 'mems' + variables. See the top of 'web2c/Makefile' for the possibilities. + +'fmts' +'install-fmts' + Make or install the TeX '.fmt' files. *Note Initial TeX::. + +'bases' +'install-bases' + + Make or install the Metafont '.base' files. *Note Initial Metafont::. -`mems' -`install-mems' - Make or install the MetaPost `.mem' files. *Note Initial +'mems' +'install-mems' + Make or install the MetaPost '.mem' files. *Note Initial MetaPost::. -`triptrap' -`trip' -`trap' -`mptrap' +'triptrap' +'trip' +'trap' +'mptrap' To run the torture tests for TeX, Metafont, and MetaPost (respectively). See the next section. - File: web2c.info, Node: Triptrap, Next: Runtime options, Prev: Additional targets, Up: Installation 2.4 Trip, trap, and mptrap: Torture tests ========================================= -To validate your TeX, Metafont, and MetaPost executables, run `make +To validate your TeX, Metafont, and MetaPost executables, run 'make triptrap'. This runs the trip, trap, and mptrap "torture tests". See -the files `triptrap/tripman.tex', `triptrap/trapman.tex', and -`triptrap/mptrap.readme' for detailed information and background on the +the files 'triptrap/tripman.tex', 'triptrap/trapman.tex', and +'triptrap/mptrap.readme' for detailed information and background on the tests. The differences between your executables' behavior and the standard @@ -346,30 +341,27 @@ values will show up on your terminal. The usual differences (these are all acceptable) are: * string usage and table sizes; - * glue set ratios; - - * `down4', `right4', and `y4' commands in DVItype output; - + * 'down4', 'right4', and 'y4' commands in DVItype output; * dates and times. -Any other differences are trouble. The most common culprit in the past +Any other differences are trouble. The most common culprit in the past has been compiler bugs, especially when optimizing. *Note TeX or Metafont failing: (kpathsea)TeX or Metafont failing. - The files `trip.diffs', `mftrap.diffs', and `mptrap.diffs' in the -`triptrap' directory show the standard diffs against the original + The files 'trip.diffs', 'mftrap.diffs', and 'mptrap.diffs' in the +'triptrap' directory show the standard diffs against the original output. If you diff your diffs against these files, you should come up clean. For example make trip >&mytrip.diffs diff triptrap/trip.diffs mytrip.diffs - To run the tests separately, use the targets `trip', `trap', and -`mptrap'. + To run the tests separately, use the targets 'trip', 'trap', and +'mptrap'. To run simple tests for all the programs as well as the torture -tests, run `make check'. You can compare the output to the distributed -file `tests/check.log' if you like. +tests, run 'make check'. You can compare the output to the distributed +file 'tests/check.log' if you like. File: web2c.info, Node: Runtime options, Prev: Triptrap, Up: Installation @@ -379,33 +371,32 @@ File: web2c.info, Node: Runtime options, Prev: Triptrap, Up: Installation Besides the configure- and compile-time options described in the previous sections, you can control a number of parameters (in -particular, array sizes) in the `texmf.cnf' runtime file read by -Kpathsea (*note Config files: (kpathsea)Config files.). +particular, array sizes) in the 'texmf.cnf' runtime file read by +Kpathsea (*note (kpathsea)Config files::). Rather than exhaustively listing them here, please see the last -section of the distributed `kpathsea/texmf.cnf'. Some of the more +section of the distributed 'kpathsea/texmf.cnf'. Some of the more interesting values: -`main_memory' +'main_memory' Total words of memory available, for TeX, Metafont, and MetaPost. Must remake the format file after changing. -`extra_mem_bot' +'extra_mem_bot' Extra space for "large" TeX data structures: boxes, glue, breakpoints, et al. If you use PiCTeX, you may well want to set this. -`font_mem_size' +'font_mem_size' Words of font info available for TeX; this is approximately the total size of all TFM files read. -`hash_extra' +'hash_extra' Additional space for the hash table of control sequence names. Approximately 10,000 control sequences can be stored in the main hash table; if you have a large book with numerous cross-references, this might not be enough, and thus you will want - to set `hash_extra'. - + to set 'hash_extra'. Of course, ideally all arrays would be dynamically expanded as necessary, so the only limiting factor would be the amount of swap space @@ -422,15 +413,15 @@ File: web2c.info, Node: Commonalities, Next: TeX, Prev: Installation, Up: To 3 Commonalities *************** -Many aspects of the TeX system are the same among more than one -program, so we describe all those pieces together, here. +Many aspects of the TeX system are the same among more than one program, +so we describe all those pieces together, here. * Menu: -* Option conventions:: -- or -, = or ` ' for values. -* Common options:: --help --version --verbose, and TeX/MF/MP options. +* Option conventions:: - or -, = or ' ' for values. +* Common options:: -help -version -verbose, and TeX/MF/MP options. * Path searching:: Features of the common path searching library. -* Output file location:: TEXMFOUTPUT allows output in places other than `.'. +* Output file location:: TEXMFOUTPUT allows output in places other than '.'. * Three programs:: TeX, Metafont, and MetaPost have a lot in common. @@ -440,20 +431,20 @@ File: web2c.info, Node: Option conventions, Next: Common options, Up: Commona ====================== To provide a clean and consistent behavior, we chose to have all these -programs use the GNU function `getopt_long_only' to parse command -lines. However, we do use in a restricted mode, where all the options -have to come before the rest of the arguments. +programs use the GNU function 'getopt_long_only' to parse command lines. +However, we do use in a restricted mode, where all the options have to +come before the rest of the arguments. As a result, you can: - * use `-' or `--' to start an option name; + * use '-' or '--' to start an option name; * use any unambiguous abbreviation for an option name; - * separate option names and values with either `=' or one or more + * separate option names and values with either '=' or one or more spaces; * use filenames that would otherwise look like options by putting - them after an option `--'. + them after an option '--'. By convention, non-option arguments, if specified, generally define the name of an input file, as documented for each program. @@ -461,10 +452,9 @@ the name of an input file, as documented for each program. If a particular option with a value is given more than once, it is the last value that counts. - For example, the following command line specifies the options `foo', -`bar', and `verbose'; gives the value `baz' to the `abc' option, and -the value `xyz' to the `quux' option; and specifies the filename -`-myfile-'. + For example, the following command line specifies the options 'foo', +'bar', and 'verbose'; gives the value 'baz' to the 'abc' option, and the +value 'xyz' to the 'quux' option; and specifies the filename '-myfile-'. -foo --bar -verb -abc=baz -quux karl --quux xyz -- -myfile- @@ -474,109 +464,108 @@ File: web2c.info, Node: Common options, Next: Path searching, Prev: Option co 3.2 Common options ================== -All of these programs accept the standard GNU `--help' and `--version' -options, and several programs accept `--verbose'. Rather than writing +All of these programs accept the standard GNU '--help' and '--version' +options, and several programs accept '--verbose'. Rather than writing identical descriptions for every program, they are described here. -`--help' - Print a usage message listing basic usage and all available - options to standard output, then exit successfully. +'--help' + Print a usage message listing basic usage and all available options + to standard output, then exit successfully. -`--verbose' +'--verbose' Print progress reports to standard output. -`--version' +'--version' Print the version number to standard output, then exit successfully. TeX, Metafont, and MetaPost have a number of additional options in common: -`-file-line-error' -`-no-file-line-error' - Change (or do not change) the way error messages are printed. The +'-file-line-error' +'-no-file-line-error' + Change (or do not change) the way error messages are printed. The alternate style looks like error messages from many compilers and is easier to parse for some editors that invoke TeX. This option - used to be called `-file-line-error-style'. - -`-fmt=DUMPNAME' -`-base=DUMPNAME' -`-mem=DUMPNAME' - Use DUMPNAME instead of the program name or a `%&' line to - determine the name of the memory dump file read (`fmt' for TeX, - `base' for Metafont, `mem' for MetaPost). *Note Memory dumps::. - Also sets the program name to DUMPNAME if no `-progname' option - was given. - -`-halt-on-error' + used to be called '-file-line-error-style'. + +'-fmt=DUMPNAME' +'-base=DUMPNAME' +'-mem=DUMPNAME' + Use DUMPNAME instead of the program name or a '%&' line to + determine the name of the memory dump file read ('fmt' for TeX, + 'base' for Metafont, 'mem' for MetaPost). *Note Memory dumps::. + Also sets the program name to DUMPNAME if no '-progname' option was + given. + +'-halt-on-error' Stop processing and exit when an error occurs, as opposed to the normal process of trying to recover and continue. -`-ini' +'-ini' Enable the "initial" form of the program (*note Initial and - virgin::). This is implicitly set if the program name is `initex' - resp. `inimf'. + virgin::). This is implicitly set if the program name is 'initex' + resp. 'inimf'. -`-interaction=STRING' - Set the interaction mode from the command line. The STRING must - be one of `batchmode', `nonstopmode', `scrollmode', or - `errorstopmode'. +'-interaction=STRING' + Set the interaction mode from the command line. The STRING must be + one of 'batchmode', 'nonstopmode', 'scrollmode', or + 'errorstopmode'. -`-jobname=STRING' - Set the job name to STRING, instead of deriving it from the name - of the input file. +'-jobname=STRING' + Set the job name to STRING, instead of deriving it from the name of + the input file. -`-kpathsea-debug=NUMBER' +'-kpathsea-debug=NUMBER' Set path searching debugging flags according to the bits of NUMBER - (*note Debugging: (kpathsea)Debugging.). You can also specify - this in `KPATHSEA_DEBUG' environment variable (for all Web2c - programs). (The command line value overrides.) The most useful - value is `-1', to get all available output. + (*note (kpathsea)Debugging::). You can also specify this in + 'KPATHSEA_DEBUG' environment variable (for all Web2c programs). + (The command line value overrides.) The most useful value is '-1', + to get all available output. -`-output-directory=DIRNAME' +'-output-directory=DIRNAME' Specify the directory DIRNAME to which output files are written. Also look for input files in DIRNAME first, before looking along the normal search path. *Note Output file location::. -`-parse-first-line' -`-no-parse-first-line' +'-parse-first-line' +'-no-parse-first-line' Check or disable checking whether the first line of the main input - file starts with `%&', and parse it if it does. This line can be + file starts with '%&', and parse it if it does. This line can be used specify the format and/or a TCX file. -`-progname=STRING' +'-progname=STRING' Set program (and memory dump) name to STRING. This may affect the - search paths and other values used (*note Config files: - (kpathsea)Config files.). Using this option is equivalent to - making a link named STRING to the binary and then invoking the - binary under that name. *Note Memory dumps::. + search paths and other values used (*note (kpathsea)Config + files::). Using this option is equivalent to making a link named + STRING to the binary and then invoking the binary under that name. + *Note Memory dumps::. -`-recorder' +'-recorder' Enable the filename recorder. This makes the program save a list - of the opened files into a file with (by default) extension - `.fls'. For Aleph, this option is always on, and the file has - extension `.ofl'. + of the opened files into a file with (by default) extension '.fls'. + For Aleph, this option is always on, and the file has extension + '.ofl'. - Ordinarily, the `.fls' file is written to the same location as the - `.log' file, for example, respecting `-output-directory' if it is + Ordinarily, the '.fls' file is written to the same location as the + '.log' file, for example, respecting '-output-directory' if it is given (*note Output file location::). However, if TeX processing - is done on the command line (or in response to the `**' prompt), - the `.fls' might be written to the current directory, or include - an integer (the current pid), as in `texput1234.fls'. You can use - `-jobname' to explicitly set the basename. + is done on the command line (or in response to the '**' prompt), + the '.fls' might be written to the current directory, or include an + integer (the current pid), as in 'texput1234.fls'. You can use + '-jobname' to explicitly set the basename. -`-translate-file=TCXFILE' +'-translate-file=TCXFILE' Use TCXFILE to define which characters are printable and translations between the internal and external character sets. - Moreover, TCXFILE can be explicitly declared in the first line of - the main input file `%& -translate-file=TCXFILE'. This is the + Moreover, TCXFILE can be explicitly declared in the first line of + the main input file '%& -translate-file=TCXFILE'. This is the recommended method for portability reasons. *Note TCX files::. -`-8bit' +'-8bit' This option specifies that by default all characters should be - considered printable. If `-translate-file' was given as well, - then the TCX file may mark characters as non-printable. - + considered printable. If '-translate-file' was given as well, then + the TCX file may mark characters as non-printable. File: web2c.info, Node: Path searching, Next: Output file location, Prev: Common options, Up: Commonalities @@ -588,15 +577,14 @@ All of the Web2c programs, including TeX, which do path searching use the Kpathsea routines to do so. The precise names of the environment and configuration file variables which get searched for particular file formatted are therefore documented in the Kpathsea manual (*note -Supported file formats: (kpathsea)Supported file formats.). Reading -`texmf.cnf' (*note Config files: (kpathsea)Config files.), invoking -`mktex...' scripts (*note mktex scripts: (kpathsea)mktex scripts.), and -so on are all handled by Kpathsea. +(kpathsea)Supported file formats::). Reading 'texmf.cnf' (*note +(kpathsea)Config files::), invoking 'mktex...' scripts (*note +(kpathsea)mktex scripts::), and so on are all handled by Kpathsea. The programs which read fonts make use of another Kpathsea feature: -`texfonts.map', which allows arbitrary aliases for the actual names of -font files; for example, `Times-Roman' for `ptmr8r.tfm'. The -distributed (and installed by default) `texfonts.map' includes aliases +'texfonts.map', which allows arbitrary aliases for the actual names of +font files; for example, 'Times-Roman' for 'ptmr8r.tfm'. The +distributed (and installed by default) 'texfonts.map' includes aliases for many widely available PostScript fonts by their PostScript names. @@ -610,24 +598,24 @@ Namely, they are placed in the directory current when the program is run, regardless of any input file location; or, in a few cases, output is to standard output. - For example, if you run `tex /tmp/foo', for example, the output will -be in `./foo.dvi' and `./foo.log', not `/tmp/foo.dvi' and -`/tmp/foo.log'. + For example, if you run 'tex /tmp/foo', for example, the output will +be in './foo.dvi' and './foo.log', not '/tmp/foo.dvi' and +'/tmp/foo.log'. - You can use the `-output-directory' option to cause all output files -that would normally be written in the current directory to be written -in the specified directory instead. *Note Common options::. + You can use the '-output-directory' option to cause all output files +that would normally be written in the current directory to be written in +the specified directory instead. *Note Common options::. - If the current directory is not writable, and `-output-directory' is + If the current directory is not writable, and '-output-directory' is not specified, the main programs (TeX, Metafont, MetaPost, and BibTeX) make an exception: if the config file or environment variable value -`TEXMFOUTPUT' is set (it is not by default), output files are written -to the directory specified. +'TEXMFOUTPUT' is set (it is not by default), output files are written to +the directory specified. - `TEXMFOUTPUT' is also checked for input files, as TeX often -generates files that need to be subsequently read; for input, no -suffixes (such as `.tex') are added by default and no exhaustive path -searching is done, the input name is simply checked as given. + 'TEXMFOUTPUT' is also checked for input files, as TeX often generates +files that need to be subsequently read; for input, no suffixes (such as +'.tex') are added by default and no exhaustive path searching is done, +the input name is simply checked as given. File: web2c.info, Node: Three programs, Prev: Output file location, Up: Commonalities @@ -645,7 +633,7 @@ Runtime options::. * Initial and virgin:: Making memory dumps vs. production runs. * Memory dumps:: .fmt/.base files for fast startup. -* Editor invocation:: The `e' response at errors. +* Editor invocation:: The 'e' response at errors. * \input filenames:: ~ and $ expansion in TeX/MF/MP. @@ -658,19 +646,17 @@ The TeX and Metafont programs each have two main variants, called "initial" and "virgin". MetaPost no longer makes this distinction. The initial form is enabled if: - 1. the `-ini' option was specified; or - - 2. the program name is `initex' resp. `inimf'; or - - 3. the first line of the main input file is `%&ini'; - otherwise, the virgin form is used. + 1. the '-ini' option was specified; or + 2. the program name is 'initex' resp. 'inimf'; or + 3. the first line of the main input file is '%&ini'; +otherwise, the virgin form is used. The "virgin" form is the one generally invoked for production use. The first thing it does is read a memory dump (*note Determining the memory dump to use::), and then proceeds on with the main job. - The "initial" form is generally used only to create memory dumps -(see the next section). It starts up more slowly than the virgin form, + The "initial" form is generally used only to create memory dumps (see +the next section). It starts up more slowly than the virgin form, because it must do lengthy initializations that are encapsulated in the memory dump file. @@ -700,7 +686,7 @@ The programs all create memory dumps in slightly idiosyncratic (thought substantially similar) way, so we describe the details in separate sections (references below). The basic idea is to run the initial version of the program (*note Initial and virgin::), read the source -file to define the macros, and then execute the `\dump' primitive. +file to define the macros, and then execute the '\dump' primitive. Also, each program uses a different filename extension for its memory dumps, since although they are completely analogous they are not @@ -710,10 +696,10 @@ interchangeable (TeX cannot read a Metafont memory dump, for example). creating memory dumps: TeX - (`.fmt') *Note Initial TeX: Initial TeX. + ('.fmt') *Note Initial TeX: Initial TeX. Metafont - (`.base') *Note Initial Metafont::. + ('.base') *Note Initial Metafont::. When making memory dumps, the programs read environment variables and configuration files for path searching and other values as usual. If @@ -731,31 +717,29 @@ The virgin form (*note Initial and virgin::) of each program always reads a memory dump before processing normal source input. All three programs determine the memory dump to use in the same way: - 1. If the first non-option command-line argument begins with `&', the + 1. If the first non-option command-line argument begins with '&', the program uses the remainder of that argument as the memory dump - name. For example, running `tex \&super' reads `super.fmt'. (The - backslash protects the `&' against interpretation by the shell.) + name. For example, running 'tex \&super' reads 'super.fmt'. (The + backslash protects the '&' against interpretation by the shell.) - 2. If the `-fmt' resp. `-base' option is specified, its value is used. + 2. If the '-fmt' resp. '-base' option is specified, its value is used. - 3. If the `-progname' option is specified, its value is used. + 3. If the '-progname' option is specified, its value is used. 4. If the first line of the main input file (which must be specified - on the command line, not in response to `**') is `%&DUMP', and - DUMP is an existing memory dump of the appropriate type, DUMP is - used. + on the command line, not in response to '**') is '%&DUMP', and DUMP + is an existing memory dump of the appropriate type, DUMP is used. The first line of the main input file can also specify which character translation file is to be used: - `%&-translate-file=TCXFILE' (*note TCX files::). + '%&-translate-file=TCXFILE' (*note TCX files::). - These two roles can be combined: `%&DUMP -translate-file=TCXFILE'. + These two roles can be combined: '%&DUMP -translate-file=TCXFILE'. If this is done, the name of the dump must be given first. 5. Otherwise, the program uses the program invocation name, most - commonly `tex' resp. `mf'. For example, if `latex' is a link to - `tex', and the user runs `latex foo', `latex.fmt' will be used. - + commonly 'tex' resp. 'mf'. For example, if 'latex' is a link to + 'tex', and the user runs 'latex foo', 'latex.fmt' will be used. File: web2c.info, Node: Hardware and memory dumps, Prev: Determining the memory dump to use, Up: Memory dumps @@ -765,10 +749,10 @@ File: web2c.info, Node: Hardware and memory dumps, Prev: Determining the memor By default, memory dump files are generally sharable between architectures of different types; specifically, on machines of different -endianness (*note Byte order: (libc)Byte order.). (This is a feature -of the Web2c implementation, and is not true of all TeX -implementations.) If you specify `--disable-dump-share' to -`configure', however, memory dumps will be endian-dependent. +endianness (*note (libc)Byte order::). (This is a feature of the Web2c +implementation, and is not true of all TeX implementations.) If you +specify '--disable-dump-share' to 'configure', however, memory dumps +will be endian-dependent. The reason to do this is speed. To achieve endian-independence, the reading of memory dumps on LittleEndian architectures, such as PC's and @@ -779,22 +763,22 @@ outweighs the speed loss. But if you're installing Web2c for use on LittleEndian machines only, perhaps on a PC being used only by you, you may wish to get maximum speed. - TeXnically, even without `--disable-dump-share', sharing of `.fmt' + TeXnically, even without '--disable-dump-share', sharing of '.fmt' files cannot be guaranteed to work. Floating-point values are always written in native format, and hence will generally not be readable across platforms. Fortunately, TeX uses floating point only to represent glue ratios, and all common formats (plain, LaTeX, AMSTeX, -...) do not do any glue setting at `.fmt'-creation time. Metafont does +...) do not do any glue setting at '.fmt'-creation time. Metafont does not use floating point in any dumped value at all. Incidentally, different memory dump files will never compare equal byte-for-byte, because the program always dumps the current date and -time. So don't be alarmed by just a few bytes difference. +time. So don't be alarmed by just a few bytes difference. If you don't know what endianness your machine is, and you're -curious, here is a little C program to tell you. (The `configure' script -contains a similar program.) This is from the book `C: A Reference -Manual', by Samuel P. Harbison and Guy L. Steele Jr. (*note +curious, here is a little C program to tell you. (The 'configure' +script contains a similar program.) This is from the book 'C: A +Reference Manual', by Samuel P. Harbison and Guy L. Steele Jr. (*note References::). main () @@ -824,36 +808,35 @@ File: web2c.info, Node: Editor invocation, Next: \input filenames, Prev: Memo TeX, Metafont, and MetaPost all (by default) stop and ask for user intervention at an error. If the input came from a file, and the user -responds with `e' or `E', the program invokes an editor. +responds with 'e' or 'E', the program invokes an editor. - Specifying `--with-editor=CMD' to `configure' sets the default -editor command string to CMD. The environment variables/configuration -values `TEXEDIT', `MFEDIT', and `MPEDIT' (respectively) override this. -If `--with-editor' is not specified, the default is `vi +%d %s' on -Unix, and an invocation of the TeXworks editor on Windows. (See -`texmf.cnf' for the precise values.) + Specifying '--with-editor=CMD' to 'configure' sets the default editor +command string to CMD. The environment variables/configuration values +'TEXEDIT', 'MFEDIT', and 'MPEDIT' (respectively) override this. If +'--with-editor' is not specified, the default is 'vi +%d %s' on Unix, +and an invocation of the TeXworks editor on Windows. (See 'texmf.cnf' +for the precise values.) - In this string, `%d' is replaced by the line number of the error, -and `%s' is replaced by the name of the current input file. + In this string, '%d' is replaced by the line number of the error, and +'%s' is replaced by the name of the current input file. File: web2c.info, Node: \input filenames, Prev: Editor invocation, Up: Three programs -3.5.4 `\input' filenames +3.5.4 '\input' filenames ------------------------ TeX, Metafont, and MetaPost source programs can all read other source -files with the `\input' (TeX) and `input' (MF and MP) primitives: +files with the '\input' (TeX) and 'input' (MF and MP) primitives: \input NAME % in TeX The file NAME can always be terminated with whitespace; for Metafont -and MetaPost, the statement terminator `;' also works. (LaTeX and -other macro packages provide other interfaces to `\input' that allow -different notation; here we are concerned only with the primitive -operation.) +and MetaPost, the statement terminator ';' also works. (LaTeX and other +macro packages provide other interfaces to '\input' that allow different +notation; here we are concerned only with the primitive operation.) As of Web2c version 7.5.3, double-quote characters can be used to -include spaces or other special cases. In typical use, the `"' +include spaces or other special cases. In typical use, the '"' characters surround the entire filename: \input "filename with spaces" @@ -868,40 +851,39 @@ thus This quoting mechanism comes into play _after_ TeX has tokenized and expanded the input. So, multiple spaces and tabs may be seen as a -single space, active characters such as `~' are expanded first, and so +single space, active characters such as '~' are expanded first, and so on. (See below.) - On the other hand, various C library routines and Unix itself use -the null byte (character code zero, ASCII NUL) to terminate strings. So -filenames in Web2c cannot contain nulls, even though TeX itself does -not treat NUL specially. In addition, some older Unix variants do not -allow eight-bit characters (codes 128-255) in filenames. + On the other hand, various C library routines and Unix itself use the +null byte (character code zero, ASCII NUL) to terminate strings. So +filenames in Web2c cannot contain nulls, even though TeX itself does not +treat NUL specially. In addition, some older Unix variants do not allow +eight-bit characters (codes 128-255) in filenames. For maximal portability of your document across systems, use only the -characters `a'-`z', `0'-`9', and `.', and restrict your filenames to at +characters 'a'-'z', '0'-'9', and '.', and restrict your filenames to at most eight characters (not including the extension), and at most a three-character extension. Do not use anything but simple filenames, since directory separators vary among systems; instead, add the necessary directories to the appropriate search path. - Finally, the present Web2c implementation does `~' and `$' expansion + Finally, the present Web2c implementation does '~' and '$' expansion on NAME, unlike Knuth's original implementation and older versions of Web2c. Thus: \input ~jsmith/$foo.bar will dereference the environment variable or Kpathsea config file -value `foo' and read that file extended with `.bar' in user `jsmith''s -home directory. You can also use braces, as in `${foo}bar', if you -want to follow the variable name with a letter, numeral, or `_'. +value 'foo' and read that file extended with '.bar' in user 'jsmith''s +home directory. You can also use braces, as in '${foo}bar', if you want +to follow the variable name with a letter, numeral, or '_'. (So another way to get a program to read a filename containing whitespace is to define an environment variable and dereference it.) In all the common TeX formats (plain TeX, LaTeX, AMSTeX), the -characters `~' and `$' have special category codes, so to actually use -these in a document you have to change their catcodes or use `\string'. -(The result is unportable anyway, see the suggestions above.) The -place where they are most likely to be useful is when typing -interactively. +characters '~' and '$' have special category codes, so to actually use +these in a document you have to change their catcodes or use '\string'. +(The result is unportable anyway, see the suggestions above.) The place +where they are most likely to be useful is when typing interactively. File: web2c.info, Node: TeX, Next: Metafont, Prev: Commonalities, Up: Top @@ -917,9 +899,8 @@ complex mathematics, as well as most ordinary text typesetting. device-independent (DVI) file (and then translate the DVI file to the commands for a particular output device). This approach has both considerable disadvantages and considerable advantages. For a complete -description of the TeX language, see `The TeXbook' (*note -References::). Many other books on TeX, introductory and otherwise, -are available. +description of the TeX language, see 'The TeXbook' (*note References::). +Many other books on TeX, introductory and otherwise, are available. * Menu: @@ -934,200 +915,193 @@ are available. File: web2c.info, Node: tex invocation, Next: Initial TeX, Up: TeX -4.1 `tex' invocation +4.1 'tex' invocation ==================== -TeX (usually invoked as `tex') formats the given text and commands, and -outputs a corresponding device-independent representation of the -typeset document. This section merely describes the options available -in the Web2c implementation. For a complete description of the TeX -typesetting language, see `The TeXbook' (*note References::). +TeX (usually invoked as 'tex') formats the given text and commands, and +outputs a corresponding device-independent representation of the typeset +document. This section merely describes the options available in the +Web2c implementation. For a complete description of the TeX typesetting +language, see 'The TeXbook' (*note References::). - TeX, Metafont, and MetaPost process the command line (described -here) and determine their memory dump (fmt) file in the same way (*note -Memory dumps::). Synopses: + TeX, Metafont, and MetaPost process the command line (described here) +and determine their memory dump (fmt) file in the same way (*note Memory +dumps::). Synopses: tex [OPTION]... [TEXNAME[.tex]] [TEX-COMMANDS] tex [OPTION]... \FIRST-LINE tex [OPTION]... &FMT ARGS TeX searches the usual places for the main input file TEXNAME (*note -Supported file formats: (kpathsea)Supported file formats.), extending -TEXNAME with `.tex' if necessary. To see all the relevant paths, set -the environment variable `KPATHSEA_DEBUG' to `-1' before running the -program. +(kpathsea)Supported file formats::), extending TEXNAME with '.tex' if +necessary. To see all the relevant paths, set the environment variable +'KPATHSEA_DEBUG' to '-1' before running the program. After TEXNAME is read, TeX processes any remaining TEX-COMMANDS on the command line as regular TeX input. Also, if the first non-option -argument begins with a TeX escape character (usually `\'), TeX -processes all non-option command-line arguments as a line of regular -TeX input. +argument begins with a TeX escape character (usually '\'), TeX processes +all non-option command-line arguments as a line of regular TeX input. If no arguments or options are specified, TeX prompts for an input -file name with `**'. +file name with '**'. - TeX writes the main DVI output to the file `BASETEXNAME.dvi', where -BASETEXNAME is the basename of TEXNAME, or `texput' if no input file -was specified. A DVI file is a device-independent binary -representation of your TeX document. The idea is that after running -TeX, you translate the DVI file using a separate program to the -commands for a particular output device, such as a PostScript printer -(*note Introduction: (dvips)Top.) or an X Window System display (see -xdvi(1)). + TeX writes the main DVI output to the file 'BASETEXNAME.dvi', where +BASETEXNAME is the basename of TEXNAME, or 'texput' if no input file was +specified. A DVI file is a device-independent binary representation of +your TeX document. The idea is that after running TeX, you translate +the DVI file using a separate program to the commands for a particular +output device, such as a PostScript printer (*note Introduction: +(dvips)Top.) or an X Window System display (see xdvi(1)). TeX also reads TFM files for any fonts you load in your document with -the `\font' primitive. By default, it runs an external program named -`mktextfm' to create any nonexistent TFM files. You can disable this -at configure-time or runtime (*note mktex configuration: -(kpathsea)mktex configuration.). This is enabled mostly for the sake -of the EC fonts, which can be generated at any size. +the '\font' primitive. By default, it runs an external program named +'mktextfm' to create any nonexistent TFM files. You can disable this at +configure-time or runtime (*note (kpathsea)mktex configuration::). This +is enabled mostly for the sake of the EC fonts, which can be generated +at any size. - TeX can write output files, via the `\openout' primitive; this opens + TeX can write output files, via the '\openout' primitive; this opens a security hole vulnerable to Trojan horse attack: an unwitting user -could run a TeX program that overwrites, say, `~/.rhosts'. (MetaPost -has a `write' primitive with similar implications). To alleviate this -and similar problems the functions `kpathsea_out_name_ok' and -`kpathsea_in_name_ok' from the Kpathse library (*note Calling sequence: -(kpathsea)Calling sequence.) are used to determine if a given filename -is acceptable to be opened for output or input, depending on the -setting of the configuration variables `openout_any' and `openin_any': -`a' (for "any", the default for `openin_any'), `r' (for "restricted"), -or `p' (for "paranoid", the default for `openout_any'). - - In any case, all `\openout' filenames are recorded in the log file, +could run a TeX program that overwrites, say, '~/.rhosts'. (MetaPost +has a 'write' primitive with similar implications). To alleviate this +and similar problems the functions 'kpathsea_out_name_ok' and +'kpathsea_in_name_ok' from the Kpathse library (*note (kpathsea)Calling +sequence::) are used to determine if a given filename is acceptable to +be opened for output or input, depending on the setting of the +configuration variables 'openout_any' and 'openin_any': 'a' (for "any", +the default for 'openin_any'), 'r' (for "restricted"), or 'p' (for +"paranoid", the default for 'openout_any'). + + In any case, all '\openout' filenames are recorded in the log file, except those opened on the first line of input, which is processed when the log file has not yet been opened. The program accepts the following options, as well as the standard -`-help' and `-version' (*note Common options::): -`-enc' -`-[no]-file-line-error' -`-fmt=FMTNAME' -`-halt-on-error' -`-ini' -`-interaction=STRING' -`-ipc' -`-ipc-start' -`-jobname=STRING' -`-kpathsea-debug=NUMBER' -`-[no]parse-first-line' -`-output-directory' -`-progname=STRING' -`-recorder' -`-translate-file=TCXFILE' -`-8bit' +'-help' and '-version' (*note Common options::): +'-enc' +'-[no]-file-line-error' +'-fmt=FMTNAME' +'-halt-on-error' +'-ini' +'-interaction=STRING' +'-ipc' +'-ipc-start' +'-jobname=STRING' +'-kpathsea-debug=NUMBER' +'-[no]parse-first-line' +'-output-directory' +'-progname=STRING' +'-recorder' +'-translate-file=TCXFILE' +'-8bit' These options are common to TeX, Metafont, and MetaPost. *Note Common options::. -`-enc' - Enable encTeX extensions, such as `\mubyte'. This can be used to +'-enc' + Enable encTeX extensions, such as '\mubyte'. This can be used to support Unicode UTF-8 input encoding. See - `http://www.olsak.net/enctex.html'. + <http://www.olsak.net/enctex.html>. -`-ipc' -`-ipc-start' +'-ipc' +'-ipc-start' With either option, TeX writes its DVI output to a socket as well - as to the usual `.dvi' file. With `-ipc-start', TeX also opens a + as to the usual '.dvi' file. With '-ipc-start', TeX also opens a server program at the other end to read the output. *Note IPC and TeX: IPC and TeX. - These options are available only if the `--enable-ipc' option was - specified to `configure' during installation of Web2c. + These options are available only if the '--enable-ipc' option was + specified to 'configure' during installation of Web2c. -`-mktex=FILETYPE' -`-no-mktex=FILETYPE' - Turn on or off the `mktex' script associated with FILETYPE. For - TeX proper, FILETYPE can only be `tex' and `tfm', but for pdfTeX - and luaTeX, it can also be `pk'. +'-mktex=FILETYPE' +'-no-mktex=FILETYPE' + Turn on or off the 'mktex' script associated with FILETYPE. For + TeX proper, FILETYPE can only be 'tex' and 'tfm', but for pdfTeX + and luaTeX, it can also be 'pk'. -`-mltex' - If we are `INITEX' (*note Initial and virgin::), enable MLTeX - extensions such as `\charsubdef'. Implicitly set if the program - name is `mltex'. *Note MLTeX: MLTeX. +'-mltex' + If we are 'INITEX' (*note Initial and virgin::), enable MLTeX + extensions such as '\charsubdef'. Implicitly set if the program + name is 'mltex'. *Note MLTeX: MLTeX. -`-output-comment=STRING' +'-output-comment=STRING' Use STRING as the DVI file comment. Ordinarily, this comment records the date and time of the TeX run, but if you are doing regression testing, you may not want the DVI file to have this spurious difference. This is also taken from the environment - variable and config file value `output_comment'. + variable and config file value 'output_comment'. -`-shell-escape' -`-no-shell-escape' -`-shell-restricted' +'-shell-escape' +'-no-shell-escape' +'-shell-restricted' Enable, or disable, or enable with restrictions the - `\write18{SHELL-COMMAND}' feature for external executing shell + '\write18{SHELL-COMMAND}' feature for external executing shell commands. *Note Shell escapes::. -`-enable-write18' -`-disable-write18' - Synonyms for `-shell-escape' and `-no-shell-escape', for +'-enable-write18' +'-disable-write18' + Synonyms for '-shell-escape' and '-no-shell-escape', for compatibility with MiKTeX. (MiKTeX also accepts both pairs of options.) *Note Shell escapes::. -`-src-specials' -`-src-specials=STRING' +'-src-specials' +'-src-specials=STRING' This option makes TeX output specific source information using - `\special' commands in the DVI file. These `\special' track the + '\special' commands in the DVI file. These '\special' track the current file name and line number. - Using the first form of this option, the `\special' commands are + Using the first form of this option, the '\special' commands are inserted automatically. In the second form of the option, STRING is a comma separated list - of the following values: `cr', `display', `hbox', `math', `par', - `parend', `vbox'. You can use this list to specify where you want - TeX to output such commands. For example, `-src-specials=cr,math' + of the following values: 'cr', 'display', 'hbox', 'math', 'par', + 'parend', 'vbox'. You can use this list to specify where you want + TeX to output such commands. For example, '-src-specials=cr,math' will output source information every line and every math formula. - These commands can be used with the appropriate DVI viewer and - text editor to switch from the current position in the editor to - the same position in the viewer and back from the viewer to the - editor. + These commands can be used with the appropriate DVI viewer and text + editor to switch from the current position in the editor to the + same position in the viewer and back from the viewer to the editor. - This option works by inserting `\special' commands into the token + This option works by inserting '\special' commands into the token stream, and thus in principle these additional tokens can be - recovered or seen by the tricky-enough macros. If you run across - a case, let us know, because this counts as a bug. However, such - bugs are very hard to fix, requiring significant changes to TeX, - so please don't count on it. + recovered or seen by the tricky-enough macros. If you run across a + case, let us know, because this counts as a bug. However, such + bugs are very hard to fix, requiring significant changes to TeX, so + please don't count on it. - Redefining `\special' will not affect the functioning of this - option. The commands inserted into the token stream are - hard-coded to always use the `\special' primitive. + Redefining '\special' will not affect the functioning of this + option. The commands inserted into the token stream are hard-coded + to always use the '\special' primitive. TeX does not pass the trip test when this option is enabled. - File: web2c.info, Node: Initial TeX, Next: Formats, Prev: tex invocation, Up: TeX 4.2 Initial TeX =============== -The "initial" form of TeX is invoked by `tex -ini'. It does lengthy -initializations avoided by the "virgin" (`vir') form, so as to be -capable of dumping `.fmt' files (*note Memory dumps::). For a detailed -comparison of virgin and initial forms, *note Initial and virgin::. In -past releases, a separate program `initex' was installed to invoke the -initial form, but this is no longer the case. +The "initial" form of TeX is invoked by 'tex -ini'. It does lengthy +initializations avoided by the "virgin" ('vir') form, so as to be +capable of dumping '.fmt' files (*note Memory dumps::). For a detailed +comparison of virgin and initial forms, *note Initial and virgin::. For a list of options and other information, *note tex invocation::. Unlike Metafont and MetaPost, many format files are commonly used with TeX. The standard one implementing the features described in the -`TeXbook' is `plain.fmt', also known as `tex.fmt' (again, *note Memory +'TeXbook' is 'plain.fmt', also known as 'tex.fmt' (again, *note Memory dumps::). It is created by default during installation, but you can -also do so by hand if necessary (e.g., if an update to `plain.tex' is +also do so by hand if necessary (e.g., if an update to 'plain.tex' is issued): tex -ini '\input plain \dump' - (The quotes prevent interpretation of the backslashes from the -shell.) Then install the resulting `plain.fmt' in `$(fmtdir)' -(`/usr/local/share/texmf/web2c' by default), and link `tex.fmt' to it. +(The quotes prevent interpretation of the backslashes from the shell.) +Then install the resulting 'plain.fmt' in '$(fmtdir)' +('/usr/local/share/texmf/web2c' by default), and link 'tex.fmt' to it. The necessary invocation for generating a format file differs for each format, so instructions that come with the format should explain. -The top-level `web2c' Makefile has targets for making most common +The top-level 'web2c' Makefile has targets for making most common formats: plain latex amstex texinfo eplain. *Note Formats::, for more details on TeX formats. @@ -1138,73 +1112,72 @@ File: web2c.info, Node: Formats, Next: Languages and hyphenation, Prev: Initi =========== TeX "formats" are large collections of macros, often dumped into a -`.fmt' file (*note Memory dumps::) by `tex -ini' (*note Initial TeX::). +'.fmt' file (*note Memory dumps::) by 'tex -ini' (*note Initial TeX::). A number of formats are in reasonably widespread use, and the Web2c Makefile has targets to make the versions current at the time of release. You can change which formats are automatically built by -setting the `fmts' Make variable; by default, only the `plain' and -`latex' formats are made. +setting the 'fmts' Make variable; by default, only the 'plain' and +'latex' formats are made. You can get the latest versions of most of these formats from the -CTAN archives in subdirectories of `CTAN:/macros' (for CTAN info, *note -unixtex.ftp: (kpathsea)unixtex.ftp.). The archive -`ftp://ftp.tug.org/tex/lib.tar.gz' (also available from CTAN) contains +CTAN archives in subdirectories of 'CTAN:/macros' (for CTAN info, *note +(kpathsea)unixtex.ftp::). The archive +<ftp://ftp.tug.org/tex/lib.tar.gz> (also available from CTAN) contains most of these formats (although perhaps not the absolute latest version), among other things. latex - The most widely used format. The current release is named `LaTeX + The most widely used format. The current release is named 'LaTeX 2e'; new versions are released approximately every six months, with - patches issued as needed. The old release was called `LaTeX 2.09', + patches issued as needed. The old release was called 'LaTeX 2.09', and is no longer maintained or supported. LaTeX attempts to provide generic markup instructions, such as "emphasize", instead of specific typesetting instructions, such as "use the 10pt Computer Modern italic font". The LaTeX home page: - `http://www.latex-project.org'. + <http://www.latex-project.org>. context ConTeXt is an independent macro package which has a basic document structuring approach similar to LaTeX. It also supports creating interactive PDF files and has integrated MetaPost support, among many other interesting features. The ConTeXt home page: - `http://www.pragma-ade.com'. + <http://www.pragma-ade.com>. amstex The official typesetting system of the American Mathematical Society. Like LaTeX, it encourages generic markup commands. The AMS also provides many LaTeX package for authors who prefer LaTeX. Taken together, they are used to produce nearly all AMS - publications, e.g., `Mathematical Reviews'. The AMSTeX home page: - `http://www.ams.org/tex'. + publications, e.g., 'Mathematical Reviews'. The AMSTeX home page: + <http://www.ams.org/tex>. texinfo The documentation system developed and maintained by the Free Software Foundation for their software manuals. It can be - automatically converted into plain text, a machine-readable - on-line format called `info', HTML, etc. The Texinfo home page: - `http://www.gnu.org/software/texinfo'. + automatically converted into plain text, a machine-readable on-line + format called 'info', HTML, etc. The Texinfo home page: + <http://www.gnu.org/software/texinfo>. eplain The "expanded plain" format provides various common features (e.g., symbolic cross-referencing, tables of contents, indexing, citations using BibTeX), for those authors who prefer to handle their own high-level formatting. The Eplain home page: - `http://www.tug.org/eplain'. + <http://www.tug.org/eplain>. slitex An obsolete LaTeX 2.09 format for making slides. It is replaced by - the `slides' document class, along with the `beamer', `texpower', + the 'slides' document class, along with the 'beamer', 'texpower', and other packages. - File: web2c.info, Node: Languages and hyphenation, Next: Shell escapes, Prev: Formats, Up: TeX 4.4 Languages and hyphenation ============================= -TeX supports most natural languages. See also *note TeX extensions: -TeX extensions. +TeX supports most natural languages. See also *note TeX extensions: TeX +extensions. * Menu: @@ -1213,34 +1186,34 @@ TeX extensions. * TCX files:: Support for different character sets & fonts. -File: web2c.info, Node: MLTeX, Next: patgen invocation, Up: Languages and hyphenation +File: web2c.info, Node: MLTeX, Next: TCX files, Up: Languages and hyphenation 4.4.1 MLTeX: Multi-lingual TeX ------------------------------ -Multi-lingual TeX (`mltex') is an extension of TeX originally written -by Michael Ferguson and now updated and maintained by Bernd Raichle. -It allows the use of non-existing glyphs in a font by declaring glyph +Multi-lingual TeX ('mltex') is an extension of TeX originally written by +Michael Ferguson and now updated and maintained by Bernd Raichle. It +allows the use of non-existing glyphs in a font by declaring glyph substitutions. These are restricted to substitutions of an accented character glyph, which need not be defined in the current font, by its -appropriate `\accent' construction using a base and accent character -glyph, which do have to exist in the current font. This substitution -is automatically done behind the scenes, if necessary, and thus MLTeX +appropriate '\accent' construction using a base and accent character +glyph, which do have to exist in the current font. This substitution is +automatically done behind the scenes, if necessary, and thus MLTeX additionally supports hyphenation of words containing an accented character glyph for fonts missing this glyph (e.g., Computer Modern). Standard TeX suppresses hyphenation in this case. - MLTeX works at `.fmt'-creation time: the basic idea is to specify -the `-mltex' option to TeX when you `\dump' a format. Then, when you -subsequently invoke TeX and read that `.fmt' file, the MLTeX features + MLTeX works at '.fmt'-creation time: the basic idea is to specify the +'-mltex' option to TeX when you '\dump' a format. Then, when you +subsequently invoke TeX and read that '.fmt' file, the MLTeX features described below will be enabled. - Generally, you use special macro files to create an MLTeX `.fmt' + Generally, you use special macro files to create an MLTeX '.fmt' file. The sections below describe the two new primitives that MLTeX -defines. Aside from these, MLTeX is completely compatible with -standard TeX. +defines. Aside from these, MLTeX is completely compatible with standard +TeX. * Menu: @@ -1250,70 +1223,69 @@ standard TeX. File: web2c.info, Node: \charsubdef, Next: \tracingcharsubdef, Up: MLTeX -4.4.1.1 `\charsubdef': Character substitutions +4.4.1.1 '\charsubdef': Character substitutions .............................................. -The most important primitive MLTeX adds is `\charsubdef', used in a way -reminiscent of `\chardef': +The most important primitive MLTeX adds is '\charsubdef', used in a way +reminiscent of '\chardef': \charsubdef COMPOSITE [=] ACCENT BASE - Each of COMPOSITE, ACCENT, and BASE are font glyph numbers, -expressed in the usual TeX syntax: `\e symbolically, '145 for octal, -"65 for hex, 101 for decimal. + Each of COMPOSITE, ACCENT, and BASE are font glyph numbers, expressed +in the usual TeX syntax: `\e symbolically, '145 for octal, "65 for hex, +101 for decimal. - MLTeX's `\charsubdef' declares how to construct an accented -character glyph (not necessarily existing in the current font) using two -character glyphs (that do exist). Thus it defines whether a character -glyph code, either typed as a single character or using the `\char' -primitive, will be mapped to a font glyph or to an `\accent' glyph -construction. + MLTeX's '\charsubdef' declares how to construct an accented character +glyph (not necessarily existing in the current font) using two character +glyphs (that do exist). Thus it defines whether a character glyph code, +either typed as a single character or using the '\char' primitive, will +be mapped to a font glyph or to an '\accent' glyph construction. For example, if you assume glyph code 138 (decimal) for an -e-circumflex and you are using the Computer Modern fonts, which have -the circumflex accent in position 18 and lowercase `e' in the usual -ASCII position 101 decimal, you would use `\charsubdef' as follows: +e-circumflex and you are using the Computer Modern fonts, which have the +circumflex accent in position 18 and lowercase 'e' in the usual ASCII +position 101 decimal, you would use '\charsubdef' as follows: \charsubdef 138 = 18 101 For the plain TeX format to make use of this substitution, you have -to redefine the circumflex accent macro `\^' in such a way that if its -argument is character `e' the expansion `\char138 ' is used instead of -`\accent18 e'. Similar `\charsubdef' declaration and macro +to redefine the circumflex accent macro '\^' in such a way that if its +argument is character 'e' the expansion '\char138 ' is used instead of +'\accent18 e'. Similar '\charsubdef' declaration and macro redefinitions have to be done for all other accented characters. - To disable a previous `\charsubdef C', redefine C as a pair of -zeros. For example: + To disable a previous '\charsubdef C', redefine C as a pair of zeros. +For example: \charsubdef '321 = 0 0 % disable N tilde - (Octal '321 is the ISO Latin-1 value for the Spanish N tilde.) - - `\charsubdef' commands should only be given once. Although in -principle you can use `\charsubdef' at any time, the result is -unspecified. If `\charsubdef' declarations are changed, usually either -incorrect character dimensions will be used or MLTeX will output -missing character warnings. (The substitution of a `\charsubdef' is -used by TeX when appending the character node to the current horizontal -list, to compute the width of a horizontal box when the box gets -packed, and when building the `\accent' construction at -`\shipout'-time. In summary, the substitution is accessed often, so -changing it is not desirable, nor generally useful.) +(Octal '321 is the ISO Latin-1 value for the Spanish N tilde.) + + '\charsubdef' commands should only be given once. Although in +principle you can use '\charsubdef' at any time, the result is +unspecified. If '\charsubdef' declarations are changed, usually either +incorrect character dimensions will be used or MLTeX will output missing +character warnings. (The substitution of a '\charsubdef' is used by TeX +when appending the character node to the current horizontal list, to +compute the width of a horizontal box when the box gets packed, and when +building the '\accent' construction at '\shipout'-time. In summary, the +substitution is accessed often, so changing it is not desirable, nor +generally useful.) File: web2c.info, Node: \tracingcharsubdef, Prev: \charsubdef, Up: MLTeX -4.4.1.2 `\tracingcharsubdef': Substitution diagnostics +4.4.1.2 '\tracingcharsubdef': Substitution diagnostics ...................................................... -To help diagnose problems with `\charsubdef', MLTeX provides a new -primitive parameter, `\tracingcharsubdef'. If positive, every use of -`\charsubdef' will be reported. This can help track down when a +To help diagnose problems with '\charsubdef', MLTeX provides a new +primitive parameter, '\tracingcharsubdef'. If positive, every use of +'\charsubdef' will be reported. This can help track down when a character is redefined. - In addition, if the TeX parameter `\tracinglostchars' is 100 or -more, the character substitutions actually performed at `\shipout'-time -will be recorded. + In addition, if the TeX parameter '\tracinglostchars' is 100 or more, +the character substitutions actually performed at '\shipout'-time will +be recorded. -File: web2c.info, Node: TCX files, Prev: patgen invocation, Up: Languages and hyphenation +File: web2c.info, Node: TCX files, Next: patgen invocation, Prev: MLTeX, Up: Languages and hyphenation 4.4.2 TCX files: Character translations --------------------------------------- @@ -1324,9 +1296,9 @@ being used. Specifically, they map an input (keyboard) character code to the internal TeX character code (a superset of ASCII). Of the various proposals for handling more than one input encoding, -TCX files were chosen because they follow Knuth's original ideas for -the use of the `xchr' and `xord' tables. He ventured that these would -be changed in the WEB source in order to adjust the actual version to a +TCX files were chosen because they follow Knuth's original ideas for the +use of the 'xchr' and 'xord' tables. He ventured that these would be +changed in the WEB source in order to adjust the actual version to a given environment. It turns out, however, that recompiling the WEB sources is not as simple a task as Knuth may have imagined; therefore, TCX files, providing the possibility of changing of the conversion @@ -1334,16 +1306,15 @@ tables on on-the-fly, have been implemented instead. This approach limits the portability of TeX documents, as some implementations do not support it (or use a different method for -input-internal reencoding). It may also be problematic to determine -the encoding to use for a TeX document of unknown provenance; in the -worst case, failure to do so correctly may result in subtle errors in -the typeset output. But we feel the benefits outweigh these -disadvantages. +input-internal reencoding). It may also be problematic to determine the +encoding to use for a TeX document of unknown provenance; in the worst +case, failure to do so correctly may result in subtle errors in the +typeset output. But we feel the benefits outweigh these disadvantages. This is entirely independent of the MLTeX extension (*note MLTeX::): whereas a TCX file defines how an input keyboard character is mapped to TeX's internal code, MLTeX defines substitutions for a non-existing -character glyph in a font with a `\accent' construction made out of two +character glyph in a font with a '\accent' construction made out of two separate character glyphs. TCX files involve no new primitives; it is not possible to specify that an input (keyboard) character maps to more than one character. @@ -1355,23 +1326,23 @@ than one character. %& -translate-file=TCXFILE * You can also specify a TCX file to be used on a particular TeX run - with the command-line option `-translate-file=TCXFILE'. + with the command-line option '-translate-file=TCXFILE'. - * TCX files are searched for along the `WEB2C' path. + * TCX files are searched for along the 'WEB2C' path. * Initial TeX (*note Initial TeX: Initial TeX.) ignores TCX files. The Web2c distribution comes with a number of TCX files. Two -important ones are `il1-t1.tcx' and `il2-t1.tcx', which support ISO -Latin 1 and ISO Latin 2, respectively, with Cork-encoded fonts (a.k.a. -the LaTeX T1 encoding). TCX files for Czech, Polish, and Slovak are -also provided. +important ones are 'il1-t1.tcx' and 'il2-t1.tcx', which support ISO +Latin 1 and ISO Latin 2, respectively, with Cork-encoded fonts +(a.k.a. the LaTeX T1 encoding). TCX files for Czech, Polish, and Slovak +are also provided. - One other notable TCX file is `empty.tcx', which is, well, empty. + One other notable TCX file is 'empty.tcx', which is, well, empty. Its purpose is to reset Web2C's behavior to the default (only visible -ASCII being printable, as described below) when a format was dumped -with another TCX being active--which is in fact the case for everything -but plain TeX in the TeX Live and other distributions. Thus: +ASCII being printable, as described below) when a format was dumped with +another TCX being active--which is in fact the case for everything but +plain TeX in the TeX Live and other distributions. Thus: latex somefile8.tex => terminal etc. output with 8-bit chars @@ -1379,19 +1350,19 @@ but plain TeX in the TeX Live and other distributions. Thus: => terminal etc. output with ^^ notation Syntax of TCX files: - 1. Line-oriented. Blank lines are ignored. + 1. Line-oriented. Blank lines are ignored. 2. Whitespace is ignored except as a separator. - 3. Comments start with `%' and continue to the end of the line. + 3. Comments start with '%' and continue to the end of the line. 4. Otherwise, a line consists of one or two character codes, optionally followed by 0 or 1. The last number indicates whether DEST is considered printable. SRC [DEST [PRNT]] - 5. Each character code may be specified in octal with a leading `0', - hexadecimal with a leading `0x', or decimal otherwise. Values must + 5. Each character code may be specified in octal with a leading '0', + hexadecimal with a leading '0x', or decimal otherwise. Values must be between 0 and 255, inclusive (decimal). 6. If the DEST code is not specified, it is taken to be the same as @@ -1403,57 +1374,57 @@ but plain TeX in the TeX Live and other distributions. Thus: Finally, here's what happens: when TeX sees an input character with code SRC, it 1) changes SRC to DEST; and 2) makes the DEST code "printable", i.e., printed as-is in diagnostics and the log file rather -than in `^^' notation. +than in '^^' notation. - By default, no characters are translated, and character codes -between 32 and 126 inclusive (decimal) are printable. + By default, no characters are translated, and character codes between +32 and 126 inclusive (decimal) are printable. Specifying translations for the printable ASCII characters (codes 32-127) will yield unpredictable results. Additionally you shouldn't -make the following characters printable: `^^I' (TAB), `^^J' (line -feed), `^^M' (carriage return), and `^^?' (delete), since TeX uses them -in various ways. +make the following characters printable: '^^I' (TAB), '^^J' (line feed), +'^^M' (carriage return), and '^^?' (delete), since TeX uses them in +various ways. Thus, the idea is to specify the input (keyboard) character code for SRC, and the output (font) character code for DEST. By default, only the printable ASCII characters are considered -printable by TeX. If you specify the `-8bit' option, all characters are -considered printable by default. If you specify both the `-8bit' -option and a TCX file, then the TCX can set specific characters to be +printable by TeX. If you specify the '-8bit' option, all characters are +considered printable by default. If you specify both the '-8bit' option +and a TCX file, then the TCX can set specific characters to be non-printable. Both the specified TCX encoding and whether characters are printable -are saved in the dump files (like `tex.fmt'). So by giving these -options in combination with `-ini', you control the defaults seen by +are saved in the dump files (like 'tex.fmt'). So by giving these +options in combination with '-ini', you control the defaults seen by anyone who uses the resulting dump file. - When loading a dump, if the `-8bit' option was given, then all + When loading a dump, if the '-8bit' option was given, then all characters become printable by default. When loading a dump, if a TCX file was specified, then the TCX data from the dump is ignored and the data from the file used instead. -File: web2c.info, Node: patgen invocation, Next: TCX files, Prev: MLTeX, Up: Languages and hyphenation +File: web2c.info, Node: patgen invocation, Next: TCX files, Prev: TCX files, Up: Languages and hyphenation 4.4.3 Patgen: Creating hyphenation patterns ------------------------------------------- Patgen creates hyphenation patterns from dictionary files for use with -TeX. Synopsis: +TeX. Synopsis: patgen DICTIONARY PATTERNS OUTPUT TRANSLATE - Each argument is a filename. No path searching is done. The output is -written to the file OUTPUT. + Each argument is a filename. No path searching is done. The output +is written to the file OUTPUT. In addition, Patgen prompts interactively for other values. - For more information, see `Word hy-phen-a-tion by com-puter' by -Frank Liang (*note References::), and also the `patgen.web' source file. + For more information, see 'Word hy-phen-a-tion by com-puter' by Frank +Liang (*note References::), and also the 'patgen.web' source file. - The only options are `-help' and `-version' (*note Common options::). + The only options are '-help' and '-version' (*note Common options::). File: web2c.info, Node: Shell escapes, Next: IPC and TeX, Prev: Languages and hyphenation, Up: TeX @@ -1465,41 +1436,41 @@ TeX can execute "shell escapes", that is, arbitrary shell commands. Although tremendously useful, this also has obvious security implications. Therefore, as of TeX Live 2009, a "restricted" mode for shell escapes is the default mode of operation, which allows executing -only certain commands, as specified in the `texmf.cnf' configuration +only certain commands, as specified in the 'texmf.cnf' configuration file. * Unrestricted shell escapes are allowed if the option - `--shell-escape' is specified, or if the environment variable or - config file value `shell_escape' is set to `t' or `y' and `1'. + '--shell-escape' is specified, or if the environment variable or + config file value 'shell_escape' is set to 't' or 'y' and '1'. - * Restricted shell escapes are allowed if `shell_escape' is set to - `p'. This is the default. + * Restricted shell escapes are allowed if 'shell_escape' is set to + 'p'. This is the default. - * Shell escapes are completely disabled if `--no-shell-escape' is - specified, or if `shell_escape' is set to anything else. + * Shell escapes are completely disabled if '--no-shell-escape' is + specified, or if 'shell_escape' is set to anything else. When enabled, the TeX construct to execute a system command is -`\write18{SHELL-COMMAND}'; for example: +'\write18{SHELL-COMMAND}'; for example: \write18{echo "hello, world"} - From TeX's point of view, this is a normal `\write' command, and is + From TeX's point of view, this is a normal '\write' command, and is therefore subject to the usual TeX expansions. Also, the system call -either happens during the `\output' routine or right away, according to -the absence or presence of the `\immediate' prefix, as usual for -`\write'. +either happens during the '\output' routine or right away, according to +the absence or presence of the '\immediate' prefix, as usual for +'\write'. The SHELL-COMMAND string is passed to the command shell (via the C -library function `system'). The output of SHELL-COMMAND is not -diverted anywhere, so it will not appear in the log file, or anywhere -but the terminal output. The exit status of the system call is also -not available to TeX. +library function 'system'). The output of SHELL-COMMAND is not diverted +anywhere, so it will not appear in the log file, or anywhere but the +terminal output. The exit status of the system call is also not +available to TeX. In unrestricted mode, the argument is simply passed straight to -`system' unaltered. +'system' unaltered. In restricted mode, ASCII double quote characters (") should always -be used in the argument to `\write18' where quoting of arguments is +be used in the argument to '\write18' where quoting of arguments is needed, as in the example above. This is to achieve some measure of system independence. On Unix systems, these are replaced with single quote (') characters to avoid insecure further expansion. Care is also @@ -1509,19 +1480,19 @@ message in the log file; no execution is performed. After quotation processing, if the first word (delimited by a space or tab) of the command is in the list specified by the -`shell_escape_commands' configuration value, the command is executed. +'shell_escape_commands' configuration value, the command is executed. Otherwise it is not. In any case, a message is written to the log file. - The `shell_escape_commands' value is a comma-separated list of -words. Whitespace is significant, and typically should not be present. -The default definition looks like this, but with more commands included: + The 'shell_escape_commands' value is a comma-separated list of words. +Whitespace is significant, and typically should not be present. The +default definition looks like this, but with more commands included: shell_escape_commands = bibtex,dvips,epstopdf,...,tex - pdfTeX and luaTeX support reading (via `\input' and `\openin') and -writing (via `\openout') from pipes if the first character is `|'. The + pdfTeX and luaTeX support reading (via '\input' and '\openin') and +writing (via '\openout') from pipes if the first character is '|'. The following command is then treated exactly the same as the argument to -`\write18'. In these engines, the primitive variable `\pdfshellescape' +'\write18'. In these engines, the primitive variable '\pdfshellescape' is set to 0 if shell escapes are disabled, 1 if they are enabled, and 2 if they are enabled with restrictions. @@ -1540,11 +1511,11 @@ File: web2c.info, Node: IPC and TeX, Next: TeX extensions, Prev: Shell escape (If anyone uses this feature and needs documentation, write <tex-k@tug.org>.) - This functionality is available only if the `--enable-ipc' option -was specified to `configure' during installation of Web2c (*note + This functionality is available only if the '--enable-ipc' option was +specified to 'configure' during installation of Web2c (*note Installation::). - If you define `IPC_DEBUG' before compilation (e.g., with `make + If you define 'IPC_DEBUG' before compilation (e.g., with 'make XCFLAGS=-DIPC_DEBUG'), TeX will print messages to standard error about its socket operations. This may be helpful if you are, well, debugging. @@ -1563,26 +1534,25 @@ e-TeX Aleph This adds Unicode support, right-to-left typesetting, and more. - Omega was the original program. Aleph is an updated version with - a variety of bug fixes, and includes e-TeX. Aleph is not actively + Omega was the original program. Aleph is an updated version with a + variety of bug fixes, and includes e-TeX. Aleph is not actively maintained. pdfTeX Can produce PDF as well as DVI files. It also incorporates the e-TeX extensions, new primitives for hypertext and micro-typography, reading/writing from pipes, and much more. Home - page: `http://pdftex.org'. + page: <http://pdftex.org>. luaTeX Based on pdfTeX, this also embeds the Lua programming language - (`http://lua.org') and opens up the TeX typesetting engine to - control from Lua. Home page: `http://luatex.org'. + (<http://lua.org>) and opens up the TeX typesetting engine to + control from Lua. Home page: <http://luatex.org>. XeTeX Combines support for Unicode input and OpenType- and system fonts with the capabilities of pdfTeX. Home page: - `http://tug.org/xetex'. - + <http://tug.org/xetex>. File: web2c.info, Node: Metafont, Next: MetaPost, Prev: TeX, Up: Top @@ -1598,11 +1568,11 @@ equation-solving capabilities which can be useful entirely on their own. Metafont is a batch language, like C or Pascal: you compile a Metafont program into a corresponding font, rather than interactively drawing lines or curves. This approach has both considerable -disadvantages (people unfamiliar with conventional programming -languages will be unlikely to find it usable) and considerable -advantages (you can make your design intentions specific and -parameterizable). For a complete description of the Metafont language, -see `The METAFONTbook' (*note References::). +disadvantages (people unfamiliar with conventional programming languages +will be unlikely to find it usable) and considerable advantages (you can +make your design intentions specific and parameterizable). For a +complete description of the Metafont language, see 'The METAFONTbook' +(*note References::). * Menu: @@ -1616,14 +1586,14 @@ see `The METAFONTbook' (*note References::). File: web2c.info, Node: mf invocation, Next: Initial Metafont, Up: Metafont -5.1 `mf' invocation +5.1 'mf' invocation =================== -Metafont (usually invoked as `mf') reads character definitions -specified in the Metafont programming language, and outputs the -corresponding font. This section merely describes the options available -in the Web2c implementation. For a complete description of the Metafont -language, see `The Metafontbook' (*note References::). +Metafont (usually invoked as 'mf') reads character definitions specified +in the Metafont programming language, and outputs the corresponding +font. This section merely describes the options available in the Web2c +implementation. For a complete description of the Metafont language, +see 'The Metafontbook' (*note References::). Metafont processes its command line and determines its memory dump (base) file in a way exactly analogous to MetaPost and TeX (*note tex @@ -1635,44 +1605,44 @@ invocation::, and *note Memory dumps::). Synopses: Most commonly, a Metafont invocation looks like this: mf '\mode:=MODE; mag:=MAGNIFICATION; input MFNAME' - (The single quotes avoid unwanted interpretation by the shell.) +(The single quotes avoid unwanted interpretation by the shell.) Metafont searches the usual places for the main input file MFNAME -(*note Supported file formats: (kpathsea)Supported file formats.), -extending MFNAME with `.mf' if necessary. To see all the relevant -paths, set the environment variable `KPATHSEA_DEBUG' to `-1' before -running the program. By default, Metafont runs an external program -named `mktexmf' to create any nonexistent Metafont source files you -input. You can disable this at configure-time or runtime (*note mktex -configuration: (kpathsea)mktex configuration.). This is mostly for the -sake of the EC fonts, which can be generated at any size. - - Metafont writes the main GF output to the file `BASEMFNAME.NNNgf', +(*note (kpathsea)Supported file formats::), extending MFNAME with '.mf' +if necessary. To see all the relevant paths, set the environment +variable 'KPATHSEA_DEBUG' to '-1' before running the program. By +default, Metafont runs an external program named 'mktexmf' to create any +nonexistent Metafont source files you input. You can disable this at +configure-time or runtime (*note (kpathsea)mktex configuration::). This +is mostly for the sake of the EC fonts, which can be generated at any +size. + + Metafont writes the main GF output to the file 'BASEMFNAME.NNNgf', where NNN is the font resolution in pixels per inch, and BASEMFNAME is -the basename of MFNAME, or `mfput' if no input file was specified. A -GF file contains bitmaps of the actual character shapes. Usually GF -files are converted immediately to PK files with GFtoPK (*note gftopk +the basename of MFNAME, or 'mfput' if no input file was specified. A GF +file contains bitmaps of the actual character shapes. Usually GF files +are converted immediately to PK files with GFtoPK (*note gftopk invocation::), since PK files contain equivalent information, but are more compact. (Metafont output in GF format rather than PK for only historical reasons.) Metafont also usually writes a metric file in TFM format to -`BASEMFNAME.tfm'. A TFM file contains character dimensions, kerns, and +'BASEMFNAME.tfm'. A TFM file contains character dimensions, kerns, and ligatures, and spacing parameters. TeX reads only this .tfm file, not the GF file. - The MODE in the example command above is a name referring to a -device definition (*note Modes::); for example, `localfont' or -`ljfour'. These device definitions must generally be precompiled into -the base file. If you leave this out, the default is `proof' mode, as -stated in `The Metafontbook', in which Metafont outputs at a resolution -of 2602dpi; this is usually not what you want. The remedy is simply to -assign a different mode--`localfont', for example. + The MODE in the example command above is a name referring to a device +definition (*note Modes::); for example, 'localfont' or 'ljfour'. These +device definitions must generally be precompiled into the base file. If +you leave this out, the default is 'proof' mode, as stated in 'The +Metafontbook', in which Metafont outputs at a resolution of 2602dpi; +this is usually not what you want. The remedy is simply to assign a +different mode--'localfont', for example. The MAGNIFICATION assignment in the example command above is a magnification factor; for example, if the device is 600dpi and you -specify `mag:=2', Metafont will produce output at 1200dpi. Very often, -the MAGNIFICATION is an expression such as `magstep(.5)', corresponding +specify 'mag:=2', Metafont will produce output at 1200dpi. Very often, +the MAGNIFICATION is an expression such as 'magstep(.5)', corresponding to a TeX "magstep", which are factors of 1.2 * sqrt(2). After running Metafont, you can use the font in a TeX document as @@ -1681,27 +1651,27 @@ usual. For example: \myfont Now I am typesetting in my new font (minimum hamburgers). The program accepts the following options, as well as the standard -`-help' and `-version' (*note Common options::): -`-[no]-file-line-error' -`-fmt=FMTNAME' -`-halt-on-error' -`-ini' -`-interaction=STRING' -`-jobname=STRING' -`-kpathsea-debug=NUMBER' -`-[no]parse-first-line' -`-output-directory' -`-progname=STRING' -`-recorder' -`-translate-file=TCXFILE' -`-8bit' +'-help' and '-version' (*note Common options::): +'-[no]-file-line-error' +'-fmt=FMTNAME' +'-halt-on-error' +'-ini' +'-interaction=STRING' +'-jobname=STRING' +'-kpathsea-debug=NUMBER' +'-[no]parse-first-line' +'-output-directory' +'-progname=STRING' +'-recorder' +'-translate-file=TCXFILE' +'-8bit' These options are common to TeX, Metafont, and MetaPost. *Note Common options::. -`-mktex=FILETYPE' -`-no-mktex=FILETYPE' - Turn on or off the `mktex' script associated with FILETYPE. The - only value that makes sense for FILETYPE is `mf'. +'-mktex=FILETYPE' +'-no-mktex=FILETYPE' + Turn on or off the 'mktex' script associated with FILETYPE. The + only value that makes sense for FILETYPE is 'mf'. File: web2c.info, Node: Initial Metafont, Next: Modes, Prev: mf invocation, Up: Metafont @@ -1709,36 +1679,34 @@ File: web2c.info, Node: Initial Metafont, Next: Modes, Prev: mf invocation, 5.2 Initial Metafont ==================== -`inimf' is the "initial" form of Metafont, which does lengthy -initializations avoided by the "virgin" (`vir') form, so as to be -capable of dumping `.base' files (*note Memory dumps::). For a -detailed comparison of virgin and initial forms, see *note Initial and -virgin::. In past releases, a separate program `inimf' was installed -to invoke the initial form, but this is no longer the case. +'inimf' is the "initial" form of Metafont, which does lengthy +initializations avoided by the "virgin" ('vir') form, so as to be +capable of dumping '.base' files (*note Memory dumps::). For a detailed +comparison of virgin and initial forms, see *note Initial and virgin::. For a list of options and other information, see *note mf invocation::. The only memory dump file commonly used with Metafont is the default -`plain.base', also known as `mf.base' (again, *note Memory dumps::). -It is created by default during installation, but you can also do so by +'plain.base', also known as 'mf.base' (again, *note Memory dumps::). It +is created by default during installation, but you can also do so by hand if necessary (e.g., if a Metafont update is issued): mf -ini '\input plain; input modes; dump' - (The quotes prevent interpretation of the backslashes from the -shell.) Then install the resulting `plain.base' in `$(basedir)' -(`/usr/local/share/texmf/web2c' by default), and link `mf.base' to it. +(The quotes prevent interpretation of the backslashes from the shell.) +Then install the resulting 'plain.base' in '$(basedir)' +('/usr/local/share/texmf/web2c' by default), and link 'mf.base' to it. - For an explanation of the additional `modes.mf' file, see *note + For an explanation of the additional 'modes.mf' file, see *note Modes::. This file has no counterpart in TeX or MetaPost. In the past, it was sometimes useful to create a base file -`cmmf.base' (a.k.a. `cm.base'), with the Computer Modern macros also +'cmmf.base' (a.k.a. 'cm.base'), with the Computer Modern macros also included in the base file. Nowadays, however, the additional time -required to read `cmbase.mf' is exceedingly small, usually not enough -to be worth the administrative hassle of updating the `cmmf.base' file -when you install a new version of `modes.mf'. People actually working -on a typeface may still find it worthwhile to create their own base -file, of course. +required to read 'cmbase.mf' is exceedingly small, usually not enough to +be worth the administrative hassle of updating the 'cmmf.base' file when +you install a new version of 'modes.mf'. People actually working on a +typeface may still find it worthwhile to create their own base file, of +course. File: web2c.info, Node: Modes, Next: Online Metafont graphics, Prev: Initial Metafont, Up: Metafont @@ -1751,44 +1719,44 @@ that TeX and MetaPost do not: "mode" definitions which specify device characteristics, so Metafont can properly rasterize the shapes. When making a base file, a file containing modes for -locally-available devices should be input after `plain.mf'. One -commonly used file is `ftp://ftp.tug.org/tex/modes.mf'; it includes all +locally-available devices should be input after 'plain.mf'. One +commonly used file is <ftp://ftp.tug.org/tex/modes.mf>; it includes all known definitions. If, however, for some reason you have decreased the memory available -in your Metafont, you may need to copy `modes.mf' and remove the +in your Metafont, you may need to copy 'modes.mf' and remove the definitions irrelevant to you (probably most of them) instead of using it directly. (Or, if you're a Metafont hacker, maybe you can suggest a -way to redefine `mode_def' and/or `mode_setup'; right now, the amount -of memory used is approximately four times the total length of the -`mode_def' names, and that's a lot.) +way to redefine 'mode_def' and/or 'mode_setup'; right now, the amount of +memory used is approximately four times the total length of the +'mode_def' names, and that's a lot.) - If you have a device not included in `modes.mf', please see comments + If you have a device not included in 'modes.mf', please see comments in that file for how to create the new definition, and please send the definition to <tex-fonts@math.utah.edu> to get it included in the next -release of `modes.mf'. +release of 'modes.mf'. Usually, when you run Metafont you must supply the name of a mode that was dumped in the base file. But you can also define the mode characteristics dynamically, by invoking Metafont with an assignment to -`smode' instead of `mode', like this: +'smode' instead of 'mode', like this: mf '\smode:="newmode.mf"; mag:=MAGNIFICATION; input MFNAME' - This is most useful when you are working on the definition of a new +This is most useful when you are working on the definition of a new mode. The MAGNIFICATION and MFNAME arguments are explained in *note mf -invocation::. In the file `newmode.mf', you should have the following -(with no `mode_def' or `enddef'), if you are using `modes.mf' +invocation::. In the file 'newmode.mf', you should have the following +(with no 'mode_def' or 'enddef'), if you are using 'modes.mf' conventions: mode_param (pixels_per_inch, DPI); mode_param (blacker, B); mode_param (fillin, F); mode_param (o_correction, O); mode_common_setup_; - (Of course, you should use real numbers for DPI, B, F, and O.) +(Of course, you should use real numbers for DPI, B, F, and O.) - For more information on the use of `smode', or if you are not using -`modes.mf', see page 269 of `The Metafontbook'. + For more information on the use of 'smode', or if you are not using +'modes.mf', see page 269 of 'The Metafontbook'. File: web2c.info, Node: Online Metafont graphics, Next: gftodvi invocation, Prev: Modes, Up: Metafont @@ -1797,84 +1765,83 @@ File: web2c.info, Node: Online Metafont graphics, Next: gftodvi invocation, P ============================ The Web2c implementation of Metafont can do online graphics with a -number of devices. (See the Metafont manual for more information about +number of devices. (See the Metafont manual for more information about how to draw on your screen.) By default, no graphics support is enabled. - Metafont examines the `MFTERM' environment variable or config file -value at runtime, or the `TERM' environment variable if `MFTERM' is not + Metafont examines the 'MFTERM' environment variable or config file +value at runtime, or the 'TERM' environment variable if 'MFTERM' is not set, to determine the device support to use. Naturally, only the devices for which support has been compiled in can be selected. - Here is a table of the possibilities, showing the `MFTERM' value and -the corresponding `configure' option(s) in parentheses. + Here is a table of the possibilities, showing the 'MFTERM' value and +the corresponding 'configure' option(s) in parentheses. -`epsf' - (`--enable-epsfwin') Pseudo-window server for Encapsulated - PostScript (see `web2c/window/epsf.c'). This device produces an +'epsf' + ('--enable-epsfwin') Pseudo-window server for Encapsulated + PostScript (see 'web2c/window/epsf.c'). This device produces an EPS file containing the graphics which would be displayed online on - other devices. The name of the EPS file defaults to metafont.eps + other devices. The name of the EPS file defaults to metafont.eps but can be changed by setting the MFEPSF environment variable to the new filename. Contributed by Mathias Herberts. -`hp2627' - (`--enable-hp2627win') HP2627a color graphics terminals. +'hp2627' + ('--enable-hp2627win') HP2627a color graphics terminals. -`mftalk' - (`--enable-mftalkwin') Generic window server (see - `web2c/window/mftalk.c'). +'mftalk' + ('--enable-mftalkwin') Generic window server (see + 'web2c/window/mftalk.c'). -`next' - (`--enable-next') NeXT window system. This requires a separate - program, called `DrawingServant', available separately. See the - `web2c/window/next.c'. +'next' + ('--enable-next') NeXT window system. This requires a separate + program, called 'DrawingServant', available separately. See the + 'web2c/window/next.c'. -`regis' - (`--enable-regiswin') Regis terminals. +'regis' + ('--enable-regiswin') Regis terminals. -`sun' - (`--enable-suntoolswin') The old Suntools (not any flavor of X) - window system. (You can get the even older SunWindows `gfx' system - by using `sun-gfx.c'.) +'sun' + ('--enable-suntoolswin') The old Suntools (not any flavor of X) + window system. (You can get the even older SunWindows 'gfx' system + by using 'sun-gfx.c'.) -`tek' - (`--enable-tektronixwin') Tektronix terminals. +'tek' + ('--enable-tektronixwin') Tektronix terminals. -`uniterm' - (`--enable-unitermwin') Uniterm, Simon Poole's emulator of a smart +'uniterm' + ('--enable-unitermwin') Uniterm, Simon Poole's emulator of a smart Tektronix 4014 terminal. This may work with regular Tektronix terminals as well; it's faster than the driver - `--enable-tektronixwin' selects. + '--enable-tektronixwin' selects. -`xterm' - `--with-x' The X window system (version 11). +'xterm' + '--with-x' The X window system (version 11). There are two variants of the X11 support, one that works with the - Xt toolkit, and another that works directly with Xlib. The Xt + Xt toolkit, and another that works directly with Xlib. The Xt support is more efficient and has more functionality, so it is the - default. If you must use the Xlib support, use `configure --with-x + default. If you must use the Xlib support, use 'configure --with-x --with-kf-x-toolkit=no'. - Specify `--disable-mf-nowin' in order not to build a separate - non-windows-capable Metafont executable `mf-nowin' (or - `mf-nowin.exe'). + Specify '--disable-mf-nowin' in order not to build a separate + non-windows-capable Metafont executable 'mf-nowin' (or + 'mf-nowin.exe'). - You cannot specify any of the usual X options (e.g., `-geometry') + You cannot specify any of the usual X options (e.g., '-geometry') on the Metafont command line, but you can specify X resources in - your `~/.Xdefaults' or `~/.Xresources' file. The class name is - `Metafont'. If you're using the Xt support, all the usual X toolkit - resources are supported. If you're using the Xlib support, only - the `geometry' resource is supported. + your '~/.Xdefaults' or '~/.Xresources' file. The class name is + 'Metafont'. If you're using the Xt support, all the usual X + toolkit resources are supported. If you're using the Xlib support, + only the 'geometry' resource is supported. You specify the X display to which Metafont connects in the - `DISPLAY' environment variable, as usual. + 'DISPLAY' environment variable, as usual. - - Writing support for a new device is straightforward. Aside from -defining the basic drawing routines that Metafont uses (see `mf.web'), + Writing support for a new device is straightforward. Aside from +defining the basic drawing routines that Metafont uses (see 'mf.web'), you only have to add another entry to the tables on the last page of -`web2c/lib/texmfmp.c'. Or you can write an independent program and use -MFtalk (see `web2c/window/mftalk.c'). +'web2c/lib/texmfmp.c'. Or you can write an independent program and use +MFtalk (see 'web2c/window/mftalk.c'). File: web2c.info, Node: gftodvi invocation, Next: mft invocation, Prev: Online Metafont graphics, Up: Metafont @@ -1888,53 +1855,53 @@ font designers or Metafont hackers. Synopsis: gftodvi [OPTION]... GFNAME[gf] - The font GFNAME is searched for in the usual places (*note Glyph -lookup: (kpathsea)Glyph lookup.). To see all the relevant paths, set -the environment variable `KPATHSEA_DEBUG' to `-1' before running the + The font GFNAME is searched for in the usual places (*note +(kpathsea)Glyph lookup::). To see all the relevant paths, set the +environment variable 'KPATHSEA_DEBUG' to '-1' before running the program. - The suffix `gf' is supplied if not already present. This suffix is -not an extension, no `.' precedes it; for instance, `cmr10.600gf'. + The suffix 'gf' is supplied if not already present. This suffix is +not an extension, no '.' precedes it; for instance, 'cmr10.600gf'. - The output filename is the basename of GFNAME extended with `.dvi', -e.g., `gftodvi /wherever/foo.600gf' creates `./foo.dvi'. + The output filename is the basename of GFNAME extended with '.dvi', +e.g., 'gftodvi /wherever/foo.600gf' creates './foo.dvi'. The characters from GFNAME appear one per page in the DVI output, with labels, titles, and annotations, as specified in Appendix H -(Hardcopy Proofs) of `The Metafontbook'. +(Hardcopy Proofs) of 'The Metafontbook'. GFtoDVI uses several fonts besides GFNAME itself: - * "gray font" (default `gray'): for the pixels that actually make up + * "gray font" (default 'gray'): for the pixels that actually make up the character. Simply using black is not right, since then labels, key points, and other information could not be shown. - * "title font" (default `cmr8'): for the header information at the + * "title font" (default 'cmr8'): for the header information at the top of each output page. - * "label font" (default `cmtt10'): for the labels on key points of + * "label font" (default 'cmtt10'): for the labels on key points of the figure. * "slant font" (no default): for diagonal lines, which are otherwise simulated using horizontal and vertical rules. - To change the default fonts, you must use `special' commands in your -Metafont source file, typically via commands like `slantfont slantlj4'. + To change the default fonts, you must use 'special' commands in your +Metafont source file, typically via commands like 'slantfont slantlj4'. There is no default slant font since no one printer is suitable as a default. You can make your own by copying one of the existing files, -such as `.../fonts/source/public/misc/slantlj4.mf' and then running -`mf' on it. +such as '.../fonts/source/public/misc/slantlj4.mf' and then running 'mf' +on it. - For testing purposes, you may it useful to run `mf-nowin rtest' (hit -RETURN when it stops) to get a `gf' file of a thorn glyph. Or use `mf' -instead of `mf-nowin' to have the glyph(s) displayed on the screen. -After that, `gftodvi rtest.2602gf' should produce `rtest.dvi', which -you process as usual. + For testing purposes, you may it useful to run 'mf-nowin rtest' (hit +RETURN when it stops) to get a 'gf' file of a thorn glyph. Or use 'mf' +instead of 'mf-nowin' to have the glyph(s) displayed on the screen. +After that, 'gftodvi rtest.2602gf' should produce 'rtest.dvi', which you +process as usual. The program accepts the following option, as well as the standard -`-verbose', `-help', and `-version' (*note Common options::): +'-verbose', '-help', and '-version' (*note Common options::): -`-overflow-label-offset=POINTS' +'-overflow-label-offset=POINTS' Typeset the so-called overflow labels, if any, POINTS TeX points from the right edge of the character bounding box. The default is a little over two inches (ten million scaled points, to be @@ -1949,84 +1916,81 @@ File: web2c.info, Node: mft invocation, Prev: gftodvi invocation, Up: Metafon MFT translates a Metafont program into a TeX document suitable for typesetting, with the aid of TeX macros defined in the file -`mftmac.tex'. Synopsis: +'mftmac.tex'. Synopsis: mft [OPTION]... MFNAME[.mf] - MFT searches the usual places for MFNAME (*note Supported file -formats: (kpathsea)Supported file formats.). To see all the relevant -paths, set the environment variable `KPATHSEA_DEBUG' to `-1' before -running the program. The output goes to the basename of MFNAME extended -with `.tex', e.g., `mft /wherever/foo.mf' creates `./foo.tex'. + MFT searches the usual places for MFNAME (*note (kpathsea)Supported +file formats::). To see all the relevant paths, set the environment +variable 'KPATHSEA_DEBUG' to '-1' before running the program. The +output goes to the basename of MFNAME extended with '.tex', e.g., 'mft +/wherever/foo.mf' creates './foo.tex'. Line breaks in the input are carried over into the output; moreover, blank spaces at the beginning of a line are converted to quads of -indentation in the output. Thus, you have full control over the -indentation and line breaks. Each line of input is translated +indentation in the output. Thus, you have full control over the +indentation and line breaks. Each line of input is translated independently of the others. - Further control is allowed via Metafont comments: - * Metafont comments following a single `%' should be valid TeX - input. But Metafont material can be included within vertical bars - in a comment; this will be translated by MFT as if it were regular - Metafont code. For example, a comment like `% |x2r| is the tip of - the bowl' will be translated into the TeX `% $x_{2r}$ is the ...', - i.e., the `x2r' is treated as an identifier. + Further control is allowed via Metafont comments: + * Metafont comments following a single '%' should be valid TeX input. + But Metafont material can be included within vertical bars in a + comment; this will be translated by MFT as if it were regular + Metafont code. For example, a comment like '% |x2r| is the tip of + the bowl' will be translated into the TeX '% $x_{2r}$ is the ...', + i.e., the 'x2r' is treated as an identifier. - * `%%' indicates that the remainder of an input line should be copied + * '%%' indicates that the remainder of an input line should be copied verbatim to the output. This is typically used to introduce - additional TeX material at the beginning or an MFT job, e.g. code + additional TeX material at the beginning or an MFT job, e.g. code to modify the standard layout or the formatting macros defined in - `mftmac.tex', or to add a line saying `%%\bye' at the end of the + 'mftmac.tex', or to add a line saying '%%\bye' at the end of the job. (MFT doesn't add this automatically in order to allow processing several files produces by MFT in the same TeX job.) - * `%%% TOKEN1 OTHER-TOKENS' introduces a change in MFT's formatting - rules; all the OTHER-TOKENS will henceforth be translated - according to the current conventions for TOKEN1. The tokens must - be symbolic (i.e., not numeric or string tokens). For example, the - input line + * '%%% TOKEN1 OTHER-TOKENS' introduces a change in MFT's formatting + rules; all the OTHER-TOKENS will henceforth be translated according + to the current conventions for TOKEN1. The tokens must be symbolic + (i.e., not numeric or string tokens). For example, the input line %%% addto fill draw filldraw - says to format the `fill', `draw', and `filldraw' operations of - plain Metafont just like the primitive token `addto', i.e., in - boldface type. Without such reformatting commands, MFT would - treat `fill' like an ordinary tag or variable name. In fact, you - need a `%%%' command even to get parentheses to act like - delimiters. - - * `%%%%' introduces an MFT comment, i.e., MFT ignores the remainder + says to format the 'fill', 'draw', and 'filldraw' operations of + plain Metafont just like the primitive token 'addto', i.e., in + boldface type. Without such reformatting commands, MFT would treat + 'fill' like an ordinary tag or variable name. In fact, you need a + '%%%' command even to get parentheses to act like delimiters. + + * '%%%%' introduces an MFT comment, i.e., MFT ignores the remainder of such a line. - * Five or more `%' signs should not be used. + * Five or more '%' signs should not be used. - (The above description was edited from `mft.web', written by + (The above description was edited from 'mft.web', written by D.E. Knuth.) The program accepts the following options, as well as the standard -`-help' and `-version' (*note Common options::): -`-change=CHFILE[.ch]' +'-help' and '-version' (*note Common options::): +'-change=CHFILE[.ch]' Apply the change file CHFILE as with Tangle and Weave (*note WEB::). -`-style=MFTFILE[.mft]' +'-style=MFTFILE[.mft]' Read MFTFILE before anything else; a MFT style file typically - contains only MFT directives as described above. The default - style file is named `plain.mft', which defines this properly for - programs using plain Metafont. The MFT files is searched along the - `MFTINPUTS' path; see *note Supported file formats: - (kpathsea)Supported file formats. - - Other examples of MFT style files are `cmbase.mft', which defines - formatting rules for the macros defined in `cm.base', and `e.mft', - which was used in the production of Knuth's Volume E, `Computer + contains only MFT directives as described above. The default style + file is named 'plain.mft', which defines this properly for programs + using plain Metafont. The MFT files is searched along the + 'MFTINPUTS' path; see *note (kpathsea)Supported file formats::. + + Other examples of MFT style files are 'cmbase.mft', which defines + formatting rules for the macros defined in 'cm.base', and 'e.mft', + which was used in the production of Knuth's Volume E, 'Computer Modern Typefaces'. Using an appropriate MFT style file, it is also possible to configure MFT for typesetting MetaPost sources. However, MFT does not search the usual places for MetaPost input files. - If you use eight-bit characters in the input file, they are passed -on verbatim to the TeX output file; it is up to you to configure TeX to + If you use eight-bit characters in the input file, they are passed on +verbatim to the TeX output file; it is up to you to configure TeX to print these properly. @@ -2040,8 +2004,8 @@ Metafont::), but instead of outputting bitmaps in a "font", it outputs PostScript commands. It's primarily intended for creating technical illustrations. - MetaPost also provides for arbitrary integration of text and -graphics in a natural way, using any typesetter (TeX and Troff are both + MetaPost also provides for arbitrary integration of text and graphics +in a natural way, using any typesetter (TeX and Troff are both supported) and a number of other subsidiary programs, described below. * Menu: @@ -2053,28 +2017,27 @@ supported) and a number of other subsidiary programs, described below. File: web2c.info, Node: mpost invocation, Next: Initial MetaPost, Up: MetaPost -6.1 `mpost' invocation +6.1 'mpost' invocation ====================== -MetaPost (installed as `mpost') reads a series of pictures specified in +MetaPost (installed as 'mpost') reads a series of pictures specified in the MetaPost programming language, and outputs corresponding PostScript code. This section merely describes the options available in the Web2c implementation. For a complete description of the MetaPost language, see AT&T technical report CSTR-162, generally available in -`TEXMF/doc/metapost/', where TEXMF is the root of TeX directory +'TEXMF/doc/metapost/', where TEXMF is the root of TeX directory structure. See also: - * `http://cm.bell-labs.com/who/hobby/MetaPost.html' (the - MetaPost author's home page); - - * `http://tug.org/metapost' (papers, packages, and related + * <http://cm.bell-labs.com/who/hobby/MetaPost.html> (the MetaPost + author's home page); + * <http://tug.org/metapost> (papers, packages, and related information). Also, a standard MetaPost package for drawing graphs is documented in -AT&T technical report CSTR-164, available as the file `mpgraph.ps', -generally stored alongside `mpman.ps'. +AT&T technical report CSTR-164, available as the file 'mpgraph.ps', +generally stored alongside 'mpman.ps'. MetaPost processes its command line and determines its memory dump -(mem) file in a way exactly analogous to Metafont and TeX (*note `tex' +(mem) file in a way exactly analogous to Metafont and TeX (*note 'tex' invocation: tex invocation, and *note Memory dumps::). Synopses: mpost [OPTION]... [MPNAME[.mp]] [MP-COMMANDS] @@ -2082,41 +2045,39 @@ invocation: tex invocation, and *note Memory dumps::). Synopses: mpost [OPTION]... &MEM ARGS MetaPost searches the usual places for the main input file MPNAME -(*note Supported file formats: (kpathsea)Supported file formats.), -extending MPNAME with `.mp' if necessary. To see all the relevant -paths, set the environment variable `KPATHSEA_DEBUG' to `-1' before -running the program. +(*note (kpathsea)Supported file formats::), extending MPNAME with '.mp' +if necessary. To see all the relevant paths, set the environment +variable 'KPATHSEA_DEBUG' to '-1' before running the program. MetaPost writes its PostScript output to a series of files -`BASEMPNAME.NNN' (or perhaps `BASEMPNAME.ps', very occasionally -`BASEMPNAME.tfm'), where NNN are the figure numbers specified in the -input, typically to the `beginfig' macro, and BASEMPNAME is the -basename of MPNAME, or `mpout' if no input file was specified. -MetaPost uses the `.ps' extension when the figure number is out of -range, e.g., if you say `beginfig(-1)'. +'BASEMPNAME.NNN' (or perhaps 'BASEMPNAME.ps', very occasionally +'BASEMPNAME.tfm'), where NNN are the figure numbers specified in the +input, typically to the 'beginfig' macro, and BASEMPNAME is the basename +of MPNAME, or 'mpout' if no input file was specified. MetaPost uses the +'.ps' extension when the figure number is out of range, e.g., if you say +'beginfig(-1)'. You can use the output files as figures in a TeX document just as -with any other PostScript figures. For example, with this TeX command: +with any other PostScript figures. For example, with this TeX command: \special{psfile="FILENAME"} - or by using `epsf.tex' (*note EPSF macros: (dvips)EPSF macros.). +or by using 'epsf.tex' (*note (dvips)EPSF macros::). The MetaPost construct btex ... TEX-INPUT ... etex - generates a MetaPost picture expression corresponding to TEX-INPUT. +generates a MetaPost picture expression corresponding to TEX-INPUT. The construct verbatimtex ... TEX-INPUT ... etex - simply passes the TEX-INPUT through to TeX. For example, if you are -using LaTeX, your MetaPost input file must start with a `verbatimtex' -block that gives the necessary `\documentclass' (or `\documentstyle') -`\begin{document}' command. You will also need to set the enviroment -variable `TEX' to `latex'. - - TEX-INPUT need not be specifically TeX input; it could also be -Troff. In that case, you will need the `-m pictures' Troff macro -package (unfortunately absent from many Troff implementations), or an -equivalent such as the `-m pspic' macros from GNU groff described in -grops(1). +simply passes the TEX-INPUT through to TeX. For example, if you are +using LaTeX, your MetaPost input file must start with a 'verbatimtex' +block that gives the necessary '\documentclass' (or '\documentstyle') +'\begin{document}' command. You will also need to set the enviroment +variable 'TEX' to 'latex'. + + TEX-INPUT need not be specifically TeX input; it could also be Troff. +In that case, you will need the '-m pictures' Troff macro package +(unfortunately absent from many Troff implementations), or an equivalent +such as the '-m pspic' macros from GNU groff described in grops(1). Naturally, you must use fonts that are supported by the typesetter; specifically, you'll probably want to use standard PostScript fonts with @@ -2127,72 +2088,71 @@ Metafont fonts; you can also use PostScript fonts with TeX, of course. fonts for labels cannot be directly previewed or printed. Instead, you must include them in a TeX document and run the resulting DVI file through Dvips to arrange for the downloading of the required fonts -(*note Fonts in figures: (dvips)Fonts in figures.). To help with this, -the MetaPost distribution provides a small TeX file `mproof.tex' which -is typically called as: +(*note (dvips)Fonts in figures::). To help with this, the MetaPost +distribution provides a small TeX file 'mproof.tex' which is typically +called as: tex mproof MP-OUTPUT-FILES... ; dvips mproof -o - The resulting file `mproof.ps' can then be printed or previewed. +The resulting file 'mproof.ps' can then be printed or previewed. To generate EPSF files, set the internal MetaPost variable -`prologues' positive. To make the output files self-contained, use -only standard PostScript fonts. MetaPost reads the same `psfonts.map' -file as Dvips, to determine PostScript fonts that need to be downloaded -(*note psfonts.map: (dvips)psfonts.map.). - - It is posible for pdfTeX to read MetaPost output directly; this is -in contrast to general EPSF files, which have to be converted for use -with PDF output. The easiest way is to name the MetaPost output files -with the `.mps' extension. Then the LaTeX `\includegraphics' command, -for example, will be able to read them, even when outputting PDF. - - MetaPost can write output files, via the `write' primitive; this +'prologues' positive. To make the output files self-contained, use only +standard PostScript fonts. MetaPost reads the same 'psfonts.map' file +as Dvips, to determine PostScript fonts that need to be downloaded +(*note (dvips)psfonts.map::). + + It is posible for pdfTeX to read MetaPost output directly; this is in +contrast to general EPSF files, which have to be converted for use with +PDF output. The easiest way is to name the MetaPost output files with +the '.mps' extension. Then the LaTeX '\includegraphics' command, for +example, will be able to read them, even when outputting PDF. + + MetaPost can write output files, via the 'write' primitive; this opens a security hole. *Note tex invocation::. The program accepts the following options, as well as the standard -`-help' and `-version' (*note Common options::): -`-[no]-file-line-error' -`-fmt=FMTNAME' -`-halt-on-error' -`-ini' -`-interaction=STRING' -`-jobname=STRING' -`-kpathsea-debug=NUMBER' -`-[no]parse-first-line' -`-output-directory' -`-progname=STRING' -`-recorder' -`-translate-file=TCXFILE' -`-8bit' +'-help' and '-version' (*note Common options::): +'-[no]-file-line-error' +'-fmt=FMTNAME' +'-halt-on-error' +'-ini' +'-interaction=STRING' +'-jobname=STRING' +'-kpathsea-debug=NUMBER' +'-[no]parse-first-line' +'-output-directory' +'-progname=STRING' +'-recorder' +'-translate-file=TCXFILE' +'-8bit' These options are common to TeX, Metafont, and MetaPost. *Note Common options::. -`-T' -`-troff' - Set the `prologues' internal variable to `1'. +'-T' +'-troff' + Set the 'prologues' internal variable to '1'. -`-tex=TEXPROGRAM' +'-tex=TEXPROGRAM' When this option is given, the program TEXPROGRAM is used to typeset the labels. - File: web2c.info, Node: Initial MetaPost, Next: dvitomp invocation, Prev: mpost invocation, Up: MetaPost 6.2 Initial MetaPost ==================== -As of MetaPost 1.504 (TeX Live 2011), MetaPost no longer dumps `.mem' -files (*note Memory dumps::) and does not distinguish virgin and -initial forms (*note Initial and virgin::). Instead, the "initial" -file name is read in its source form--that is, `mpost.mp' when the -program is invoked as `mpost'. +As of MetaPost 1.504 (TeX Live 2011), MetaPost no longer dumps '.mem' +files (*note Memory dumps::) and does not distinguish virgin and initial +forms (*note Initial and virgin::). Instead, the "initial" file name is +read in its source form--that is, 'mpost.mp' when the program is invoked +as 'mpost'. For a list of options and other information, see *note mpost invocation::. MetaPost provides a format with all the features of plain Metafont, -called `mfplain'. You can use that in the same way; just run `mfplain' -instead of `mpost'. This lets you directly process Metafont source +called 'mfplain'. You can use that in the same way; just run 'mfplain' +instead of 'mpost'. This lets you directly process Metafont source files with MetaPost, producing character proofs (one file for each character) similar to those produced with Metafont in proof mode and GFtoDVI (*note gftodvi invocation::). @@ -2209,13 +2169,13 @@ so-called MPX file. Synopsis: dvitomp DVIFILE[.dvi] [MPXFILE[.mpx]] If MPXFILE is not specified, the output goes to the basename of DVIFILE -extended with `.mpx', e.g., `dvitomp /wherever/foo.dvi' creates -`./foo.mpx'. +extended with '.mpx', e.g., 'dvitomp /wherever/foo.dvi' creates +'./foo.mpx'. - DVItoMP supports Dvips-style color specials, such as `color push -NAME' and `color pop', outputting them as `withcolor' MetaPost commands. + DVItoMP supports Dvips-style color specials, such as 'color push +NAME' and 'color pop', outputting them as 'withcolor' MetaPost commands. - The only options are `-help' and `-version' (*note Common options::). + The only options are '-help' and '-version' (*note Common options::). File: web2c.info, Node: BibTeX, Next: WEB, Prev: MetaPost, Up: Top @@ -2237,34 +2197,34 @@ File: web2c.info, Node: bibtex invocation, Next: Basic BibTeX style files, Up 7.1 BibTeX invocation ===================== -BibTeX creates a printable bibliography (`.bbl') file from references -in a `.aux' file, generally written by TeX or LaTeX. The `.bbl' file -is then incorporated on a subsequent run. The basic bibliographic -information comes from `.bib' files, and a BibTeX style (`.bst') file -controls the precise contents of the `.bbl' file. Synopsis: +BibTeX creates a printable bibliography ('.bbl') file from references in +a '.aux' file, generally written by TeX or LaTeX. The '.bbl' file is +then incorporated on a subsequent run. The basic bibliographic +information comes from '.bib' files, and a BibTeX style ('.bst') file +controls the precise contents of the '.bbl' file. Synopsis: bibtex [OPTION]... AUXFILE[.aux] -The output goes to the basename of AUXFILE extended with `.bbl'; for -example, `bibtex /wherever/foo.aux' creates `./foo.bbl'. BibTeX also -writes a log file to the basename of AUXFILE extended with `.blg'. +The output goes to the basename of AUXFILE extended with '.bbl'; for +example, 'bibtex /wherever/foo.aux' creates './foo.bbl'. BibTeX also +writes a log file to the basename of AUXFILE extended with '.blg'. - The names of the `.bib' and `.bst' files are specified in the `.aux' -file as well, via the `\bibliography' and `\bibliographystyle' (La)TeX -macros. BibTeX searches for `.bib' files using the `BIBINPUTS' and -`TEXBIB' paths, and for `.bst' files using `BSTINPUTS' (*note Supported -file formats: (kpathsea)Supported file formats.). It does no path -searching for `.aux' files. + The names of the '.bib' and '.bst' files are specified in the '.aux' +file as well, via the '\bibliography' and '\bibliographystyle' (La)TeX +macros. BibTeX searches for '.bib' files using the 'BIBINPUTS' and +'TEXBIB' paths, and for '.bst' files using 'BSTINPUTS' (*note +(kpathsea)Supported file formats::). It does no path searching for +'.aux' files. The program accepts the following options, as well as the standard -`-help' and `-version' (*note Common options::): -`-terse' +'-help' and '-version' (*note Common options::): +'-terse' Suppress the program banner and progress reports normally output. -`-min-crossrefs=N' +'-min-crossrefs=N' If at least N (2 by default) bibliography entries refer to another - entry E via their `crossref' field, include E in the .bbl file, - even if it was not explicitly referenced in the .aux file. For + entry E via their 'crossref' field, include E in the .bbl file, + even if it was not explicitly referenced in the .aux file. For example, E might be a conference proceedings as a whole, with the cross-referencing entries being individual articles published in the proceedings. In some circumstances, you may want to avoid @@ -2272,22 +2232,21 @@ searching for `.aux' files. sufficiently large number. See also: -`btxdoc.tex' +'btxdoc.tex' Basic LaTeXable documentation for general BibTeX users. -`btxhak.tex' +'btxhak.tex' LaTeXable documentation for style designers. -`btxdoc.bib' +'btxdoc.bib' BibTeX database file for the two above documents. -`xampl.bib' +'xampl.bib' Example database file with all the standard entry types. -``ftp://ftp.math.utah.edu/pub/tex/bib/'' - A very large `.bib' and `.bst' collection, including references - for all the standard TeX books and a complete bibliography for - TUGboat. +'<ftp://ftp.math.utah.edu/pub/tex/bib/>' + A very large '.bib' and '.bst' collection, including references for + all the standard TeX books and a complete bibliography for TUGboat. File: web2c.info, Node: Basic BibTeX style files, Prev: bibtex invocation, Up: BibTeX @@ -2296,74 +2255,72 @@ File: web2c.info, Node: Basic BibTeX style files, Prev: bibtex invocation, Up ============================ Here are descriptions of the four standard and four semi-standard basic -BibTeX styles. `CTAN:/biblio/bibtex' contains these and many more (for -CTAN info, *note unixtex.ftp: (kpathsea)unixtex.ftp.). +BibTeX styles. 'CTAN:/biblio/bibtex' contains these and many more (for +CTAN info, *note (kpathsea)unixtex.ftp::). -`plain' +'plain' Sorts entries alphabetically, with numeric labels. Generally - formatted according to van Leunen's `A Handbook for Scholars'. - The other style files listed here are based on `plain'. + formatted according to van Leunen's 'A Handbook for Scholars'. The + other style files listed here are based on 'plain'. -`abbrv' +'abbrv' First names, month names, and journal names are abbreviated. -`acm' +'acm' Names are printed in small caps. -`alpha' - Alphanumeric labels, e.g., `Knu66'. +'alpha' + Alphanumeric labels, e.g., 'Knu66'. -`apalike' +'apalike' No labels at all; instead, the year appears in parentheses after - the author. Use this in conjunction with `apalike.tex' (plain - TeX) or `apalike.sty' (LaTeX), which also changes the citations in - the text to be `(AUTHOR, YEAR)'. + the author. Use this in conjunction with 'apalike.tex' (plain TeX) + or 'apalike.sty' (LaTeX), which also changes the citations in the + text to be '(AUTHOR, YEAR)'. -`ieeetr' +'ieeetr' Numeric labels, entries in citation order, IEEE abbreviations, article titles in quotes. -`siam' - Numeric labels, alphabetic order, `Math. Reviews' abbreviations, +'siam' + Numeric labels, alphabetic order, 'Math. Reviews' abbreviations, names in small caps. -`unsrt' +'unsrt' Lists entries in citation order, i.e., unsorted. -`btxbst.doc' +'btxbst.doc' The template file and documentation for the standard styles. - File: web2c.info, Node: WEB, Next: DVI utilities, Prev: BibTeX, Up: Top 8 WEB: Literate programming *************************** -"WEB" languages allow you to write a single source file that can -produce both a compilable program and a well-formatted document -describing the program in as much detail as you wish to prepare. -Writing in this kind of dual-purpose language is called "literate -programming". (The Usenet newsgroup `comp.programming.literate' is -devoted to this subject.) +"WEB" languages allow you to write a single source file that can produce +both a compilable program and a well-formatted document describing the +program in as much detail as you wish to prepare. Writing in this kind +of dual-purpose language is called "literate programming". (The Usenet +newsgroup 'comp.programming.literate' is devoted to this subject.) WEB-like languages have been implemented with many pairs of base languages: Cweb provides C and Troff (*note References::); CWEB provides -C and TeX (`CTAN:/web/c_cpp/cweb'); Spiderweb provides C, C++, Awk, -Ada, many others, and TeX (`CTAN:/web/spiderweb'); and, of course, the +C and TeX ('CTAN:/web/c_cpp/cweb'); Spiderweb provides C, C++, Awk, Ada, +many others, and TeX ('CTAN:/web/spiderweb'); and, of course, the original WEB provides Pascal and TeX, the implementation languages for the original TeX, Metafont, MetaPost, and related programs to come from the TeX project at Stanford. - The original WEB language is documented in the file `webman.tex', -which is included in the `ftp://ftp.tug.org/tex/lib.tar.gz' archive -(and available in many other places, of course). + The original WEB language is documented in the file 'webman.tex', +which is included in the <ftp://ftp.tug.org/tex/lib.tar.gz> archive (and +available in many other places, of course). * Menu: -* tangle invocation:: -* weave invocation:: -* pooltype invocation:: +* tangle invocation:: +* weave invocation:: +* pooltype invocation:: File: web2c.info, Node: tangle invocation, Next: weave invocation, Up: WEB @@ -2371,54 +2328,53 @@ File: web2c.info, Node: tangle invocation, Next: weave invocation, Up: WEB 8.1 Tangle: Translate WEB to Pascal =================================== -Tangle creates a compilable Pascal program from a WEB source file -(*note WEB::). Synopsis: +Tangle creates a compilable Pascal program from a WEB source file (*note +WEB::). Synopsis: tangle [OPTION]... WEBFILE[.web] [CHANGEFILE[.ch]] The Pascal output is written to the basename of WEBFILE extended with -`.p'; for example, `tangle /wherever/foo.web' creates `./foo.p'. -Tangle applies CHANGEFILE to WEBFILE before writing the output; by -default, there is no change file. +'.p'; for example, 'tangle /wherever/foo.web' creates './foo.p'. Tangle +applies CHANGEFILE to WEBFILE before writing the output; by default, +there is no change file. If the program makes use of the WEB string facility, Tangle writes -the string pool to the basename of WEBFILE extended with `.pool'. +the string pool to the basename of WEBFILE extended with '.pool'. The Pascal output is packed into lines of 72 characters or less, with the only concession to readability being the termination of lines at semicolons when this can be done conveniently. The program accepts the following options, as well as the standard -`--help' and `--version' (*note Common options::): +'--help' and '--version' (*note Common options::): -`-length=NUMBER' +'-length=NUMBER' The number of characters that are considered significant in an identifier. Whether underline characters are counted depends on - the `-underline' option. The default value is 32, the original + the '-underline' option. The default value is 32, the original tangle used 7, but this proved too restrictive for use by Web2c. -`-lowercase' -`-mixedcase' -`-uppercase' +'-lowercase' +'-mixedcase' +'-uppercase' These options specify the case of identifiers in the output of - tangle. If `-uppercase' (`-lowercase') is specified, tangle will + tangle. If '-uppercase' ('-lowercase') is specified, tangle will convert all identfiers to uppercase (lowercase). The default is - `-mixedcase', which specifies that the case will not be changed. + '-mixedcase', which specifies that the case will not be changed. -`-underline' +'-underline' When this option is given, tangle does not strip underline characters from identifiers. -`-loose' -`-strict' +'-loose' +'-strict' These options specify how strict tangle must be when checking - identifiers for equality. The default is `-loose', which means + identifiers for equality. The default is '-loose', which means that tangle will follow the rules set by the case-smashing and - underline options above. If `-strict' is set, then identifiers + underline options above. If '-strict' is set, then identifiers will always be stripped of underlines and converted to uppercase before checking whether they collide. - File: web2c.info, Node: weave invocation, Next: pooltype invocation, Prev: tangle invocation, Up: WEB @@ -2426,30 +2382,30 @@ File: web2c.info, Node: weave invocation, Next: pooltype invocation, Prev: ta =============================== Weave creates a TeX document from a WEB source file (*note WEB::), -assuming various macros defined in `webmac.tex'. It takes care of +assuming various macros defined in 'webmac.tex'. It takes care of typographic details such as page layout, indentation, and italicizing identifiers. It also automatically gathers and outputs extensive cross-reference information. Synopsis: weave [OPTION]... WEBFILE[.web] [CHANGEFILE[.ch]] -The output is to the basename of WEBFILE extended with `.tex'; for -example, `weave /wherever/foo.web' creates `./foo.tex'. Weave applies -CHANGEFILE to WEBFILE before writing the output; by default, there is -no change file. +The output is to the basename of WEBFILE extended with '.tex'; for +example, 'weave /wherever/foo.web' creates './foo.tex'. Weave applies +CHANGEFILE to WEBFILE before writing the output; by default, there is no +change file. The program accepts the following option, as well as the standard -`-verbose', `-help' and `-version' (*note Common options::): -`-x' +'-verbose', '-help' and '-version' (*note Common options::): +'-x' Omit the cross-reference information: the index, the list of WEB - module names, and the table of contents (an empty `CONTENTS.tex' + module names, and the table of contents (an empty 'CONTENTS.tex' file will still be written when the Weave output file is processed - by TeX using the default `webmac.tex', though). + by TeX using the default 'webmac.tex', though). - Conventionally, WEB programmers should define the TeX `\title' macro + Conventionally, WEB programmers should define the TeX '\title' macro at the beginning of the source file. Also, to get output of only -changed modules, one can say `\let\maybe=\iffalse' (usually as the -first change in the change file). +changed modules, one can say '\let\maybe=\iffalse' (usually as the first +change in the change file). File: web2c.info, Node: pooltype invocation, Prev: weave invocation, Up: WEB @@ -2467,11 +2423,11 @@ WEB conventions to implementors of the TeX system. Synopsis: No path searching is done for POOLFILE. Output is to standard output. - The only options are `--help' and `--version' (*note Common + The only options are '--help' and '--version' (*note Common options::). As an example of the output, here is the (edited) output for -`tex.pool': +'tex.pool': 0: "^^@" 1: "^^A" ... @@ -2482,7 +2438,7 @@ options::). (23617 characters in all.) In Metafont and MetaPost, the first 256 characters are actually -represented as single bytes (i.e., themselves), not in the `^^' +represented as single bytes (i.e., themselves), not in the '^^' notation. Consider Pooltype as showing the results after conversion for output. @@ -2493,15 +2449,15 @@ File: web2c.info, Node: DVI utilities, Next: Font utilities, Prev: WEB, Up: *************** TeX outputs a file in "DVI" (DeVice Independent) format as a compact -representation of the original document. DVI files can be translated -to meet the requirements of a real physical device, such as PostScript -printers (*note Introduction: (dvips)Top.), PCL printers (see -dvilj(1)), and X displays (see xdvi(1)). In fact, DVI translators are -available for virtually all common devices: see `CTAN:/dviware' (for -CTAN info, *note unixtex.ftp: (kpathsea)unixtex.ftp.). +representation of the original document. DVI files can be translated to +meet the requirements of a real physical device, such as PostScript +printers (*note Introduction: (dvips)Top.), PCL printers (see dvilj(1)), +and X displays (see xdvi(1)). In fact, DVI translators are available +for virtually all common devices: see 'CTAN:/dviware' (for CTAN info, +*note (kpathsea)unixtex.ftp::). For the precise definition of the DVI file format, see (for example) -the source file `web2c/dvitype.web'. +the source file 'web2c/dvitype.web'. The DVI-processing programs in the Web2c distribution are not device drivers; they perform generic utility functions. @@ -2517,11 +2473,11 @@ File: web2c.info, Node: dvicopy invocation, Next: dvitype invocation, Up: DVI 9.1 DVIcopy: Canonicalize virtual font references ================================================= -DVIcopy reads a DVI file, expands any references to virtual fonts -(*note Virtual fonts: (dvips)Virtual fonts.) to base fonts, and writes -the resulting DVI file. Thus you can use virtual fonts even if your DVI -processor does not support them, by passing the documents through -DVIcopy first. Synopsis: +DVIcopy reads a DVI file, expands any references to virtual fonts (*note +(dvips)Virtual fonts::) to base fonts, and writes the resulting DVI +file. Thus you can use virtual fonts even if your DVI processor does +not support them, by passing the documents through DVIcopy first. +Synopsis: dvicopy [OPTION]... [INDVI[.dvi] [OUTDVI[.dvi]]] @@ -2529,20 +2485,20 @@ DVIcopy first. Synopsis: standard output if OUTDVI is not specified. The program accepts the following options, as well as the standard -`-help' and `-version' (*note Common options::): -`-magnification=INTEGER' +'-help' and '-version' (*note Common options::): +'-magnification=INTEGER' Override existing magnification in INDVI with INTEGER; 1000 specifies no magnification. This is equivalent to setting TeX's - `\mag' parameter. + '\mag' parameter. -`-max-pages=N' +'-max-pages=N' Process N pages; default is one million. -`-page-start=PAGE-SPEC' +'-page-start=PAGE-SPEC' Start at the first page matching PAGE-SPEC, which is one or more (signed) integers separated by periods, corresponding to TeX's - `\count0...9' parameters at `\shipout' time; `*' matches anything. - Examples: `3', `1.*.-4'. + '\count0...9' parameters at '\shipout' time; '*' matches anything. + Examples: '3', '1.*.-4'. File: web2c.info, Node: dvitype invocation, Prev: dvicopy invocation, Up: DVI utilities @@ -2559,55 +2515,51 @@ correct. Synopsis: DVItype does not read any bitmap files, but it does read TFM files for fonts referenced in DVIFILE. The usual places are searched (*note -Supported file formats: (kpathsea)Supported file formats.). To see all -the relevant paths, set the environment variable `KPATHSEA_DEBUG' to -`-1' before running the program. +(kpathsea)Supported file formats::). To see all the relevant paths, set +the environment variable 'KPATHSEA_DEBUG' to '-1' before running the +program. Output goes to standard output. The program accepts the following options, as well as the standard -`-help' and `-version' (*note Common options::): -`-dpi=REAL' +'-help' and '-version' (*note Common options::): +'-dpi=REAL' Do pixel movement calculations at REAL pixels per inch; default 300.0. -`-magnification=INTEGER' +'-magnification=INTEGER' Override existing magnification in INDVI with INTEGER; 1000 specifies no magnification. This is equivalent to setting TeX's - `\mag' parameter. + '\mag' parameter. -`-max-pages=N' +'-max-pages=N' Process N pages; default is one million. -`-output-level=N' +'-output-level=N' Verbosity level of output, from 0 to 4 (default 4): * 0: Global document information only. - * 1: Most DVI commands included, and typeset characters summarized. - * 2: Character and movement commands explicitly included. - * 3: DVI stack and current position calculations included. - * 4: Same information as level 3, but DVItype does random positioning in the file, reading the DVI postamble first. -`-page-start=PAGE-SPEC' +'-page-start=PAGE-SPEC' Start at the first page matching PAGE-SPEC, which is one or more (signed) integers separated by periods, corresponding to TeX's - `\count0...9' parameters at `\shipout' time; `*' matches anything. - Examples: `1', `5.*.-9'. + '\count0...9' parameters at '\shipout' time; '*' matches anything. + Examples: '1', '5.*.-9'. -`-show-opcodes' +'-show-opcodes' Show numeric opcode values (in decimal) for DVI commands, in braces - after the command name. This can help in debugging DVI utilities. + after the command name. This can help in debugging DVI utilities. We use decimal because in the DVI format documentation (in - `dvitype.web', among others) the opcodes are shown in decimal. + 'dvitype.web', among others) the opcodes are shown in decimal. * Menu: -* dvitype output example:: +* dvitype output example:: File: web2c.info, Node: dvitype output example, Up: dvitype invocation @@ -2616,9 +2568,8 @@ File: web2c.info, Node: dvitype output example, Up: dvitype invocation ---------------------------- As an example of the output from DVItype (see section above), here is -its (abridged) translation of the `story.dvi' resulting from running -the example in `The TeXbook', with `-output-level=4' and -`-show-opcodes' on. +its (abridged) translation of the 'story.dvi' resulting from running the +example in 'The TeXbook', with '-output-level=4' and '-show-opcodes' on. ... Options selected: @@ -2678,15 +2629,15 @@ the example in `The TeXbook', with `-output-level=4' and global information about the document, including fonts used. * Each DVI command is preceded by its byte position in the file - (`42:', `87:', ...), and (because of the `-show-opcodes') followed - by its decimal opcode value in braces (`{141}', `{142}', ...). + ('42:', '87:', ...), and (because of the '-show-opcodes') followed + by its decimal opcode value in braces ('{141}', '{142}', ...). - * The `level' lines record information about the DVI stack; `h' and - `v' define the current position in DVI units, while `hh' and `vv' + * The 'level' lines record information about the DVI stack; 'h' and + 'v' define the current position in DVI units, while 'hh' and 'vv' are the same in pixels. - * Text sequences are summarized in brackets, as in `[A SHORT STORY]' - and the `[ 1]'. + * Text sequences are summarized in brackets, as in '[A SHORT STORY]' + and the '[ 1]'. File: web2c.info, Node: Font utilities, Next: Legalisms, Prev: DVI utilities, Up: Top @@ -2700,8 +2651,8 @@ GFtoPK is the only one that is routinely used, as Metafont outputs GF format, but it's most efficient for device drivers to use PK. The precise definitions of the PK, GF, TFM, PL, VF, and VPL formats -mentioned below are in the source files that read them; `pktype.web', -`gftype.web', `tftopl.web', etc. +mentioned below are in the source files that read them; 'pktype.web', +'gftype.web', 'tftopl.web', etc. * Menu: @@ -2722,12 +2673,11 @@ File: web2c.info, Node: Font file formats, Next: gftopk invocation, Up: Font 10.1 Font file formats ====================== -(For another perspective on this, *note Font concepts: (dvips)Font -concepts.). +(For another perspective on this, *note (dvips)Font concepts::). Font files come in several varieties, with suffixes like: .tfm .*pk .*gf .*pxl (obsolete) .pl .mf .vf .vpl - Each represents a file format. +Each represents a file format. A TFM (TeX font metric) file is a compact binary file that contains information about each character in a font, about combinations of @@ -2751,10 +2701,10 @@ source document. In order to print DVI files on real devices, you need font files defining digitized character shapes and other data. Then previewers and printer-driver programs can translate your DVI files into something usable by your monitor or printer. Bitmap fonts come with -suffixes such as `.600pk' or `.600gf' or `.3000pxl', where the `600' is +suffixes such as '.600pk' or '.600gf' or '.3000pxl', where the '600' is the horizontal dots-per-inch resolution at which the font was produced, -and the `pk' or `gf' or `pxl' indicates the font format. Outline fonts -in PostScript Type 1 format have suffixes such as `.pfa' or `.pfb'. +and the 'pk' or 'gf' or 'pxl' indicates the font format. Outline fonts +in PostScript Type 1 format have suffixes such as '.pfa' or '.pfb'. Fonts in pk (packed) format are in the tightly packed raster format that is pretty much the standard today. They take up less space than @@ -2763,21 +2713,21 @@ less space than fonts in pxl format. Fonts in pxl format take up gross amounts of disk space and permit only 128 characters. They are obsolete. - Font files with the `.pl' (property list) suffix are the plain text -(human-readable) analog of the binary `.tfm' files. The TFtoPL and + Font files with the '.pl' (property list) suffix are the plain text +(human-readable) analog of the binary '.tfm' files. The TFtoPL and PLtoTF programs convert between the two formats (*note tftopl invocation:: and *note pltotf invocation::). - Font files with the `.mf' suffix are in Metafont source format. + Font files with the '.mf' suffix are in Metafont source format. These are the files used by Metafont to generate rastered fonts for specific typefaces at specific magnifications for the specific resolution and type of mapping used by your device. - The suffix `.vf' identifies "virtual font" files, for which `.vpl' -is the human-readable analog. See *Note vftovp invocation::, and *note + The suffix '.vf' identifies "virtual font" files, for which '.vpl' is +the human-readable analog. See *Note vftovp invocation::, and *note vptovf invocation::. For further discussion of virtual fonts, see -`CTAN:/doc/virtual-fonts.knuth', `CTAN:/help/virtualfonts.txt', and -*note Virtual fonts: (dvips)Virtual fonts. +'CTAN:/doc/virtual-fonts.knuth', 'CTAN:/help/virtualfonts.txt', and +*note (dvips)Virtual fonts::. (This section is based on documentation in the original Unix TeX distribution by Pierre MacKay and Elizabeth Tachikawa.) @@ -2797,19 +2747,19 @@ Synopsis: gftopk [OPTION]... GFNAME.DPI[gf] [PKFILE] -The font GFNAME is searched for in the usual places (*note Glyph -lookup: (kpathsea)Glyph lookup.). To see all the relevant paths, set -the environment variable `KPATHSEA_DEBUG' to `-1' before running the +The font GFNAME is searched for in the usual places (*note +(kpathsea)Glyph lookup::). To see all the relevant paths, set the +environment variable 'KPATHSEA_DEBUG' to '-1' before running the program. - The suffix `gf' is supplied if not already present. This suffix is -not an extension; no `.' precedes it: for instance, `cmr10.600gf'. + The suffix 'gf' is supplied if not already present. This suffix is +not an extension; no '.' precedes it: for instance, 'cmr10.600gf'. If PKFILE is not specified, the output is written to the basename of -`GFNAME.DPIpk', e.g., `gftopk /wherever/cmr10.600gf' creates -`./cmr10.600pk'. +'GFNAME.DPIpk', e.g., 'gftopk /wherever/cmr10.600gf' creates +'./cmr10.600pk'. - The only options are `--verbose', `--help', and `--version' (*note + The only options are '--verbose', '--help', and '--version' (*note Common options::). @@ -2826,19 +2776,19 @@ programs do not support PK format. Synopsis: pktogf [OPTION]... PKNAME.DPI[pk] [GFFILE] -The font PKNAME is searched for in the usual places (*note Glyph -lookup: (kpathsea)Glyph lookup.). To see all the relevant paths, set -the environment variable `KPATHSEA_DEBUG' to `-1' before running the +The font PKNAME is searched for in the usual places (*note +(kpathsea)Glyph lookup::). To see all the relevant paths, set the +environment variable 'KPATHSEA_DEBUG' to '-1' before running the program. - The suffix `pk' is supplied if not already present. This suffix is -not an extension; no `.' precedes it: for instance, `cmr10.600pk'. + The suffix 'pk' is supplied if not already present. This suffix is +not an extension; no '.' precedes it: for instance, 'cmr10.600pk'. If GFFILE is not specified, the output is written to the basename of -`PKNAME.DPIgf', e.g., `pktogf /wherever/cmr10.600pk' creates -`./cmr10.600gf'. +'PKNAME.DPIgf', e.g., 'pktogf /wherever/cmr10.600pk' creates +'./cmr10.600gf'. - The only options are `--verbose', `--help', and `--version' (*note + The only options are '--verbose', '--help', and '--version' (*note Common options::). @@ -2854,21 +2804,21 @@ correct. Synopsis: pktype PKNAME.DPI[pk] - The font PKNAME is searched for in the usual places (*note Glyph -lookup: (kpathsea)Glyph lookup.). To see all the relevant paths, set -the environment variable `KPATHSEA_DEBUG' to `-1' before running the + The font PKNAME is searched for in the usual places (*note +(kpathsea)Glyph lookup::). To see all the relevant paths, set the +environment variable 'KPATHSEA_DEBUG' to '-1' before running the program. - The suffix `pk' is supplied if not already present. This suffix is -not an extension; no `.' precedes it: for instance, `cmr10.600pk'. + The suffix 'pk' is supplied if not already present. This suffix is +not an extension; no '.' precedes it: for instance, 'cmr10.600pk'. The translation is written to standard output. - The only options are `-help' and `-version' (*note Common options::). + The only options are '-help' and '-version' (*note Common options::). As an example of the output, here is the (abridged) translation of -the letter `K' in `cmr10', as rendered at 600dpi with the mode `ljfour' -from `modes.mf' (available from `ftp://ftp.tug.org/tex/modes.mf'). +the letter 'K' in 'cmr10', as rendered at 600dpi with the mode 'ljfour' +from <modes.mf> (available from 'ftp://ftp.tug.org/tex/modes.mf'). 955: Flag byte = 184 Character = 75 Packet length = 174 Dynamic packing variable = 11 @@ -2880,43 +2830,43 @@ from `modes.mf' (available from `ftp://ftp.tug.org/tex/modes.mf'). Explanation: -`955' +'955' The byte position in the file where this character starts. -`Flag byte' -`Dynamic packing variable' +'Flag byte' +'Dynamic packing variable' Related to the packing for this character; see the source code. -`Character' +'Character' The character code, in decimal. -`Packet length' +'Packet length' The total length of this character definition, in bytes. -`TFM width' +'TFM width' The device-independent (TFM) width of this character. It is 2^24 times the ratio of the true width to the font's design size. -`dx' +'dx' The device-dependent width, in "scaled pixels", i.e., units of horizontal pixels times 2^16. -`Height' -`Width' +'Height' +'Width' The bitmap height and width, in pixels. -`X-offset' -`Y-offset' +'X-offset' +'Y-offset' Horizontal and vertical offset from the upper left pixel to the reference (origin) pixel for this character, in pixels (right and down are positive). The "reference pixel" is the pixel that occupies the unit square in Metafont; the Metafont reference point - is the lower left hand corner of this pixel. Put another way, the + is the lower left hand corner of this pixel. Put another way, the x-offset is the negative of the left side bearing; the right side bearing is the horizontal escapement minus the bitmap width plus the x-offset. -`[2]23(16)...' +'[2]23(16)...' Finally, run lengths of black pixels alternate with parenthesized run lengths of white pixels, and brackets indicate a repeated row. @@ -2933,31 +2883,31 @@ it's correct. Synopsis: gftype [OPTION]... GFNAME.DPI[gf] - The font GFNAME is searched for in the usual places (*note Glyph -lookup: (kpathsea)Glyph lookup.). To see all the relevant paths, set -the environment variable `KPATHSEA_DEBUG' to `-1' before running the + The font GFNAME is searched for in the usual places (*note +(kpathsea)Glyph lookup::). To see all the relevant paths, set the +environment variable 'KPATHSEA_DEBUG' to '-1' before running the program. - The suffix `gf' is supplied if not already present. This suffix is -not an extension; no `.' precedes it: for instance, `cmr10.600gf'. + The suffix 'gf' is supplied if not already present. This suffix is +not an extension; no '.' precedes it: for instance, 'cmr10.600gf'. The translation is written to standard output. The program accepts the following options, as well as the standard -`-help' and `-version' (*note Common options::): -`-images' +'-help' and '-version' (*note Common options::): +'-images' Show the characters' bitmaps using asterisks and spaces. -`-mnemonics' +'-mnemonics' Translate all commands in the GF file. As an example of the output, here is the (abrdiged) translation of -the letter `K' in `cmr10', as rendered at 600dpi with the mode `ljfour' -from `modes.mf' (available from `ftp://ftp.tug.org/tex/modes.mf'), with -both `-mnemonics' and `-images' enabled. +the letter 'K' in 'cmr10', as rendered at 600dpi with the mode 'ljfour' +from 'modes.mf' (available from <ftp://ftp.tug.org/tex/modes.mf>), with +both '-mnemonics' and '-images' enabled. GFtype outputs the information about a character in two places: a -main definition and a one-line summary at the end. We show both. Here +main definition and a one-line summary at the end. We show both. Here is the main definition: 2033: beginning of char 75: 3<=m<=60 0<=n<=56 @@ -2993,100 +2943,97 @@ is the main definition: Explanation: -`2033' -`2043' -`...' +'2033' +'2043' +'...' The byte position in the file where each GF command starts. -`beginning of char 75' +'beginning of char 75' The character code, in decimal. -`3<=m<=60 0<=n<=56' +'3<=m<=60 0<=n<=56' The character's bitmap lies between 3 and 60 (inclusive) - horizontally, and between 0 and 56 (inclusive) vertically. (m is a + horizontally, and between 0 and 56 (inclusive) vertically. (m is a column position and n is a row position.) Thus, 3 is the left side bearing. The right side bearing is the horizontal escapement (given below) minus the maximum m. -`(initially n=56) paint (0)24(12)20' +'(initially n=56) paint (0)24(12)20' The first row of pixels: 0 white pixels, 24 black pixels, 12 white pixels, etc. -`newrow 0 (n=55) paint 24(12)20' +'newrow 0 (n=55) paint 24(12)20' The second row of pixels, with zero leading white pixels on the row. -`eoc' +'eoc' The end of the main character definition. - Here is the GF postamble information that GFtype outputs at the end: Character 75: dx 4259840 (65), width 815562 (64.57289), loc 2033 Explanation: -`dx' +'dx' The device-dependent width, in "scaled pixels", i.e., units of - horizontal pixels times 2^16. The `(65)' is simply the same number + horizontal pixels times 2^16. The '(65)' is simply the same number rounded. If the vertical escapement is nonzero, it would appear - here as a `dy' value. + here as a 'dy' value. -`width' +'width' The device-independent (TFM) width of this character. It is 2^24 times the ratio of the true width to the font's design size. The - `64.57289' is the same number converted to pixels. + '64.57289' is the same number converted to pixels. -`loc' +'loc' The byte position in the file where this character starts. - File: web2c.info, Node: tftopl invocation, Next: pltotf invocation, Prev: gftype invocation, Up: Font utilities 10.6 TFtoPL: TeX font metric to property list conversion ======================================================== -TFtoPL translates a TeX font metric (TFM, *note Metric files: -(dvips)Metric files.) file (as output by Metafont, for example) to -"property list format" (a list of parenthesized items describing the -font) that humans can edit or read. This program is mostly used by -people debugging TeX implementations, writing font utilities, etc. -Synopsis: +TFtoPL translates a TeX font metric (TFM, *note (dvips)Metric files::) +file (as output by Metafont, for example) to "property list format" (a +list of parenthesized items describing the font) that humans can edit or +read. This program is mostly used by people debugging TeX +implementations, writing font utilities, etc. Synopsis: tftopl [OPTION]... TFMNAME[.tfm] [PLFILE[.pl]] - The font TFMNAME (extended with `.tfm' if necessary) is searched for -in the usual places (*note Supported file formats: (kpathsea)Supported -file formats.). To see all the relevant paths, set the environment -variable `KPATHSEA_DEBUG' to `-1' before running the program. + The font TFMNAME (extended with '.tfm' if necessary) is searched for +in the usual places (*note (kpathsea)Supported file formats::). To see +all the relevant paths, set the environment variable 'KPATHSEA_DEBUG' to +'-1' before running the program. - If PLFILE (which is extended with `.pl' if necessary) is not + If PLFILE (which is extended with '.pl' if necessary) is not specified, the property list file is written to standard output. The property list file can be converted back to TFM format by the companion program TFtoPL (see the next section). The program accepts the following option, as well as the standard -`-verbose', `-help' and `-version' (*note Common options::): -`-charcode-format=TYPE' +'-verbose', '-help' and '-version' (*note Common options::): +'-charcode-format=TYPE' Output character codes in the PL file according to TYPE: either - `octal' or `ascii'. Default is `ascii' for letters and digits, + 'octal' or 'ascii'. Default is 'ascii' for letters and digits, octal for all other characters. Exception: if the font's coding - scheme starts with `TeX math sy' or `TeX math ex', all character + scheme starts with 'TeX math sy' or 'TeX math ex', all character codes are output in octal. - In `ascii' format, character codes that correspond to graphic + In 'ascii' format, character codes that correspond to graphic characters, except for left and right parentheses, are output as a - `C' followed by the single character: `C K', for example. In - octal format, character codes are output as the letter `O' followed - by octal digits, as in `O 113' for `K'. + 'C' followed by the single character: 'C K', for example. In octal + format, character codes are output as the letter 'O' followed by + octal digits, as in 'O 113' for 'K'. - `octal' format is useful for symbol and other non-alphabetic fonts, + 'octal' format is useful for symbol and other non-alphabetic fonts, where using ASCII characters for the character codes is merely confusing. As an example of the output, here is the (abridged) property list -translation of `cmr10.tfm': +translation of 'cmr10.tfm': (FAMILY CMR) (FACE O 352) @@ -3137,30 +3084,28 @@ translation of `cmr10.tfm': As you can see, the general format is a list of parenthesized "properties", nested where necessary. - * The first few items (`FAMILY', `FACE', and so on) are the - so-called "headerbyte" information from Metafont, giving general - information about the font. - - * The `FONTDIMEN' property defines the TeX `\fontdimen' values. - - * The `LIGTABLE' property defines the ligature and kerning table. - `LIG' properties define ligatures: in the example above, an `f' - (in the `LABEL') followed by an `i' is a ligature, i.e., a - typesetting program like TeX replaces those two consecutive - characters by the character at position octal '014 in the current - font--presumably the `fi' ligature. `KRN' properties define - kerns: if an `f' is followed by character octal '047 (an - apostrophe), TeX inserts a small amount of space between them: - 0.077779 times the design size the font was loaded at (about - three-quarters of a printer's point by default in this case, or - .001 inches). - - * The `CHARACTER' property defines the dimensions of a character: its - width, height, depth, and italic correction, also in design-size - units, as explained in the previous item. For our example `f', - the depth is zero, so that property is omitted. TFtoPL also - inserts any kerns and ligatures for this character as a comment. + * The first few items ('FAMILY', 'FACE', and so on) are the so-called + "headerbyte" information from Metafont, giving general information + about the font. + * The 'FONTDIMEN' property defines the TeX '\fontdimen' values. + + * The 'LIGTABLE' property defines the ligature and kerning table. + 'LIG' properties define ligatures: in the example above, an 'f' (in + the 'LABEL') followed by an 'i' is a ligature, i.e., a typesetting + program like TeX replaces those two consecutive characters by the + character at position octal '014 in the current font--presumably + the 'fi' ligature. 'KRN' properties define kerns: if an 'f' is + followed by character octal '047 (an apostrophe), TeX inserts a + small amount of space between them: 0.077779 times the design size + the font was loaded at (about three-quarters of a printer's point + by default in this case, or .001 inches). + + * The 'CHARACTER' property defines the dimensions of a character: its + width, height, depth, and italic correction, also in design-size + units, as explained in the previous item. For our example 'f', the + depth is zero, so that property is omitted. TFtoPL also inserts + any kerns and ligatures for this character as a comment. File: web2c.info, Node: pltotf invocation, Next: vftovp invocation, Prev: tftopl invocation, Up: Font utilities @@ -3169,20 +3114,19 @@ File: web2c.info, Node: pltotf invocation, Next: vftovp invocation, Prev: tft ======================================================== PLtoTF translates a property list file (as output by TFtoPL, for -example) to TeX font metric (TFM, *note Metric files: (dvips)Metric -files.) format. It's much easier for both programs and humans to -create the (plain text) property list files and let PLtoTF take care of -creating the binary TFM equivalent than to output TFM files directly. -Synopsis: +example) to TeX font metric (TFM, *note (dvips)Metric files::) format. +It's much easier for both programs and humans to create the (plain text) +property list files and let PLtoTF take care of creating the binary TFM +equivalent than to output TFM files directly. Synopsis: pltotf [OPTION]... PLFILE[.pl] [TFMFILE[.tfm]] - If TFMFILE (extended with `.tfm' if necessary) is not specified, the -TFM file is written to the basename of `PLFILE.tfm', e.g., `pltotf -/wherever/cmr10.pl' creates `./cmr10.tfm'. (Since TFM files are -binary, writing to standard output by default is undesirable.) + If TFMFILE (extended with '.tfm' if necessary) is not specified, the +TFM file is written to the basename of 'PLFILE.tfm', e.g., 'pltotf +/wherever/cmr10.pl' creates './cmr10.tfm'. (Since TFM files are binary, +writing to standard output by default is undesirable.) - The only options are `-verbose', `-help', and `-version' (*note + The only options are '-verbose', '-help', and '-version' (*note Common options::). For an example of property list format, see the previous section. @@ -3193,44 +3137,43 @@ File: web2c.info, Node: vftovp invocation, Next: vptovf invocation, Prev: plt 10.8 VFtoVP: Virtual font to virtual property lists =================================================== -VFtoVP translates a virtual font metric (VF, *note Virtual fonts: -(dvips)Virtual fonts.) file and its accompanying TeX font metric (TFM, -*note Metric files: (dvips)Metric files.) file (as output by VPtoVF, for -example) to "virtual property list format" (a list of parenthesized -items describing the virtual font) that humans can edit or read. This -program is mostly used by people debugging virtual font utilities. -Synopsis: +VFtoVP translates a virtual font metric (VF, *note (dvips)Virtual +fonts::) file and its accompanying TeX font metric (TFM, *note +(dvips)Metric files::) file (as output by VPtoVF, for example) to +"virtual property list format" (a list of parenthesized items describing +the virtual font) that humans can edit or read. This program is mostly +used by people debugging virtual font utilities. Synopsis: vftovp [OPTION]... VFNAME[.vf] [TFMNAME[.tfm] [VPLFILE[.vpl]]] - The fonts VFNAME and TFMNAME (extended with `.vf' and `.tfm' if -necessary) are searched for in the usual places (*note Supported file -formats: (kpathsea)Supported file formats.). To see all the relevant -paths, set the environment variable `KPATHSEA_DEBUG' to `-1' before -running the program. If TFMNAME is not specified, VFNAME (without a -trailing `.vf') is used. + The fonts VFNAME and TFMNAME (extended with '.vf' and '.tfm' if +necessary) are searched for in the usual places (*note +(kpathsea)Supported file formats::). To see all the relevant paths, set +the environment variable 'KPATHSEA_DEBUG' to '-1' before running the +program. If TFMNAME is not specified, VFNAME (without a trailing '.vf') +is used. - If VPLFILE (extended with `.vpl' if necessary) is not specified, the + If VPLFILE (extended with '.vpl' if necessary) is not specified, the property list file is written to standard output. The property list -file can be converted back to VF and TFM format by the companion -program VFtoVP (see the next section). +file can be converted back to VF and TFM format by the companion program +VFtoVP (see the next section). The program accepts the following option, as well as the standard -`-verbose', `-help' and `-version' (*note Common options::): -`-charcode-format=TYPE' +'-verbose', '-help' and '-version' (*note Common options::): +'-charcode-format=TYPE' Output character codes in the PL file according to TYPE: either - `octal' or `ascii'. Default is `ascii' for letters and digits, + 'octal' or 'ascii'. Default is 'ascii' for letters and digits, octal for all other characters. Exception: if the font's coding - scheme starts with `TeX math sy' or `TeX math ex', all character + scheme starts with 'TeX math sy' or 'TeX math ex', all character codes are output in octal. - In `ascii' format, character codes that correspond to graphic + In 'ascii' format, character codes that correspond to graphic characters, except for left and right parentheses, are output as a - `C' followed by the single character: `C K', for example. In - octal format, character codes are output as the letter `O' followed - by octal digits, as in `O 113' for `K'. + 'C' followed by the single character: 'C K', for example. In octal + format, character codes are output as the letter 'O' followed by + octal digits, as in 'O 113' for 'K'. - `octal' format is useful for symbol and other non-alphabetic fonts, + 'octal' format is useful for symbol and other non-alphabetic fonts, where using ASCII characters for the character codes is merely confusing. @@ -3241,21 +3184,20 @@ File: web2c.info, Node: vptovf invocation, Next: Font utilities available else =================================================== VPtoVF translates a virtual property list file (as output by VFtoVP, for -example) to virtual font (VF, *note Virtual fonts: (dvips)Virtual -fonts.) and TeX font metric (TFM, *note Metric files: (dvips)Metric -files.) files. It's much easier for both programs and humans to create -the (plain text) property list files and let VPtoVF take care of -creating the binary VF and TFM equivalents than to output them -directly. Synopsis: +example) to virtual font (VF, *note (dvips)Virtual fonts::) and TeX font +metric (TFM, *note (dvips)Metric files::) files. It's much easier for +both programs and humans to create the (plain text) property list files +and let VPtoVF take care of creating the binary VF and TFM equivalents +than to output them directly. Synopsis: vptovf [OPTION]... VPLFILE[.vpl] [VFFILE[.vf] [TFMFILE[.tfm]]] - If VFFILE (extended with `.vf' if necessary) is not specified, the -VF output is written to the basename of `VPLFILE.vf'; similarly for -TFMFILE. For example, `vptovf /wherever/ptmr.vpl' creates `./ptmr.vf' -and `./ptmr.tfm'. + If VFFILE (extended with '.vf' if necessary) is not specified, the VF +output is written to the basename of 'VPLFILE.vf'; similarly for +TFMFILE. For example, 'vptovf /wherever/ptmr.vpl' creates './ptmr.vf' +and './ptmr.tfm'. - The only options are `-verbose', `-help', and `-version' (*note + The only options are '-verbose', '-help', and '-version' (*note Common options::). @@ -3266,52 +3208,52 @@ File: web2c.info, Node: Font utilities available elsewhere, Prev: vptovf invoc The Web2c complement of font utilities merely implements a few basic conversions. Many other more sophisticated font utilities exist; most -are in `CTAN:/fonts/utilities' (for CTAN info, *note unixtex.ftp: -(kpathsea)unixtex.ftp.). Here are some of the most commonly-requested +are in 'CTAN:/fonts/utilities' (for CTAN info, *note +(kpathsea)unixtex.ftp::). Here are some of the most commonly-requested items: - * AFM (Adobe font metric) to TFM conversion: *note Invoking afm2tfm: - (dvips)Invoking afm2tfm, and `CTAN:/fonts/utilities/afmtopl'. + * AFM (Adobe font metric) to TFM conversion: *note (dvips)Invoking + afm2tfm::, and 'CTAN:/fonts/utilities/afmtopl'. * BDF (the X bitmap format) conversion: - `ftp://ftp.tug.org/tex/bdf.tar.gz'. + <ftp://ftp.tug.org/tex/bdf.tar.gz>. * Creating fonts using MetaPost: MetaType1. - `ftp://bop.eps.gda.pl/pub/metatype1'. This is used to create the - excellent Latin Modern font family (`CTAN:/fonts/lm'), which + <ftp://bop.eps.gda.pl/pub/metatype1>. This is used to create the + excellent Latin Modern font family ('CTAN:/fonts/lm'), which extends Computer Modern to a vast repertoire of scripts. * Editing of bitmap fonts: Xbfe from the GNU font utilities mentioned below; the X BDF-editing programs available from - `ftp://ftp.x.org/R5contrib/xfed.tar.Z' and - `ftp://ftp.x.org/R5contrib/xfedor.tar.Z'; and finally, if your - fonts have only 128 characters, you can use the old `gftopxl', - `pxtoch', and `chtopx' programs from `ftp://ftp.tug.org/tex/web'. + <ftp://ftp.x.org/R5contrib/xfed.tar.Z> and + <ftp://ftp.x.org/R5contrib/xfedor.tar.Z>; and finally, if your + fonts have only 128 characters, you can use the old 'gftopxl', + 'pxtoch', and 'chtopx' programs from <ftp://ftp.tug.org/tex/web>. - * Editing of outline fonts: FontForge, `fontforge.sourceforge.net'. + * Editing of outline fonts: FontForge, <fontforge.sourceforge.net>. This is a very elaborate program with support for many outline formats (Type 1, OpenType, TrueType, ...), and many advanced font editing features. - * PK bitmaps from PostScript outline fonts: gsftopk from the `xdvi' - distribution. Alternatively, `ps2pk', from - `CTAN:/fonts/utilities/ps2pk'. + * PK bitmaps from PostScript outline fonts: gsftopk from the 'xdvi' + distribution. Alternatively, 'ps2pk', from + 'CTAN:/fonts/utilities/ps2pk'. * PostScript Type 1 font format conversion (i.e., between PFA and PFB - formats): `http://www.lcdf.org/type'. + formats): <http://www.lcdf.org/type>. * Scanned image conversion: the (aging) GNU font utilities convert type specimen images to Metafont, PostScript, etc.: - `http://www.gnu.org/software/fontutils/'. + <http://www.gnu.org/software/fontutils/>. * Tracing bitmaps to fitted outlines: Autotrace - (`http://autotrace.sourceforge.net'), Potrace - (`http://potrace.sourceforge.net'). For Metafont fonts, either of - the two programs `mftrace' - (`http://www.xs4all.nl/~hanwen/mftrace') or `textrace' - (`http://textrace.sourceforge.net') make the job easier. + (<http://autotrace.sourceforge.net>), Potrace + (<http://potrace.sourceforge.net>). For Metafont fonts, either of + the two programs 'mftrace' (<http://www.xs4all.nl/~hanwen/mftrace>) + or 'textrace' (<http://textrace.sourceforge.net>) make the job + easier. - * Virtual font creation: `CTAN:/fonts/utilities/fontinst'. + * Virtual font creation: 'CTAN:/fonts/utilities/fontinst'. File: web2c.info, Node: Legalisms, Next: References, Prev: Font utilities, Up: Top @@ -3325,19 +3267,19 @@ permissions for that file. Following is a summary. The Web2c system itself and most of the original WEB source files are public domain. - `tex.web', the MLTeX code, `mf.web', and `bibtex.web', are + 'tex.web', the MLTeX code, 'mf.web', and 'bibtex.web', are copyrighted by their authors. They may be copied verbatim, but may be -modified only through a `.ch' file. +modified only through a '.ch' file. - MetaPost-related files, including `mp.web' itself, are copyrighted + MetaPost-related files, including 'mp.web' itself, are copyrighted under X-like terms; the precise notice is included below. Finally, the Kpathsea library is covered by the GNU Lesser General -Public License (*note Introduction: (kpathsea)Introduction.). -Therefore, the _binaries_ resulting from a standard Web2c compilation -are also covered by the LGPL; so if you (re)distribute the binaries, -you must also (offer to) distribute the complete source that went into -those binaries. See the file `LGPL' for complete details on the LGPL. +Public License (*note (kpathsea)Introduction::). Therefore, the +_binaries_ resulting from a standard Web2c compilation are also covered +by the LGPL; so if you (re)distribute the binaries, you must also (offer +to) distribute the complete source that went into those binaries. See +the file 'LGPL' for complete details on the LGPL. The following notice must be included by the terms of the MetaPost copyright. @@ -3347,16 +3289,15 @@ copyright. granted, provided that the above copyright notice appear in all copies and that both that the copyright notice and this permission notice and warranty disclaimer appear in supporting documentation, - and that the names of AT&T Bell Laboratories or any of its - entities not be used in advertising or publicity pertaining to - distribution of the software without specific, written prior - permission. + and that the names of AT&T Bell Laboratories or any of its entities + not be used in advertising or publicity pertaining to distribution + of the software without specific, written prior permission. AT&T disclaims all warranties with regard to this software, including all implied warranties of merchantability and fitness. In no event shall AT&T be liable for any special, indirect or - consequential damages or any damages whatsoever resulting from - loss of use, data or profits, whether in an action of contract, + consequential damages or any damages whatsoever resulting from loss + of use, data or profits, whether in an action of contract, negligence or other tortious action, arising out of or in connection with the use or performance of this software. @@ -3370,107 +3311,105 @@ Appendix B References 2. Dvips and Afm2tfm: *Note Introduction: (dvips)Top. - 3. The TeX Users Group: `http://www.tug.org'. For an introduction to - the TeX system, see `http://tug.org/begin.html'. + 3. The TeX Users Group: <http://www.tug.org>. For an introduction to + the TeX system, see <http://tug.org/begin.html>. - 4. TUGboat: `http://tug.org/TUGboat'. + 4. TUGboat: <http://tug.org/TUGboat>. 5. TeX and computer typesetting in general: - `ftp://ftp.math.utah.edu/pub/tex/bib/texbook1.bib'. + <ftp://ftp.math.utah.edu/pub/tex/bib/texbook1.bib>. 6. For a bibliography of formal articles and technical reports on the - TeX project, see the books `TeX: The Program' or `Metafont: The + TeX project, see the books 'TeX: The Program' or 'Metafont: The Program' cited below. 7. [Bil87] Neenie Billawala. Write-white printing engines and tuning - fonts with Metafont. `TUGboat', 8(1):29-32, April 1987. - `http://tug.org/TUGboat/tb08-1/tb17billawala.pdf'. + fonts with Metafont. 'TUGboat', 8(1):29-32, April 1987. + <http://tug.org/TUGboat/tb08-1/tb17billawala.pdf>. 8. [GMS94] Michel Goossens, Frank Mittelbach, and Alexander Samarin. - `The LaTeX Companion'. Addison-Wesley, Reading, MA, USA, 1994. + 'The LaTeX Companion'. Addison-Wesley, Reading, MA, USA, 1994. 9. [Hob89] John D. Hobby. A Metafont-like system with PS output. - `TUGboat', 10(4):505-512, December 1989. - `http://tug.org/metapost'. + 'TUGboat', 10(4):505-512, December 1989. + <http://tug.org/metapost>. - 10. [Hob92] John D. Hobby. A User's Manual for MetaPost. Technical + 10. [Hob92] John D. Hobby. A User's Manual for MetaPost. Technical Report CSTR-162, AT&T Bell Laboratories, 1992. - 11. [Hob93] John D. Hobby. Drawing Graphs with MetaPost. Technical + 11. [Hob93] John D. Hobby. Drawing Graphs with MetaPost. Technical Report CSTR-164, AT&T Bell Laboratories, 1993. - 12. [HS91] Samuel P. Harbison and Guy L. Steele Jr. `C--A Reference + 12. [HS91] Samuel P. Harbison and Guy L. Steele Jr. 'C--A Reference Manual'. Prentice-Hall, Upper Saddle River, NJ 07458, USA, third edition, 1991. An authoritative reference to the C programming - language, and a good companion to Kernighan and Ritchie. + language, and a good companion to Kernighan and Ritchie. - 13. [KL93] Donald E. Knuth and Silvio Levy. `The CWEB System of + 13. [KL93] Donald E. Knuth and Silvio Levy. 'The CWEB System of Structured Documentation, Version 3.0'. Addison-Wesley, Reading, MA, USA, 1993. - 14. [Knu84] Donald E. Knuth. A torture test for TeX. Report No. + 14. [Knu84] Donald E. Knuth. A torture test for TeX. Report No. STAN-CS-84-1027, Stanford University, Department of Computer Science, 1984. - 15. [Knu86a] Donald E. Knuth. A Torture Test for METAFONT. Report - No. STAN-CS-86-1095, Stanford University, Department of Computer + 15. [Knu86a] Donald E. Knuth. A Torture Test for METAFONT. Report No. + STAN-CS-86-1095, Stanford University, Department of Computer Science, 1986. - 16. [Knu86b] Donald E. Knuth. `The TeXbook', volume A of `Computers + 16. [Knu86b] Donald E. Knuth. 'The TeXbook', volume A of 'Computers and Typesetting'. Addison-Wesley, Reading, MA, USA, 1986. - 17. [Knu86c] Donald E. Knuth. `TeX: The Program', volume B of - `Computers and Typesetting'. Addison-Wesley, Reading, MA, USA, + 17. [Knu86c] Donald E. Knuth. 'TeX: The Program', volume B of + 'Computers and Typesetting'. Addison-Wesley, Reading, MA, USA, 1986. - 18. [Knu86d] Donald E. Knuth. `The METAFONTbook', volume C of - `Computers and Typesetting'. Addison-Wesley, Reading, MA, USA, + 18. [Knu86d] Donald E. Knuth. 'The METAFONTbook', volume C of + 'Computers and Typesetting'. Addison-Wesley, Reading, MA, USA, 1986. - 19. [Knu86e] Donald E. Knuth. `METAFONT: The Program', volume D of - `Computers and Typesetting'. Addison-Wesley, Reading, MA, USA, + 19. [Knu86e] Donald E. Knuth. 'METAFONT: The Program', volume D of + 'Computers and Typesetting'. Addison-Wesley, Reading, MA, USA, 1986. - 20. [Knu86f] Donald E. Knuth. `Computer Modern Typefaces', volume E - of `Computers and Typesetting'. Addison-Wesley, Reading, MA, - USA, 1986. + 20. [Knu86f] Donald E. Knuth. 'Computer Modern Typefaces', volume E + of 'Computers and Typesetting'. Addison-Wesley, Reading, MA, USA, + 1986. - 21. [Knu89] Donald E. Knuth. The errors of TeX. `Software--Practice - and Experience', 19(7):607-681, July 1989. This is an updated + 21. [Knu89] Donald E. Knuth. The errors of TeX. 'Software--Practice + and Experience', 19(7):607-681, July 1989. This is an updated version of Knuth:1988:ET. - 22. [Knu90] Donald Knuth. Virtual Fonts: More Fun for Grand Wizards. - `TUGboat', 11(1):13-23, April 1990. - `http://tug.org/TUGboat/tb11-1/tb27knut.pdf'. + 22. [Knu90] Donald Knuth. Virtual Fonts: More Fun for Grand Wizards. + 'TUGboat', 11(1):13-23, April 1990. + <http://tug.org/TUGboat/tb11-1/tb27knut.pdf>. - 23. [Knu92] Donald E. Knuth. `Literate Programming'. CSLI Lecture - Notes Number 27. Stanford University Center for the Study of + 23. [Knu92] Donald E. Knuth. 'Literate Programming'. CSLI Lecture + Notes Number 27. Stanford University Center for the Study of Language and Information, Stanford, CA, USA, 1992. - 24. [Lam94] Leslie Lamport. `LaTeX: A Document Preparation System: - User's Guide and Reference Manual'. Addison-Wesley, Reading, - MA, USA, second edition, 1994. Reprinted with corrections in 1996. + 24. [Lam94] Leslie Lamport. 'LaTeX: A Document Preparation System: + User's Guide and Reference Manual'. Addison-Wesley, Reading, MA, + USA, second edition, 1994. Reprinted with corrections in 1996. - 25. [Lia83] Franklin Mark Liang. Word hy-phen-a-tion by com-pu-ter. + 25. [Lia83] Franklin Mark Liang. Word hy-phen-a-tion by com-pu-ter. Technical Report STAN-CS-83-977, Stanford University, August 1983. - `http://tug.org/docs/liang/liang-thesis.pdf'. + <http://tug.org/docs/liang/liang-thesis.pdf>. - 26. [Mac91] Pierre A. MacKay. Looking at the pixels: Quality control - for 300 dpi laser printer fonts, especially Metafonts. In - Robert A. Morris and Jacques Andre, editors, `Raster Imaging and - Digital Typography II--Papers from the second RIDT meeting, held in - Boston, Oct. 14-16, 1991', pages 205-215, New York, 1991. - Cambridge University Press. + 26. [Mac91] Pierre A. MacKay. Looking at the pixels: Quality control + for 300 dpi laser printer fonts, especially Metafonts. In Robert + A. Morris and Jacques Andre, editors, 'Raster Imaging and Digital + Typography II--Papers from the second RIDT meeting, held in Boston, + Oct. 14-16, 1991', pages 205-215, New York, 1991. Cambridge + University Press. - 27. [Spi89] Michael D. Spivak. `LAMSTeX, The Synthesis'. The + 27. [Spi89] Michael D. Spivak. 'LAMSTeX, The Synthesis'. The TeXplorators Corporation, 3701 W. Alabama, Suite 450-273, Houston, - TX 77027, USA, 1989. - - 28. [Spi90] Michael D. Spivak. `The Joy of TeX--A Gourmet Guide to - Typesetting with the AMSTeX macro package'. American - Mathematical Society, Providence, RI, USA, 2nd revised edition, - 1990. + TX 77027, USA, 1989. + 28. [Spi90] Michael D. Spivak. 'The Joy of TeX--A Gourmet Guide to + Typesetting with the AMSTeX macro package'. American Mathematical + Society, Providence, RI, USA, 2nd revised edition, 1990. File: web2c.info, Node: Index, Prev: References, Up: Top @@ -3481,9 +3420,9 @@ Index * Menu: -* #define options: Compile-time options. +* '#define' options: Compile-time options. (line 6) -* $ expansion in filenames: \input filenames. (line 48) +* $ expansion in filenames: \input filenames. (line 47) * %& magic number: Determining the memory dump to use. (line 19) * - starting a filename: Option conventions. (line 19) @@ -3497,7 +3436,7 @@ Index (line 20) * --enable-hp2627win: Online Metafont graphics. (line 28) -* --enable-ipc configure option: tex invocation. (line 95) +* --enable-ipc configure option: tex invocation. (line 92) * --enable-mftalkwin: Online Metafont graphics. (line 31) * --enable-next: Online Metafont graphics. @@ -3522,15 +3461,15 @@ Index * -base=BASE: Determining the memory dump to use. (line 15) * -base=DUMPNAME: Common options. (line 34) -* -change=CHFILE: mft invocation. (line 64) -* -charcode-format=TYPE <1>: vftovp invocation. (line 31) -* -charcode-format=TYPE: tftopl invocation. (line 28) +* -change=CHFILE: mft invocation. (line 62) +* -charcode-format=TYPE: tftopl invocation. (line 27) +* -charcode-format=TYPE <1>: vftovp invocation. (line 30) * -D compiler options: Compile-time options. (line 6) -* -disable-write18: tex invocation. (line 130) +* -disable-write18: tex invocation. (line 127) * -dpi=REAL: dvitype invocation. (line 24) -* -enable-write18: tex invocation. (line 129) -* -enc: tex invocation. (line 89) +* -enable-write18: tex invocation. (line 126) +* -enc: tex invocation. (line 86) * -file-line-error: Common options. (line 25) * -file-line-error-style: Common options. (line 26) * -fmt=DUMPNAME: Common options. (line 34) @@ -3540,55 +3479,55 @@ Index (line 69) * -halt-on-error: Common options. (line 41) * -images: gftype invocation. (line 26) -* -ini <1>: Initial and virgin. (line 10) * -ini: Common options. (line 45) +* -ini <1>: Initial and virgin. (line 10) * -interaction=STRING: Common options. (line 50) -* -ipc: tex invocation. (line 95) -* -ipc-start: tex invocation. (line 95) +* -ipc: tex invocation. (line 92) +* -ipc-start: tex invocation. (line 92) * -jobname=STRING: Common options. (line 55) * -kpathsea-debug=NUMBER: Common options. (line 59) * -length=NUMBER: tangle invocation. (line 27) * -loose: tangle invocation. (line 46) * -lowercase: tangle invocation. (line 35) -* -magnification=INTEGER <1>: dvitype invocation. (line 28) * -magnification=INTEGER: dvicopy invocation. (line 20) -* -max-pages=N <1>: dvitype invocation. (line 33) +* -magnification=INTEGER <1>: dvitype invocation. (line 28) * -max-pages=N: dvicopy invocation. (line 25) +* -max-pages=N <1>: dvitype invocation. (line 33) * -mem=DUMPNAME: Common options. (line 34) * -min-crossrefs=N: bibtex invocation. (line 31) * -mixedcase: tangle invocation. (line 35) +* -mktex=FILETYPE: tex invocation. (line 102) * -mktex=FILETYPE <1>: mf invocation. (line 87) -* -mktex=FILETYPE: tex invocation. (line 105) -* -mltex: tex invocation. (line 110) +* -mltex: tex invocation. (line 107) * -mnemonics: gftype invocation. (line 29) * -no-file-line-error: Common options. (line 26) +* -no-mktex=FILETYPE: tex invocation. (line 102) * -no-mktex=FILETYPE <1>: mf invocation. (line 87) -* -no-mktex=FILETYPE: tex invocation. (line 105) * -no-parse-first-line: Common options. (line 72) -* -no-shell-escape: tex invocation. (line 123) -* -output-comment=STRING: tex invocation. (line 115) +* -no-shell-escape: tex invocation. (line 120) +* -output-comment=STRING: tex invocation. (line 112) +* -output-directory: Common options. (line 66) * -output-directory <1>: Output file location. (line 15) -* -output-directory: Common options. (line 66) * -output-level=N: dvitype invocation. (line 36) * -overflow-label-offset=POINTS: gftodvi invocation. (line 59) -* -page-start=PAGE-SPEC <1>: dvitype invocation. (line 50) * -page-start=PAGE-SPEC: dvicopy invocation. (line 28) +* -page-start=PAGE-SPEC <1>: dvitype invocation. (line 46) * -parse-first-line: Common options. (line 71) +* -progname=STRING: Common options. (line 77) * -progname=STRING <1>: Determining the memory dump to use. (line 17) -* -progname=STRING: Common options. (line 77) * -recorder: Common options. (line 84) -* -shell-escape: tex invocation. (line 122) -* -shell-restricted: tex invocation. (line 124) -* -show-opcodes: dvitype invocation. (line 56) +* -shell-escape: tex invocation. (line 119) +* -shell-restricted: tex invocation. (line 121) +* -show-opcodes: dvitype invocation. (line 52) * -strict: tangle invocation. (line 46) -* -style=MFTFILE: mft invocation. (line 68) -* -T: mpost invocation. (line 118) +* -style=MFTFILE: mft invocation. (line 66) +* -T: mpost invocation. (line 115) * -terse: bibtex invocation. (line 28) -* -tex=TEXPROGRAM: mpost invocation. (line 121) +* -tex=TEXPROGRAM: mpost invocation. (line 118) * -translate-file=TCXFILE: Common options. (line 98) -* -troff: mpost invocation. (line 118) +* -troff: mpost invocation. (line 115) * -underline: tangle invocation. (line 41) * -uppercase: tangle invocation. (line 35) * -x: weave invocation. (line 22) @@ -3602,15 +3541,15 @@ Index * .blg BibTeX log file: bibtex invocation. (line 14) * .fmt: Initial TeX. (line 6) * .mf: mf invocation. (line 24) -* .mp: mpost invocation. (line 31) -* .mps files and PDF: mpost invocation. (line 89) -* .NNN PostScript figures: mpost invocation. (line 37) +* .mp: mpost invocation. (line 30) +* '.mps' files and PDF: mpost invocation. (line 86) +* .NNN PostScript figures: mpost invocation. (line 35) * .NNNgf generic fonts: mf invocation. (line 34) -* .tcx character translation files <1>: TCX files. (line 6) * .tcx character translation files: Common options. (line 98) +* .tcx character translation files <1>: TCX files. (line 6) * .tex: tex invocation. (line 20) -* .tfm output <1>: mpost invocation. (line 37) * .tfm output: mf invocation. (line 43) +* .tfm output <1>: mpost invocation. (line 35) * .Xdefaults: Online Metafont graphics. (line 69) * .Xresources: Online Metafont graphics. @@ -3622,34 +3561,34 @@ Index * \bibliography: bibtex invocation. (line 18) * \bibliographystyle: bibtex invocation. (line 18) * \charsubdef and MLTeX: \charsubdef. (line 6) -* \countN <1>: dvitype invocation. (line 50) * \countN: dvicopy invocation. (line 28) -* \font and dynamic generation: tex invocation. (line 44) -* \fontdimen: tftopl invocation. (line 100) +* \countN <1>: dvitype invocation. (line 46) +* \font and dynamic generation: tex invocation. (line 41) +* \fontdimen: tftopl invocation. (line 99) * \immediate\write18: Shell escapes. (line 6) * \input filenames: \input filenames. (line 6) * \input, and pipes: Shell escapes. (line 63) -* \mag <1>: dvitype invocation. (line 28) * \mag: dvicopy invocation. (line 20) +* \mag <1>: dvitype invocation. (line 28) * \openin, and pipes: Shell escapes. (line 63) -* \openout and security: tex invocation. (line 51) +* \openout and security: tex invocation. (line 48) * \openout, and pipes: Shell escapes. (line 63) -* \output routine, and \write: Shell escapes. (line 28) +* \output routine, and '\write': Shell escapes. (line 28) * \pdfshellescape: Shell escapes. (line 63) -* \string: \input filenames. (line 60) +* \string: \input filenames. (line 59) * \tracingcharsubdef and MLTeX: \tracingcharsubdef. (line 6) * \tracinglostchars and MLTeX: \tracingcharsubdef. (line 11) * \write18 shell escape extension: Shell escapes. (line 6) -* ^^ notation, avoiding: TCX files. (line 88) -* `Computer Modern Typefaces', production of: mft invocation. (line 75) +* ^^ notation, avoiding: TCX files. (line 87) +* ~ expansion in filenames: \input filenames. (line 47) * abbrv.bst: Basic BibTeX style files. (line 16) * accented character: TCX files. (line 6) * accents, hyphenating words with: MLTeX. (line 6) -* acknowledgements: Introduction. (line 50) +* acknowledgements: Introduction. (line 52) * acm.bst: Basic BibTeX style files. (line 19) -* Ada, WEB for: WEB. (line 13) +* Ada, WEB for: WEB. (line 12) * additional Make targets: Additional targets. (line 6) * AFM to TFM conversion: Font utilities available elsewhere. (line 12) @@ -3658,7 +3597,7 @@ Index * afmtopl: Font utilities available elsewhere. (line 12) * Aleph: TeX extensions. (line 14) -* aliases for fonts: Path searching. (line 15) +* aliases for fonts: Path searching. (line 14) * alpha.bst: Basic BibTeX style files. (line 22) * American Mathematical Society, typesetting system: Formats. (line 39) @@ -3667,29 +3606,29 @@ Index (line 25) * architecture dependencies: Hardware and memory dumps. (line 6) -* array limit, fixed: Runtime options. (line 36) +* array limit, fixed: Runtime options. (line 35) * array sizes: Runtime options. (line 6) * assembly language routines: Compile-time options. - (line 22) + (line 21) * autotrace: Font utilities available elsewhere. (line 46) -* Awk, WEB for: WEB. (line 13) +* Awk, WEB for: WEB. (line 12) * base file, determining: Determining the memory dump to use. (line 6) * base files: Initial Metafont. (line 6) * base files, need mode definitions: Modes. (line 6) -* base files, plain only: Initial Metafont. (line 28) +* base files, plain only: Initial Metafont. (line 26) * base files, sharing: Hardware and memory dumps. (line 6) -* bases Make target: Additional targets. (line 29) +* bases Make target: Additional targets. (line 28) * basic BibTeX style files: Basic BibTeX style files. (line 6) -* basic fonts and macros: Installation. (line 34) +* basic fonts and macros: Installation. (line 33) * batch languages: TeX. (line 9) * BDF and GF conversion: Font utilities available elsewhere. (line 15) -* beginfig: mpost invocation. (line 37) -* Berry, Karl: Introduction. (line 40) +* beginfig: mpost invocation. (line 35) +* Berry, Karl: Introduction. (line 42) * BIBINPUTS, search path for bib files: bibtex invocation. (line 18) * bibliographies, creating: BibTeX. (line 6) * bibliography: References. (line 6) @@ -3702,53 +3641,54 @@ Index * BigEndian machines: Hardware and memory dumps. (line 6) * binaries, linking: Common options. (line 77) -* blank lines, in TCX files: TCX files. (line 67) +* blank lines, in TCX files: TCX files. (line 66) * boxes, memory for: Runtime options. (line 20) * breakpoints, memory for: Runtime options. (line 20) -* Breitenlohner, Peter: Introduction. (line 8) +* Breitenlohner, Peter: Introduction. (line 9) * BSTINPUTS, search path for bst files: bibtex invocation. (line 18) -* btex for MetaPost labels: mpost invocation. (line 50) +* btex for MetaPost labels: mpost invocation. (line 48) * btxdoc.bib: bibtex invocation. (line 48) * btxdoc.tex: bibtex invocation. (line 42) * btxhak.tex: bibtex invocation. (line 45) -* byte position <1>: gftype invocation. (line 76) * byte position: pktype invocation. (line 40) +* byte position <1>: gftype invocation. (line 76) * byte swapping: Hardware and memory dumps. (line 13) * c-sources Makefile target: Additional targets. (line 12) -* change files, and MFT: mft invocation. (line 64) +* change files, and MFT: mft invocation. (line 62) * change files, and Tangle: tangle invocation. (line 11) * change files, and Weave: weave invocation. (line 14) * changing error messages style: Common options. (line 26) * character codes, in GFtype output: gftype invocation. (line 79) * character codes, in PKtype output: pktype invocation. (line 47) -* character codes, in TCX files: TCX files. (line 78) +* character codes, in TCX files: TCX files. (line 77) * character proofs of fonts: gftodvi invocation. (line 6) -* CHARACTER property: tftopl invocation. (line 114) +* CHARACTER property: tftopl invocation. (line 112) * character translation files: TCX files. (line 6) -* CHARDP property: tftopl invocation. (line 114) -* CHARHT property: tftopl invocation. (line 114) -* CHARIC property: tftopl invocation. (line 114) -* CHARWD property: tftopl invocation. (line 114) +* CHARDP property: tftopl invocation. (line 112) +* CHARHT property: tftopl invocation. (line 112) +* CHARIC property: tftopl invocation. (line 112) +* CHARWD property: tftopl invocation. (line 112) * chtopx: Font utilities available elsewhere. (line 23) * class name for Metafont: Online Metafont graphics. (line 69) -* cm.base: Initial Metafont. (line 28) -* cmbase.mf: Initial Metafont. (line 28) -* cmbase.mft: mft invocation. (line 75) -* cmmf.base not recommended: Initial Metafont. (line 28) +* cm.base: Initial Metafont. (line 26) +* cmbase.mf: Initial Metafont. (line 26) +* cmbase.mft: mft invocation. (line 72) +* cmmf.base not recommended: Initial Metafont. (line 26) * color, in DVItoMP: dvitomp invocation. (line 15) -* comments, in TCX files: TCX files. (line 71) +* comments, in TCX files: TCX files. (line 70) * comments, MFT control: mft invocation. (line 24) * common options: Common options. (line 6) * commonalities: Commonalities. (line 6) * compilation: Installation. (line 6) +* compile-time options: configure options. (line 6) * compile-time options <1>: Compile-time options. (line 6) -* compile-time options: configure options. (line 6) -* Computer Modern fonts, and Troff: mpost invocation. (line 68) -* Computer Modern macros: Initial Metafont. (line 28) +* Computer Modern fonts, and Troff: mpost invocation. (line 65) +* Computer Modern macros: Initial Metafont. (line 26) +* 'Computer Modern Typefaces', production of: mft invocation. (line 72) * configuration: Installation. (line 6) * configuration file reading: Path searching. (line 6) * configuration file values: Runtime options. (line 6) @@ -3767,41 +3707,41 @@ Index * conversion, TFM to property list: tftopl invocation. (line 6) * conversion, VF to VPL: vftovp invocation. (line 6) * copyright notices: Legalisms. (line 6) -* Cork encoding and ISO input: TCX files. (line 49) +* Cork encoding and ISO input: TCX files. (line 48) * creating memory dumps: Creating memory dumps. (line 6) * cross-referenced bibliography items: bibtex invocation. (line 31) * cross-references, omitting: weave invocation. (line 22) * current directory, used for output: Output file location. (line 6) -* Curtis, Pavel: Introduction. (line 40) -* CWEB: WEB. (line 13) -* Cweb: WEB. (line 13) +* Curtis, Pavel: Introduction. (line 42) +* Cweb: WEB. (line 12) +* CWEB: WEB. (line 12) * date and time, in memory dumps: Hardware and memory dumps. (line 30) -* debugging DVI utilities: dvitype invocation. (line 56) +* debugging DVI utilities: dvitype invocation. (line 52) * debugging flags, specifying: Common options. (line 59) -* decimal character codes, in TCX files: TCX files. (line 78) +* decimal character codes, in TCX files: TCX files. (line 77) * dependencies, hardware: Hardware and memory dumps. (line 6) -* design-size units: tftopl invocation. (line 102) +* design-size units: tftopl invocation. (line 101) * device definitions, for Metafont: Modes. (line 6) -* device-independent width <1>: gftype invocation. (line 113) * device-independent width: pktype invocation. (line 53) -* directory structure: Installation. (line 34) +* device-independent width <1>: gftype invocation. (line 112) +* directory structure: Installation. (line 33) * DISPLAY: Online Metafont graphics. (line 76) -* dot files, written by TeX programs: tex invocation. (line 51) -* downloading of fonts for MetaPost labels: mpost invocation. (line 73) +* dot files, written by TeX programs: tex invocation. (line 48) +* downloading of fonts for MetaPost labels: mpost invocation. (line 70) * DrawingServant: Online Metafont graphics. (line 35) * dump file: Common options. (line 34) * dumping memory: Memory dumps. (line 6) -* DVI comment, specifying: tex invocation. (line 115) +* DVI comment, specifying: tex invocation. (line 112) * DVI files, converting to MPX: dvitomp invocation. (line 6) -* DVI files, explained: Font file formats. (line 30) +* DVI files, explained: Font file formats. (line 29) * DVI format definition: DVI utilities. (line 14) -* DVI opcodes, showing: dvitype invocation. (line 56) +* DVI opcodes, showing: dvitype invocation. (line 52) * DVI utilities: DVI utilities. (line 6) * dvicopy: dvicopy invocation. (line 6) * dvitomp: dvitomp invocation. (line 6) @@ -3809,23 +3749,23 @@ Index * dvitype output example: dvitype output example. (line 6) * dvitype.web: DVI utilities. (line 14) -* dx horizontal escapement <1>: gftype invocation. (line 107) * dx horizontal escapement: pktype invocation. (line 57) -* dy vertical escapement: gftype invocation. (line 107) -* dynamic array allocation: Runtime options. (line 36) -* dynamic Metafont mode definitions with smode: Modes. (line 28) +* dx horizontal escapement <1>: gftype invocation. (line 106) +* dy vertical escapement: gftype invocation. (line 106) +* dynamic array allocation: Runtime options. (line 35) +* dynamic Metafont mode definitions with 'smode': Modes. (line 28) * dynamic packing variable: pktype invocation. (line 44) * e response at error prompt: Editor invocation. (line 6) -* e-circumflex: \charsubdef. (line 21) +* e-circumflex: \charsubdef. (line 20) * e-TeX: TeX extensions. (line 10) -* e.mft: mft invocation. (line 75) +* e.mft: mft invocation. (line 72) +* EC fonts: tex invocation. (line 41) * EC fonts <1>: mf invocation. (line 24) -* EC fonts: tex invocation. (line 44) * editing of bitmap fonts: Font utilities available elsewhere. (line 23) * editor invoked at error: Editor invocation. (line 6) -* eight-bit characters in filenames: \input filenames. (line 35) -* empty.tcx: TCX files. (line 49) +* eight-bit characters in filenames: \input filenames. (line 34) +* empty.tcx: TCX files. (line 48) * endian dependencies: Hardware and memory dumps. (line 6) * eoc GF command: gftype invocation. (line 97) @@ -3833,30 +3773,31 @@ Index * epsf: Online Metafont graphics. (line 19) * errors, editor invoked at: Editor invocation. (line 6) -* escapement, horizontal <1>: gftype invocation. (line 107) * escapement, horizontal: pktype invocation. (line 57) -* escapement, vertical: gftype invocation. (line 107) -* etex for MetaPost labels: mpost invocation. (line 50) +* escapement, horizontal <1>: gftype invocation. (line 106) +* escapement, vertical: gftype invocation. (line 106) +* etex for MetaPost labels: mpost invocation. (line 48) * executables, shared initial and virgin: Initial and virgin. (line 6) * exit status, of shell escape: Shell escapes. (line 34) * expanded plain format: Formats. (line 54) * extensions to TeX: TeX extensions. (line 6) * extra_mem_bot: Runtime options. (line 19) -* FACE property: tftopl invocation. (line 96) -* FAMILY property: tftopl invocation. (line 96) +* FACE property: tftopl invocation. (line 95) +* FAMILY property: tftopl invocation. (line 95) +* FAMILY property <1>: tftopl invocation. (line 99) * Ferguson, Michael: MLTeX. (line 6) * file formats for fonts: Font file formats. (line 6) * file recorder: Common options. (line 84) * filename conventions, in input files: \input filenames. (line 6) -* filenames starting with -: Option conventions. (line 19) +* filenames starting with '-': Option conventions. (line 19) * first line of the main input file: Common options. (line 98) * fixed-point arithmetic: Compile-time options. - (line 22) + (line 21) * FIXPT: Compile-time options. - (line 22) + (line 21) * flag byte: pktype invocation. (line 44) * floating-point arithmetic: Compile-time options. - (line 22) + (line 21) * floating-point values: Hardware and memory dumps. (line 22) * fmt file, determining: Determining the memory dump to use. @@ -3864,39 +3805,39 @@ Index * fmt files: Initial TeX. (line 6) * fmt files, sharing: Hardware and memory dumps. (line 6) -* fmts Make target: Additional targets. (line 25) -* font aliases: Path searching. (line 15) -* font character code, translating: TCX files. (line 102) +* fmts Make target: Additional targets. (line 24) +* font aliases: Path searching. (line 14) +* font character code, translating: TCX files. (line 101) * font design: Metafont. (line 6) -* font downloading for MetaPost labels: mpost invocation. (line 73) +* font downloading for MetaPost labels: mpost invocation. (line 70) * font file formats: Font file formats. (line 6) * font proofs: gftodvi invocation. (line 6) * font utilities: Font utilities. (line 6) * font utilities, non-Web2c: Font utilities available elsewhere. (line 6) -* font_mem_size: Runtime options. (line 24) * fontforge: Font utilities available elsewhere. (line 30) * fontinst, for creating virtual fonts: Font utilities available elsewhere. (line 53) -* fonts, basic: Installation. (line 34) +* fonts, basic: Installation. (line 33) * fontutils: Font utilities available elsewhere. (line 42) -* format files: Initial TeX. (line 15) +* font_mem_size: Runtime options. (line 24) +* format files: Initial TeX. (line 13) * formats for TeX: Formats. (line 6) * formats Make target: Additional targets. (line 17) * fraction routines: Compile-time options. - (line 22) + (line 21) * Free Software Foundation documentation system: Formats. (line 47) -* freedom of Web2c: Introduction. (line 22) +* freedom of Web2c: Introduction. (line 23) * ftp.math.utah.edu: bibtex invocation. (line 54) -* generating source specials: tex invocation. (line 136) +* generating source specials: tex invocation. (line 133) * geometric designs: Metafont. (line 6) -* geometric font scaling: Font file formats. (line 22) +* geometric font scaling: Font file formats. (line 21) * geometry for Metafont: Online Metafont graphics. (line 69) * getopt_long_only: Option conventions. (line 6) -* GF files, explained: Font file formats. (line 40) +* GF files, explained: Font file formats. (line 39) * GF files, output by Metafont: mf invocation. (line 34) * GF format definition: Font utilities. (line 11) * GF output: mf invocation. (line 34) @@ -3922,17 +3863,17 @@ Index (line 6) * hash table, increasing size of: Runtime options. (line 29) * hash_extra: Runtime options. (line 28) -* headerbyte information: tftopl invocation. (line 96) +* headerbyte information: tftopl invocation. (line 95) * height, in pixels: pktype invocation. (line 62) * help, online: Common options. (line 11) -* Henry, Patrick: Introduction. (line 22) +* Henry, Patrick: Introduction. (line 23) * Herberts, Mathias: Online Metafont graphics. (line 20) -* hex character codes, in TCX files: TCX files. (line 78) -* history: Introduction. (line 40) -* Hobby, John: Introduction. (line 8) -* horizontal escapement <1>: gftype invocation. (line 107) +* hex character codes, in TCX files: TCX files. (line 77) +* history: Introduction. (line 42) +* Hobby, John: Introduction. (line 9) * horizontal escapement: pktype invocation. (line 57) +* horizontal escapement <1>: gftype invocation. (line 106) * hp2627: Online Metafont graphics. (line 27) * human languages, supported in TeX: Languages and hyphenation. @@ -3946,61 +3887,61 @@ Index * hyphenation and languages: Languages and hyphenation. (line 6) * hyphenation patterns, creating: patgen invocation. (line 6) -* ice cream: Introduction. (line 22) +* ice cream: Introduction. (line 23) * identifier case: tangle invocation. (line 35) * identifier collisions: tangle invocation. (line 46) * identifier length: tangle invocation. (line 27) * identifiers with underlines: tangle invocation. (line 41) * ieeetr.bst: Basic BibTeX style files. (line 31) -* il1-t1.tcx: TCX files. (line 49) -* il2-t1.tcx: TCX files. (line 49) +* il1-t1.tcx: TCX files. (line 48) +* il2-t1.tcx: TCX files. (line 48) * Info format: Formats. (line 47) * initial form, enabling: Common options. (line 45) * initial Metafont: Initial Metafont. (line 6) * initial MetaPost: Initial MetaPost. (line 6) -* initial programs: Initial and virgin. (line 21) +* initial programs: Initial and virgin. (line 19) * initial TeX: Initial TeX. (line 6) -* initializations, lengthy: Initial and virgin. (line 21) +* initializations, lengthy: Initial and virgin. (line 19) * input filenames: \input filenames. (line 6) -* install-bases Make target: Additional targets. (line 29) -* install-fmts Make target: Additional targets. (line 25) +* install-bases Make target: Additional targets. (line 28) +* install-fmts Make target: Additional targets. (line 24) * install-formats Make target: Additional targets. (line 17) * install-mems Make target: Additional targets. (line 34) * installation: Installation. (line 6) -* interaction between TCX files and -8bit.: TCX files. (line 105) +* interaction between TCX files and '-8bit'.: TCX files. (line 104) * interaction mode: Common options. (line 50) * international characters: TCX files. (line 6) * introduction: Introduction. (line 6) * IPC: IPC and TeX. (line 6) -* IPC_DEBUG <1>: IPC and TeX. (line 13) * IPC_DEBUG: Compile-time options. - (line 29) + (line 28) +* IPC_DEBUG <1>: IPC and TeX. (line 13) * job name: Common options. (line 55) -* kerning table, in TFM files: tftopl invocation. (line 102) -* keyboard character code, translating: TCX files. (line 102) -* Knuth, Donald E. <1>: mft invocation. (line 58) -* Knuth, Donald E.: Introduction. (line 8) +* kerning table, in TFM files: tftopl invocation. (line 101) +* keyboard character code, translating: TCX files. (line 101) +* Knuth, Donald E.: Introduction. (line 9) +* Knuth, Donald E. <1>: mft invocation. (line 56) * KPATHSEA_DEBUG: Common options. (line 59) -* KRN property: tftopl invocation. (line 102) +* KRN property: tftopl invocation. (line 101) * label font: gftodvi invocation. (line 36) -* LABEL property: tftopl invocation. (line 102) +* LABEL property: tftopl invocation. (line 101) * language support in TeX: Languages and hyphenation. (line 6) * languages, hyphenation rules for: patgen invocation. (line 6) * LaTeX: Formats. (line 22) * Latin Modern: Font utilities available elsewhere. (line 18) -* left side bearing <1>: gftype invocation. (line 82) * left side bearing: pktype invocation. (line 66) +* left side bearing <1>: gftype invocation. (line 82) * legalisms: Legalisms. (line 6) -* licensing terms: Introduction. (line 22) -* LIG property: tftopl invocation. (line 102) -* ligature table, in TFM files: tftopl invocation. (line 102) -* LIGTABLE property: tftopl invocation. (line 102) +* licensing terms: Introduction. (line 23) +* LIG property: tftopl invocation. (line 101) +* ligature table, in TFM files: tftopl invocation. (line 101) +* LIGTABLE property: tftopl invocation. (line 101) * linking binaries: Common options. (line 77) * links to binaries: Determining the memory dump to use. - (line 31) + (line 30) * literate programming: WEB. (line 6) * LittleEndian machines: Hardware and memory dumps. (line 6) @@ -4009,19 +3950,19 @@ Index * luaTeX: TeX extensions. (line 26) * machine dependencies: Hardware and memory dumps. (line 6) -* machine-readable, converting property lists to <1>: vptovf invocation. - (line 6) * machine-readable, converting property lists to: pltotf invocation. (line 6) -* MacKay, Pierre: Font file formats. (line 63) +* machine-readable, converting property lists to <1>: vptovf invocation. + (line 6) +* MacKay, Pierre: Font file formats. (line 62) * macro packages, major TeX: Formats. (line 6) -* macros, basic: Installation. (line 34) +* macros, basic: Installation. (line 33) * macros, predefining in memory dumps: Memory dumps. (line 6) -* magnification <1>: dvitype invocation. (line 28) * magnification: dvicopy invocation. (line 20) +* magnification <1>: dvitype invocation. (line 28) * main_memory: Runtime options. (line 15) * Make targets, additional: Additional targets. (line 6) -* Martin, Rick: Introduction. (line 50) +* Martin, Rick: Introduction. (line 52) * Mathematical Reviews: Formats. (line 39) * mathematical typesetting: TeX. (line 6) * mem file, determining: Determining the memory dump to use. @@ -4038,7 +3979,7 @@ Index * memory dumps, creating: Creating memory dumps. (line 6) * mems Make target: Additional targets. (line 34) -* meta characters in filenames: \input filenames. (line 35) +* meta characters in filenames: \input filenames. (line 34) * Metafont: Metafont. (line 6) * Metafont geometry: Online Metafont graphics. (line 69) @@ -4048,7 +3989,7 @@ Index * Metafont invocation: mf invocation. (line 6) * Metafont meets PostScript: MetaPost. (line 6) * Metafont online support, new devices: Online Metafont graphics. - (line 80) + (line 79) * Metafont source, prettyprinting: mft invocation. (line 6) * Metafont, compatibility in MetaPost: Initial MetaPost. (line 15) * Metafont, initial: Initial Metafont. (line 6) @@ -4056,15 +3997,15 @@ Index * MetaPost: MetaPost. (line 6) * MetaPost and plain Metafont compatibility: Initial MetaPost. (line 15) -* MetaPost input files: mpost invocation. (line 31) +* MetaPost input files: mpost invocation. (line 30) * MetaPost invocation: mpost invocation. (line 6) -* MetaPost source, prettyprinting: mft invocation. (line 80) +* MetaPost source, prettyprinting: mft invocation. (line 78) * MetaPost, initial: Initial MetaPost. (line 6) * MetaPost, TeX, and Metafont: Three programs. (line 6) * metatype1: Font utilities available elsewhere. (line 18) * mf: mf invocation. (line 6) -* mf.base: Initial Metafont. (line 16) +* mf.base: Initial Metafont. (line 14) * MFEDIT: Editor invocation. (line 10) * mfplain: Initial MetaPost. (line 15) * mfput: mf invocation. (line 34) @@ -4076,66 +4017,66 @@ Index * mftmac.tex: mft invocation. (line 6) * micro-typography: TeX extensions. (line 20) * mktexmf, disabling: mf invocation. (line 24) -* mktextfM, disabling: tex invocation. (line 44) +* mktextfM, disabling: tex invocation. (line 41) * mltex: MLTeX. (line 6) -* MLTeX, enabling: tex invocation. (line 110) +* MLTeX, enabling: tex invocation. (line 107) * mode needed to run Metafont: mf invocation. (line 48) -* mode_def: Modes. (line 15) -* mode_setup: Modes. (line 15) * modes file needed for Metafont: Modes. (line 6) * modes.mf recommended modes file: Modes. (line 10) -* Morgan, Tim: Introduction. (line 40) -* Morris, Bob: Introduction. (line 50) +* mode_def: Modes. (line 15) +* mode_setup: Modes. (line 15) +* Morgan, Tim: Introduction. (line 42) +* Morris, Bob: Introduction. (line 52) * MPEDIT: Editor invocation. (line 10) -* mpgraph.ps: mpost invocation. (line 19) +* mpgraph.ps: mpost invocation. (line 18) * mpman.ps: mpost invocation. (line 6) * mpost: mpost invocation. (line 6) * mpost, reason for name change: Installation. (line 19) -* mpout: mpost invocation. (line 37) -* mproof.tex: mpost invocation. (line 73) +* mpout: mpost invocation. (line 35) +* mproof.tex: mpost invocation. (line 70) * mptrap Make target: Additional targets. (line 41) * mptrap test: Triptrap. (line 6) * mptrap.readme: Triptrap. (line 6) * MPX files, converting from DVI files: dvitomp invocation. (line 6) * Multi-lingual TeX: MLTeX. (line 6) -* N tilde: \charsubdef. (line 37) +* N tilde: \charsubdef. (line 36) * new graphics support for Metafont: Online Metafont graphics. - (line 80) + (line 79) * newrow GF command: gftype invocation. (line 93) * next: Online Metafont graphics. (line 34) -* NO_X11WIN: Online Metafont graphics. - (line 56) * non-Unix system, compiling on: Additional targets. (line 12) * non-windows-capable Metafont: Online Metafont graphics. (line 65) -* NUL, not allowed in filenames: \input filenames. (line 35) -* octal character codes, in TCX files: TCX files. (line 78) +* NO_X11WIN: Online Metafont graphics. + (line 56) +* NUL, not allowed in filenames: \input filenames. (line 34) +* octal character codes, in TCX files: TCX files. (line 77) * offset for overflow labels: gftodvi invocation. (line 59) * online Metafont graphics: Online Metafont graphics. (line 6) -* opcodes, showing DVI: dvitype invocation. (line 56) -* optical font scaling: Font file formats. (line 22) +* opcodes, showing DVI: dvitype invocation. (line 52) +* optical font scaling: Font file formats. (line 21) * option conventions: Option conventions. (line 6) * origin: pktype invocation. (line 66) +* output directory, specifying: Common options. (line 66) * output directory, specifying <1>: Output file location. (line 15) -* output directory, specifying: Common options. (line 66) * output file location: Output file location. (line 6) -* output files, written by TeX programs: tex invocation. (line 51) -* output_comment for DVI files: tex invocation. (line 115) +* output files, written by TeX programs: tex invocation. (line 48) +* output_comment for DVI files: tex invocation. (line 112) * overflow label offset: gftodvi invocation. (line 59) * packet length: pktype invocation. (line 50) -* page, starting <1>: dvitype invocation. (line 50) * page, starting: dvicopy invocation. (line 28) +* page, starting <1>: dvitype invocation. (line 46) * parsing the first line: Common options. (line 72) * Pascal, creating from WEB: tangle invocation. (line 6) * patgen: patgen invocation. (line 6) * path searching: Path searching. (line 6) * path searching debugging: Common options. (line 59) * PDF: TeX extensions. (line 20) -* PDF, and .mps files: mpost invocation. (line 89) +* PDF, and '.mps' files: mpost invocation. (line 86) * pdfTeX: TeX extensions. (line 20) * permissions, legal: Legalisms. (line 6) * PFA and PFB conversion: Font utilities available elsewhere. @@ -4148,7 +4089,7 @@ Index * pixel width: pktype invocation. (line 62) * PK bitmaps from PostScript: Font utilities available elsewhere. (line 35) -* PK files, explained: Font file formats. (line 40) +* PK files, explained: Font file formats. (line 39) * PK files, not output by Metafont: mf invocation. (line 34) * PK format definition: Font utilities. (line 11) * PK, converting GF to: gftopk invocation. (line 6) @@ -4156,7 +4097,7 @@ Index * pktogf: pktogf invocation. (line 6) * pktype PK validation: pktype invocation. (line 6) * pktype.web: Font utilities. (line 11) -* PL files, explained: Font file formats. (line 47) +* PL files, explained: Font file formats. (line 46) * plain Metafont, compatibility in MetaPost: Initial MetaPost. (line 15) * plain text, converting DVI to: dvitype invocation. (line 6) @@ -4164,56 +4105,59 @@ Index * plain text, converting PK to: pktype invocation. (line 6) * plain text, converting TFM to: tftopl invocation. (line 6) * plain text, converting VF to: vftovp invocation. (line 6) -* plain.base: Initial Metafont. (line 16) +* plain.base: Initial Metafont. (line 14) * plain.bst: Basic BibTeX style files. (line 11) -* plain.fmt: Initial TeX. (line 15) -* plain.mft: mft invocation. (line 68) +* plain.fmt: Initial TeX. (line 13) +* plain.mft: mft invocation. (line 66) * pltotf: pltotf invocation. (line 6) * pool file, writing: tangle invocation. (line 16) * Poole, Simon: Online Metafont graphics. (line 50) * pooltype: pooltype invocation. (line 6) -* portable filenames: \input filenames. (line 41) -* PostScript fonts, and Troff: mpost invocation. (line 68) +* portable filenames: \input filenames. (line 40) +* PostScript fonts, and Troff: mpost invocation. (line 65) * PostScript meets Metafont: MetaPost. (line 6) -* PostScript output: mpost invocation. (line 37) +* PostScript output: mpost invocation. (line 35) * PostScript to PK bitmaps: Font utilities available elsewhere. (line 35) * PostScript Type 1 font conversion: Font utilities available elsewhere. (line 39) -* PostScript, and font scaling: Font file formats. (line 22) +* PostScript, and font scaling: Font file formats. (line 21) * potrace: Font utilities available elsewhere. (line 46) * predefined macros and memory dumps: Memory dumps. (line 6) * prettyprinting Metafont source: mft invocation. (line 6) * prettyprinting WEB programs: weave invocation. (line 6) * primitives, new: TeX extensions. (line 10) -* printable characters, specifying: TCX files. (line 88) +* printable characters, specifying: TCX files. (line 87) * printer characteristics, for Metafont: Modes. (line 6) -* production use: Initial and virgin. (line 17) +* production use: Initial and virgin. (line 15) * program name, determines memory dump: Determining the memory dump to use. - (line 31) -* program names, special <1>: tex invocation. (line 110) + (line 30) * program names, special: Common options. (line 45) -* prologues: mpost invocation. (line 118) -* prologues, and EPSF output: mpost invocation. (line 83) +* program names, special <1>: Common options. (line 77) +* program names, special <2>: tex invocation. (line 107) +* prologues: mpost invocation. (line 115) +* prologues, and EPSF output: mpost invocation. (line 80) * proof mode: mf invocation. (line 48) * proof sheets, of fonts: gftodvi invocation. (line 6) -* property list format: tftopl invocation. (line 44) +* property list format: tftopl invocation. (line 43) * property list, converting TFM to: tftopl invocation. (line 6) * property list, converting VF to virtual: vftovp invocation. (line 6) * ps2pk: Font utilities available elsewhere. (line 35) -* psfonts.map, read by MetaPost: mpost invocation. (line 83) -* PXL files, explained: Font file formats. (line 40) +* psfonts.map, read by MetaPost: mpost invocation. (line 80) +* PXL files, explained: Font file formats. (line 39) * pxtoch: Font utilities available elsewhere. (line 23) * Raichle, Bernd: MLTeX. (line 6) -* reading, additional: Introduction. (line 58) +* reading, additional: Introduction. (line 60) * readonly directory, running TeX in: Output file location. (line 15) -* reallocation of arrays: Runtime options. (line 36) +* readonly directory, running TeX in <1>: Output file location. + (line 19) +* reallocation of arrays: Runtime options. (line 35) * redefined character substitutions: \tracingcharsubdef. (line 6) * reference pixel: pktype invocation. (line 66) * references: References. (line 6) @@ -4221,25 +4165,25 @@ Index (line 39) * Regis graphics support: Online Metafont graphics. (line 40) -* regression testing: tex invocation. (line 115) +* regression testing: tex invocation. (line 112) * repeated rows: pktype invocation. (line 76) * representation of strings: pooltype invocation. (line 30) * restricted shell escapes: Shell escapes. (line 6) -* right side bearing <1>: gftype invocation. (line 82) * right side bearing: pktype invocation. (line 66) -* Rokicki, Tomas: Introduction. (line 40) -* run length encoded bitmaps <1>: gftype invocation. (line 89) +* right side bearing <1>: gftype invocation. (line 82) +* Rokicki, Tomas: Introduction. (line 42) * run length encoded bitmaps: pktype invocation. (line 76) +* run length encoded bitmaps <1>: gftype invocation. (line 89) * runtime options: Runtime options. (line 6) -* scaled pixels <1>: gftype invocation. (line 107) * scaled pixels: pktype invocation. (line 57) -* scaling of fonts: Font file formats. (line 22) +* scaled pixels <1>: gftype invocation. (line 106) +* scaling of fonts: Font file formats. (line 21) * scanned images of fonts: Font utilities available elsewhere. (line 42) -* security, and \openout: tex invocation. (line 51) -* security, and output files: tex invocation. (line 51) +* security, and output files: tex invocation. (line 48) * security, and shell escapes: Shell escapes. (line 6) -* security, and write: mpost invocation. (line 95) +* security, and 'write': mpost invocation. (line 92) +* security, and '\openout': tex invocation. (line 48) * shapes: Metafont. (line 6) * sharing memory dumps: Hardware and memory dumps. (line 6) @@ -4248,8 +4192,8 @@ Index * shell_escape_commands: Shell escapes. (line 52) * siam.bst: Basic BibTeX style files. (line 35) -* side bearings <1>: gftype invocation. (line 82) * side bearings: pktype invocation. (line 66) +* side bearings <1>: gftype invocation. (line 82) * slant font: gftodvi invocation. (line 39) * slides, producing: Formats. (line 61) * SliTeX: Formats. (line 61) @@ -4257,19 +4201,19 @@ Index * smode and dynamic Metafont mode definition: Modes. (line 28) * sockets: IPC and TeX. (line 6) * space-terminated filenames: \input filenames. (line 10) -* Spiderweb: WEB. (line 13) -* Stallman, Richard: Introduction. (line 50) -* starting page <1>: dvitype invocation. (line 50) +* Spiderweb: WEB. (line 12) +* Stallman, Richard: Introduction. (line 52) * starting page: dvicopy invocation. (line 28) +* starting page <1>: dvitype invocation. (line 46) * Steele Jr., Guy L.: Hardware and memory dumps. (line 34) * stopping at the first error: Common options. (line 41) -* strategy, overall: Introduction. (line 16) +* strategy, overall: Introduction. (line 17) * string numbers, displaying: pooltype invocation. (line 6) * string pool, writing: tangle invocation. (line 16) * string representation: pooltype invocation. (line 30) * style design, for BibTeX: bibtex invocation. (line 45) -* style files: mft invocation. (line 68) +* style files: mft invocation. (line 66) * substitutions of font glyphs: MLTeX. (line 6) * sun: Online Metafont graphics. (line 42) @@ -4279,14 +4223,14 @@ Index (line 43) * SunView: Online Metafont graphics. (line 43) -* swap space, as array limit: Runtime options. (line 36) +* swap space, as array limit: Runtime options. (line 35) * swapping bytes: Hardware and memory dumps. (line 13) -* syntax of TCX files: TCX files. (line 66) +* syntax of TCX files: TCX files. (line 65) * system C library function: Shell escapes. (line 6) * system command: Shell escapes. (line 6) -* T1 encoding and ISO input: TCX files. (line 49) -* Tachikawa, Elizabeth: Font file formats. (line 63) +* T1 encoding and ISO input: TCX files. (line 48) +* Tachikawa, Elizabeth: Font file formats. (line 62) * tangle: tangle invocation. (line 6) * targets, additional Make: Additional targets. (line 6) * TCX character translation files: TCX files. (line 6) @@ -4311,27 +4255,27 @@ Index * TeX, input files found: tex invocation. (line 20) * TeX, invocation: tex invocation. (line 6) * TeX, Metafont, and MetaPost: Three programs. (line 6) -* TeX, Web2c implementation of: Introduction. (line 8) -* tex.fmt: Initial TeX. (line 15) +* TeX, Web2c implementation of: Introduction. (line 9) +* tex.fmt: Initial TeX. (line 13) * TEXBIB, search path for bib files: bibtex invocation. (line 18) * TEXEDIT: Editor invocation. (line 10) -* texfonts.map: Path searching. (line 15) +* texfonts.map: Path searching. (line 14) * Texinfo: Formats. (line 47) * texmf.cnf: Path searching. (line 6) * texmfmp.c: Online Metafont graphics. - (line 80) + (line 79) * TEXMFOUTPUT, used for reading: Output file location. (line 25) -* TEXMFOUTPUT, used if . unwritable: Output file location. +* TEXMFOUTPUT, used if '.' unwritable: Output file location. (line 19) -* texput: tex invocation. (line 35) +* texput: tex invocation. (line 33) * TFM files, converting property lists to: pltotf invocation. (line 6) -* TFM files, explained: Font file formats. (line 13) +* TFM files, explained: Font file formats. (line 12) * TFM files, memory for: Runtime options. (line 25) * TFM files, output by Metafont: mf invocation. (line 43) -* TFM files, output by MetaPost: mpost invocation. (line 37) -* TFM width of characters <1>: gftype invocation. (line 113) +* TFM files, output by MetaPost: mpost invocation. (line 35) * TFM width of characters: pktype invocation. (line 53) +* TFM width of characters <1>: gftype invocation. (line 112) * tftopl: tftopl invocation. (line 6) * three programs: Three programs. (line 6) * time and date, in memory dumps: Hardware and memory dumps. @@ -4341,22 +4285,22 @@ Index (line 59) * torture tests: Triptrap. (line 6) * translation file for TeX, specifying: Common options. (line 98) -* translation from WEB to C: Introduction. (line 16) +* translation from WEB to C: Introduction. (line 17) * trap Make target: Additional targets. (line 41) * trap test: Triptrap. (line 6) * trapman.tex: Triptrap. (line 6) -* Trickey, Howard: Introduction. (line 40) +* Trickey, Howard: Introduction. (line 42) * trip Make target: Additional targets. (line 41) * trip test: Triptrap. (line 6) * tripman.tex: Triptrap. (line 6) * triptrap Make target: Additional targets. (line 41) -* Troff, and MetaPost: mpost invocation. (line 68) -* Troff, WEB for: WEB. (line 13) -* Trojan horses and TeX programs: tex invocation. (line 51) +* Troff, and MetaPost: mpost invocation. (line 65) +* Troff, WEB for: WEB. (line 12) +* Trojan horses and TeX programs: tex invocation. (line 48) * TUGboat bibliography: bibtex invocation. (line 54) * Type 1 conversion: Font utilities available elsewhere. (line 39) -* type design, personal: Initial Metafont. (line 33) +* type design, personal: Initial Metafont. (line 31) * type programs, DVI: dvitype invocation. (line 6) * type programs, GF: gftype invocation. (line 6) * type programs, PK: pktype invocation. (line 6) @@ -4366,12 +4310,13 @@ Index (line 42) * typesetting: TeX. (line 6) * Unicode: TeX extensions. (line 14) -* Unicode input: tex invocation. (line 89) +* Unicode <1>: TeX extensions. (line 31) +* Unicode input: tex invocation. (line 86) * uniterm: Online Metafont graphics. (line 50) * unsrt.bst: Basic BibTeX style files. (line 39) -* UTF-8 input: tex invocation. (line 89) +* UTF-8 input: tex invocation. (line 86) * validation, of DVI files: dvitype invocation. (line 6) * validation, of GF files: gftype invocation. (line 6) * validation, of PK files: pktype invocation. (line 6) @@ -4380,15 +4325,15 @@ Index * verbose BibTeX output, suppressing: bibtex invocation. (line 28) * verbosity, enabling: Common options. (line 15) * version number, finding: Common options. (line 18) -* vertical escapement: gftype invocation. (line 107) +* vertical escapement: gftype invocation. (line 106) * VF files, converting property lists to: vptovf invocation. (line 6) * vftovp: vftovp invocation. (line 6) -* virgin programs: Initial and virgin. (line 17) +* virgin programs: Initial and virgin. (line 15) * virtual font creation: Font utilities available elsewhere. (line 53) * virtual fonts, expanding: dvicopy invocation. (line 6) -* virtual-fonts.knuth: Font file formats. (line 57) -* virtualfonts.txt: Font file formats. (line 57) +* virtual-fonts.knuth: Font file formats. (line 56) +* virtualfonts.txt: Font file formats. (line 56) * vptovf: vptovf invocation. (line 6) * weave: weave invocation. (line 6) * WEB: WEB. (line 6) @@ -4396,14 +4341,14 @@ Index * WEB pool files, displaying: pooltype invocation. (line 6) * WEB programs, compiling: tangle invocation. (line 6) * WEB programs, typesetting: weave invocation. (line 6) -* WEB2C, search path for TCX files: TCX files. (line 36) -* Weber, Olaf: Introduction. (line 40) +* WEB2C, search path for TCX files: TCX files. (line 35) +* Weber, Olaf: Introduction. (line 42) * webmac.tex: weave invocation. (line 22) -* webman.tex: WEB. (line 13) -* whitespace, in TCX files: TCX files. (line 69) +* webman.tex: WEB. (line 12) +* whitespace, in TCX files: TCX files. (line 68) * whitespace-terminated filenames: \input filenames. (line 10) -* width, device-independent <1>: gftype invocation. (line 113) * width, device-independent: pktype invocation. (line 53) +* width, device-independent <1>: gftype invocation. (line 112) * width, in pixels: pktype invocation. (line 62) * word processor, not: TeX. (line 9) * writing memory dumps: Creating memory dumps. @@ -4436,80 +4381,79 @@ Index * xterm: Online Metafont graphics. (line 56) * y offset: pktype invocation. (line 66) -* ~ expansion in filenames: \input filenames. (line 48) Tag Table: -Node: Top2812 -Node: Introduction3805 -Node: Installation6976 -Node: configure options9140 -Node: Compile-time options11222 -Node: Additional targets12348 -Node: Triptrap13629 -Node: Runtime options15158 -Node: Commonalities16930 -Node: Option conventions17535 -Node: Common options18759 -Node: Path searching23166 -Node: Output file location24188 -Node: Three programs25513 -Node: Initial and virgin26267 -Node: Memory dumps27206 -Node: Creating memory dumps27662 -Node: Determining the memory dump to use28873 -Node: Hardware and memory dumps30460 -Node: Editor invocation32918 -Node: \input filenames33784 -Node: TeX36777 -Node: tex invocation37929 -Node: Initial TeX44899 -Node: Formats46388 -Node: Languages and hyphenation49327 -Node: MLTeX49757 -Node: \charsubdef51252 -Node: \tracingcharsubdef53578 -Node: TCX files54153 -Node: patgen invocation59577 -Node: Shell escapes60294 -Node: IPC and TeX63858 -Node: TeX extensions64428 -Node: Metafont65560 -Node: mf invocation66848 -Node: Initial Metafont70731 -Node: Modes72484 -Node: Online Metafont graphics74740 -Node: gftodvi invocation78155 -Node: mft invocation80988 -Node: MetaPost85043 -Node: mpost invocation85805 -Node: Initial MetaPost91063 -Node: dvitomp invocation91985 -Node: BibTeX92650 -Node: bibtex invocation93011 -Node: Basic BibTeX style files95336 -Node: WEB96678 -Node: tangle invocation97886 -Node: weave invocation100009 -Node: pooltype invocation101417 -Node: DVI utilities102547 -Node: dvicopy invocation103491 -Node: dvitype invocation104789 -Node: dvitype output example107144 -Node: Font utilities110195 -Node: Font file formats111375 -Node: gftopk invocation114674 -Node: pktogf invocation115878 -Node: pktype invocation117057 -Node: gftype invocation119892 -Node: tftopl invocation124408 -Node: pltotf invocation129042 -Node: vftovp invocation130107 -Node: vptovf invocation132391 -Node: Font utilities available elsewhere133445 -Node: Legalisms135853 -Node: References138024 -Node: Index142596 +Node: Top2754 +Node: Introduction3749 +Node: Installation6907 +Node: configure options9009 +Node: Compile-time options11031 +Node: Additional targets12133 +Node: Triptrap13410 +Node: Runtime options14937 +Node: Commonalities16695 +Node: Option conventions17296 +Node: Common options18519 +Node: Path searching22899 +Node: Output file location23871 +Node: Three programs25196 +Node: Initial and virgin25950 +Node: Memory dumps26879 +Node: Creating memory dumps27335 +Node: Determining the memory dump to use28546 +Node: Hardware and memory dumps30127 +Node: Editor invocation32577 +Node: \input filenames33444 +Node: TeX36437 +Node: tex invocation37588 +Node: Initial TeX44491 +Node: Formats45855 +Node: Languages and hyphenation48781 +Node: MLTeX49211 +Node: \charsubdef50699 +Node: \tracingcharsubdef53022 +Node: TCX files53597 +Node: patgen invocation59037 +Node: Shell escapes59761 +Node: IPC and TeX63325 +Node: TeX extensions63895 +Node: Metafont65026 +Node: mf invocation66314 +Node: Initial Metafont70151 +Node: Modes71781 +Node: Online Metafont graphics74031 +Node: gftodvi invocation77456 +Node: mft invocation80276 +Node: MetaPost84274 +Node: mpost invocation85036 +Node: Initial MetaPost90212 +Node: dvitomp invocation91134 +Node: BibTeX91799 +Node: bibtex invocation92160 +Node: Basic BibTeX style files94458 +Node: WEB95788 +Node: tangle invocation97029 +Node: weave invocation99152 +Node: pooltype invocation100559 +Node: DVI utilities101689 +Node: dvicopy invocation102621 +Node: dvitype invocation103904 +Node: dvitype output example106239 +Node: Font utilities109290 +Node: Font file formats110470 +Node: gftopk invocation113739 +Node: pktogf invocation114930 +Node: pktype invocation116096 +Node: gftype invocation118919 +Node: tftopl invocation123422 +Node: pltotf invocation128015 +Node: vftovp invocation129066 +Node: vptovf invocation131301 +Node: Font utilities available elsewhere132328 +Node: Legalisms134708 +Node: References136862 +Node: Index141429 End Tag Table |