summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/info/web2c.info
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-04-07 18:26:53 +0000
committerKarl Berry <karl@freefriends.org>2013-04-07 18:26:53 +0000
commitb04c2e1a42573e9735547702356c7b9a769a6855 (patch)
treec0753443f39500a062d7698fe6b94359c813f871 /Master/texmf-dist/doc/info/web2c.info
parentfb0bf13304a356f197bfc1add17f98c07e96f17b (diff)
texmf -> texmf-dist: doc
git-svn-id: svn://tug.org/texlive/trunk@29714 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/info/web2c.info')
-rw-r--r--Master/texmf-dist/doc/info/web2c.info4515
1 files changed, 4515 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/info/web2c.info b/Master/texmf-dist/doc/info/web2c.info
new file mode 100644
index 00000000000..1e5bf0428d3
--- /dev/null
+++ b/Master/texmf-dist/doc/info/web2c.info
@@ -0,0 +1,4515 @@
+This is ../../../../texk/web2c/doc/web2c.info, produced by makeinfo
+version 4.13 from ../../../../texk/web2c/doc/web2c.texi.
+
+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.
+* dvicopy: (web2c)dvicopy invocation. Virtual font expansion
+* dvitomp: (web2c)dvitomp invocation. DVI to MPX (MetaPost pictures).
+* dvitype: (web2c)dvitype invocation. DVI to human-readable text.
+* gftodvi: (web2c)gftodvi invocation. Generic font proofsheets.
+* gftopk: (web2c)gftopk invocation. Generic to packed fonts.
+* gftype: (web2c)gftype invocation. GF to human-readable text.
+* mf: (web2c)mf invocation. Creating typeface families.
+* mft: (web2c)mft invocation. Prettyprinting Metafont source.
+* mltex: (web2c)MLTeX. Multi-lingual TeX.
+* mpost: (web2c)mpost invocation. Creating technical diagrams.
+* patgen: (web2c)patgen invocation. Creating hyphenation patterns.
+* pktogf: (web2c)pktogf invocation. Packed to generic fonts.
+* pktype: (web2c)pktype invocation. PK to human-readable text.
+* pltotf: (web2c)pltotf invocation. Property list to TFM.
+* pooltype: (web2c)pooltype invocation. Display WEB pool files.
+* tangle: (web2c)tangle invocation. WEB to Pascal.
+* tex: (web2c)tex invocation. Typesetting.
+* tftopl: (web2c)tftopl invocation. TFM -> property list.
+* vftovp: (web2c)vftovp invocation. Virtual font -> virtual pl.
+* vptovf: (web2c)vptovf invocation. Virtual pl -> virtual font.
+* 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)
+
+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.
+
+* Menu:
+
+* Introduction:: A brief introduction.
+* Installation:: How to compile and install Web2c.
+* Commonalities:: Option syntax, standard options, memory dumps.
+* TeX:: Typesetting.
+* Metafont:: Typeface design.
+* MetaPost:: Technical illustrations.
+* BibTeX:: Reusable bibliographies.
+* WEB:: Literate programming.
+* DVI utilities:: DVI expansion.
+* Font utilities:: Font format conversion.
+* Legalisms:: Blah blah blah.
+* References:: Books and such.
+* Index:: General index.
+
+
+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.
+
+ "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).
+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.
+
+ 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.
+
+ 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
+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.
+
+ Other acknowledgements: The University of Massachusetts at Boston
+(particularly Rick Martin and Bob Morris) provided computers and ftp
+access to me for many years. Richard Stallman at the Free Software
+Foundation employed me while I wrote the original path searching library
+(for the GNU font utilities). (rms also gave us Emacs, GDB, and GCC,
+without which I cannot imagine developing Web2c.) And, of course, TeX
+would not exist in the first place without Donald E. Knuth.
+
+ Further reading: *Note References::.
+
+
+File: web2c.info, Node: Installation, Next: Commonalities, Prev: Introduction, Up: Top
+
+2 Installation
+**************
+
+(A copy of this chapter is in the distribution file `web2c/INSTALL'.)
+
+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'.)
+
+ 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
+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.
+
+ 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
+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'.
+
+ 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.
+
+ * 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.
+
+
+* Menu:
+
+* configure options:: Especially --with and --enable.
+* Compile-time options:: Unusual -D's.
+* Additional targets:: Breaking down the task.
+* Triptrap:: Running the torture tests.
+* Runtime options:: Array sizes and the like.
+
+
+File: web2c.info, Node: configure options, Next: Compile-time options, Up: Installation
+
+2.1 `configure' options
+=======================
+
+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 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'.
+
+`--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.
+ *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'
+ Define Metafont graphics support; by default, no graphics support
+ is enabled. *Note Online Metafont graphics::.
+
+`--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'.
+
+
+File: web2c.info, Node: Compile-time options, Next: Additional targets, Prev: configure options, Up: Installation
+
+2.2 Compile-time options
+========================
+
+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
+unusual.
+
+ 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.
+
+ Anyway, here are the possibilities:
+
+`-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
+ used otherwise.
+
+`-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
+
+2.3 Additional targets
+======================
+
+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.
+
+`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'
+ 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
+ Metafont::.
+
+`mems'
+`install-mems'
+ Make or install the MetaPost `.mem' files. *Note Initial
+ MetaPost::.
+
+`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
+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
+tests.
+
+ The differences between your executables' behavior and the standard
+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;
+
+ * dates and times.
+
+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
+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 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.
+
+
+File: web2c.info, Node: Runtime options, Prev: Triptrap, Up: Installation
+
+2.5 Runtime options
+===================
+
+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.).
+
+ Rather than exhaustively listing them here, please see the last
+section of the distributed `kpathsea/texmf.cnf'. Some of the more
+interesting values:
+
+`main_memory'
+ Total words of memory available, for TeX, Metafont, and MetaPost.
+ Must remake the format file after changing.
+
+`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'
+ Words of font info available for TeX; this is approximately the
+ total size of all TFM files read.
+
+`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'.
+
+
+ Of course, ideally all arrays would be dynamically expanded as
+necessary, so the only limiting factor would be the amount of swap space
+available. Unfortunately, implementing this is extremely difficult, as
+the fixed size of arrays is assumed in many places throughout the source
+code. These runtime limits are a practical compromise between the
+compile-time limits in previous versions, and truly dynamic arrays. (On
+the other hand, the Web2c BibTeX implementation does do dynamic
+reallocation of some arrays.)
+
+
+File: web2c.info, Node: Commonalities, Next: TeX, Prev: Installation, Up: Top
+
+3 Commonalities
+***************
+
+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.
+* Path searching:: Features of the common path searching library.
+* Output file location:: TEXMFOUTPUT allows output in places other than `.'.
+* Three programs:: TeX, Metafont, and MetaPost have a lot in common.
+
+
+File: web2c.info, Node: Option conventions, Next: Common options, Up: Commonalities
+
+3.1 Option conventions
+======================
+
+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.
+
+ As a result, you can:
+ * 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
+ spaces;
+
+ * use filenames that would otherwise look like options by putting
+ them after an option `--'.
+
+ By convention, non-option arguments, if specified, generally define
+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-'.
+
+ -foo --bar -verb -abc=baz -quux karl --quux xyz -- -myfile-
+
+
+File: web2c.info, Node: Common options, Next: Path searching, Prev: Option conventions, Up: Commonalities
+
+3.2 Common options
+==================
+
+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.
+
+`--verbose'
+ Print progress reports to standard output.
+
+`--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
+ 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'
+ Stop processing and exit when an error occurs, as opposed to the
+ normal process of trying to recover and continue.
+
+`-ini'
+ Enable the "initial" form of the program (*note Initial and
+ 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'.
+
+`-jobname=STRING'
+ Set the job name to STRING, instead of deriving it from the name
+ of the input file.
+
+`-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.
+
+`-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'
+ 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
+ used specify the format and/or a TCX file.
+
+`-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::.
+
+`-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'.
+
+ 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.
+
+`-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
+ recommended method for portability reasons. *Note TCX files::.
+
+`-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.
+
+
+
+File: web2c.info, Node: Path searching, Next: Output file location, Prev: Common options, Up: Commonalities
+
+3.3 Path searching
+==================
+
+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.
+
+ 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
+for many widely available PostScript fonts by their PostScript names.
+
+
+File: web2c.info, Node: Output file location, Next: Three programs, Prev: Path searching, Up: Commonalities
+
+3.4 Output file location
+========================
+
+All the programs generally follow the usual convention for output files.
+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'.
+
+ 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
+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 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
+
+3.5 Three programs: Metafont, MetaPost, and TeX
+===============================================
+
+TeX, Metafont, and MetaPost have a number of features in common.
+Besides the ones here, the common command-line options are described in
+the previous section. The configuration file options that let you
+control some array sizes and other features are described in *note
+Runtime options::.
+
+* Menu:
+
+* Initial and virgin:: Making memory dumps vs. production runs.
+* Memory dumps:: .fmt/.base files for fast startup.
+* Editor invocation:: The `e' response at errors.
+* \input filenames:: ~ and $ expansion in TeX/MF/MP.
+
+
+File: web2c.info, Node: Initial and virgin, Next: Memory dumps, Up: Three programs
+
+3.5.1 Initial and virgin
+------------------------
+
+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.
+
+ 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,
+because it must do lengthy initializations that are encapsulated in the
+memory dump file.
+
+
+File: web2c.info, Node: Memory dumps, Next: Editor invocation, Prev: Initial and virgin, Up: Three programs
+
+3.5.2 Memory dumps
+------------------
+
+In typical use, TeX and Metafont require a large number of macros to be
+predefined; therefore, they support "memory dump" files, which can be
+read much more efficiently than ordinary source code.
+
+* Menu:
+
+* Creating memory dumps::
+* Determining the memory dump to use::
+* Hardware and memory dumps::
+
+
+File: web2c.info, Node: Creating memory dumps, Next: Determining the memory dump to use, Up: Memory dumps
+
+3.5.2.1 Creating memory dumps
+.............................
+
+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.
+
+ Also, each program uses a different filename extension for its memory
+dumps, since although they are completely analogous they are not
+interchangeable (TeX cannot read a Metafont memory dump, for example).
+
+ Here is a list of filename extensions with references to examples of
+creating memory dumps:
+
+TeX
+ (`.fmt') *Note Initial TeX: Initial TeX.
+
+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
+you are making a new installation and have environment variables
+pointing to an old one, for example, you will probably run into
+difficulties.
+
+
+File: web2c.info, Node: Determining the memory dump to use, Next: Hardware and memory dumps, Prev: Creating memory dumps, Up: Memory dumps
+
+3.5.2.2 Determining the memory dump to use
+..........................................
+
+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
+ 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.)
+
+ 2. If the `-fmt' resp. `-base' 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.
+
+ 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::).
+
+ 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.
+
+
+
+File: web2c.info, Node: Hardware and memory dumps, Prev: Determining the memory dump to use, Up: Memory dumps
+
+3.5.2.3 Hardware and memory dumps
+.................................
+
+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.
+
+ The reason to do this is speed. To achieve endian-independence, the
+reading of memory dumps on LittleEndian architectures, such as PC's and
+DEC architectures, is somewhat slowed (all the multibyte values have to
+be swapped). Usually, this is not noticeable, and the advantage of
+being able to share memory dumps across all platforms at a site far
+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'
+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
+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.
+
+ 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
+References::).
+
+ main ()
+ {
+ /* Are we little or big endian? From Harbison&Steele. */
+ union
+ {
+ long l;
+ char c[sizeof (long)];
+ } u;
+ u.l = 1;
+ if (u.c[0] == 1)
+ printf ("LittleEndian\n");
+ else if (u.c[sizeof (long) - 1] == 1)
+ printf ("BigEndian\n");
+ else
+ printf ("unknownEndian");
+
+ exit (u.c[sizeof (long) - 1] == 1);
+ }
+
+
+File: web2c.info, Node: Editor invocation, Next: \input filenames, Prev: Memory dumps, Up: Three programs
+
+3.5.3 Editor invocation
+-----------------------
+
+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.
+
+ 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.
+
+
+File: web2c.info, Node: \input filenames, Prev: Editor invocation, Up: Three programs
+
+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:
+ \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.)
+
+ As of Web2c version 7.5.3, double-quote characters can be used to
+include spaces or other special cases. In typical use, the `"'
+characters surround the entire filename:
+ \input "filename with spaces"
+
+ Technically, the quote characters can be used inside the name, and
+can enclose any characters, as in:
+ \input filename" "with" "spaces
+
+ One more point. In LaTeX, the quotes are needed inside the braces,
+thus
+ \input{a b} % fails
+ \input{"a b"} % ok
+
+ 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
+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.
+
+ For maximal portability of your document across systems, use only the
+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
+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 `_'.
+
+ (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.
+
+
+File: web2c.info, Node: TeX, Next: Metafont, Prev: Commonalities, Up: Top
+
+4 TeX: Typesetting
+******************
+
+TeX is a typesetting system: it was especially designed to handle
+complex mathematics, as well as most ordinary text typesetting.
+
+ TeX is a batch language, like C or Pascal, and not an interactive
+"word processor": you compile a TeX input file into a corresponding
+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.
+
+* Menu:
+
+* tex invocation:: Invoking TeX.
+* Initial TeX:: Making format files.
+* Formats:: Major TeX macro packages.
+* Languages and hyphenation:: TeX supports many human languages.
+* Shell escapes:: Running subprograms from TeX.
+* IPC and TeX:: DVI output to a socket.
+* TeX extensions:: Changes to the TeX language.
+
+
+File: web2c.info, Node: tex invocation, Next: Initial TeX, Up: TeX
+
+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, 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.
+
+ 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.
+
+ If no arguments or options are specified, TeX prompts for an input
+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 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.
+
+ 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,
+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'
+ These options are common to TeX, Metafont, and MetaPost. *Note
+ Common options::.
+
+`-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'.
+
+`-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
+ 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.
+
+`-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.
+
+`-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'.
+
+`-shell-escape'
+`-no-shell-escape'
+`-shell-restricted'
+ Enable, or disable, or enable with restrictions the
+ `\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
+ compatibility with MiKTeX. (MiKTeX also accepts both pairs of
+ options.) *Note Shell escapes::.
+
+`-src-specials'
+`-src-specials=STRING'
+ This option makes TeX output specific source information using
+ `\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
+ 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'
+ 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.
+
+ 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.
+
+ 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.
+
+ 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
+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
+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 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
+formats: plain latex amstex texinfo eplain. *Note Formats::, for more
+details on TeX formats.
+
+
+File: web2c.info, Node: Formats, Next: Languages and hyphenation, Prev: Initial TeX, Up: TeX
+
+4.3 Formats
+===========
+
+TeX "formats" are large collections of macros, often dumped into a
+`.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.
+
+ 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
+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
+ 2e'; new versions are released approximately every six months, with
+ 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'.
+
+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'.
+
+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'.
+
+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'.
+
+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'.
+
+slitex
+ An obsolete LaTeX 2.09 format for making slides. It is replaced by
+ 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.
+
+* Menu:
+
+* MLTeX:: Multi-lingual TeX.
+* patgen invocation:: Creating hyphenation patterns.
+* TCX files:: Support for different character sets & fonts.
+
+
+File: web2c.info, Node: MLTeX, Next: patgen invocation, 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
+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
+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
+described below will be enabled.
+
+ 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.
+
+* Menu:
+
+* \charsubdef:: Character substitution definitions.
+* \tracingcharsubdef:: Tracing substitutions.
+
+
+File: web2c.info, Node: \charsubdef, Next: \tracingcharsubdef, Up: MLTeX
+
+4.4.1.1 `\charsubdef': Character substitutions
+..............................................
+
+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.
+
+ 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:
+
+ \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
+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:
+ \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.)
+
+
+File: web2c.info, Node: \tracingcharsubdef, Prev: \charsubdef, Up: MLTeX
+
+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
+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.
+
+
+File: web2c.info, Node: TCX files, Prev: patgen invocation, Up: Languages and hyphenation
+
+4.4.2 TCX files: Character translations
+---------------------------------------
+
+TCX (TeX character translation) files help TeX support direct input of
+8-bit international characters if fonts containing those characters are
+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
+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
+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.
+
+ 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
+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.
+
+ Information on specifying TCX files:
+
+ * The best way to specify a TCX file is to list it explicitly in the
+ first line of the main document:
+ %& -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'.
+
+ * 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.
+
+ 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:
+
+ latex somefile8.tex
+ => terminal etc. output with 8-bit chars
+ latex --translate-file=empty.tcx somefile8.tex
+ => terminal etc. output with ^^ notation
+
+ Syntax of TCX files:
+ 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.
+
+ 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
+ be between 0 and 255, inclusive (decimal).
+
+ 6. If the DEST code is not specified, it is taken to be the same as
+ SRC.
+
+ 7. If the same SRC code is specified more than once, it is the last
+ definition that counts.
+
+ 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.
+
+ 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.
+
+ 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
+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
+anyone who uses the resulting dump file.
+
+ 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
+
+4.4.3 Patgen: Creating hyphenation patterns
+-------------------------------------------
+
+Patgen creates hyphenation patterns from dictionary files for use with
+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.
+
+ 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.
+
+ 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
+
+4.5 Shell escapes
+=================
+
+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
+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'.
+
+ * 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.
+
+ When enabled, the TeX construct to execute a system command is
+`\write18{SHELL-COMMAND}'; for example:
+
+ \write18{echo "hello, world"}
+
+ 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'.
+
+ 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.
+
+ In unrestricted mode, the argument is simply passed straight to
+`system' unaltered.
+
+ In restricted mode, ASCII double quote characters (") should always
+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
+taken on Windows to avoid additional expansions (from, e.g., `...`).
+Mismatched quotation marks in the command string result in a diagnostic
+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.
+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:
+
+ 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
+following command is then treated exactly the same as the argument to
+`\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.
+
+ The purpose of this feature is to make it possible for TeX documents
+to perform useful external actions in the common case of an individual
+user running a known document on his or her own machine. In such
+environments as CGI scripts or wikis where the input has to be
+considered untrustworthy, shell escapes should be completely disabled.
+
+
+File: web2c.info, Node: IPC and TeX, Next: TeX extensions, Prev: Shell escapes, Up: TeX
+
+4.6 IPC and TeX
+===============
+
+(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
+Installation::).
+
+ 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.
+
+
+File: web2c.info, Node: TeX extensions, Prev: IPC and TeX, Up: TeX
+
+4.7 TeX extensions
+==================
+
+The base TeX program has been extended in many ways. Here's a partial
+list.
+
+e-TeX
+ Adds many new primitives, including right-to-left typesetting and
+ more registers. Now frozen.
+
+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
+ 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'.
+
+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'.
+
+XeTeX
+ Combines support for Unicode input and OpenType- and system fonts
+ with the capabilities of pdfTeX. Home page:
+ `http://tug.org/xetex'.
+
+
+
+File: web2c.info, Node: Metafont, Next: MetaPost, Prev: TeX, Up: Top
+
+5 Metafont: Creating typeface families
+**************************************
+
+Metafont is a system for producing shapes; it was designed for producing
+complete typeface families, but it can also produce geometric designs,
+dingbats, etc. And it has considerable mathematical and
+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::).
+
+* Menu:
+
+* mf invocation:: Invoking Metafont.
+* Initial Metafont:: Making bases.
+* Modes:: Device definitions for Metafont.
+* Online Metafont graphics:: Seeing MF output online.
+* gftodvi invocation:: Making proofsheets for fonts.
+* mft invocation:: Prettyprinting Metafont sources.
+
+
+File: web2c.info, Node: mf invocation, Next: Initial Metafont, Up: Metafont
+
+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 processes its command line and determines its memory dump
+(base) file in a way exactly analogous to MetaPost and TeX (*note tex
+invocation::, and *note Memory dumps::). Synopses:
+
+ mf [OPTION]... [MFNAME[.mf]] [MF-COMMANDS]
+ mf [OPTION]... \FIRST-LINE
+ mf [OPTION]... &BASE ARGS
+
+ Most commonly, a Metafont invocation looks like this:
+ mf '\mode:=MODE; mag:=MAGNIFICATION; input MFNAME'
+ (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',
+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
+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
+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 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
+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
+usual. For example:
+ \font\myfont = newfont
+ \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'
+ 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'.
+
+
+File: web2c.info, Node: Initial Metafont, Next: Modes, Prev: mf invocation, Up: Metafont
+
+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.
+
+ 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
+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.
+
+ 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
+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.
+
+
+File: web2c.info, Node: Modes, Next: Online Metafont graphics, Prev: Initial Metafont, Up: Metafont
+
+5.3 Modes: Device definitions for Metafont
+==========================================
+
+Running Metafont and creating Metafont base files requires information
+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
+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
+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.)
+
+ 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'.
+
+ 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:
+ mf '\smode:="newmode.mf"; mag:=MAGNIFICATION; input MFNAME'
+ 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'
+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.)
+
+ 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
+
+5.4 Online Metafont graphics
+============================
+
+The Web2c implementation of Metafont can do online graphics with a
+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
+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.
+
+`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
+ 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.
+
+`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'.
+
+`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'.)
+
+`tek'
+ (`--enable-tektronixwin') Tektronix terminals.
+
+`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.
+
+`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
+ support is more efficient and has more functionality, so it is the
+ 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').
+
+ 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.
+
+ You specify the X display to which Metafont connects in the
+ `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'),
+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').
+
+
+File: web2c.info, Node: gftodvi invocation, Next: mft invocation, Prev: Online Metafont graphics, Up: Metafont
+
+5.5 GFtoDVI: Character proofs of fonts
+======================================
+
+GFtoDVI makes "proof sheets" from a GF bitmap file as output by, for
+example, Metafont (*note Metafont::). This is an indispensable aid for
+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
+program.
+
+ 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 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'.
+
+ GFtoDVI uses several fonts besides GFNAME itself:
+
+ * "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
+ top of each output page.
+
+ * "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'.
+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.
+
+ 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::):
+
+`-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
+ precise). Overflow equations are used to locate coordinates when
+ their actual position is too crowded with other information.
+
+
+File: web2c.info, Node: mft invocation, Prev: gftodvi invocation, Up: Metafont
+
+5.6 MFT: Prettyprinting Metafont source
+=======================================
+
+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:
+
+ 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'.
+
+ 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
+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.
+
+ * `%%' 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
+ 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
+ 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
+ %%% 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
+ of such a line.
+
+ * Five or more `%' signs should not be used.
+
+ (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]'
+ Apply the change file CHFILE as with Tangle and Weave (*note
+ WEB::).
+
+`-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
+ 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
+print these properly.
+
+
+File: web2c.info, Node: MetaPost, Next: BibTeX, Prev: Metafont, Up: Top
+
+6 MetaPost: Creating technical illustrations
+********************************************
+
+MetaPost is a picture-drawing language similar to Metafont (*note
+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
+supported) and a number of other subsidiary programs, described below.
+
+* Menu:
+
+* mpost invocation:: Invoking MetaPost.
+* Initial MetaPost:: Making mems.
+* dvitomp invocation:: DVI-to-MPX translation.
+
+
+File: web2c.info, Node: mpost invocation, Next: Initial MetaPost, Up: MetaPost
+
+6.1 `mpost' invocation
+======================
+
+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
+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
+ 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'.
+
+ MetaPost processes its command line and determines its memory dump
+(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]
+ mpost [OPTION]... \FIRST-LINE
+ 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.
+
+ 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)'.
+
+ 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:
+ \special{psfile="FILENAME"}
+ or by using `epsf.tex' (*note EPSF macros: (dvips)EPSF macros.).
+
+ The MetaPost construct
+ btex ... TEX-INPUT ... etex
+ 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).
+
+ Naturally, you must use fonts that are supported by the typesetter;
+specifically, you'll probably want to use standard PostScript fonts with
+Troff. And only the TeX system understands Computer Modern or other
+Metafont fonts; you can also use PostScript fonts with TeX, of course.
+
+ MetaPost-generated PostScript figures which do use Computer Modern
+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:
+ tex mproof MP-OUTPUT-FILES... ; dvips mproof -o
+ 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
+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'
+ These options are common to TeX, Metafont, and MetaPost. *Note
+ Common options::.
+
+`-T'
+`-troff'
+ Set the `prologues' internal variable to `1'.
+
+`-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'.
+
+ 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
+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::).
+
+
+File: web2c.info, Node: dvitomp invocation, Prev: Initial MetaPost, Up: MetaPost
+
+6.3 DVItoMP: DVI to MPX conversion
+==================================
+
+DVItoMP converts DVI files into low-level MetaPost commands in a
+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'.
+
+ 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::).
+
+
+File: web2c.info, Node: BibTeX, Next: WEB, Prev: MetaPost, Up: Top
+
+7 BibTeX: Bibliographies
+************************
+
+BibTeX automates much of the job of typesetting bibliographies, and
+makes bibliography entries reusable in many different contexts.
+
+* Menu:
+
+* bibtex invocation::
+* Basic BibTeX style files:: The standard and semi-standard styles.
+
+
+File: web2c.info, Node: bibtex invocation, Next: Basic BibTeX style files, Up: BibTeX
+
+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 [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 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 program accepts the following options, as well as the standard
+`-help' and `-version' (*note Common options::):
+`-terse'
+ Suppress the program banner and progress reports normally output.
+
+`-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
+ 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
+ these automatic inclusions altogether; to do this, make N a
+ sufficiently large number.
+
+ See also:
+`btxdoc.tex'
+ Basic LaTeXable documentation for general BibTeX users.
+
+`btxhak.tex'
+ LaTeXable documentation for style designers.
+
+`btxdoc.bib'
+ BibTeX database file for the two above documents.
+
+`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.
+
+
+File: web2c.info, Node: Basic BibTeX style files, Prev: bibtex invocation, Up: BibTeX
+
+7.2 Basic BibTeX style files
+============================
+
+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.).
+
+`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'.
+
+`abbrv'
+ First names, month names, and journal names are abbreviated.
+
+`acm'
+ Names are printed in small caps.
+
+`alpha'
+ Alphanumeric labels, e.g., `Knu66'.
+
+`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)'.
+
+`ieeetr'
+ Numeric labels, entries in citation order, IEEE abbreviations,
+ article titles in quotes.
+
+`siam'
+ Numeric labels, alphabetic order, `Math. Reviews' abbreviations,
+ names in small caps.
+
+`unsrt'
+ Lists entries in citation order, i.e., unsorted.
+
+`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-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
+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).
+
+* Menu:
+
+* tangle invocation::
+* weave invocation::
+* pooltype invocation::
+
+
+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 [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.
+
+ If the program makes use of the WEB string facility, Tangle writes
+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::):
+
+`-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
+ tangle used 7, but this proved too restrictive for use by Web2c.
+
+`-lowercase'
+`-mixedcase'
+`-uppercase'
+ These options specify the case of identifiers in the output of
+ 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.
+
+`-underline'
+ When this option is given, tangle does not strip underline
+ characters from identifiers.
+
+`-loose'
+`-strict'
+ These options specify how strict tangle must be when checking
+ 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
+ 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
+
+8.2 Weave: Translate WEB to TeX
+===============================
+
+Weave creates a TeX document from a WEB source file (*note WEB::),
+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 program accepts the following option, as well as the standard
+`-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'
+ file will still be written when the Weave output file is processed
+ by TeX using the default `webmac.tex', though).
+
+ 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).
+
+
+File: web2c.info, Node: pooltype invocation, Prev: weave invocation, Up: WEB
+
+8.3 Pooltype: Display WEB pool files
+====================================
+
+Pooltype shows the so-called "string number" of each string in a WEB
+pool file (*note WEB::), as output by Tangle (*note tangle
+invocation::), including the first 256 strings corresponding to the
+possible input characters. Pooltype primarily serves as an example of
+WEB conventions to implementors of the TeX system. Synopsis:
+
+ pooltype [OPTION]... POOLFILE[.pool]
+
+No path searching is done for POOLFILE. Output is to standard output.
+
+ The only options are `--help' and `--version' (*note Common
+options::).
+
+ As an example of the output, here is the (edited) output for
+`tex.pool':
+ 0: "^^@"
+ 1: "^^A"
+ ...
+ 255: "^^ff"
+ 256: "pool size"
+ ...
+ 1314: "Using character substitution: "
+ (23617 characters in all.)
+
+ In Metafont and MetaPost, the first 256 characters are actually
+represented as single bytes (i.e., themselves), not in the `^^'
+notation. Consider Pooltype as showing the results after conversion for
+output.
+
+
+File: web2c.info, Node: DVI utilities, Next: Font utilities, Prev: WEB, Up: Top
+
+9 DVI utilities
+***************
+
+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.).
+
+ For the precise definition of the DVI file format, see (for example)
+the source file `web2c/dvitype.web'.
+
+ The DVI-processing programs in the Web2c distribution are not device
+drivers; they perform generic utility functions.
+
+* Menu:
+
+* dvicopy invocation:: Expand virtual fonts.
+* dvitype invocation:: DVI to human-readable text.
+
+
+File: web2c.info, Node: dvicopy invocation, Next: dvitype invocation, Up: DVI utilities
+
+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 [OPTION]... [INDVI[.dvi] [OUTDVI[.dvi]]]
+
+ DVIcopy reads standard input if INDVI is not specified, and writes
+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'
+ Override existing magnification in INDVI with INTEGER; 1000
+ specifies no magnification. This is equivalent to setting TeX's
+ `\mag' parameter.
+
+`-max-pages=N'
+ Process N pages; default is one million.
+
+`-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'.
+
+
+File: web2c.info, Node: dvitype invocation, Prev: dvicopy invocation, Up: DVI utilities
+
+9.2 DVItype: Plain text transliteration of DVI files
+====================================================
+
+DVItype translates a DeVice Independent (DVI) file (as output by TeX,
+for example) to a plain text file that humans can read. It also serves
+as a DVI-validating program, i.e., if DVItype can read a file, it's
+correct. Synopsis:
+
+ dvitype [OPTION]... DVIFILE[.dvi]
+
+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.
+
+ Output goes to standard output.
+
+ The program accepts the following options, as well as the standard
+`-help' and `-version' (*note Common options::):
+`-dpi=REAL'
+ Do pixel movement calculations at REAL pixels per inch; default
+ 300.0.
+
+`-magnification=INTEGER'
+ Override existing magnification in INDVI with INTEGER; 1000
+ specifies no magnification. This is equivalent to setting TeX's
+ `\mag' parameter.
+
+`-max-pages=N'
+ Process N pages; default is one million.
+
+`-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'
+ 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'.
+
+`-show-opcodes'
+ Show numeric opcode values (in decimal) for DVI commands, in braces
+ 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.
+
+* Menu:
+
+* dvitype output example::
+
+
+File: web2c.info, Node: dvitype output example, Up: dvitype invocation
+
+9.2.1 DVItype output example
+----------------------------
+
+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.
+
+ ...
+ Options selected:
+ Starting page = *
+ Maximum number of pages = 1000000
+ Output level = 4 (the works)
+ Resolution = 300.00000000 pixels per inch
+ numerator/denominator=25400000/473628672
+ magnification=1000; 0.00006334 pixels per DVI unit
+ ' TeX output 1992.05.17:0844'
+ Postamble starts at byte 564.
+ maxv=43725786, maxh=30785863, maxstackdepth=3, totalpages=1
+ Font 33: cmsl10---loaded at size 655360 DVI units
+ Font 23: cmbx10---loaded at size 655360 DVI units
+ Font 0: cmr10---loaded at size 655360 DVI units
+
+ 42: beginning of page 1
+ 87: push {141}
+ level 0:(h=0,v=0,w=0,x=0,y=0,z=0,hh=0,vv=0)
+ 88: down3 -917504 {159} v:=0-917504=-917504, vv:=-58
+ 92: pop {142}
+ ...
+ 104: putrule {137} height 26214, width 30785863 (2x1950 pixels)
+ 113: down3 5185936 {159} v:=655360+5185936=5841296, vv:=370
+ 117: push {141}
+ level 1:(h=0,v=5841296,w=0,x=0,y=0,z=0,hh=0,vv=370)
+ 118: right4 12265425 {146} h:=0+12265425=12265425, hh:=777
+ [ ]
+ 123: fntdef1 23 {243}: cmbx10
+ 145: fntnum23 {194} current font is cmbx10
+ 146: setchar65 h:=12265425+569796=12835221, hh:=813
+ 147: w3 251220 {150} h:=12835221+251220=13086441, hh:=829
+ 151: setchar83 h:=13086441+418700=13505141, hh:=856
+ ...
+ 164: setchar82 h:=17448202+565245=18013447, hh:=1142
+ 165: x0 -62805 {152} h:=18013447-62805=17950642, hh:=1138
+ 166: setchar89 h:=17950642+569796=18520438, hh:=1174
+ [A SHORT STORY]
+ 167: pop {142}
+ level 1:(h=0,v=5841296,w=0,x=0,y=0,z=0,hh=0,vv=370)
+ ...
+ 550: pop {142}
+ level 0:(h=0,v=42152922,w=0,x=0,y=0,z=0,hh=0,vv=2670)
+ 551: down3 1572864 {159} v:=42152922+1572864=43725786, vv:=2770
+ 555: push {141}
+ level 0:(h=0,v=43725786,w=0,x=0,y=0,z=0,hh=0,vv=2770)
+ 556: right4 15229091 {146} h:=0+15229091=15229091, hh:=965
+ 561: setchar49 h:=15229091+327681=15556772, hh:=986
+ [ 1]
+ 562: pop {142}
+ level 0:(h=0,v=43725786,w=0,x=0,y=0,z=0,hh=0,vv=2770)
+ 563: eop {140}
+
+ Explanation:
+
+ * The DVItype options are recorded at the beginning, followed by
+ 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}', ...).
+
+ * 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]'.
+
+
+File: web2c.info, Node: Font utilities, Next: Legalisms, Prev: DVI utilities, Up: Top
+
+10 Font utilities
+*****************
+
+The Web2c programs described here convert between various TeX-related
+font formats; the first section below briefly describes the formats.
+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.
+
+* Menu:
+
+* Font file formats:: Explanations of GF, PK, TFM, VF, ...
+* gftopk invocation:: GF -> PK (compact)
+* pktogf invocation:: PK -> GF (expand).
+* pktype invocation:: PK -> human-readable text.
+* gftype invocation:: GF -> human-readable text.
+* tftopl invocation:: TFM -> PL (for editing TFM).
+* pltotf invocation:: PL -> TFM (make editing results usable).
+* vftovp invocation:: VF -> VPL (tftopl for virtual fonts).
+* vptovf invocation:: VPL -> VF (pltotf for virtual fonts).
+* Font utilities available elsewhere:: Type 1, BDF, editors, etc.
+
+
+File: web2c.info, Node: Font file formats, Next: gftopk invocation, Up: Font utilities
+
+10.1 Font file formats
+======================
+
+(For another perspective on this, *note Font concepts: (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.
+
+ A TFM (TeX font metric) file is a compact binary file that contains
+information about each character in a font, about combinations of
+characters within that font, and about the font as a whole. The font
+metric information contained in TFM files is device-independent units is
+used by TeX to do typesetting. Unlike the bitmap (raster) fonts
+described below, TFM font files contain no information about the shapes
+of characters. They describe rectangular areas and combinations
+thereof, but not what will eventually be printed in those areas.
+
+ Since TeX does scaling calculations, one TFM file serves for all
+magnifications of a given typeface. On the other hand, the best printed
+results are obtained when magnified (or reduced fonts) are not produced
+geometrically (as done by PostScript, for example) but rather optically,
+with each size a separate design (as done with Computer Modern and the
+EC fonts, for example); then a separate TFM file is needed for each
+size.
+
+ At any rate, TeX produces a DVI (DeVice Independent) file from your
+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
+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'.
+
+ 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
+fonts in the gf (generic font) format that Metafont generates, and far
+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
+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.
+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
+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.
+
+ (This section is based on documentation in the original Unix TeX
+distribution by Pierre MacKay and Elizabeth Tachikawa.)
+
+
+File: web2c.info, Node: gftopk invocation, Next: pktogf invocation, Prev: Font file formats, Up: Font utilities
+
+10.2 GFtoPK: Generic to packed font conversion
+==============================================
+
+GFtoPK converts a generic font (GF) file output by, for example,
+Metafont (*note mf invocation::) to a packed font (PK) file. PK files
+are considerably smaller than the corresponding gf files, so they are
+generally the bitmap font format of choice. Some DVI-processing
+programs, notably Dvips, only support PK files and not GF files.
+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
+program.
+
+ 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'.
+
+ The only options are `--verbose', `--help', and `--version' (*note
+Common options::).
+
+
+File: web2c.info, Node: pktogf invocation, Next: pktype invocation, Prev: gftopk invocation, Up: Font utilities
+
+10.3 PKtoGF: Packed to generic font conversion
+==============================================
+
+PKtoGF converts a packed font (PK) file to a generic font (GF) file.
+Since PK format is much more compact than GF format, the most likely
+reason to do this is to run GFtype (*note gftype invocation::) on the
+result, so you can see the bitmap images. Also, a few old utility
+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
+program.
+
+ 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'.
+
+ The only options are `--verbose', `--help', and `--version' (*note
+Common options::).
+
+
+File: web2c.info, Node: pktype invocation, Next: gftype invocation, Prev: pktogf invocation, Up: Font utilities
+
+10.4 PKtype: Plain text transliteration of packed fonts
+=======================================================
+
+PKtype translates a packed font (PK) bitmap file (as output by GFtoPK,
+for example) to a plain text file that humans can read. It also serves
+as a PK-validating program, i.e., if PKtype can read a file, it's
+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
+program.
+
+ 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::).
+
+ 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').
+
+ 955: Flag byte = 184 Character = 75 Packet length = 174
+ Dynamic packing variable = 11
+ TFM width = 815562 dx = 4259840
+ Height = 57 Width = 57 X-offset = -3 Y-offset = 56
+ [2]23(16)17(8)9(25)11(13)7(27)7(16)7(28)4(18)7(28)2(20)7(27)...
+ ...
+ (14)9(24)12(5)[2]23(13)21
+
+Explanation:
+
+`955'
+ The byte position in the file where this character starts.
+
+`Flag byte'
+`Dynamic packing variable'
+ Related to the packing for this character; see the source code.
+
+`Character'
+ The character code, in decimal.
+
+`Packet length'
+ The total length of this character definition, in bytes.
+
+`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'
+ The device-dependent width, in "scaled pixels", i.e., units of
+ horizontal pixels times 2^16.
+
+`Height'
+`Width'
+ The bitmap height and width, in pixels.
+
+`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
+ 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)...'
+ Finally, run lengths of black pixels alternate with parenthesized
+ run lengths of white pixels, and brackets indicate a repeated row.
+
+
+File: web2c.info, Node: gftype invocation, Next: tftopl invocation, Prev: pktype invocation, Up: Font utilities
+
+10.5 GFtype: Plain text transliteration of generic fonts
+========================================================
+
+GFtype translates a generic font (GF) bitmap file (as output by
+Metafont, for example) to a plain text file that humans can read. It
+also serves as a GF-validating program, i.e., if GFtype can read a file,
+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
+program.
+
+ 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'
+ Show the characters' bitmaps using asterisks and spaces.
+
+`-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.
+
+ 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
+is the main definition:
+
+ 2033: beginning of char 75: 3<=m<=60 0<=n<=56
+ (initially n=56) paint (0)24(12)20
+ 2043: newrow 0 (n=55) paint 24(12)20
+ 2047: newrow 0 (n=54) paint 24(12)20
+ 2051: newrow 0 (n=53) paint 24(12)20
+ 2055: newrow 7 (n=52) paint 10(21)13
+ 2059: newrow 8 (n=51) paint 8(23)9
+ ...
+ 2249: newrow 8 (n=5) paint 8(23)11
+ 2253: newrow 7 (n=4) paint 10(22)12
+ 2257: newrow 0 (n=3) paint 24(11)22
+ 2261: newrow 0 (n=2) paint 24(11)22
+ 2265: newrow 0 (n=1) paint 24(11)22
+ 2269: newrow 0 (n=0) paint 24(11)22
+ 2273: eoc
+ .<--This pixel's lower left corner is at (3,57) in METAFONT coordinates
+ ************************ ********************
+ ************************ ********************
+ ************************ ********************
+ ************************ ********************
+ ********** *************
+ ******** *********
+ ...
+ ******** ***********
+ ********** ************
+ ************************ **********************
+ ************************ **********************
+ ************************ **********************
+ ************************ **********************
+ .<--This pixel's upper left corner is at (3,0) in METAFONT coordinates
+
+Explanation:
+
+`2033'
+`2043'
+`...'
+ The byte position in the file where each GF command starts.
+
+`beginning of char 75'
+ The character code, in decimal.
+
+`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
+ 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'
+ The first row of pixels: 0 white pixels, 24 black pixels, 12 white
+ pixels, etc.
+
+`newrow 0 (n=55) paint 24(12)20'
+ The second row of pixels, with zero leading white pixels on the
+ row.
+
+`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'
+ The device-dependent width, in "scaled pixels", i.e., units of
+ 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.
+
+`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.
+
+`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 [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.
+
+ 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'
+ Output character codes in the PL file according to TYPE: either
+ `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
+ codes are output in octal.
+
+ 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'.
+
+ `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':
+
+ (FAMILY CMR)
+ (FACE O 352)
+ (CODINGSCHEME TEX TEXT)
+ (DESIGNSIZE R 10.0)
+ (COMMENT DESIGNSIZE IS IN POINTS)
+ (COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)
+ (CHECKSUM O 11374260171)
+ (FONTDIMEN
+ (SLANT R 0.0)
+ (SPACE R 0.333334)
+ (STRETCH R 0.166667)
+ (SHRINK R 0.111112)
+ (XHEIGHT R 0.430555)
+ (QUAD R 1.000003)
+ (EXTRASPACE R 0.111112)
+ )
+ (LIGTABLE
+ ...
+ (LABEL C f)
+ (LIG C i O 14)
+ (LIG C f O 13)
+ (LIG C l O 15)
+ (KRN O 47 R 0.077779)
+ (KRN O 77 R 0.077779)
+ (KRN O 41 R 0.077779)
+ (KRN O 51 R 0.077779)
+ (KRN O 135 R 0.077779)
+ (STOP)
+ ...
+ )
+ ...
+ (CHARACTER C f
+ (CHARWD R 0.305557)
+ (CHARHT R 0.694445)
+ (CHARIC R 0.077779)
+ (COMMENT
+ (LIG C i O 14)
+ (LIG C f O 13)
+ (LIG C l O 15)
+ (KRN O 47 R 0.077779)
+ (KRN O 77 R 0.077779)
+ ...
+ )
+ )
+ ...
+
+ 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.
+
+
+
+File: web2c.info, Node: pltotf invocation, Next: vftovp invocation, Prev: tftopl invocation, Up: Font utilities
+
+10.7 PLtoTF: Property list to TeX font metric conversion
+========================================================
+
+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:
+
+ 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.)
+
+ The only options are `-verbose', `-help', and `-version' (*note
+Common options::).
+
+ For an example of property list format, see the previous section.
+
+
+File: web2c.info, Node: vftovp invocation, Next: vptovf invocation, Prev: pltotf invocation, Up: Font utilities
+
+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 [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.
+
+ 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).
+
+ The program accepts the following option, as well as the standard
+`-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 for all other characters. Exception: if the font's coding
+ 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
+ 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'.
+
+ `octal' format is useful for symbol and other non-alphabetic fonts,
+ where using ASCII characters for the character codes is merely
+ confusing.
+
+
+File: web2c.info, Node: vptovf invocation, Next: Font utilities available elsewhere, Prev: vftovp invocation, Up: Font utilities
+
+10.9 VPtoVF: Virtual property lists to virtual font
+===================================================
+
+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:
+
+ 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'.
+
+ The only options are `-verbose', `-help', and `-version' (*note
+Common options::).
+
+
+File: web2c.info, Node: Font utilities available elsewhere, Prev: vptovf invocation, Up: Font utilities
+
+10.10 Font utilities available elsewhere
+========================================
+
+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
+items:
+
+ * AFM (Adobe font metric) to TFM conversion: *note Invoking afm2tfm:
+ (dvips)Invoking afm2tfm, and `CTAN:/fonts/utilities/afmtopl'.
+
+ * BDF (the X bitmap format) conversion:
+ `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
+ 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'.
+
+ * 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'.
+
+ * PostScript Type 1 font format conversion (i.e., between PFA and PFB
+ 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/'.
+
+ * 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.
+
+ * Virtual font creation: `CTAN:/fonts/utilities/fontinst'.
+
+
+File: web2c.info, Node: Legalisms, Next: References, Prev: Font utilities, Up: Top
+
+Appendix A Legalisms
+********************
+
+In general, each file has its own copyright notice stating the copying
+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
+copyrighted by their authors. They may be copied verbatim, but may be
+modified only through a `.ch' file.
+
+ 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.
+
+ The following notice must be included by the terms of the MetaPost
+copyright.
+
+ Permission to use, copy, modify, and distribute this software and
+ its documentation for any purpose and without fee is hereby
+ 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.
+
+ 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,
+ negligence or other tortious action, arising out of or in
+ connection with the use or performance of this software.
+
+
+File: web2c.info, Node: References, Next: Index, Prev: Legalisms, Up: Top
+
+Appendix B References
+*********************
+
+ 1. Kpathsea: *Note Introduction: (kpathsea)Top.
+
+ 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'.
+
+ 4. TUGboat: `http://tug.org/TUGboat'.
+
+ 5. TeX and computer typesetting in general:
+ `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
+ 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'.
+
+ 8. [GMS94] Michel Goossens, Frank Mittelbach, and Alexander Samarin.
+ `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'.
+
+ 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
+ Report CSTR-164, AT&T Bell Laboratories, 1993.
+
+ 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.
+
+ 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.
+ 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
+ Science, 1986.
+
+ 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,
+ 1986.
+
+ 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,
+ 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
+ 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'.
+
+ 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.
+
+ 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'.
+
+ 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
+ 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.
+
+
+
+File: web2c.info, Node: Index, Prev: References, Up: Top
+
+Index
+*****
+
+
+* Menu:
+
+* #define options: Compile-time options.
+ (line 6)
+* $ expansion in filenames: \input filenames. (line 48)
+* %& magic number: Determining the memory dump to use.
+ (line 19)
+* - starting a filename: Option conventions. (line 19)
+* - starts option names: Option conventions. (line 11)
+* -- starts option names: Option conventions. (line 11)
+* --disable-dump-share configure option: Hardware and memory dumps.
+ (line 6)
+* --disable-mf-nowin: Online Metafont graphics.
+ (line 65)
+* --enable-epsfwin: Online Metafont graphics.
+ (line 20)
+* --enable-hp2627win: Online Metafont graphics.
+ (line 28)
+* --enable-ipc configure option: tex invocation. (line 95)
+* --enable-mftalkwin: Online Metafont graphics.
+ (line 31)
+* --enable-next: Online Metafont graphics.
+ (line 35)
+* --enable-regiswin: Online Metafont graphics.
+ (line 40)
+* --enable-suntoolswin: Online Metafont graphics.
+ (line 43)
+* --enable-tektronixwin: Online Metafont graphics.
+ (line 48)
+* --enable-unitermwin: Online Metafont graphics.
+ (line 51)
+* --help common option: Common options. (line 11)
+* --verbose common option: Common options. (line 15)
+* --version common option: Common options. (line 18)
+* --with-editor=CMD: Editor invocation. (line 10)
+* --with-mf-x-toolkit=KIT: Online Metafont graphics.
+ (line 59)
+* --with-x: Online Metafont graphics.
+ (line 57)
+* -8bit: Common options. (line 105)
+* -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)
+* -D compiler options: Compile-time options.
+ (line 6)
+* -disable-write18: tex invocation. (line 130)
+* -dpi=REAL: dvitype invocation. (line 24)
+* -enable-write18: tex invocation. (line 129)
+* -enc: tex invocation. (line 89)
+* -file-line-error: Common options. (line 25)
+* -file-line-error-style: Common options. (line 26)
+* -fmt=DUMPNAME: Common options. (line 34)
+* -fmt=FMT: Determining the memory dump to use.
+ (line 15)
+* -geometry, supported with Xt: Online Metafont graphics.
+ (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)
+* -interaction=STRING: Common options. (line 50)
+* -ipc: tex invocation. (line 95)
+* -ipc-start: tex invocation. (line 95)
+* -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)
+* -max-pages=N: dvicopy invocation. (line 25)
+* -mem=DUMPNAME: Common options. (line 34)
+* -min-crossrefs=N: bibtex invocation. (line 31)
+* -mixedcase: tangle invocation. (line 35)
+* -mktex=FILETYPE <1>: mf invocation. (line 87)
+* -mktex=FILETYPE: tex invocation. (line 105)
+* -mltex: tex invocation. (line 110)
+* -mnemonics: gftype invocation. (line 29)
+* -no-file-line-error: Common options. (line 26)
+* -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)
+* -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)
+* -parse-first-line: Common options. (line 71)
+* -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)
+* -strict: tangle invocation. (line 46)
+* -style=MFTFILE: mft invocation. (line 68)
+* -T: mpost invocation. (line 118)
+* -terse: bibtex invocation. (line 28)
+* -tex=TEXPROGRAM: mpost invocation. (line 121)
+* -translate-file=TCXFILE: Common options. (line 98)
+* -troff: mpost invocation. (line 118)
+* -underline: tangle invocation. (line 41)
+* -uppercase: tangle invocation. (line 35)
+* -x: weave invocation. (line 22)
+* ., used for output: Output file location.
+ (line 6)
+* .2602gf: mf invocation. (line 48)
+* .aux cross-reference files: bibtex invocation. (line 6)
+* .base: Initial Metafont. (line 6)
+* .bbl bibliography files: bibtex invocation. (line 6)
+* .bib bibliography databases: bibtex invocation. (line 6)
+* .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)
+* .NNNgf generic fonts: mf invocation. (line 34)
+* .tcx character translation files <1>: TCX files. (line 6)
+* .tcx character translation files: Common options. (line 98)
+* .tex: tex invocation. (line 20)
+* .tfm output <1>: mpost invocation. (line 37)
+* .tfm output: mf invocation. (line 43)
+* .Xdefaults: Online Metafont graphics.
+ (line 69)
+* .Xresources: Online Metafont graphics.
+ (line 69)
+* 2602gf: mf invocation. (line 48)
+* 8 bit clean: Common options. (line 105)
+* 8 bit clean output, specifying: Common options. (line 105)
+* 8-bit characters: TCX files. (line 6)
+* \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)
+* \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)
+* \openin, and pipes: Shell escapes. (line 63)
+* \openout and security: tex invocation. (line 51)
+* \openout, and pipes: Shell escapes. (line 63)
+* \output routine, and \write: Shell escapes. (line 28)
+* \pdfshellescape: Shell escapes. (line 63)
+* \string: \input filenames. (line 60)
+* \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)
+* 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)
+* acm.bst: Basic BibTeX style files.
+ (line 19)
+* Ada, WEB for: WEB. (line 13)
+* additional Make targets: Additional targets. (line 6)
+* AFM to TFM conversion: Font utilities available elsewhere.
+ (line 12)
+* afm2tfm: Font utilities available elsewhere.
+ (line 12)
+* afmtopl: Font utilities available elsewhere.
+ (line 12)
+* Aleph: TeX extensions. (line 14)
+* aliases for fonts: Path searching. (line 15)
+* alpha.bst: Basic BibTeX style files.
+ (line 22)
+* American Mathematical Society, typesetting system: Formats. (line 39)
+* AMSTeX: Formats. (line 39)
+* apalike.bst: Basic BibTeX style files.
+ (line 25)
+* architecture dependencies: Hardware and memory dumps.
+ (line 6)
+* array limit, fixed: Runtime options. (line 36)
+* array sizes: Runtime options. (line 6)
+* assembly language routines: Compile-time options.
+ (line 22)
+* autotrace: Font utilities available elsewhere.
+ (line 46)
+* Awk, WEB for: WEB. (line 13)
+* 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, sharing: Hardware and memory dumps.
+ (line 6)
+* bases Make target: Additional targets. (line 29)
+* basic BibTeX style files: Basic BibTeX style files.
+ (line 6)
+* basic fonts and macros: Installation. (line 34)
+* 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)
+* BIBINPUTS, search path for bib files: bibtex invocation. (line 18)
+* bibliographies, creating: BibTeX. (line 6)
+* bibliography: References. (line 6)
+* bibliography items, cross-referenced: bibtex invocation. (line 31)
+* bibtex: bibtex invocation. (line 6)
+* BibTeX: BibTeX. (line 6)
+* BibTeX collection: bibtex invocation. (line 54)
+* BibTeX style files: Basic BibTeX style files.
+ (line 6)
+* BigEndian machines: Hardware and memory dumps.
+ (line 6)
+* binaries, linking: Common options. (line 77)
+* blank lines, in TCX files: TCX files. (line 67)
+* boxes, memory for: Runtime options. (line 20)
+* breakpoints, memory for: Runtime options. (line 20)
+* Breitenlohner, Peter: Introduction. (line 8)
+* BSTINPUTS, search path for bst files: bibtex invocation. (line 18)
+* btex for MetaPost labels: mpost invocation. (line 50)
+* 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 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 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 proofs of fonts: gftodvi invocation. (line 6)
+* CHARACTER property: tftopl invocation. (line 114)
+* 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)
+* 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)
+* color, in DVItoMP: dvitomp invocation. (line 15)
+* comments, in TCX files: TCX files. (line 71)
+* comments, MFT control: mft invocation. (line 24)
+* common options: Common options. (line 6)
+* commonalities: Commonalities. (line 6)
+* compilation: Installation. (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)
+* configuration: Installation. (line 6)
+* configuration file reading: Path searching. (line 6)
+* configuration file values: Runtime options. (line 6)
+* configuration, compile-time: configure options. (line 6)
+* configure --with/--enable options: configure options. (line 6)
+* CONTENTS.tex: weave invocation. (line 22)
+* control sequence names, space for: Runtime options. (line 29)
+* conventions for options,: Option conventions. (line 6)
+* conversion, DVI to plain text: dvitype invocation. (line 6)
+* conversion, GF to PK: gftopk invocation. (line 6)
+* conversion, GF to plain text: gftype invocation. (line 6)
+* conversion, PK to GF: pktogf invocation. (line 6)
+* conversion, PK to plain text: pktype invocation. (line 6)
+* conversion, property list to TFM: pltotf invocation. (line 6)
+* conversion, property list to VF: vptovf invocation. (line 6)
+* 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)
+* 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)
+* date and time, in memory dumps: Hardware and memory dumps.
+ (line 30)
+* debugging DVI utilities: dvitype invocation. (line 56)
+* debugging flags, specifying: Common options. (line 59)
+* decimal character codes, in TCX files: TCX files. (line 78)
+* dependencies, hardware: Hardware and memory dumps.
+ (line 6)
+* design-size units: tftopl invocation. (line 102)
+* 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)
+* 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)
+* 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 files, converting to MPX: dvitomp invocation. (line 6)
+* DVI files, explained: Font file formats. (line 30)
+* DVI format definition: DVI utilities. (line 14)
+* DVI opcodes, showing: dvitype invocation. (line 56)
+* DVI utilities: DVI utilities. (line 6)
+* dvicopy: dvicopy invocation. (line 6)
+* dvitomp: dvitomp invocation. (line 6)
+* dvitype DVI validation: dvitype invocation. (line 6)
+* 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)
+* dynamic packing variable: pktype invocation. (line 44)
+* e response at error prompt: Editor invocation. (line 6)
+* e-circumflex: \charsubdef. (line 21)
+* e-TeX: TeX extensions. (line 10)
+* e.mft: mft invocation. (line 75)
+* 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)
+* endian dependencies: Hardware and memory dumps.
+ (line 6)
+* eoc GF command: gftype invocation. (line 97)
+* Eplain: Formats. (line 54)
+* 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)
+* 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)
+* 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)
+* first line of the main input file: Common options. (line 98)
+* fixed-point arithmetic: Compile-time options.
+ (line 22)
+* FIXPT: Compile-time options.
+ (line 22)
+* flag byte: pktype invocation. (line 44)
+* floating-point arithmetic: Compile-time options.
+ (line 22)
+* floating-point values: Hardware and memory dumps.
+ (line 22)
+* fmt file, determining: Determining the memory dump to use.
+ (line 6)
+* 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)
+* font design: Metafont. (line 6)
+* font downloading for MetaPost labels: mpost invocation. (line 73)
+* 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)
+* fontutils: Font utilities available elsewhere.
+ (line 42)
+* format files: Initial TeX. (line 15)
+* formats for TeX: Formats. (line 6)
+* formats Make target: Additional targets. (line 17)
+* fraction routines: Compile-time options.
+ (line 22)
+* Free Software Foundation documentation system: Formats. (line 47)
+* freedom of Web2c: Introduction. (line 22)
+* ftp.math.utah.edu: bibtex invocation. (line 54)
+* generating source specials: tex invocation. (line 136)
+* geometric designs: Metafont. (line 6)
+* geometric font scaling: Font file formats. (line 22)
+* 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, output by Metafont: mf invocation. (line 34)
+* GF format definition: Font utilities. (line 11)
+* GF output: mf invocation. (line 34)
+* GF, converting PK to: pktogf invocation. (line 6)
+* GF, converting to PK: gftopk invocation. (line 6)
+* gftodvi: gftodvi invocation. (line 6)
+* gftopk: gftopk invocation. (line 6)
+* gftopxl: Font utilities available elsewhere.
+ (line 23)
+* gftype GF validation: gftype invocation. (line 6)
+* gftype.web: Font utilities. (line 11)
+* glue ratio representations: Hardware and memory dumps.
+ (line 22)
+* glue, memory for: Runtime options. (line 20)
+* glyph substitutions: MLTeX. (line 6)
+* gray font: gftodvi invocation. (line 29)
+* Gruff, Billy Goat: Triptrap. (line 6)
+* gsftopk: Font utilities available elsewhere.
+ (line 35)
+* Harbison, Samuel P.: Hardware and memory dumps.
+ (line 34)
+* hardware and memory dumps: Hardware and memory dumps.
+ (line 6)
+* hash table, increasing size of: Runtime options. (line 29)
+* hash_extra: Runtime options. (line 28)
+* headerbyte information: tftopl invocation. (line 96)
+* height, in pixels: pktype invocation. (line 62)
+* help, online: Common options. (line 11)
+* Henry, Patrick: Introduction. (line 22)
+* 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)
+* horizontal escapement: pktype invocation. (line 57)
+* hp2627: Online Metafont graphics.
+ (line 27)
+* human languages, supported in TeX: Languages and hyphenation.
+ (line 6)
+* human-readable text, converting DVI to: dvitype invocation. (line 6)
+* human-readable text, converting GF to: gftype invocation. (line 6)
+* human-readable text, converting PK to: pktype invocation. (line 6)
+* human-readable text, converting TFM to: tftopl invocation. (line 6)
+* human-readable text, converting VF to: vftovp invocation. (line 6)
+* hypertext: TeX extensions. (line 20)
+* hyphenation and languages: Languages and hyphenation.
+ (line 6)
+* hyphenation patterns, creating: patgen invocation. (line 6)
+* ice cream: Introduction. (line 22)
+* 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)
+* 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 TeX: Initial TeX. (line 6)
+* initializations, lengthy: Initial and virgin. (line 21)
+* input filenames: \input filenames. (line 6)
+* install-bases Make target: Additional targets. (line 29)
+* install-fmts Make target: Additional targets. (line 25)
+* 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 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)
+* 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)
+* KPATHSEA_DEBUG: Common options. (line 59)
+* KRN property: tftopl invocation. (line 102)
+* label font: gftodvi invocation. (line 36)
+* LABEL property: tftopl invocation. (line 102)
+* 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)
+* 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)
+* linking binaries: Common options. (line 77)
+* links to binaries: Determining the memory dump to use.
+ (line 31)
+* literate programming: WEB. (line 6)
+* LittleEndian machines: Hardware and memory dumps.
+ (line 6)
+* log file, BibTeX: bibtex invocation. (line 14)
+* Lua: TeX extensions. (line 26)
+* 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)
+* macro packages, major TeX: Formats. (line 6)
+* macros, basic: Installation. (line 34)
+* macros, predefining in memory dumps: Memory dumps. (line 6)
+* magnification <1>: dvitype invocation. (line 28)
+* magnification: dvicopy invocation. (line 20)
+* main_memory: Runtime options. (line 15)
+* Make targets, additional: Additional targets. (line 6)
+* Martin, Rick: Introduction. (line 50)
+* Mathematical Reviews: Formats. (line 39)
+* mathematical typesetting: TeX. (line 6)
+* mem file, determining: Determining the memory dump to use.
+ (line 6)
+* mem files, sharing: Hardware and memory dumps.
+ (line 6)
+* memory dump to use, determining: Determining the memory dump to use.
+ (line 6)
+* memory dumps: Memory dumps. (line 6)
+* memory dumps and hardware: Hardware and memory dumps.
+ (line 6)
+* memory dumps, contain date and time: Hardware and memory dumps.
+ (line 30)
+* memory dumps, creating: Creating memory dumps.
+ (line 6)
+* mems Make target: Additional targets. (line 34)
+* meta characters in filenames: \input filenames. (line 35)
+* Metafont: Metafont. (line 6)
+* Metafont geometry: Online Metafont graphics.
+ (line 69)
+* Metafont graphics: Online Metafont graphics.
+ (line 6)
+* Metafont input files: mf invocation. (line 24)
+* Metafont invocation: mf invocation. (line 6)
+* Metafont meets PostScript: MetaPost. (line 6)
+* Metafont online support, new devices: Online Metafont graphics.
+ (line 80)
+* Metafont source, prettyprinting: mft invocation. (line 6)
+* Metafont, compatibility in MetaPost: Initial MetaPost. (line 15)
+* Metafont, initial: Initial Metafont. (line 6)
+* Metafont, MetaPost, and TeX: Three programs. (line 6)
+* MetaPost: MetaPost. (line 6)
+* MetaPost and plain Metafont compatibility: Initial MetaPost.
+ (line 15)
+* MetaPost input files: mpost invocation. (line 31)
+* MetaPost invocation: mpost invocation. (line 6)
+* MetaPost source, prettyprinting: mft invocation. (line 80)
+* 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)
+* MFEDIT: Editor invocation. (line 10)
+* mfplain: Initial MetaPost. (line 15)
+* mfput: mf invocation. (line 34)
+* mft: mft invocation. (line 6)
+* mftalk: Online Metafont graphics.
+ (line 30)
+* MFTERM: Online Metafont graphics.
+ (line 11)
+* mftmac.tex: mft invocation. (line 6)
+* micro-typography: TeX extensions. (line 20)
+* mktexmf, disabling: mf invocation. (line 24)
+* mktextfM, disabling: tex invocation. (line 44)
+* mltex: MLTeX. (line 6)
+* MLTeX, enabling: tex invocation. (line 110)
+* 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)
+* MPEDIT: Editor invocation. (line 10)
+* mpgraph.ps: mpost invocation. (line 19)
+* 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)
+* 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)
+* new graphics support for Metafont: Online Metafont graphics.
+ (line 80)
+* 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)
+* 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)
+* option conventions: Option conventions. (line 6)
+* origin: pktype invocation. (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)
+* 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)
+* 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)
+* pdfTeX: TeX extensions. (line 20)
+* permissions, legal: Legalisms. (line 6)
+* PFA and PFB conversion: Font utilities available elsewhere.
+ (line 39)
+* pfaedit: Font utilities available elsewhere.
+ (line 30)
+* PiCTeX, increasing memory for: Runtime options. (line 20)
+* pipes, reading and writing: Shell escapes. (line 63)
+* pixel height: pktype invocation. (line 62)
+* 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, not output by Metafont: mf invocation. (line 34)
+* PK format definition: Font utilities. (line 11)
+* PK, converting GF to: gftopk invocation. (line 6)
+* PK, converting to GF: pktogf invocation. (line 6)
+* 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)
+* plain Metafont, compatibility in MetaPost: Initial MetaPost.
+ (line 15)
+* plain text, converting DVI to: dvitype invocation. (line 6)
+* plain text, converting GF to: gftype invocation. (line 6)
+* 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.bst: Basic BibTeX style files.
+ (line 11)
+* plain.fmt: Initial TeX. (line 15)
+* plain.mft: mft invocation. (line 68)
+* 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)
+* PostScript meets Metafont: MetaPost. (line 6)
+* PostScript output: mpost invocation. (line 37)
+* 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)
+* 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)
+* printer characteristics, for Metafont: Modes. (line 6)
+* production use: Initial and virgin. (line 17)
+* program name, determines memory dump: Determining the memory dump to use.
+ (line 31)
+* program names, special <1>: tex invocation. (line 110)
+* program names, special: Common options. (line 45)
+* prologues: mpost invocation. (line 118)
+* prologues, and EPSF output: mpost invocation. (line 83)
+* proof mode: mf invocation. (line 48)
+* proof sheets, of fonts: gftodvi invocation. (line 6)
+* property list format: tftopl invocation. (line 44)
+* 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)
+* pxtoch: Font utilities available elsewhere.
+ (line 23)
+* Raichle, Bernd: MLTeX. (line 6)
+* reading, additional: Introduction. (line 58)
+* readonly directory, running TeX in: Output file location.
+ (line 15)
+* reallocation of arrays: Runtime options. (line 36)
+* redefined character substitutions: \tracingcharsubdef. (line 6)
+* reference pixel: pktype invocation. (line 66)
+* references: References. (line 6)
+* regis: Online Metafont graphics.
+ (line 39)
+* Regis graphics support: Online Metafont graphics.
+ (line 40)
+* regression testing: tex invocation. (line 115)
+* 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)
+* run length encoded bitmaps: pktype invocation. (line 76)
+* 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)
+* 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 shell escapes: Shell escapes. (line 6)
+* security, and write: mpost invocation. (line 95)
+* shapes: Metafont. (line 6)
+* sharing memory dumps: Hardware and memory dumps.
+ (line 6)
+* shell commands in TeX: Shell escapes. (line 6)
+* shell_escape enabling in TeX: Shell escapes. (line 6)
+* 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)
+* slant font: gftodvi invocation. (line 39)
+* slides, producing: Formats. (line 61)
+* SliTeX: Formats. (line 61)
+* small Metafont memory and modes: Modes. (line 15)
+* 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)
+* starting page: dvicopy invocation. (line 28)
+* Steele Jr., Guy L.: Hardware and memory dumps.
+ (line 34)
+* stopping at the first error: Common options. (line 41)
+* strategy, overall: Introduction. (line 16)
+* 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)
+* substitutions of font glyphs: MLTeX. (line 6)
+* sun: Online Metafont graphics.
+ (line 42)
+* sun-gfx.c: Online Metafont graphics.
+ (line 43)
+* Suntools: Online Metafont graphics.
+ (line 43)
+* SunView: Online Metafont graphics.
+ (line 43)
+* swap space, as array limit: Runtime options. (line 36)
+* swapping bytes: Hardware and memory dumps.
+ (line 13)
+* syntax of TCX files: TCX files. (line 66)
+* 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)
+* tangle: tangle invocation. (line 6)
+* targets, additional Make: Additional targets. (line 6)
+* TCX character translation files: TCX files. (line 6)
+* tek: Online Metafont graphics.
+ (line 47)
+* Tektronix: Online Metafont graphics.
+ (line 48)
+* Tektronix 4014: Online Metafont graphics.
+ (line 51)
+* TERM: Online Metafont graphics.
+ (line 11)
+* terminator for filenames: \input filenames. (line 10)
+* terse output: bibtex invocation. (line 28)
+* tex: tex invocation. (line 6)
+* TeX, bibliographies for: bibtex invocation. (line 54)
+* TeX, creating from Metafont: mft invocation. (line 6)
+* TeX, creating from WEB: weave invocation. (line 6)
+* TeX, description of: TeX. (line 6)
+* TeX, extensions to: TeX extensions. (line 6)
+* TeX, format packages for: Formats. (line 6)
+* TeX, initial: Initial TeX. (line 6)
+* 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)
+* TEXBIB, search path for bib files: bibtex invocation. (line 18)
+* TEXEDIT: Editor invocation. (line 10)
+* texfonts.map: Path searching. (line 15)
+* Texinfo: Formats. (line 47)
+* texmf.cnf: Path searching. (line 6)
+* texmfmp.c: Online Metafont graphics.
+ (line 80)
+* TEXMFOUTPUT, used for reading: Output file location.
+ (line 25)
+* TEXMFOUTPUT, used if . unwritable: Output file location.
+ (line 19)
+* texput: tex invocation. (line 35)
+* TFM files, converting property lists to: pltotf invocation. (line 6)
+* TFM files, explained: Font file formats. (line 13)
+* 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 width of characters: pktype invocation. (line 53)
+* tftopl: tftopl invocation. (line 6)
+* three programs: Three programs. (line 6)
+* time and date, in memory dumps: Hardware and memory dumps.
+ (line 30)
+* title font: gftodvi invocation. (line 33)
+* toolkits, X: Online Metafont graphics.
+ (line 59)
+* torture tests: Triptrap. (line 6)
+* translation file for TeX, specifying: Common options. (line 98)
+* translation from WEB to C: Introduction. (line 16)
+* trap Make target: Additional targets. (line 41)
+* trap test: Triptrap. (line 6)
+* trapman.tex: Triptrap. (line 6)
+* Trickey, Howard: Introduction. (line 40)
+* 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)
+* TUGboat bibliography: bibtex invocation. (line 54)
+* Type 1 conversion: Font utilities available elsewhere.
+ (line 39)
+* type design, personal: Initial Metafont. (line 33)
+* type programs, DVI: dvitype invocation. (line 6)
+* type programs, GF: gftype invocation. (line 6)
+* type programs, PK: pktype invocation. (line 6)
+* type programs, pool: pooltype invocation. (line 6)
+* typeface families: Metafont. (line 6)
+* typeface specimen sheets: Font utilities available elsewhere.
+ (line 42)
+* typesetting: TeX. (line 6)
+* Unicode: TeX extensions. (line 14)
+* Unicode input: tex invocation. (line 89)
+* uniterm: Online Metafont graphics.
+ (line 50)
+* unsrt.bst: Basic BibTeX style files.
+ (line 39)
+* UTF-8 input: tex invocation. (line 89)
+* validation, of DVI files: dvitype invocation. (line 6)
+* validation, of GF files: gftype invocation. (line 6)
+* validation, of PK files: pktype invocation. (line 6)
+* validation, of TFM files: tftopl invocation. (line 6)
+* validation, of VF files: vftovp invocation. (line 6)
+* 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)
+* VF files, converting property lists to: vptovf invocation. (line 6)
+* vftovp: vftovp invocation. (line 6)
+* virgin programs: Initial and virgin. (line 17)
+* 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)
+* vptovf: vptovf invocation. (line 6)
+* weave: weave invocation. (line 6)
+* WEB: WEB. (line 6)
+* web environments, and security: Shell escapes. (line 70)
+* 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)
+* webmac.tex: weave invocation. (line 22)
+* webman.tex: WEB. (line 13)
+* whitespace, in TCX files: TCX files. (line 69)
+* whitespace-terminated filenames: \input filenames. (line 10)
+* width, device-independent <1>: gftype invocation. (line 113)
+* width, device-independent: pktype invocation. (line 53)
+* width, in pixels: pktype invocation. (line 62)
+* word processor, not: TeX. (line 9)
+* writing memory dumps: Creating memory dumps.
+ (line 6)
+* X bitmap fonts: Font utilities available elsewhere.
+ (line 15)
+* X class name for Metafont: Online Metafont graphics.
+ (line 69)
+* x offset: pktype invocation. (line 66)
+* X resources: Online Metafont graphics.
+ (line 69)
+* X toolkits and Metafont: Online Metafont graphics.
+ (line 59)
+* xampl.bib: bibtex invocation. (line 51)
+* xbfe, bitmap font editor: Font utilities available elsewhere.
+ (line 23)
+* XeTeX: TeX extensions. (line 31)
+* xfed, bitmap font editor: Font utilities available elsewhere.
+ (line 23)
+* xfedor, bitmap font editor: Font utilities available elsewhere.
+ (line 23)
+* Xlib: Online Metafont graphics.
+ (line 56)
+* Xlib support: Online Metafont graphics.
+ (line 59)
+* Xt: Online Metafont graphics.
+ (line 56)
+* Xt support: Online Metafont graphics.
+ (line 59)
+* 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
+
+End Tag Table