summaryrefslogtreecommitdiff
path: root/Master/texmf/doc
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf/doc')
-rw-r--r--Master/texmf/doc/web2c/web2c.html4943
-rw-r--r--Master/texmf/doc/web2c/web2c.pdfbin0 -> 611353 bytes
2 files changed, 4943 insertions, 0 deletions
diff --git a/Master/texmf/doc/web2c/web2c.html b/Master/texmf/doc/web2c/web2c.html
new file mode 100644
index 00000000000..12bd0120e51
--- /dev/null
+++ b/Master/texmf/doc/web2c/web2c.html
@@ -0,0 +1,4943 @@
+<html lang="en">
+<head>
+<title>Web2c: A TeX implementation</title>
+<meta http-equiv="Content-Type" content="text/html">
+<meta name="description" content="Web2c: A TeX implementation">
+<meta name="generator" content="makeinfo 4.8">
+<link title="Top" rel="top" href="#Top">
+<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
+<!--
+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 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-->
+<meta http-equiv="Content-Style-Type" content="text/css">
+<style type="text/css"><!--
+ pre.display { font-family:inherit }
+ pre.format { font-family:inherit }
+ pre.smalldisplay { font-family:inherit; font-size:smaller }
+ pre.smallformat { font-family:inherit; font-size:smaller }
+ pre.smallexample { font-size:smaller }
+ pre.smalllisp { font-size:smaller }
+ span.sc { font-variant:small-caps }
+ span.roman { font-family:serif; font-weight:normal; }
+ span.sansserif { font-family:sans-serif; font-weight:normal; }
+--></style>
+</head>
+<body>
+<h1 class="settitle">Web2c: A TeX implementation</h1>
+<div class="contents">
+<h2>Table of Contents</h2>
+<ul>
+<li><a name="toc_Top" href="#Top">Web2c</a>
+<li><a name="toc_Introduction" href="#Introduction">1 Introduction</a>
+<li><a name="toc_Installation" href="#Installation">2 Installation</a>
+<ul>
+<li><a href="#configure-options">2.1 <code>configure</code> options</a>
+<li><a href="#Compile_002dtime-options">2.2 Compile-time options</a>
+<li><a href="#Additional-targets">2.3 Additional targets</a>
+<li><a href="#Triptrap">2.4 Trip, trap, and mptrap: Torture tests</a>
+<li><a href="#Runtime-options">2.5 Runtime options</a>
+</li></ul>
+<li><a name="toc_Commonalities" href="#Commonalities">3 Commonalities</a>
+<ul>
+<li><a href="#Option-conventions">3.1 Option conventions</a>
+<li><a href="#Common-options">3.2 Common options</a>
+<li><a href="#Path-searching">3.3 Path searching</a>
+<li><a href="#Output-file-location">3.4 Output file location</a>
+<li><a href="#Three-programs">3.5 Three programs: Metafont, MetaPost, and TeX</a>
+<ul>
+<li><a href="#Initial-and-virgin">3.5.1 Initial and virgin</a>
+<li><a href="#Memory-dumps">3.5.2 Memory dumps</a>
+<ul>
+<li><a href="#Creating-memory-dumps">3.5.2.1 Creating memory dumps</a>
+<li><a href="#Determining-the-memory-dump-to-use">3.5.2.2 Determining the memory dump to use</a>
+<li><a href="#Hardware-and-memory-dumps">3.5.2.3 Hardware and memory dumps</a>
+</li></ul>
+<li><a href="#Editor-invocation">3.5.3 Editor invocation</a>
+<li><a href="#_005cinput-filenames">3.5.4 <code>\input</code> filenames</a>
+</li></ul>
+</li></ul>
+<li><a name="toc_TeX" href="#TeX">4 TeX: Typesetting</a>
+<ul>
+<li><a href="#tex-invocation">4.1 <code>tex</code> invocation</a>
+<li><a href="#Initial-TeX">4.2 Initial TeX</a>
+<li><a href="#Formats">4.3 Formats</a>
+<li><a href="#Languages-and-hyphenation">4.4 Languages and hyphenation</a>
+<ul>
+<li><a href="#MLTeX">4.4.1 MLTeX: Multi-lingual TeX</a>
+<ul>
+<li><a href="#_005ccharsubdef">4.4.1.1 <code>\charsubdef</code>: Character substitutions</a>
+<li><a href="#_005ctracingcharsubdef">4.4.1.2 <code>\tracingcharsubdef</code>: Substitution diagnostics</a>
+</li></ul>
+<li><a href="#TCX-files">4.4.2 TCX files: Character translations</a>
+<li><a href="#patgen-invocation">4.4.3 Patgen: Creating hyphenation patterns</a>
+</li></ul>
+<li><a href="#IPC-and-TeX">4.5 IPC and TeX</a>
+<li><a href="#TeX-extensions">4.6 TeX extensions</a>
+</li></ul>
+<li><a name="toc_Metafont" href="#Metafont">5 Metafont: Creating typeface families</a>
+<ul>
+<li><a href="#mf-invocation">5.1 <code>mf</code> invocation</a>
+<li><a href="#Initial-Metafont">5.2 Initial Metafont</a>
+<li><a href="#Modes">5.3 Modes: Device definitions for Metafont</a>
+<li><a href="#Online-Metafont-graphics">5.4 Online Metafont graphics</a>
+<li><a href="#gftodvi-invocation">5.5 GFtoDVI: Character proofs of fonts</a>
+<li><a href="#mft-invocation">5.6 MFT: Prettyprinting Metafont source</a>
+</li></ul>
+<li><a name="toc_MetaPost" href="#MetaPost">6 MetaPost: Creating technical illustrations</a>
+<ul>
+<li><a href="#mpost-invocation">6.1 <code>mpost</code> invocation</a>
+<li><a href="#Initial-MetaPost">6.2 Initial MetaPost</a>
+<li><a href="#makempx-invocation">6.3 MakeMPX: Support MetaPost labels</a>
+<li><a href="#dvitomp-invocation">6.4 DVItoMP: DVI to MPX conversion</a>
+<li><a href="#dmp-invocation">6.5 DMP: Ditroff to MPX conversion</a>
+<li><a href="#mpto-invocation">6.6 MPto: Extract labels from MetaPost input</a>
+<li><a href="#newer-invocation">6.7 Newer: Compare file modification times</a>
+</li></ul>
+<li><a name="toc_BibTeX" href="#BibTeX">7 BibTeX: Bibliographies</a>
+<ul>
+<li><a href="#bibtex-invocation">7.1 BibTeX invocation</a>
+<li><a href="#Basic-BibTeX-style-files">7.2 Basic BibTeX style files</a>
+</li></ul>
+<li><a name="toc_WEB" href="#WEB">8 WEB: Literate programming</a>
+<ul>
+<li><a href="#tangle-invocation">8.1 Tangle: Translate WEB to Pascal</a>
+<li><a href="#weave-invocation">8.2 Weave: Translate WEB to TeX</a>
+<li><a href="#pooltype-invocation">8.3 Pooltype: Display WEB pool files</a>
+</li></ul>
+<li><a name="toc_DVI-utilities" href="#DVI-utilities">9 DVI utilities</a>
+<ul>
+<li><a href="#dvicopy-invocation">9.1 DVIcopy: Canonicalize virtual font references</a>
+<li><a href="#dvitype-invocation">9.2 DVItype: Plain text transliteration of DVI files</a>
+<ul>
+<li><a href="#dvitype-output-example">9.2.1 DVItype output example</a>
+</li></ul>
+</li></ul>
+<li><a name="toc_Font-utilities" href="#Font-utilities">10 Font utilities</a>
+<ul>
+<li><a href="#Font-file-formats">10.1 Font file formats</a>
+<li><a href="#gftopk-invocation">10.2 GFtoPK: Generic to packed font conversion</a>
+<li><a href="#pktogf-invocation">10.3 PKtoGF: Packed to generic font conversion</a>
+<li><a href="#pktype-invocation">10.4 PKtype: Plain text transliteration of packed fonts</a>
+<li><a href="#gftype-invocation">10.5 GFtype: Plain text transliteration of generic fonts</a>
+<li><a href="#tftopl-invocation">10.6 TFtoPL: TeX font metric to property list conversion</a>
+<li><a href="#pltotf-invocation">10.7 PLtoTF: Property list to TeX font metric conversion</a>
+<li><a href="#vftovp-invocation">10.8 VFtoVP: Virtual font to virtual property lists</a>
+<li><a href="#vptovf-invocation">10.9 VPtoVF: Virtual property lists to virtual font</a>
+<li><a href="#Font-utilities-available-elsewhere">10.10 Font utilities available elsewhere</a>
+</li></ul>
+<li><a name="toc_Legalisms" href="#Legalisms">Appendix A Legalisms</a>
+<li><a name="toc_References" href="#References">Appendix B References</a>
+<li><a name="toc_Index" href="#Index">Index</a>
+</li></ul>
+</div>
+
+
+
+<div class="node">
+<p><hr>
+<a name="Top"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Introduction">Introduction</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#dir">(dir)</a>
+
+</div>
+
+<h2 class="unnumbered">Web2c</h2>
+
+<p>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 7.5.5, released in
+June 2005.
+
+<ul class="menu">
+<li><a accesskey="1" href="#Introduction">Introduction</a>: A brief introduction.
+<li><a accesskey="2" href="#Installation">Installation</a>: How to compile and install Web2c.
+<li><a accesskey="3" href="#Commonalities">Commonalities</a>: Option syntax, standard options, memory dumps.
+<li><a accesskey="4" href="#TeX">TeX</a>: Typesetting.
+<li><a accesskey="5" href="#Metafont">Metafont</a>: Typeface design.
+<li><a accesskey="6" href="#MetaPost">MetaPost</a>: Technical illustrations.
+<li><a accesskey="7" href="#BibTeX">BibTeX</a>: Reusable bibliographies.
+<li><a accesskey="8" href="#WEB">WEB</a>: Literate programming.
+<li><a accesskey="9" href="#DVI-utilities">DVI utilities</a>: DVI expansion.
+<li><a href="#Font-utilities">Font utilities</a>: Font format conversion.
+<li><a href="#Legalisms">Legalisms</a>: Blah blah blah.
+<li><a href="#References">References</a>: Books and such.
+<li><a href="#Index">Index</a>: General index.
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="Introduction"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Installation">Installation</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Top">Top</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
+
+</div>
+
+<h2 class="chapter">1 Introduction</h2>
+
+<p><a name="index-introduction-1"></a>
+This manual corresponds to version 7.5.5 of Web2c, released in
+June 2005.
+
+ <p><a name="index-Knuth_002c-Donald-E_002e-2"></a><a name="index-g_t_0040TeX_007b_007d_002c-Web2c-implementation-of-3"></a><a name="index-Hobby_002c-John-4"></a><a name="index-Breitenlohner_002c-Peter-5"></a><dfn>Web2c</dfn> is the name of a TeX implementation, originally for Unix,
+but now also running under DOS, Amiga, and other operating systems. By
+<dfn>TeX implementation</dfn>, 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.
+
+ <p><a name="index-translation-from-WEB-to-C-6"></a><a name="index-strategy_002c-overall-7"></a>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 <samp><span class="file">web2c/lib</span></samp> directory in the sources).
+Therefore, it will not work without change on an arbitrary WEB program.
+
+ <p><a name="index-licensing-terms-8"></a><a name="index-freedom-of-Web2c-9"></a><a name="index-ice-cream-10"></a><a name="index-Henry_002c-Patrick-11"></a>Availability: All of Web2c is freely available&mdash;&ldquo;free&rdquo; both in the
+sense of no cost (free ice cream) and of having the source code to
+modify and/or redistribute (free speech). See <a href="kpathsea.html#unixtex_002eftp">unixtex.ftp</a>, for the practical details of how to obtain Web2c.
+
+ <p>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 (see <a href="kpathsea.html#Copying">Copying</a>). The
+GPL covers the Web2c executables, including <code>tex</code>, 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.
+
+ <p><a name="index-history-12"></a><a name="index-Rokicki_002c-Tomas-13"></a><a name="index-Trickey_002c-Howard-14"></a><a name="index-Curtis_002c-Pavel-15"></a><a name="index-Morgan_002c-Tim-16"></a><a name="index-Berry_002c-Karl-17"></a><a name="index-Weber_002c-Olaf-18"></a>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
+<samp><span class="file">ChangeLog</span></samp> files.
+
+ <p><a name="index-acknowledgements-19"></a><a name="index-Martin_002c-Rick-20"></a><a name="index-Morris_002c-Bob-21"></a><a name="index-Stallman_002c-Richard-22"></a>Other acknowledgements: The University of Massachusetts at Boston
+(particularly Rick Martin and Bob Morris) has 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.
+
+ <p><a name="index-reading_002c-additional-23"></a>Further reading: See <a href="#References">References</a>.
+
+<div class="node">
+<p><hr>
+<a name="Installation"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Commonalities">Commonalities</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Introduction">Introduction</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
+
+</div>
+
+<h2 class="chapter">2 Installation</h2>
+
+<p><a name="index-configuration-24"></a><a name="index-compilation-25"></a><a name="index-installation-26"></a>
+(A copy of this chapter is in the distribution file <samp><span class="file">web2c/INSTALL</span></samp>.)
+
+ <p>Installing Web2c is mostly the same as installing any other
+Kpathsea-using program. Therefore, for the basic steps involved,
+see <a href="kpathsea.html#Installation">Installation</a>. (A copy is in the file
+<samp><span class="file">kpathsea/INSTALL</span></samp>.)
+
+ <p>One peculiarity to Web2c is that the source distribution comes in two
+files: <samp><span class="file">web.tar.gz</span></samp> and <samp><span class="file">web2c.tar.gz</span></samp>. 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.)
+See <a href="kpathsea.html#unixtex_002eftp">unixtex.ftp</a>.
+
+ <p><a name="index-mpost_0040r_007b_002c-reason-for-name-change_007d-27"></a>Another peculiarity is the MetaPost program. Although it has been
+installed previously as <code>mp</code>, as of Web2c 7.0 the installed name is
+now <code>mpost</code>, to avoid conflict with the <code>mp</code> 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.
+
+ <p>For solutions to common installation problems and information on how to
+report a bug, see the file <samp><span class="file">kpathsea/BUGS</span></samp> (see <a href="kpathsea.html#Bugs">Bugs</a>). See also the Web2c home page,
+<a href="http://www.tug.org/web2c">http://www.tug.org/web2c</a>.
+
+ <p>Points worth repeating:
+
+ <ul>
+<li><a name="index-directory-structure-28"></a><a name="index-basic-fonts-and-macros-29"></a><a name="index-fonts_002c-basic-30"></a><a name="index-macros_002c-basic-31"></a>Before starting the standard compilation and installation you must
+install the basic fonts, macros, and other library files.
+See <a href="kpathsea.html#Installation">Installation</a>.
+
+ <li>If you do not wish to use the standard file locations, see <a href="kpathsea.html#Changing-search-paths">Changing search paths</a>.
+
+ <li>Some Web2c features are enabled or disabled at <code>configure</code> time,
+as described in the first section below.
+
+ </ul>
+
+<ul class="menu">
+<li><a accesskey="1" href="#configure-options">configure options</a>: Especially --with and --enable.
+<li><a accesskey="2" href="#Compile_002dtime-options">Compile-time options</a>: Unusual -D's.
+<li><a accesskey="3" href="#Additional-targets">Additional targets</a>: Breaking down the task.
+<li><a accesskey="4" href="#Triptrap">Triptrap</a>: Running the torture tests.
+<li><a accesskey="5" href="#Runtime-options">Runtime options</a>: Array sizes and the like.
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="configure-options"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Compile_002dtime-options">Compile-time options</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Installation">Installation</a>
+
+</div>
+
+<h3 class="section">2.1 <code>configure</code> options</h3>
+
+<p><a name="index-configuration_002c-compile_002dtime-32"></a><a name="index-compile_002dtime-options-33"></a><a name="index-configure-_002d_002dwith_002f_002d_002denable-_0040r_007boptions_007d-34"></a>This section gives pointers to descriptions of the `<samp><span class="samp">--with</span></samp>' and
+`<samp><span class="samp">--enable</span></samp>' <code>configure</code> arguments that Web2c accepts. Some are
+specific to Web2c, others are generic to all Kpathsea-using programs.
+
+ <p>For a list of all the options <code>configure</code> accepts, run
+`<samp><span class="samp">configure --help</span></samp>'. The generic options are listed first, and the
+package-specific options come last.
+
+ <p>For a description of the generic options (which mainly allow you to
+specify installation directories) and basic <code>configure</code> usage,
+see <a href="autoconf.html#Invoking-configure">Running <code>configure</code> scripts</a>, a copy is in the file <samp><span class="file">kpathsea/CONFIGURE</span></samp>.
+
+ <dl>
+<dt>`<samp><span class="samp">--disable-dump-share</span></samp>'<dd>Do not make fmt/base/mem files sharable across different endian
+architectures. See <a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a>.
+
+ <br><dt>`<samp><span class="samp">--without-maketexmf-default</span></samp>'<dt>`<samp><span class="samp">--without-maketexpk-default</span></samp>'<dt>`<samp><span class="samp">--without-maketextfm-default</span></samp>'<dt>`<samp><span class="samp">--with-maketextex-default</span></samp>'<dd>Enable or disable the dynamic generation programs. See <a href="kpathsea.html#mktex-configuration">mktex configuration</a>. The defaults are the inverse of
+the options, i.e., everything is enabled except <code>mktextex</code>.
+
+ <br><dt>`<samp><span class="samp">--enable-shared</span></samp>'<dd>Build Kpathsea as a shared library. See <a href="kpathsea.html#Shared-library">Shared library</a>.
+
+ <br><dt>`<samp><span class="samp">--with-editor=</span><var>cmd</var></samp>'<dd>Change the default editor invoked by the `<samp><span class="samp">e</span></samp>' interactive command.
+See <a href="#Editor-invocation">Editor invocation</a>.
+
+ <br><dt>`<samp><span class="samp">--with-epsfwin</span></samp>'<dt>`<samp><span class="samp">--with-hp2627win</span></samp>'<dt>`<samp><span class="samp">--with-mftalkwin</span></samp>'<dt>`<samp><span class="samp">--with-nextwin</span></samp>'<dt>`<samp><span class="samp">--with-regiswin</span></samp>'<dt>`<samp><span class="samp">--with-suntoolswin</span></samp>'<dt>`<samp><span class="samp">--with-tektronixwin</span></samp>'<dt>`<samp><span class="samp">--with-unitermwin</span></samp>'<dt>`<samp><span class="samp">--with-x</span></samp>'<dt>`<samp><span class="samp">--with-x-toolkit=KIT</span></samp>'<dt>`<samp><span class="samp">--with-x11win</span></samp>'<dt>`<samp><span class="samp">--with-x11</span></samp>'<dd>Define Metafont graphics support; by default, no graphics support is
+enabled. See <a href="#Online-Metafont-graphics">Online Metafont graphics</a>.
+
+ <br><dt>`<samp><span class="samp">--x-includes=</span><var>dir</var></samp>'<dt>`<samp><span class="samp">--x-libraries=</span><var>dir</var></samp>'<dd>Define the locations of the X11 include files and libraries; by default,
+<code>configure</code> does its best to guess). See <a href="autoconf.html#Optional-Features">Optional Features</a>. A copy is in <samp><span class="file">kpathsea/CONFIGURE</span></samp>.
+</dl>
+
+<div class="node">
+<p><hr>
+<a name="Compile-time-options"></a>
+<a name="Compile_002dtime-options"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Additional-targets">Additional targets</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#configure-options">configure options</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Installation">Installation</a>
+
+</div>
+
+<h3 class="section">2.2 Compile-time options</h3>
+
+<p><a name="index-compile_002dtime-options-35"></a><a name="index-g_t_0040samp_007b_0023define_007d-options-36"></a><a name="index-g_t_002dD-_0040r_007bcompiler-options_007d-37"></a>In addition to the <code>configure</code> options listed in the previous
+section, there are a few things that can be affected at compile-time
+with C definitions, rather than with <code>configure</code>. Using any of
+these is unusual.
+
+ <p>To specify extra compiler flags (`<samp><span class="samp">-D</span><var>name</var></samp>' in this case), the
+simplest thing to do is:
+<pre class="example"> make XCFLAGS="<var>ccoptions</var>"
+</pre>
+ <p class="noindent">You can also set the <code>CFLAGS</code> environment variable before
+running <code>configure</code>. See <a href="kpathsea.html#configure-environment">configure environment</a>.
+
+ <p>Anyway, here are the possibilities:
+
+ <dl>
+<dt>`<samp><span class="samp">-DFIXPT</span></samp>'<dt>`<samp><span class="samp">-DNO_MF_ASM</span></samp>'<dd><a name="index-FIXPT-38"></a><a name="index-fixed_002dpoint-arithmetic-39"></a><a name="index-floating_002dpoint-arithmetic-40"></a><a name="index-assembly-language-routines-41"></a><a name="index-fraction-routines-42"></a>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
+`<samp><span class="samp">NO_MF_ASM</span></samp>' is defined), and floating-point routines are used
+otherwise.
+
+ <br><dt>`<samp><span class="samp">-DIPC_DEBUG</span></samp>'<dd><a name="index-IPC_005fDEBUG-43"></a>Report on various interprocess communication activities. See <a href="#IPC-and-TeX">IPC and TeX</a>.
+</dl>
+
+<div class="node">
+<p><hr>
+<a name="Additional-targets"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Triptrap">Triptrap</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Compile_002dtime-options">Compile-time options</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Installation">Installation</a>
+
+</div>
+
+<h3 class="section">2.3 Additional targets</h3>
+
+<p><a name="index-additional-Make-targets-44"></a><a name="index-targets_002c-additional-Make-45"></a><a name="index-Make-targets_002c-additional-46"></a>
+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 <samp><span class="file">kpathsea/</span></samp> and <samp><span class="file">web2c/</span></samp>), or in the
+<samp><span class="file">web2c/</span></samp> directory.
+
+ <dl>
+<dt>`<samp><span class="samp">c-sources</span></samp>'<dd><a name="index-c_002dsources-_0040r_007bMakefile-target_007d-47"></a><a name="index-non_002dUnix-system_002c-compiling-on-48"></a>Make only the C files, translated from the Web sources, presumably
+because you want to take them to a non-Unix machine.
+
+ <br><dt>`<samp><span class="samp">formats</span></samp>'<dt>`<samp><span class="samp">install-formats</span></samp>'<dd><a name="index-formats-_0040r_007bMake-target_007d-49"></a><a name="index-install_002dformats-_0040r_007bMake-target_007d-50"></a>Make or install all the memory dumps (see <a href="#Memory-dumps">Memory dumps</a>). By
+default, the standard plain formats plus <samp><span class="file">latex.fmt</span></samp> are made. You
+can add other formats by redefining the <code>fmts</code>, <code>bases</code>, and
+<code>mems</code> variables. See the top of <samp><span class="file">web2c/Makefile</span></samp> for the
+possibilities.
+
+ <br><dt>`<samp><span class="samp">fmts</span></samp>'<dt>`<samp><span class="samp">install-fmts</span></samp>'<dd><a name="index-fmts-_0040r_007bMake-target_007d-51"></a><a name="index-install_002dfmts-_0040r_007bMake-target_007d-52"></a>Make or install the TeX <samp><span class="file">.fmt</span></samp> files. See <a href="#Initial-TeX">Initial TeX</a>.
+
+ <br><dt>`<samp><span class="samp">bases</span></samp>'<dt>`<samp><span class="samp">install-bases</span></samp>'<dd><a name="index-bases-_0040r_007bMake-target_007d-53"></a><a name="index-install_002dbases-_0040r_007bMake-target_007d-54"></a>
+Make or install the Metafont <samp><span class="file">.base</span></samp> files. See <a href="#Initial-Metafont">Initial Metafont</a>.
+
+ <br><dt>`<samp><span class="samp">mems</span></samp>'<dt>`<samp><span class="samp">install-mems</span></samp>'<dd><a name="index-mems-_0040r_007bMake-target_007d-55"></a><a name="index-install_002dmems-_0040r_007bMake-target_007d-56"></a>Make or install the MetaPost <samp><span class="file">.mem</span></samp> files. See <a href="#Initial-MetaPost">Initial MetaPost</a>.
+
+ <br><dt>`<samp><span class="samp">triptrap</span></samp>'<dt>`<samp><span class="samp">trip</span></samp>'<dt>`<samp><span class="samp">trap</span></samp>'<dt>`<samp><span class="samp">mptrap</span></samp>'<dd><a name="index-triptrap-_0040r_007bMake-target_007d-57"></a><a name="index-trip-_0040r_007bMake-target_007d-58"></a><a name="index-trap-_0040r_007bMake-target_007d-59"></a><a name="index-mptrap-_0040r_007bMake-target_007d-60"></a>To run the torture tests for TeX, Metafont, and MetaPost
+(respectively). See the next section.
+
+ </dl>
+
+<div class="node">
+<p><hr>
+<a name="Triptrap"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Runtime-options">Runtime options</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Additional-targets">Additional targets</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Installation">Installation</a>
+
+</div>
+
+<h3 class="section">2.4 Trip, trap, and mptrap: Torture tests</h3>
+
+<p><a name="index-Gruff_002c-Billy-Goat-61"></a><a name="index-trip-test-62"></a><a name="index-trap-test-63"></a><a name="index-mptrap-test-64"></a><a name="index-torture-tests-65"></a>
+<a name="index-tripman_002etex-66"></a><a name="index-trapman_002etex-67"></a><a name="index-mptrap_002ereadme-68"></a>To validate your TeX, Metafont, and MetaPost executables, run
+`<samp><span class="samp">make triptrap</span></samp>'. This runs the trip, trap, and mptrap &ldquo;torture
+tests&rdquo;. See the files <samp><span class="file">triptrap/tripman.tex</span></samp>,
+<samp><span class="file">triptrap/trapman.tex</span></samp>, and <samp><span class="file">triptrap/mptrap.readme</span></samp> for
+detailed information and background on the tests.
+
+ <p>The differences between your executables' behavior and the standard
+values will show up on your terminal. The usual differences (these are
+all acceptable) are:
+
+ <ul>
+<li>string usage and table sizes;
+<li>glue set ratios;
+<li>`<samp><span class="samp">down4</span></samp>', `<samp><span class="samp">right4</span></samp>', and `<samp><span class="samp">y4</span></samp>' commands in DVItype output;
+<li>dates and times.
+</ul>
+
+<p class="noindent">Any other differences are trouble. The most common culprit in
+the past has been compiler bugs, especially when optimizing.
+See <a href="kpathsea.html#TeX-or-Metafont-failing">TeX or Metafont failing</a>.
+
+ <p>The files <samp><span class="file">trip.diffs</span></samp>, <samp><span class="file">mftrap.diffs</span></samp>, and
+<samp><span class="file">mptrap.diffs</span></samp> in the <samp><span class="file">triptrap</span></samp> directory show the standard
+diffs against the original output. If you diff your diffs against these
+files, you should come up clean. For example
+<pre class="example"> make trip &gt;&amp;mytrip.diffs
+ diff triptrap/trip.diffs mytrip.diffs
+</pre>
+ <p>To run the tests separately, use the targets <code>trip</code>, <code>trap</code>,
+and <code>mptrap</code>.
+
+ <p>To run simple tests for all the programs as well as the torture tests,
+run `<samp><span class="samp">make check</span></samp>'. You can compare the output to the distributed
+file <samp><span class="file">tests/check.log</span></samp> if you like.
+
+<div class="node">
+<p><hr>
+<a name="Runtime-options"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Triptrap">Triptrap</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Installation">Installation</a>
+
+</div>
+
+<h3 class="section">2.5 Runtime options</h3>
+
+<p><a name="index-runtime-options-69"></a>
+<a name="index-configuration-file-values-70"></a><a name="index-array-sizes-71"></a>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 <samp><span class="file">texmf.cnf</span></samp> runtime file read by
+Kpathsea (see <a href="kpathsea.html#Config-files">Config files</a>).
+
+ <p>Rather than exhaustively listing them here, please see the last section
+of the distributed <samp><span class="file">kpathsea/texmf.cnf</span></samp>. Some of the more
+interesting values:
+
+ <dl>
+<dt>`<samp><span class="samp">main_memory</span></samp>'<a name="index-main_005fmemory-72"></a><dd>Total words of memory available, for TeX, Metafont, and MetaPost.
+Must remake the format file after changing.
+
+ <br><dt>`<samp><span class="samp">extra_mem_bot</span></samp>'<a name="index-extra_005fmem_005fbot-73"></a><dd><a name="index-boxes_002c-memory-for-74"></a><a name="index-glue_002c-memory-for-75"></a><a name="index-breakpoints_002c-memory-for-76"></a><a name="index-PiC_0040TeX_007b_007d_002c-increasing-memory-for-77"></a>Extra space for &ldquo;large&rdquo; TeX data structures: boxes, glue,
+breakpoints, et al. If you use PiCTeX, you may well want to set this.
+
+ <br><dt>`<samp><span class="samp">font_mem_size</span></samp>'<a name="index-font_005fmem_005fsize-78"></a><dd><a name="index-TFM-files_002c-memory-for-79"></a>Words of font info available for TeX; this is approximately the total
+size of all TFM files read.
+
+ <br><dt>`<samp><span class="samp">hash_extra</span></samp>'<a name="index-hash_005fextra-80"></a><dd><a name="index-control-sequence-names_002c-space-for-81"></a><a name="index-hash-table_002c-increasing-size-of-82"></a>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 <code>hash_extra</code>.
+
+ </dl>
+
+ <p><a name="index-array-limit_002c-fixed-83"></a><a name="index-swap-space_002c-as-array-limit-84"></a><a name="index-reallocation-of-arrays-85"></a><a name="index-dynamic-array-allocation-86"></a>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.)
+
+<div class="node">
+<p><hr>
+<a name="Commonalities"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#TeX">TeX</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Installation">Installation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
+
+</div>
+
+<h2 class="chapter">3 Commonalities</h2>
+
+<p><a name="index-commonalities-87"></a>
+Many aspects of the TeX system are the same among more than one
+program, so we describe all those pieces together, here.
+
+<ul class="menu">
+<li><a accesskey="1" href="#Option-conventions">Option conventions</a>: -- or -, = or ` ' for values.
+<li><a accesskey="2" href="#Common-options">Common options</a>: --help --version --verbose, and TeX/MF/MP options.
+<li><a accesskey="3" href="#Path-searching">Path searching</a>: Features of the common path searching library.
+<li><a accesskey="4" href="#Output-file-location">Output file location</a>: TEXMFOUTPUT allows output in places other than `.'.
+<li><a accesskey="5" href="#Three-programs">Three programs</a>: TeX, Metafont, and MetaPost have a lot in common.
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="Option-conventions"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Common-options">Common options</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Commonalities">Commonalities</a>
+
+</div>
+
+<h3 class="section">3.1 Option conventions</h3>
+
+<p><a name="index-option-conventions-88"></a><a name="index-conventions-for-options_002c-89"></a>
+<a name="index-getopt_005flong_005fonly-90"></a>To provide a clean and consistent behavior, we chose to have all these
+programs use the GNU function <code>getopt_long_only</code> 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.
+
+ <p><a name="index-g_t_002d-_0040r_007bstarts-option-names_007d-91"></a><a name="index-g_t_002d_002d-_0040r_007bstarts-option-names_007d-92"></a>As a result, you can:
+ <ul>
+<li>use `<samp><span class="samp">-</span></samp>' or `<samp><span class="samp">--</span></samp>' to start an option name;
+
+ <li>use any unambiguous abbreviation for an option name;
+
+ <li>separate option names and values with either `<samp><span class="samp">=</span></samp>' or one or more
+spaces;
+
+ <li><a name="index-g_t_002d-_0040r_007bstarting-a-filename_007d-93"></a><a name="index-filenames-starting-with-_0040samp_007b_002d_007d-94"></a>use filenames that would otherwise look like options by putting them
+after an option `<samp><span class="samp">--</span></samp>'.
+</ul>
+
+ <p>By convention, non-option arguments, if specified, generally define the
+name of an input file, as documented for each program.
+
+ <p>If a particular option with a value is given more than once, it is the
+last value that counts.
+
+ <p>For example, the following command line specifies the options
+`<samp><span class="samp">foo</span></samp>', `<samp><span class="samp">bar</span></samp>', and `<samp><span class="samp">verbose</span></samp>'; gives the value `<samp><span class="samp">baz</span></samp>'
+to the `<samp><span class="samp">abc</span></samp>' option, and the value `<samp><span class="samp">xyz</span></samp>' to the `<samp><span class="samp">quux</span></samp>'
+option; and specifies the filename <samp><span class="file">-myfile-</span></samp>.
+
+<pre class="example"> -foo --bar -verb -abc=baz -quux karl --quux xyz -- -myfile-
+</pre>
+ <div class="node">
+<p><hr>
+<a name="Common-options"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Path-searching">Path searching</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Option-conventions">Option conventions</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Commonalities">Commonalities</a>
+
+</div>
+
+<h3 class="section">3.2 Common options</h3>
+
+<p><a name="index-common-options-95"></a>All of these programs accept the standard GNU `<samp><span class="samp">--help</span></samp>' and
+`<samp><span class="samp">--version</span></samp>' options, and several programs accept
+`<samp><span class="samp">--verbose</span></samp>'. Rather than writing identical descriptions for
+every program, they are described here.
+
+ <dl>
+<dt>`<samp><span class="samp">--help</span></samp>'<dd><a name="index-g_t_002d_002dhelp-_0040r_007bcommon-option_007d-96"></a><a name="index-help_002c-online-97"></a>Print a usage message listing basic usage and all available options to
+standard output, then exit successfully.
+
+ <br><dt>`<samp><span class="samp">--verbose</span></samp>'<dd><a name="index-g_t_002d_002dverbose-_0040r_007bcommon-option_007d-98"></a><a name="index-verbosity_002c-enabling-99"></a>Print progress reports to standard output.
+
+ <br><dt>`<samp><span class="samp">--version</span></samp>'<dd><a name="index-g_t_002d_002dversion-_0040r_007bcommon-option_007d-100"></a><a name="index-version-number_002c-finding-101"></a>Print the version number to standard output, then exit successfully.
+</dl>
+
+ <p>TeX, Metafont, and MetaPost have a number of additional options in
+common:
+
+ <dl>
+<dt>`<samp><span class="samp">-file-line-error</span></samp>'<dd><a name="index-g_t_002dfile_002dline_002derror-102"></a><dt>`<samp><span class="samp">-no-file-line-error</span></samp>'<dd><a name="index-g_t_002dno_002dfile_002dline_002derror-103"></a><a name="index-g_t_002dfile_002dline_002derror_002dstyle-104"></a><a name="index-changing-error-messages-style-105"></a>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 `<samp><span class="samp">-file-line-error-style</span></samp>'.
+
+ <br><dt>`<samp><span class="samp">-fmt=</span><var>dumpname</var></samp>'<dt>`<samp><span class="samp">-base=</span><var>dumpname</var></samp>'<dt>`<samp><span class="samp">-mem=</span><var>dumpname</var></samp>'<dd><a name="index-g_t_002dfmt_003d_0040var_007bdumpname_007d-106"></a><a name="index-g_t_002dbase_003d_0040var_007bdumpname_007d-107"></a><a name="index-g_t_002dmem_003d_0040var_007bdumpname_007d-108"></a><a name="index-dump-file-109"></a>Use <var>dumpname</var> instead of the program name or a `<samp><span class="samp">%&amp;</span></samp>' line to
+determine the name of the memory dump file read (`<samp><span class="samp">fmt</span></samp>' for TeX,
+`<samp><span class="samp">base</span></samp>' for Metafont, `<samp><span class="samp">mem</span></samp>' for MetaPost). See <a href="#Memory-dumps">Memory dumps</a>. Also sets the program name to <var>dumpname</var> if no
+`<samp><span class="samp">-progname</span></samp>' option was given.
+
+ <br><dt>`<samp><span class="samp">-halt-on-error</span></samp>'<dd><a name="index-g_t_002dhalt_002don_002derror-110"></a><a name="index-stopping-at-the-first-error-111"></a>Stop processing and exit when an error occurs, as opposed to the normal
+process of trying to recover and continue.
+
+ <br><dt>`<samp><span class="samp">-ini</span></samp>'<dd><a name="index-g_t_002dini-112"></a><a name="index-program-names_002c-special-113"></a><a name="index-initial-form_002c-enabling-114"></a>Enable the &ldquo;initial&rdquo; form of the program (see <a href="#Initial-and-virgin">Initial and virgin</a>). This is implicitly set if the program name is <code>initex</code>
+resp. <code>inimf</code> resp. <code>inimpost</code>, although these variants
+are no longer typically installed.
+
+ <br><dt>`<samp><span class="samp">-interaction=</span><var>string</var></samp>'<dd><a name="index-g_t_002dinteraction_003d_0040var_007bstring_007d-115"></a><a name="index-interaction-mode-116"></a>Set the interaction mode from the command line. The <var>string</var> must
+be one of `<samp><span class="samp">batchmode</span></samp>', `<samp><span class="samp">nonstopmode</span></samp>', `<samp><span class="samp">scrollmode</span></samp>', or
+`<samp><span class="samp">errorstopmode</span></samp>'.
+
+ <br><dt>`<samp><span class="samp">-jobname=</span><var>string</var></samp>'<dd><a name="index-g_t_002djobname_003d_0040var_007bstring_007d-117"></a><a name="index-job-name-118"></a>Set the job name to <var>string</var>, instead of deriving it from the name
+of the input file.
+
+ <br><dt>`<samp><span class="samp">-kpathsea-debug=</span><var>number</var></samp>'<dd><a name="index-g_t_002dkpathsea_002ddebug_003d_0040var_007bnumber_007d-119"></a><a name="index-KPATHSEA_005fDEBUG-120"></a><a name="index-debugging-flags_002c-specifying-121"></a><a name="index-path-searching-debugging-122"></a>Set path searching debugging flags according to the bits of <var>number</var>
+(see <a href="kpathsea.html#Debugging">Debugging</a>). You can also specify this in
+<code>KPATHSEA_DEBUG</code> environment variable (for all Web2c programs).
+(The command line value overrides.) The most useful value is `<samp><span class="samp">-1</span></samp>',
+to get all available output.
+
+ <br><dt>`<samp><span class="samp">-output-directory=</span><var>dirname</var></samp>'<dd><a name="index-g_t_002doutput_002ddirectory-123"></a><a name="index-output-directory_002c-specifying-124"></a>Specify the directory <var>dirname</var> to which output files are written.
+Also look for input files in <var>dirname</var> first, before looking along
+the normal search path. This is useful when you are in some read-only
+distribution directory, perhaps on a CD-ROM, and want to TeX some
+documentation, for example.
+<!-- FIXME: caveat to -output-directory -->
+Note that for input files the &ldquo;search&rdquo; in <var>dirname</var> does
+not use the full generality of the search mechanism. This means that
+some files are not found there even though you might expect them to be.
+
+ <br><dt>`<samp><span class="samp">-parse-first-line</span></samp>'<dd><a name="index-g_t_002dparse_002dfirst_002dline-125"></a><dt>`<samp><span class="samp">-no-parse-first-line</span></samp>'<dd><a name="index-g_t_002dno_002dparse_002dfirst_002dline-126"></a><a name="index-parsing-the-first-line-127"></a>Check or disable checking whether the first line of the main input
+file starts with `<samp><span class="samp">%&amp;</span></samp>', and parse it if it does. This line can be
+used specify the format and/or a TCX file.
+
+ <br><dt>`<samp><span class="samp">-progname=</span><var>string</var></samp>'<dd><a name="index-g_t_002dprogname_003d_0040var_007bstring_007d-128"></a><a name="index-binaries_002c-linking-129"></a><a name="index-linking-binaries-130"></a><a name="index-program-names_002c-special-131"></a>Set program (and memory dump) name to <var>string</var>. This may affect the
+search paths and other values used (see <a href="kpathsea.html#Config-files">Config files</a>). Using this option is equivalent to making a link named
+<var>string</var> to the binary and then invoking the binary under that
+name. See <a href="#Memory-dumps">Memory dumps</a>.
+
+ <br><dt>`<samp><span class="samp">-recorder</span></samp>'<dd><a name="index-g_t_002drecorder-132"></a><a name="index-file-recorder-133"></a>Enable the filename recorder. This makes the program save a list of the
+opened files into a file with (by default) extension `<samp><span class="samp">.fls</span></samp>'. For
+Omega, this option is always on, and the file has extension `<samp><span class="samp">.ofl</span></samp>'.
+
+ <br><dt>`<samp><span class="samp">-translate-file=</span><var>tcxfile</var></samp>'<dd><a name="index-g_t_002dtranslate_002dfile_003d_0040var_007btcxfile_007d-134"></a><a name="index-translation-file-for-_0040TeX_007b_007d_002c-specifying-135"></a><a name="index-g_t_002etcx-_0040r_007bcharacter-translation-files_007d-136"></a><a name="index-first-line-of-the-main-input-file-137"></a>Use <var>tcxfile</var> to define which characters are printable and translations
+between the internal and external character sets. Moreover,
+<var>tcxfile</var> can be explicitly declared in the first line of the main
+input file `<samp><span class="samp">%&amp; -translate-file=</span><var>tcxfile</var></samp>'.
+This is the recommended method for portability reasons.
+See <a href="#TCX-files">TCX files</a>.
+
+ <br><dt>`<samp><span class="samp">-8bit</span></samp>'<dd><a name="index-g_t_002d8bit-138"></a><a name="index-g_t8-bit-clean-139"></a><a name="index-g_t8-bit-clean-output_002c-specifying-140"></a>This option specifies that by default all characters should be
+considered printable. If `<samp><span class="samp">-translate-file</span></samp>' was given as well, then the
+TCX file may mark characters as non-printable.
+
+ <br><dt>`<samp><span class="samp">-oem</span></samp>'<dd><a name="index-g_t_002doem-141"></a><a name="index-using-local-codepage-to-display-messages-142"></a>This option is specific to Windows. When specified, TeX engines will use the
+OEM code page rather than the ANSI one to display their messages.
+
+ </dl>
+
+<div class="node">
+<p><hr>
+<a name="Path-searching"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Output-file-location">Output file location</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Common-options">Common options</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Commonalities">Commonalities</a>
+
+</div>
+
+<h3 class="section">3.3 Path searching</h3>
+
+<p><a name="index-path-searching-143"></a>
+<a name="index-texmf_002ecnf-144"></a><a name="index-configuration-file-reading-145"></a>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
+(see <a href="kpathsea.html#Supported-file-formats">Supported file formats</a>). Reading
+<samp><span class="file">texmf.cnf</span></samp> (see <a href="kpathsea.html#Config-files">Config files</a>), invoking
+<code>mktex...</code> scripts (see <a href="kpathsea.html#mktex-scripts">mktex scripts</a>), and so on are all handled by Kpathsea.
+
+ <p><a name="index-font-aliases-146"></a><a name="index-aliases-for-fonts-147"></a><a name="index-texfonts_002emap-148"></a>The programs which read fonts make use of another Kpathsea feature:
+<samp><span class="file">texfonts.map</span></samp>, which allows arbitrary aliases for the actual names
+of font files; for example, `<samp><span class="samp">Times-Roman</span></samp>' for `<samp><span class="samp">ptmr8r.tfm</span></samp>'.
+The distributed (and installed by default) <samp><span class="file">texfonts.map</span></samp> includes
+aliases for many widely available PostScript fonts by their PostScript
+names.
+
+<div class="node">
+<p><hr>
+<a name="Output-file-location"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Three-programs">Three programs</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Path-searching">Path searching</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Commonalities">Commonalities</a>
+
+</div>
+
+<h3 class="section">3.4 Output file location</h3>
+
+<p><a name="index-output-file-location-149"></a><a name="index-current-directory_002c-used-for-output-150"></a><a name="index-g_t_002e_0040r_007b_002c-used-for-output_007d-151"></a>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.
+
+ <p>For example, if you run `<samp><span class="samp">tex /tmp/foo</span></samp>', for example, the output
+will be in <samp><span class="file">./foo.dvi</span></samp> and <samp><span class="file">./foo.log</span></samp>, not
+<samp><span class="file">/tmp/foo.dvi</span></samp> and <samp><span class="file">/tmp/foo.log</span></samp>.
+
+ <p><a name="index-g_t_002doutput_002ddirectory-152"></a><a name="index-output-directory_002c-specifying-153"></a><a name="index-readonly-directory_002c-running-_0040TeX_007b_007d-in-154"></a>You can use the `<samp><span class="samp">-output-directory</span></samp>' option to cause all output
+files that would normally be written in the current directory to be
+written in the specified directory instead. See <a href="#Common-options">Common options</a>.
+
+ <p><a name="index-TEXMFOUTPUT_0040r_007b_002c-used-if-_0040samp_007b_002e_007d-unwritable_007d-155"></a><a name="index-readonly-directory_002c-running-_0040TeX_007b_007d-in-156"></a>If the current directory is not writable, and `<samp><span class="samp">-output-directory</span></samp>'
+is not specified, the main programs (TeX, Metafont, MetaPost, and
+BibTeX) make an exception: if the config file value
+<code>TEXMFOUTPUT</code> is set (it is not by default), output files are
+written to the directory specified.
+
+<div class="node">
+<p><hr>
+<a name="Three-programs"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Output-file-location">Output file location</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Commonalities">Commonalities</a>
+
+</div>
+
+<h3 class="section">3.5 Three programs: Metafont, MetaPost, and TeX</h3>
+
+<p><a name="index-three-programs-157"></a><a name="index-g_t_0040TeX_007b_007d_002c-Metafont_002c-and-MetaPost-158"></a><a name="index-Metafont_002c-MetaPost_002c-and-_0040TeX_007b_007d-159"></a><a name="index-MetaPost_002c-_0040TeX_007b_007d_002c-and-Metafont-160"></a>
+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
+<a href="#Runtime-options">Runtime options</a>.
+
+<ul class="menu">
+<li><a accesskey="1" href="#Initial-and-virgin">Initial and virgin</a>: Making memory dumps vs. production runs.
+<li><a accesskey="2" href="#Memory-dumps">Memory dumps</a>: .fmt/.base/.mem files for fast startup.
+<li><a accesskey="3" href="#Editor-invocation">Editor invocation</a>: The `e' response at errors.
+<li><a accesskey="4" href="#g_t_005cinput-filenames">\input filenames</a>: ~ and $ expansion in TeX/MF/MP.
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="Initial-and-virgin"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Memory-dumps">Memory dumps</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Three-programs">Three programs</a>
+
+</div>
+
+<h4 class="subsection">3.5.1 Initial and virgin</h4>
+
+<p><a name="index-executables_002c-shared-initial-and-virgin-161"></a>The TeX, Metafont, and MetaPost programs each have two main
+variants, called <dfn>initial</dfn> and <dfn>virgin</dfn>. As of Web2c 7, one
+executable suffices for both variants, and in fact, the <code>ini...</code>
+executables are no longer created.
+
+ <p>The initial form is enabled if:
+ <ol type=1 start=1>
+<li><a name="index-g_t_002dini-162"></a>the `<samp><span class="samp">-ini</span></samp>' option was specified; or
+<li>the program name is <samp><span class="file">initex</span></samp> resp. <samp><span class="file">inimf</span></samp> resp.
+<samp><span class="file">inimpost</span></samp> (these variants are no longer typically installed); or
+<li>the first line of the main input file is `<samp><span class="samp">%&amp;ini</span></samp>';
+ </ol>
+otherwise, the virgin form is used.
+
+ <p><a name="index-virgin-programs-163"></a><a name="index-production-use-164"></a>The <dfn>virgin</dfn> form is the one generally invoked for production use.
+The first thing it does is read a memory dump (see <a href="#Determining-the-memory-dump-to-use">Determining the memory dump to use</a>), and then proceeds on with the main job.
+
+ <p><a name="index-initial-programs-165"></a><a name="index-initializations_002c-lengthy-166"></a>The <dfn>initial</dfn> 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.
+
+<div class="node">
+<p><hr>
+<a name="Memory-dumps"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Editor-invocation">Editor invocation</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Initial-and-virgin">Initial and virgin</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Three-programs">Three programs</a>
+
+</div>
+
+<h4 class="subsection">3.5.2 Memory dumps</h4>
+
+<p><a name="index-memory-dumps-167"></a>
+<a name="index-dumping-memory-168"></a><a name="index-macros_002c-predefining-in-memory-dumps-169"></a><a name="index-predefined-macros-and-memory-dumps-170"></a>In typical use, TeX, Metafont, and MetaPost require a large number of
+macros to be predefined; therefore, they support <dfn>memory dump</dfn>
+files, which can be read much more efficiently than ordinary source
+code.
+
+<ul class="menu">
+<li><a accesskey="1" href="#Creating-memory-dumps">Creating memory dumps</a>
+<li><a accesskey="2" href="#Determining-the-memory-dump-to-use">Determining the memory dump to use</a>
+<li><a accesskey="3" href="#Hardware-and-memory-dumps">Hardware and memory dumps</a>
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="Creating-memory-dumps"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Determining-the-memory-dump-to-use">Determining the memory dump to use</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Memory-dumps">Memory dumps</a>
+
+</div>
+
+<h5 class="subsubsection">3.5.2.1 Creating memory dumps</h5>
+
+<p><a name="index-memory-dumps_002c-creating-171"></a><a name="index-creating-memory-dumps-172"></a><a name="index-writing-memory-dumps-173"></a>
+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 (see <a href="#Initial-and-virgin">Initial and virgin</a>), read the source
+file to define the macros, and then execute the <code>\dump</code> primitive.
+
+ <p>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).
+
+ <p>Here is a list of filename extensions with references to examples of
+creating memory dumps:
+
+ <dl>
+<dt>TeX<dd>(`<samp><span class="samp">.fmt</span></samp>') See <a href="#Initial-TeX">Initial TeX</a>.
+
+ <br><dt>Metafont<dd>(`<samp><span class="samp">.base</span></samp>') See <a href="#Initial-Metafont">Initial Metafont</a>.
+
+ <br><dt>MetaPost<dd>(`<samp><span class="samp">.mem</span></samp>') See <a href="#Initial-MetaPost">Initial MetaPost</a>.
+</dl>
+
+ <p>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.
+
+<div class="node">
+<p><hr>
+<a name="Determining-the-memory-dump-to-use"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Hardware-and-memory-dumps">Hardware and memory dumps</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Creating-memory-dumps">Creating memory dumps</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Memory-dumps">Memory dumps</a>
+
+</div>
+
+<h5 class="subsubsection">3.5.2.2 Determining the memory dump to use</h5>
+
+<p><a name="index-memory-dump-to-use_002c-determining-174"></a><a name="index-fmt-file_002c-determining-175"></a><a name="index-base-file_002c-determining-176"></a><a name="index-mem-file_002c-determining-177"></a>
+The virgin form (see <a href="#Initial-and-virgin">Initial and virgin</a>) 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:
+
+ <ol type=1 start=1>
+<li>If the first non-option command-line argument begins with `<samp><span class="samp">&amp;</span></samp>', the
+program uses the remainder of that argument as the memory dump name.
+For example, running `<samp><span class="samp">tex \&amp;super</span></samp>' reads <samp><span class="file">super.fmt</span></samp>. (The
+backslash protects the `<samp><span class="samp">&amp;</span></samp>' against interpretation by the shell.)
+
+ <li><a name="index-g_t_002dfmt_003d_0040var_007bfmt_007d-178"></a><a name="index-g_t_002dbase_003d_0040var_007bbase_007d-179"></a><a name="index-g_t_002dmem_003d_0040var_007bmem_007d-180"></a>If the `<samp><span class="samp">-fmt</span></samp>' resp. `<samp><span class="samp">-base</span></samp>' resp. `<samp><span class="samp">-mem</span></samp>' option is
+specified, its value is used.
+
+ <li><a name="index-g_t_002dprogname_003d_0040var_007bstring_007d-181"></a>If the `<samp><span class="samp">-progname</span></samp>' option is specified, its value is used.
+
+ <li><a name="index-g_t_0025_0026-_0040r_007bmagic-number_007d-182"></a>If the first line of the main input file (which must be specified on the
+command line, not in response to `<samp><span class="samp">**</span></samp>') is <code>%&amp;</code><var>dump</var>, and
+<var>dump</var> is an existing memory dump of the appropriate type,
+<var>dump</var> is used.
+
+ <p>The first line of the main input file can also specify which character
+translation file is to be used: <code>%&amp;-translate-file=</code><var>tcxfile</var>
+(see <a href="#TCX-files">TCX files</a>).
+
+ <p>These two roles can be combined: <code>%&amp;</code><var>dump</var><code>
+-translate-file=</code><var>tcxfile</var>. If this is done, the name of the dump
+must be given first.
+
+ <li><a name="index-program-name_002c-determines-memory-dump-183"></a><a name="index-links-to-binaries-184"></a>Otherwise, the program uses the program invocation name, most commonly
+<samp><span class="file">tex</span></samp> resp. <samp><span class="file">mf</span></samp> resp. <samp><span class="file">mpost</span></samp>. For example, if
+<samp><span class="file">latex</span></samp> is a link to <samp><span class="file">tex</span></samp>, and the user runs `<samp><span class="samp">latex
+foo</span></samp>', <samp><span class="file">latex.fmt</span></samp> will be used.
+
+ </ol>
+
+<div class="node">
+<p><hr>
+<a name="Hardware-and-memory-dumps"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Determining-the-memory-dump-to-use">Determining the memory dump to use</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Memory-dumps">Memory dumps</a>
+
+</div>
+
+<h5 class="subsubsection">3.5.2.3 Hardware and memory dumps</h5>
+
+<p><a name="index-hardware-and-memory-dumps-185"></a><a name="index-memory-dumps-and-hardware-186"></a><a name="index-sharing-memory-dumps-187"></a><a name="index-fmt-files_002c-sharing-188"></a><a name="index-base-files_002c-sharing-189"></a><a name="index-mem-files_002c-sharing-190"></a>
+<a name="index-LittleEndian-machines-191"></a><a name="index-BigEndian-machines-192"></a><a name="index-endian-dependencies-193"></a><a name="index-machine-dependencies-194"></a><a name="index-architecture-dependencies-195"></a><a name="index-dependencies_002c-hardware-196"></a><a name="index-g_t_002d_002ddisable_002ddump_002dshare-configure-_0040r_007boption_007d-197"></a>By default, memory dump files are generally sharable between
+architectures of different types; specifically, on machines of different
+endianness (see <a href="libc.html#Byte-order">Byte order</a>). (This is a
+feature of the Web2c implementation, and is not true of all TeX
+implementations.) If you specify `<samp><span class="samp">--disable-dump-share</span></samp>' to
+<code>configure</code>, however, memory dumps will be endian-dependent.
+
+ <p><a name="index-byte-swapping-198"></a><a name="index-swapping-bytes-199"></a>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.
+
+ <p><a name="index-floating_002dpoint-values-200"></a><a name="index-glue-ratio-representations-201"></a>TeXnically, even without `<samp><span class="samp">--disable-dump-share</span></samp>', sharing of
+<samp><span class="file">.fmt</span></samp> 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, <small class="dots">...</small>) do not do any glue setting at <samp><span class="file">.fmt</span></samp>-creation
+time. Metafont and MetaPost do not use floating point in any dumped
+value at all.
+
+ <p><a name="index-date-and-time_002c-in-memory-dumps-202"></a><a name="index-time-and-date_002c-in-memory-dumps-203"></a><a name="index-memory-dumps_002c-contain-date-and-time-204"></a>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.
+
+ <p><a name="index-Harbison_002c-Samuel-P_002e-205"></a><a name="index-Steele-Jr_002e_002c-Guy-L_002e-206"></a>If you don't know what endianness your machine is, and you're curious,
+here is a little C program to tell you. (The <code>configure</code> script
+contains a similar program.) This is from the book <cite>C: A Reference
+Manual</cite>, by Samuel P. Harbison and Guy L. Steele
+Jr. (see <a href="#References">References</a>).
+
+<pre class="example"> main ()
+ {
+ /* Are we little or big endian? From Harbison&amp;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);
+ }
+</pre>
+ <div class="node">
+<p><hr>
+<a name="Editor-invocation"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#g_t_005cinput-filenames">\input filenames</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Memory-dumps">Memory dumps</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Three-programs">Three programs</a>
+
+</div>
+
+<h4 class="subsection">3.5.3 Editor invocation</h4>
+
+<p><a name="index-editor-invoked-at-error-207"></a><a name="index-errors_002c-editor-invoked-at-208"></a><a name="index-e-_0040r_007bresponse-at-error-prompt_007d-209"></a>
+TeX, Metafont, and MetaPost all (by default) stop and ask for user
+intervention at an error. If the user responds with <kbd>e</kbd> or <kbd>E</kbd>,
+the program invokes an editor.
+
+ <p><a name="index-TEXEDIT-210"></a><a name="index-MFEDIT-211"></a><a name="index-MPEDIT-212"></a><a name="index-g_t_002d_002dwith_002deditor_003d_0040var_007bcmd_007d-213"></a>Specifying `<samp><span class="samp">--with-editor=</span><var>cmd</var></samp>' to <code>configure</code> sets the
+default editor command string to <var>cmd</var>. The environment
+variables/configuration values <code>TEXEDIT</code>, <code>MFEDIT</code>, and
+<code>MPEDIT</code> (respectively) override this. If `<samp><span class="samp">--with-editor</span></samp>' is
+not specified, the default is <code>vi +%d %s</code>.
+
+ <p>In this string, `<samp><span class="samp">%d</span></samp>' is replaced by the line number of the error,
+and `<samp><span class="samp">%s</span></samp>' is replaced by the name of the current input file.
+
+<div class="node">
+<p><hr>
+<a name="%5cinput-filenames"></a>
+<a name="g_t_005cinput-filenames"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Editor-invocation">Editor invocation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Three-programs">Three programs</a>
+
+</div>
+
+<h4 class="subsection">3.5.4 <code>\input</code> filenames</h4>
+
+<p><a name="index-input-filenames-214"></a><a name="index-filename-conventions_002c-in-input-files-215"></a><a name="index-g_t_005cinput-_0040r_007bfilenames_007d-216"></a>
+TeX, Metafont, and MetaPost source programs can all read other source
+files with the <code>\input</code> (TeX) and <code>input</code> (MF and MP)
+primitives:
+<pre class="example"> \input <var>name</var> % in TeX
+</pre>
+ <p><a name="index-space_002dterminated-filenames-217"></a><a name="index-whitespace_002dterminated-filenames-218"></a><a name="index-terminator-for-filenames-219"></a>The file <var>name</var> can always be terminated with whitespace; for
+Metafont and MetaPost, the statement terminator `<samp><span class="samp">;</span></samp>' also works.
+(LaTeX and other macro packages provide other interfaces to
+<code>\input</code> that allow different notation; here we are concerned only
+with the primitive operation.)
+
+ <p>As of Web2c version 7.5.3, double-quote characters can be used to
+include spaces or other special cases. In typical use, the `<samp><span class="samp">"</span></samp>'
+characters surround the entire filename:
+<pre class="example"> \input "filename with spaces"
+</pre>
+ <p>Technically, the quote characters can be used inside the name, and
+can enclose any characters, as in:
+<pre class="example"> \input filename" "with" "spaces
+</pre>
+ <p>One more point. In LaTeX, the quotes are needed inside the braces, thus
+<pre class="example"> \input{a b} % fails
+ \input{"a b"} % ok
+</pre>
+ <p>This quoting mechanism comes into play <em>after</em> TeX has
+tokenized and expanded the input. So, multiple spaces and tabs may be
+seen as a single space, active characters such as `<samp><span class="samp">~</span></samp>' are
+expanded first, and so on. (See below.)
+
+ <p><a name="index-NUL_002c-not-allowed-in-filenames-220"></a><a name="index-eight_002dbit-characters-in-filenames-221"></a><a name="index-meta-characters-in-filenames-222"></a>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&ndash;255) in filenames.
+
+ <p><a name="index-portable-filenames-223"></a>For maximal portability of your document across systems, use only the
+characters `<samp><span class="samp">a</span></samp>'&ndash;`<samp><span class="samp">z</span></samp>', `<samp><span class="samp">0</span></samp>'&ndash;`<samp><span class="samp">9</span></samp>', and `<samp><span class="samp">.</span></samp>', 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.
+
+ <p><a name="index-g_t_007e-_0040r_007bexpansion-in-filenames_007d-224"></a><a name="index-g_t_0024-_0040r_007bexpansion-in-filenames_007d-225"></a>Finally, the present Web2c implementation does `<samp><span class="samp">~</span></samp>' and `<samp><span class="samp">$</span></samp>'
+expansion on <var>name</var>, unlike Knuth's original implementation and
+older versions of Web2c. Thus:
+<pre class="example"> \input ~jsmith/$foo.bar
+</pre>
+ <p>will dereference the environment variable or Kpathsea config file value
+`<samp><span class="samp">foo</span></samp>' and read that file extended with `<samp><span class="samp">.bar</span></samp>' in user
+`<samp><span class="samp">jsmith</span></samp>''s home directory. You can also use braces, as in
+`<samp><span class="samp">${foo}bar</span></samp>', if you want to follow the variable name with a letter,
+numeral, or `<samp><span class="samp">_</span></samp>'.
+
+ <p>(So another way to get a program to read a filename containing
+whitespace is to define an environment variable and dereference it.)
+
+ <p><a name="index-g_t_005cstring-226"></a>In all the common TeX formats (plain TeX, LaTeX, AMSTeX),
+the characters `<samp><span class="samp">~</span></samp>' and `<samp><span class="samp">$</span></samp>' have special category codes, so to
+actually use these in a document you have to change their catcodes or
+use <code>\string</code>. (The result is unportable anyway, see the
+suggestions above.) The place where they are most likely to be useful
+is when typing interactively.
+
+<div class="node">
+<p><hr>
+<a name="TeX"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Metafont">Metafont</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Commonalities">Commonalities</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
+
+</div>
+
+<h2 class="chapter">4 TeX: Typesetting</h2>
+
+<p><a name="index-g_t_0040TeX_007b_007d_002c-description-of-227"></a><a name="index-typesetting-228"></a><a name="index-mathematical-typesetting-229"></a>
+TeX is a typesetting system: it was especially designed to handle
+complex mathematics, as well as most ordinary text typesetting.
+
+ <p><a name="index-batch-languages-230"></a><a name="index-word-processor_002c-not-231"></a>TeX is a batch language, like C or Pascal, and not an interactive
+&ldquo;word processor&rdquo;: 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 <cite>The TeXbook</cite>
+(see <a href="#References">References</a>). Many other books on TeX, introductory and
+otherwise, are available.
+
+<ul class="menu">
+<li><a accesskey="1" href="#tex-invocation">tex invocation</a>: Invoking TeX.
+<li><a accesskey="2" href="#Initial-TeX">Initial TeX</a>: Making format files.
+<li><a accesskey="3" href="#Formats">Formats</a>: Major TeX macro packages.
+<li><a accesskey="4" href="#Languages-and-hyphenation">Languages and hyphenation</a>: TeX supports many human languages.
+<li><a accesskey="5" href="#IPC-and-TeX">IPC and TeX</a>: DVI output to a socket.
+<li><a accesskey="6" href="#TeX-extensions">TeX extensions</a>: Changes to the TeX language.
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="tex-invocation"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Initial-TeX">Initial TeX</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#TeX">TeX</a>
+
+</div>
+
+<h3 class="section">4.1 <code>tex</code> invocation</h3>
+
+<p><a name="index-tex-232"></a><a name="index-g_t_0040TeX_007b_007d_002c-invocation-233"></a>
+TeX (usually invoked as <code>tex</code>) 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 <cite>The TeXbook</cite>
+(see <a href="#References">References</a>).
+
+ <p>TeX, Metafont, and MetaPost process the command line (described
+here) and determine their memory dump (fmt) file in the same way
+(see <a href="#Memory-dumps">Memory dumps</a>). Synopses:
+
+<pre class="example"> tex [<var>option</var>]... [<var>texname</var>[.tex]] [<var>tex-commands</var>]
+ tex [<var>option</var>]... \<var>first-line</var>
+ tex [<var>option</var>]... &amp;<var>fmt</var> <var>args</var>
+</pre>
+ <p><a name="index-g_t_002etex-234"></a><a name="index-g_t_0040TeX_007b_007d_002c-input-files-found-235"></a>TeX searches the usual places for the main input file <var>texname</var>
+(see <a href="kpathsea.html#Supported-file-formats">Supported file formats</a>), extending
+<var>texname</var> with <samp><span class="file">.tex</span></samp> if necessary. To see all the
+relevant paths, set the environment variable <code>KPATHSEA_DEBUG</code> to
+`<samp><span class="samp">-1</span></samp>' before running the program.
+
+ <p>After <var>texname</var> is read, TeX processes any remaining
+<var>tex-commands</var> on the command line as regular TeX input. Also,
+if the first non-option argument begins with a TeX escape character
+(usually <code>\</code>), TeX processes all non-option command-line
+arguments as a line of regular TeX input.
+
+ <p>If no arguments or options are specified, TeX prompts for an
+input file name with `<samp><span class="samp">**</span></samp>'.
+
+ <p><a name="index-texput-236"></a>TeX writes the main DVI output to the file
+<samp><var>basetexname</var><span class="file">.dvi</span></samp>, where <var>basetexname</var> is the basename of
+<var>texname</var>, or `<samp><span class="samp">texput</span></samp>' 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
+(see <a href="dvips.html#Top">Introduction</a>) or an X Window System display
+(see xdvi(1)).
+
+ <p><a name="index-EC-fonts-237"></a><a name="index-mktextfM_0040r_007b_002c-disabling_007d-238"></a><a name="index-g_t_005cfont-_0040r_007band-dynamic-generation_007d-239"></a>TeX also reads TFM files for any fonts you load in your document with
+the <code>\font</code> primitive. By default, it runs an external program
+named <samp><span class="file">mktextfm</span></samp> to create any nonexistent TFM files. You can
+disable this at configure-time or runtime (see <a href="kpathsea.html#mktex-configuration">mktex configuration</a>). This is enabled mostly for the
+sake of the EC fonts, which can be generated at any size.
+
+ <p><a name="index-g_t_005copenout-_0040r_007band-security_007d-240"></a><a name="index-security_002c-and-_0040code_007b_005copenout_007d-241"></a><a name="index-output-files_002c-written-by-_0040TeX_007b_007d-programs-242"></a><a name="index-Trojan-horses-and-_0040TeX_007b_007d-programs-243"></a><a name="index-dot-files_002c-written-by-_0040TeX_007b_007d-programs-244"></a><a name="index-security_002c-and-output-files-245"></a><a name="index-texmfmp_002ec-_0040r_007band-_0040code_007bopenoutnameok_007d_007d-246"></a>TeX can write output files, via the <code>\openout</code> primitive; this
+opens a security hole vulnerable to Trojan horse attack: an unwitting
+user could run a TeX program that overwrites, say, <samp><span class="file">~/.rhosts</span></samp>.
+(MetaPost has a <code>write</code> primitive with similar implications). To
+alleviate this, there is a configuration variable <code>openout_any</code>,
+which selects one of three levels of security. When it is set to
+`<samp><span class="samp">a</span></samp>' (for &ldquo;any&rdquo;), no restrictions are imposed. When it is set to
+`<samp><span class="samp">r</span></samp>' (for &ldquo;restricted&rdquo;), filenames beginning with `<samp><span class="samp">.</span></samp>' are
+disallowed (except <samp><span class="file">.tex</span></samp> because LaTeX needs it). When it is set
+to `<samp><span class="samp">p</span></samp>' (for &ldquo;paranoid&rdquo;) additional restrictions are imposed: an
+absolute filename must refer to a file in (a subdirectory) of
+<code>TEXMFOUTPUT</code>, and any attempt to go up a directory level is
+forbidden (that is, paths may not contain a `<samp><span class="samp">..</span></samp>' component). The
+paranoid setting is the default. (For backwards compatibility, `<samp><span class="samp">y</span></samp>'
+and `<samp><span class="samp">1</span></samp>' are synonyms of `<samp><span class="samp">a</span></samp>', while `<samp><span class="samp">n</span></samp>' and `<samp><span class="samp">0</span></samp>' are
+synonyms for `<samp><span class="samp">r</span></samp>'.)
+
+ <p>In any case, all <code>\openout</code> 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. (If you as a TeX administrator
+wish to implement more stringent rules on <code>\openout</code>, modifying the
+function <code>openoutnameok</code> in <samp><span class="file">web2c/lib/texmfmp.c</span></samp> is intended
+to suffice.)
+
+ <p>The program accepts the following options, as well as the standard
+`<samp><span class="samp">-help</span></samp>' and `<samp><span class="samp">-version</span></samp>' (see <a href="#Common-options">Common options</a>):
+ <dl>
+<dt>`<samp><span class="samp">-enc</span></samp>'<dt>`<samp><span class="samp">-[no]-file-line-error</span></samp>'<dt>`<samp><span class="samp">-fmt=</span><var>fmtname</var></samp>'<dt>`<samp><span class="samp">-halt-on-error</span></samp>'<dt>`<samp><span class="samp">-ini</span></samp>'<dt>`<samp><span class="samp">-interaction=</span><var>string</var></samp>'<dt>`<samp><span class="samp">-ipc</span></samp>'<dt>`<samp><span class="samp">-ipc-start</span></samp>'<dt>`<samp><span class="samp">-jobname=</span><var>string</var></samp>'<dt>`<samp><span class="samp">-kpathsea-debug=</span><var>number</var></samp>'<dt>`<samp><span class="samp">-[no]parse-first-line</span></samp>'<dt>`<samp><span class="samp">-output-directory</span></samp>'<dt>`<samp><span class="samp">-progname=</span><var>string</var></samp>'<dt>`<samp><span class="samp">-recorder</span></samp>'<dt>`<samp><span class="samp">-translate-file=</span><var>tcxfile</var></samp>'<dt>`<samp><span class="samp">-8bit</span></samp>'<dd>These options are common to TeX, Metafont, and MetaPost.
+See <a href="#Common-options">Common options</a>.
+
+ <br><dt>`<samp><span class="samp">-enc</span></samp>'<dd><a name="index-g_t_002denc-247"></a><a name="index-Unicode-input-248"></a><a name="index-UTF_002d8-input-249"></a>Enable encTeX extensions, such as <code>\mubyte</code>. This can be used
+to support Unicode UTF-8 input encoding. See
+<a href="http://www.olsak.net/enctex.html">http://www.olsak.net/enctex.html</a>.
+
+ <br><dt>`<samp><span class="samp">-ipc</span></samp>'<dt>`<samp><span class="samp">-ipc-start</span></samp>'<dd><a name="index-g_t_002dipc-250"></a><a name="index-g_t_002dipc_002dstart-251"></a><a name="index-g_t_002d_002denable_002dipc-configure-_0040r_007boption_007d-252"></a>With either option, TeX writes its DVI output to a socket as well as
+to the usual <samp><span class="file">.dvi</span></samp> file. With `<samp><span class="samp">-ipc-start</span></samp>', TeX also
+opens a server program at the other end to read the output. See <a href="#IPC-and-TeX">IPC and TeX</a>.
+
+ <p>These options are available only if the `<samp><span class="samp">--enable-ipc</span></samp>' option was
+specified to <code>configure</code> during installation of Web2c.
+
+ <br><dt>`<samp><span class="samp">-mktex=</span><var>filetype</var></samp>'<dt>`<samp><span class="samp">-no-mktex=</span><var>filetype</var></samp>'<dd><a name="index-g_t_002dmktex_003d_0040var_007bfiletype_007d-253"></a><a name="index-g_t_002dno_002dmktex_003d_0040var_007bfiletype_007d-254"></a>Turn on or off the `<samp><span class="samp">mktex</span></samp>' script associated with <var>filetype</var>.
+The only values that make sense for <var>filetype</var> are `<samp><span class="samp">tex</span></samp>' and
+`<samp><span class="samp">tfm</span></samp>'.
+
+ <br><dt>`<samp><span class="samp">-mltex</span></samp>'<dd><a name="index-g_t_002dmltex-255"></a><a name="index-ML_0040TeX_007b_007d_002c-enabling-256"></a><a name="index-program-names_002c-special-257"></a>If we are <code>INITEX</code> (see <a href="#Initial-and-virgin">Initial and virgin</a>), enable MLTeX
+extensions such as <code>\charsubdef</code>. Implicitly set if the program
+name is <code>mltex</code>. See <a href="#MLTeX">MLTeX</a>.
+
+ <br><dt>`<samp><span class="samp">-output-comment=</span><var>string</var></samp>'<dd><a name="index-g_t_002doutput_002dcomment_003d_0040var_007bstring_007d-258"></a><a name="index-output_005fcomment-_0040r_007bfor-DVI-files_007d-259"></a><a name="index-DVI-comment_002c-specifying-260"></a><a name="index-regression-testing-261"></a>Use <var>string</var> 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 `<samp><span class="samp">output_comment</span></samp>'.
+
+ <br><dt>`<samp><span class="samp">-shell-escape</span></samp>'<dd><a name="index-g_t_002dshell_002descape-262"></a><dt>`<samp><span class="samp">-no-shell-escape</span></samp>'<dd><a name="index-g_t_002dno_002dshell_002descape-263"></a><a name="index-shell-commands-in-_0040TeX_007b_007d-264"></a><a name="index-Bourne-shell-commands-in-_0040TeX_007b_007d-265"></a><a name="index-shell_005fescape-_0040r_007benabling-in-_0040TeX_007b_007d_007d-266"></a><a name="index-g_t_005cimmediate_005cwrite18-267"></a><a name="index-g_t_005cwrite18-_0040r_007bshell-escape-extension_007d-268"></a><a name="index-system-_0040r_007bC-library-function_007d-269"></a><a name="index-security_002c-and-shell-escapes-270"></a>Enable (or disable) the `<samp><span class="samp">\write18{</span><var>shell-command</var><span class="samp">}</span></samp>'
+feature. This is also enabled if the environment variable or config
+file value `<samp><span class="samp">shell_escape</span></samp>' is set to `<samp><span class="samp">t</span></samp>' (but the
+`<samp><span class="samp">-no-shell-escape</span></samp>' command line option overrides this). (For
+backwards compatibility, `<samp><span class="samp">y</span></samp>' and `<samp><span class="samp">1</span></samp>' are accepted as
+synonyms of `<samp><span class="samp">t</span></samp>'). It is disabled by default to avoid security
+problems. When enabled, the <var>shell-command</var> string (which first
+undergoes the usual TeX expansions, just as in `<samp><span class="samp">\special</span></samp>') is
+passed to the command shell (via the C library function
+`<samp><span class="samp">system</span></samp>'). The output of <var>shell-command</var> is not diverted
+anywhere, so it will not appear in the log file. The system call
+either happens at `<samp><span class="samp">\output</span></samp>' time or right away, according to the
+absence or presence of the `<samp><span class="samp">\immediate</span></samp>' prefix, as usual for
+<code>\write</code>. (If you as a TeX administrator wish to implement
+more stringent rules on what can be executed, you will need to modify
+<samp><span class="file">tex.ch</span></samp>.)
+
+ <br><dt>`<samp><span class="samp">-src-specials</span></samp>'<dt>`<samp><span class="samp">-src-specials=</span><var>string</var></samp>'<dd><a name="index-generating-source-specials-271"></a>This option makes TeX output specific source information using
+`<samp><span class="samp">\special</span></samp>' commands in the DVI file. These `<samp><span class="samp">\special</span></samp>' track
+the current file name and line number.
+
+ <p>Using the first form of this option, the `<samp><span class="samp">\special</span></samp>' commands are
+inserted automatically.
+
+ <p>In the second form of the option, <var>string</var> is
+a comma separated list of the following values: `<samp><span class="samp">cr</span></samp>',
+`<samp><span class="samp">display</span></samp>', `<samp><span class="samp">hbox</span></samp>', `<samp><span class="samp">math</span></samp>', `<samp><span class="samp">par</span></samp>', `<samp><span class="samp">parend</span></samp>',
+`<samp><span class="samp">vbox</span></samp>'. You can use this list to specify where you want TeX to
+output such commands. For example, `<samp><span class="samp">-src-specials=cr,math</span></samp>' will
+output source information every line and every math formula.
+
+ <p>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.
+
+ <p>This option works by inserting `<samp><span class="samp">\special</span></samp>' 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.
+
+ <p>Redefining `<samp><span class="samp">\special</span></samp>' will not affect the functioning of this
+option. The commands inserted into the token stream are
+hard-coded to always use the `<samp><span class="samp">\special</span></samp>' primitive.
+
+ <p>TeX does not pass the trip test when this option is enabled.
+
+ </dl>
+
+<div class="node">
+<p><hr>
+<a name="Initial-TeX"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Formats">Formats</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#tex-invocation">tex invocation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#TeX">TeX</a>
+
+</div>
+
+<h3 class="section">4.2 Initial TeX</h3>
+
+<p><a name="index-initial-_0040TeX_007b_007d-272"></a><a name="index-g_t_0040TeX_007b_007d_002c-initial-273"></a>
+<a name="index-g_t_002efmt-274"></a><a name="index-fmt-files-275"></a>The <dfn>initial</dfn> form of TeX is invoked by `<samp><span class="samp">tex -ini</span></samp>'. It
+does lengthy initializations avoided by the &ldquo;virgin&rdquo; (<code>vir</code>)
+form, so as to be capable of dumping `<samp><span class="samp">.fmt</span></samp>' files (see <a href="#Memory-dumps">Memory dumps</a>). For a detailed comparison of virgin and initial forms,
+see <a href="#Initial-and-virgin">Initial and virgin</a>. In past releases, a separate program
+<samp><span class="command">initex</span></samp> was installed to invoke the initial form, but this is
+no longer the case.
+
+ <p>For a list of options and other information, see <a href="#tex-invocation">tex invocation</a>.
+
+ <p><a name="index-plain_002efmt-276"></a><a name="index-tex_002efmt-277"></a><a name="index-format-files-278"></a>Unlike Metafont and MetaPost, many format files are commonly used with
+TeX. The standard one implementing the features described in the
+<cite>TeXbook</cite> is `<samp><span class="samp">plain.fmt</span></samp>', also known as `<samp><span class="samp">tex.fmt</span></samp>'
+(again, see <a href="#Memory-dumps">Memory dumps</a>). It is created by default during
+installation, but you can also do so by hand if necessary (e.g., if an
+update to <samp><span class="file">plain.tex</span></samp> is issued):
+<pre class="example"> tex -ini '\input plain \dump'
+</pre>
+ <p class="noindent">(The quotes prevent interpretation of the backslashes from the shell.)
+Then install the resulting <samp><span class="file">plain.fmt</span></samp> in `<samp><span class="samp">$(fmtdir)</span></samp>'
+(<samp><span class="file">/usr/local/share/texmf/web2c</span></samp> by default), and link
+<samp><span class="file">tex.fmt</span></samp> to it.
+
+ <p>The necessary invocation for generating a format file differs for each
+format, so instructions that come with the format should explain. The
+top-level <samp><span class="file">web2c</span></samp> Makefile has targets for making most common
+formats: <tt>plain latex amstex texinfo eplain</tt>. See <a href="#Formats">Formats</a>, for
+more details on TeX formats.
+
+<div class="node">
+<p><hr>
+<a name="Formats"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Languages-and-hyphenation">Languages and hyphenation</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Initial-TeX">Initial TeX</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#TeX">TeX</a>
+
+</div>
+
+<h3 class="section">4.3 Formats</h3>
+
+<p><a name="index-formats-for-_0040TeX_007b_007d-279"></a><a name="index-g_t_0040TeX_007b_007d_002c-format-packages-for-280"></a><a name="index-macro-packages_002c-major-_0040TeX_007b_007d-281"></a>
+TeX <dfn>formats</dfn> are large collections of macros, often dumped
+into a <samp><span class="file">.fmt</span></samp> file (see <a href="#Memory-dumps">Memory dumps</a>) by <code>tex -ini</code>
+(see <a href="#Initial-TeX">Initial TeX</a>). 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 <code>fmts</code> Make variable; by default,
+only the `<samp><span class="samp">plain</span></samp>' and `<samp><span class="samp">latex</span></samp>' formats are made.
+
+ <p>You can get the latest versions of most of these formats from the CTAN
+archives in subdirectories of <samp><var>CTAN:</var><span class="file">/macros</span></samp> (for CTAN info,
+see <a href="kpathsea.html#unixtex_002eftp">unixtex.ftp</a>). The archive
+<a href="ftp://ftp.tug.org/tex/lib.tar.gz">ftp://ftp.tug.org/tex/lib.tar.gz</a> (also available from CTAN)
+contains most of these formats (although perhaps not the absolute latest
+version), among other things.
+
+ <dl>
+<dt><tt>latex</tt><dd><a name="index-g_t_0040LaTeX_007b_007d-282"></a>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 &ldquo;emphasize&rdquo;, instead of specific
+typesetting instructions, such as &ldquo;use the 10<span class="dmn">pt</span> Computer Modern
+italic font&rdquo;. The LaTeX home page: <a href="http://www.latex-project.org">http://www.latex-project.org</a>.
+
+ <br><dt><tt>context</tt><dd>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:
+<a href="http://www.pragma-ade.com">http://www.pragma-ade.com</a>.
+
+ <br><dt><tt>amstex</tt><dd><a name="index-AMS_0040TeX_007b_007d-283"></a><a name="index-American-Mathematical-Society_002c-typesetting-system-284"></a><a name="index-Mathematical-Reviews-285"></a>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.,
+<cite>Mathematical Reviews</cite>. The AMSTeX home page:
+<a href="http://www.ams.org/tex">http://www.ams.org/tex</a>.
+
+ <br><dt><tt>texinfo</tt><dd><a name="index-Texinfo-286"></a><a name="index-Info-format-287"></a><a name="index-Free-Software-Foundation-documentation-system-288"></a>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:
+<a href="http://www.gnu.org/software/texinfo">http://www.gnu.org/software/texinfo</a>.
+
+ <br><dt><tt>eplain</tt><dd><a name="index-Eplain-289"></a><a name="index-expanded-plain-format-290"></a>The &ldquo;expanded plain&rdquo; 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:
+<a href="http://www.tug.org/eplain">http://www.tug.org/eplain</a>.
+
+ <br><dt><tt>slitex</tt><dd><a name="index-Sli_0040TeX_007b_007d-291"></a><a name="index-slides_002c-producing-292"></a>An obsolete LaTeX 2.09 format for making slides. It is replaced by
+the `<samp><span class="samp">slides</span></samp>' document class, along with the `<samp><span class="samp">beamer</span></samp>',
+`<samp><span class="samp">texpower</span></samp>', and other packages.
+
+ </dl>
+
+<div class="node">
+<p><hr>
+<a name="Languages-and-hyphenation"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#IPC-and-TeX">IPC and TeX</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Formats">Formats</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#TeX">TeX</a>
+
+</div>
+
+<h3 class="section">4.4 Languages and hyphenation</h3>
+
+<p><a name="index-language-support-in-_0040TeX_007b_007d-293"></a><a name="index-human-languages_002c-supported-in-_0040TeX_007b_007d-294"></a><a name="index-hyphenation-and-languages-295"></a>
+TeX supports most natural languages. See also <a href="#TeX-extensions">TeX extensions</a>.
+
+<ul class="menu">
+<li><a accesskey="1" href="#MLTeX">MLTeX</a>: Multi-lingual TeX.
+<li><a accesskey="2" href="#patgen-invocation">patgen invocation</a>: Creating hyphenation patterns.
+<li><a accesskey="3" href="#TCX-files">TCX files</a>: Support for different character sets &amp; fonts.
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="MLTeX"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#patgen-invocation">patgen invocation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Languages-and-hyphenation">Languages and hyphenation</a>
+
+</div>
+
+<h4 class="subsection">4.4.1 MLTeX: Multi-lingual TeX</h4>
+
+<p><a name="index-mltex-296"></a><a name="index-Multi_002dlingual-_0040TeX_007b_007d-297"></a>
+<a name="index-Ferguson_002c-Michael-298"></a><a name="index-Raichle_002c-Bernd-299"></a><a name="index-accents_002c-hyphenating-words-with-300"></a><a name="index-glyph-substitutions-301"></a><a name="index-substitutions-of-font-glyphs-302"></a>Multi-lingual TeX (<code>mltex</code>) 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 <code>\accent</code> 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.
+
+ <p>MLTeX works at <samp><span class="file">.fmt</span></samp>-creation time: the basic idea is to
+specify the `<samp><span class="samp">-mltex</span></samp>' option to TeX when you <code>\dump</code> a
+format. Then, when you subsequently invoke TeX and read that
+<code>.fmt</code> file, the MLTeX features described below will be enabled.
+
+ <p>Generally, you use special macro files to create an MLTeX <code>.fmt</code>
+file.
+
+ <p>The sections below describe the two new primitives that MLTeX defines.
+Aside from these, MLTeX is completely compatible with standard TeX.
+
+<ul class="menu">
+<li><a accesskey="1" href="#g_t_005ccharsubdef">\charsubdef</a>: Character substitution definitions.
+<li><a accesskey="2" href="#g_t_005ctracingcharsubdef">\tracingcharsubdef</a>: Tracing substitutions.
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="%5ccharsubdef"></a>
+<a name="g_t_005ccharsubdef"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#g_t_005ctracingcharsubdef">\tracingcharsubdef</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#MLTeX">MLTeX</a>
+
+</div>
+
+<h5 class="subsubsection">4.4.1.1 <code>\charsubdef</code>: Character substitutions</h5>
+
+<p><a name="index-g_t_005ccharsubdef-_0040r_007band-ML_0040TeX_007b_007d_007d-303"></a>
+The most important primitive MLTeX adds is <code>\charsubdef</code>, used
+in a way reminiscent of <code>\chardef</code>:
+<pre class="example"> \charsubdef <var>composite</var> [=] <var>accent</var> <var>base</var>
+</pre>
+ <p>Each of <var>composite</var>, <var>accent</var>, and <var>base</var> are font glyph
+numbers, expressed in the usual TeX syntax: <tt>`\e</tt> symbolically,
+<tt>'145</tt> for octal, <tt>"65</tt> for hex, <tt>101</tt> for decimal.
+
+ <p>MLTeX's <code>\charsubdef</code> 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 <code>\char</code>
+primitive, will be mapped to a font glyph or to an <code>\accent</code> glyph
+construction.
+
+ <p>For example, if you assume glyph code 138
+<a name="index-e_002dcircumflex-304"></a>(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 <code>\charsubdef</code> as follows:
+
+<pre class="example"> \charsubdef 138 = 18 101
+</pre>
+ <p>For the plain TeX format to make use of this substitution, you have
+to redefine the circumflex accent macro <code>\^</code> in such a way that if
+its argument is character `e' the expansion <code>\char138 </code> is used
+instead of <code>\accent18 e</code>. Similar <code>\charsubdef</code> declaration
+and macro redefinitions have to be done for all other accented
+characters.
+
+ <p>To disable a previous <code>\charsubdef </code><var>c</var>, redefine <var>c</var>
+as a pair of zeros. For example:
+<pre class="example"> \charsubdef '321 = 0 0 % disable N tilde
+</pre>
+ <p><a name="index-N-tilde-305"></a>(Octal <tt>'321</tt> is the ISO Latin-1 value for the Spanish N tilde.)
+
+ <p><code>\charsubdef</code> commands should only be given once. Although in
+principle you can use <code>\charsubdef</code> at any time, the result is
+unspecified. If <code>\charsubdef</code> declarations are changed, usually
+either incorrect character dimensions will be used or MLTeX will
+output missing character warnings. (The substitution of a
+<code>\charsubdef</code> 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 <code>\accent</code>
+construction at <code>\shipout</code>-time. In summary, the substitution is
+accessed often, so changing it is not desirable, nor generally useful.)
+
+<div class="node">
+<p><hr>
+<a name="%5ctracingcharsubdef"></a>
+<a name="g_t_005ctracingcharsubdef"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#g_t_005ccharsubdef">\charsubdef</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#MLTeX">MLTeX</a>
+
+</div>
+
+<h5 class="subsubsection">4.4.1.2 <code>\tracingcharsubdef</code>: Substitution diagnostics</h5>
+
+<p><a name="index-g_t_005ctracingcharsubdef-_0040r_007band-ML_0040TeX_007b_007d_007d-306"></a><a name="index-redefined-character-substitutions-307"></a>To help diagnose problems with `<samp><span class="samp">\charsubdef</span></samp>', MLTeX provides a
+new primitive parameter, <code>\tracingcharsubdef</code>. If positive, every
+use of <code>\charsubdef</code> will be reported. This can help track down
+when a character is redefined.
+
+ <p><a name="index-g_t_005ctracinglostchars-_0040r_007band-ML_0040TeX_007b_007d_007d-308"></a>In addition, if the TeX parameter <code>\tracinglostchars</code> is 100 or
+more, the character substitutions actually performed at
+<code>\shipout</code>-time will be recorded.
+
+<div class="node">
+<p><hr>
+<a name="TCX-files"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#patgen-invocation">patgen invocation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Languages-and-hyphenation">Languages and hyphenation</a>
+
+</div>
+
+<h4 class="subsection">4.4.2 TCX files: Character translations</h4>
+
+<p><a name="index-TCX-_0040r_007bcharacter-translation-files_007d-309"></a><a name="index-g_t_002etcx-_0040r_007bcharacter-translation-files_007d-310"></a><a name="index-character-translation-files-311"></a>
+<a name="index-international-characters-312"></a><a name="index-g_t8_002dbit-characters-313"></a><a name="index-accented-character-314"></a>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).
+
+ <p>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 `<samp><span class="samp">xchr</span></samp>' and `<samp><span class="samp">xord</span></samp>' 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.
+
+ <p>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.
+
+ <p>This is entirely independent of the MLTeX extension (see <a href="#MLTeX">MLTeX</a>):
+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 <code>\accent</code>
+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.
+
+ <p><a name="index-WEB2C_0040r_007b_002c-search-path-for-TCX-files_007d-315"></a>Information on specifying TCX files:
+
+ <ul>
+<li>The best way to specify a TCX file is to list it explicitly in the
+first line of the main document:
+ <pre class="example"> %&amp; -translate-file=<var>tcxfile</var>
+ </pre>
+ <li>You can also specify a TCX file to be used on a particular TeX run
+with the command-line option `<samp><span class="samp">-translate-file=</span><var>tcxfile</var></samp>'.
+
+ <li>TCX files are searched for along the <code>WEB2C</code> path.
+
+ <li>Initial TeX (see <a href="#Initial-TeX">Initial TeX</a>) ignores TCX files.
+</ul>
+
+ <p><a name="index-il1_002dt1_002etcx-316"></a><a name="index-il2_002dt1_002etcx-317"></a><a name="index-empty_002etcx-318"></a><a name="index-Cork-encoding-and-ISO-input-319"></a><a name="index-T1-encoding-and-ISO-input-320"></a>The Web2c distribution comes with a number of TCX files. Two
+important ones are <samp><span class="file">il1-t1.tcx</span></samp> and <samp><span class="file">il2-t1.tcx</span></samp>, 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.
+
+ <p>One other notable TCX file is <samp><span class="file">empty.tcx</span></samp>, 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&mdash;which is in fact the case for
+everything but plain TeX in the TeX Live and other distributions.
+Thus:
+
+<pre class="example"> latex somefile8.tex
+ =&gt; terminal etc. output with 8-bit chars
+ latex --translate-file=empty.tcx somefile8.tex
+ =&gt; terminal etc. output with ^^ notation
+</pre>
+ <p><a name="index-syntax-of-TCX-files-321"></a>Syntax of TCX files:
+ <ol type=1 start=1>
+<li><a name="index-blank-lines_002c-in-TCX-files-322"></a>Line-oriented. Blank lines are ignored.
+
+ <li><a name="index-whitespace_002c-in-TCX-files-323"></a>Whitespace is ignored except as a separator.
+
+ <li><a name="index-comments_002c-in-TCX-files-324"></a>Comments start with `<samp><span class="samp">%</span></samp>' and continue to the end of the line.
+
+ <li>Otherwise, a line consists of one or two character codes, optionally
+followed by 0 or 1. The last number indicates whether <var>dest</var> is
+considered printable.
+ <pre class="example"> <var>src</var> [<var>dest</var> [<var>prnt</var>]]
+ </pre>
+ <li><a name="index-character-codes_002c-in-TCX-files-325"></a><a name="index-octal-character-codes_002c-in-TCX-files-326"></a><a name="index-hex-character-codes_002c-in-TCX-files-327"></a><a name="index-decimal-character-codes_002c-in-TCX-files-328"></a>Each character code may be specified in octal with a leading `<samp><span class="samp">0</span></samp>',
+hexadecimal with a leading `<samp><span class="samp">0x</span></samp>', or decimal otherwise. Values must
+be between 0 and 255, inclusive (decimal).
+
+ <li>If the <var>dest</var> code is not specified, it is taken to be the same as
+<var>src</var>.
+
+ <li>If the same <var>src</var> code is specified more than once, it is the last
+definition that counts.
+ </ol>
+
+ <p><a name="index-printable-characters_002c-specifying-329"></a><a name="index-g_t_005e_005e-_0040r_007bnotation_002c-avoiding_007d-330"></a>Finally, here's what happens: when TeX sees an input character with
+code <var>src</var>, it 1) changes <var>src</var> to <var>dest</var>; and 2) makes the
+<var>dest</var> code &ldquo;printable&rdquo;, i.e., printed as-is in diagnostics and the
+log file rather than in `<samp><span class="samp">^^</span></samp>' notation.
+
+ <p>By default, no characters are translated, and character codes between 32
+and 126 inclusive (decimal) are printable.
+
+ <p>Specifying translations for the printable ASCII characters (codes
+32&ndash;127) will yield unpredictable results. Additionally you shouldn't
+make the following characters printable: <code>^^I</code> (TAB), <code>^^J</code>
+(line feed), <code>^^M</code> (carriage return), and <code>^^?</code> (delete),
+since TeX uses them in various ways.
+
+ <p><a name="index-font-character-code_002c-translating-331"></a><a name="index-keyboard-character-code_002c-translating-332"></a>Thus, the idea is to specify the input (keyboard) character code for
+<var>src</var>, and the output (font) character code for <var>dest</var>.
+
+ <p><a name="index-interaction-between-TCX-files-and-_0040samp_007b_002d8bit_007d_002e-333"></a>By default, only the printable ASCII characters are considered printable
+by TeX. If you specify the `<samp><span class="samp">-8bit</span></samp>' option, all characters are
+considered printable by default. If you specify both the `<samp><span class="samp">-8bit</span></samp>'
+option and a TCX file, then the TCX can set specific characters to be
+non-printable.
+
+ <p>Both the specified TCX encoding and whether characters are printable
+are saved in the dump files (like <samp><span class="file">tex.fmt</span></samp>). So by giving these
+options in combination with `<samp><span class="samp">-ini</span></samp>', you control the defaults seen
+by anyone who uses the resulting dump file.
+
+ <p>When loading a dump, if the `<samp><span class="samp">-8bit</span></samp>' option was given, then all
+characters become printable by default.
+
+ <p>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.
+
+<div class="node">
+<p><hr>
+<a name="patgen-invocation"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#TCX-files">TCX files</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#MLTeX">MLTeX</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Languages-and-hyphenation">Languages and hyphenation</a>
+
+</div>
+
+<h4 class="subsection">4.4.3 Patgen: Creating hyphenation patterns</h4>
+
+<p><a name="index-patgen-334"></a><a name="index-hyphenation-patterns_002c-creating-335"></a><a name="index-languages_002c-hyphenation-rules-for-336"></a>
+Patgen creates hyphenation patterns from dictionary files for use with
+TeX. Synopsis:
+
+<pre class="example"> patgen <var>dictionary</var> <var>patterns</var> <var>output</var> <var>translate</var>
+</pre>
+ <p>Each argument is a filename. No path searching is done. The output is
+written to the file <var>output</var>.
+
+<!-- @table @var -->
+<!-- @item dictionary -->
+<!-- @cindex dictionary file -->
+<!-- @findex \lefthyphemmin -->
+<!-- @findex \righthyphenmin -->
+<!-- The first line contains the values of @code{}\lefthyphenmin} and -->
+<!-- @code{\righthyphenmin} in columns 1-2 and 3-4. Columns 5, 6, and 7 may -->
+<!-- optionally contain replacements for the default characters @samp{.}, -->
+<!-- @samp{-}, and @samp{*} respectively used in the word lists. -->
+<!-- Subsequent lines are either comments (if they start with two identical -->
+<!-- characters, e.g., @samp{%%}), or contain the external representation of -->
+<!-- the lower case version of a letter, followed by an arbitrary number of -->
+<!-- upper case versions, preceded and separated by a delimiter and followed -->
+<!-- by two consecutive delimiters. The delimiter may be any character not -->
+<!-- occurring in either version. -->
+<p>In addition, Patgen prompts interactively for other values.
+
+ <p>For more information, see <cite>Word hy-phen-a-tion by com-puter</cite> by
+Frank Liang (see <a href="#References">References</a>), and also the <samp><span class="file">patgen.web</span></samp> source file.
+
+ <p>The only options are `<samp><span class="samp">-help</span></samp>' and `<samp><span class="samp">-version</span></samp>' (see <a href="#Common-options">Common options</a>).
+
+<div class="node">
+<p><hr>
+<a name="IPC-and-TeX"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#TeX-extensions">TeX extensions</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Languages-and-hyphenation">Languages and hyphenation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#TeX">TeX</a>
+
+</div>
+
+<h3 class="section">4.5 IPC and TeX</h3>
+
+<p><a name="index-IPC-337"></a><a name="index-sockets-338"></a>(Sorry, but I'm not going to write this unless someone actually uses
+this feature. Let me know.)
+
+ <p>This functionality is available only if the `<samp><span class="samp">--enable-ipc</span></samp>' option
+was specified to <code>configure</code> during installation of Web2c
+(see <a href="#Installation">Installation</a>).
+
+ <p><a name="index-IPC_005fDEBUG-339"></a>If you define <code>IPC_DEBUG</code> before compilation (e.g., with `<samp><span class="samp">make
+XCFLAGS=-DIPC_DEBUG</span></samp>'), TeX will print messages to standard error
+about its socket operations. This may be helpful if you are, well,
+debugging.
+
+<div class="node">
+<p><hr>
+<a name="TeX-extensions"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#IPC-and-TeX">IPC and TeX</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#TeX">TeX</a>
+
+</div>
+
+<h3 class="section">4.6 TeX extensions</h3>
+
+<p><a name="index-extensions-to-_0040TeX_007b_007d-340"></a><a name="index-g_t_0040TeX_007b_007d_002c-extensions-to-341"></a>
+The base TeX program has been extended in many ways. Here's a
+partial list. Please send information on extensions not listed here to
+the address in <a href="kpathsea.html#Reporting-bugs">Reporting bugs</a>.
+
+ <dl>
+<dt>e-TeX<dd><a name="index-e_002d_0040TeX_007b_007d-342"></a><a name="index-primitives_002c-new-343"></a>Adds many new primitives, including right-to-left typesetting.
+Available from <a href="http://www.vms.rhbnc.ac.uk/e-TeX/">http://www.vms.rhbnc.ac.uk/e-TeX/</a> and
+<samp><var>CTAN:</var><span class="file">/systems/e-tex</span></samp>.
+
+ <br><dt>Omega<dd><a name="index-Omega-344"></a><a name="index-Unicode-345"></a>Adds Unicode support, right-to-left typesetting, and more. Available
+from <a href="http://www.ens.fr/omega">http://www.ens.fr/omega</a> and <samp><var>CTAN:</var><span class="file">/systems/omega</span></samp>.
+
+ <br><dt>pdfTeX<dd><a name="index-pdf_0040TeX_007b_007d-346"></a><a name="index-PDF-347"></a>A variant of TeX that produces PDF instead of DVI files. It also
+includes primitives for hypertext and micro-typography. Available from
+<samp><var>CTAN:</var><span class="file">/systems/pdftex</span></samp>.
+
+ <br><dt>`<samp><span class="samp">TeX--XeT</span></samp>'<dd><a name="index-TeX_002d_002dXeT-348"></a><a name="index-Arabic-typesetting-349"></a><a name="index-right_002dto_002dleft-typesetting-350"></a>Adds primitives and DVI opcodes for right-to-left typesetting (as used
+in Arabic, for example). An old version for TeX 3.1415 is available
+from <samp><var>CTAN:</var><span class="file">/systems/knuth/tex--xet</span></samp>. A newer version is
+included in e-TeX.
+
+ <br><dt>File-handling TeX<dd><a name="index-File_002dhandling-_0040TeX_007b_007d-351"></a><a name="index-DVI-files_002c-creating-multiple-352"></a><a name="index-multiple-DVI-files_002c-creating-353"></a>Adds primitives for creating multiple DVI files in a single run; and
+appending to output files as well as overwriting. Web2c implementation
+available in the distribution file
+<samp><span class="file">web2c/contrib/file-handling-tex</span></samp>.
+</dl>
+
+<div class="node">
+<p><hr>
+<a name="Metafont"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#MetaPost">MetaPost</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#TeX">TeX</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
+
+</div>
+
+<h2 class="chapter">5 Metafont: Creating typeface families</h2>
+
+<p><a name="index-Metafont-354"></a><a name="index-typeface-families-355"></a><a name="index-geometric-designs-356"></a><a name="index-shapes-357"></a><a name="index-font-design-358"></a>
+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.
+
+ <p>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 <cite>The METAFONTbook</cite>
+(see <a href="#References">References</a>).
+
+<ul class="menu">
+<li><a accesskey="1" href="#mf-invocation">mf invocation</a>: Invoking Metafont.
+<li><a accesskey="2" href="#Initial-Metafont">Initial Metafont</a>: Making bases.
+<li><a accesskey="3" href="#Modes">Modes</a>: Device definitions for Metafont.
+<li><a accesskey="4" href="#Online-Metafont-graphics">Online Metafont graphics</a>: Seeing MF output online.
+<li><a accesskey="5" href="#gftodvi-invocation">gftodvi invocation</a>: Making proofsheets for fonts.
+<li><a accesskey="6" href="#mft-invocation">mft invocation</a>: Prettyprinting Metafont sources.
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="mf-invocation"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Initial-Metafont">Initial Metafont</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Metafont">Metafont</a>
+
+</div>
+
+<h3 class="section">5.1 <code>mf</code> invocation</h3>
+
+<p><a name="index-mf-359"></a><a name="index-Metafont-invocation-360"></a>
+Metafont (usually invoked as <code>mf</code>) 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 <cite>The Metafontbook</cite> (see <a href="#References">References</a>).
+
+ <p>Metafont processes its command line and determines its memory dump
+(base) file in a way exactly analogous to MetaPost and TeX
+(see <a href="#tex-invocation">tex invocation</a>, and see <a href="#Memory-dumps">Memory dumps</a>). Synopses:
+
+<pre class="example"> mf [<var>option</var>]... [<var>mfname</var>[.mf]] [<var>mf-commands</var>]
+ mf [<var>option</var>]... \<var>first-line</var>
+ mf [<var>option</var>]... &amp;<var>base</var> <var>args</var>
+</pre>
+ <p>Most commonly, a Metafont invocation looks like this:
+<pre class="example"> mf '\mode:=<var>mode</var>; mag:=<var>magnification</var>; input <var>mfname</var>'
+</pre>
+ <p class="noindent">(The single quotes avoid unwanted interpretation by the shell.)
+
+ <p><a name="index-g_t_002emf-361"></a><a name="index-Metafont-input-files-362"></a><a name="index-EC-fonts-363"></a><a name="index-mktexmf_0040r_007b_002c-disabling_007d-364"></a>Metafont searches the usual places for the main input file <var>mfname</var>
+(see <a href="kpathsea.html#Supported-file-formats">Supported file formats</a>), extending
+<var>mfname</var> with <samp><span class="file">.mf</span></samp> if necessary. To see all the relevant
+paths, set the environment variable <code>KPATHSEA_DEBUG</code> to `<samp><span class="samp">-1</span></samp>'
+before running the program. By default, Metafont runs an external
+program named <samp><span class="file">mktexmf</span></samp> to create any nonexistent Metafont source
+files you input. You can disable this at configure-time or runtime
+(see <a href="kpathsea.html#mktex-configuration">mktex configuration</a>). This is mostly
+for the sake of the EC fonts, which can be generated at any size.
+
+ <p><a name="index-g_t_002e_0040var_007bnnn_007dgf-_0040r_007bgeneric-fonts_007d-365"></a><a name="index-mfput-366"></a><a name="index-GF-output-367"></a><a name="index-GF-files_002c-output-by-Metafont-368"></a><a name="index-PK-files_002c-not-output-by-Metafont-369"></a>Metafont writes the main GF output to the file
+<samp><var>basemfname</var><span class="file">.</span><var>nnn</var><span class="file">gf</span></samp>, where <var>nnn</var> is the font
+resolution in pixels per inch, and <var>basemfname</var> is the basename of
+<var>mfname</var>, or `<samp><span class="samp">mfput</span></samp>' 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 (see <a href="#gftopk-invocation">gftopk invocation</a>), since PK files contain equivalent information, but are
+more compact. (Metafont output in GF format rather than PK for only
+historical reasons.)
+
+ <p><a name="index-g_t_002etfm-_0040r_007boutput_007d-370"></a><a name="index-TFM-files_002c-output-by-Metafont-371"></a>Metafont also usually writes a metric file in TFM format to
+<samp><var>basemfname</var><span class="file">.tfm</span></samp>. A TFM file contains character dimensions,
+kerns, and ligatures, and spacing parameters. TeX reads only this
+<tt>.tfm</tt> file, not the GF file.
+
+ <p><a name="index-mode-needed-to-run-Metafont-372"></a><a name="index-proof-_0040r_007bmode_007d-373"></a><a name="index-g_t2602gf-374"></a><a name="index-g_t_002e2602gf-375"></a>The <var>mode</var> in the example command above is a name referring to a
+device definition (see <a href="#Modes">Modes</a>); for example, <code>localfont</code> or
+<code>ljfour</code>. These device definitions must generally be precompiled
+into the base file. If you leave this out, the default is <code>proof</code>
+mode, as stated in <cite>The Metafontbook</cite>, in which Metafont outputs at
+a resolution of 2602<span class="dmn">dpi</span>; this is usually not what you want. The
+remedy is simply to assign a different mode&mdash;<code>localfont</code>, for
+example.
+
+ <p>The <var>magnification</var> assignment in the example command above is a
+magnification factor; for example, if the device is 600<span class="dmn">dpi</span> and you
+specify <code>mag:=2</code>, Metafont will produce output at 1200<span class="dmn">dpi</span>.
+Very often, the <var>magnification</var> is an expression such as
+<code>magstep(.5)</code>, corresponding to a TeX &ldquo;magstep&rdquo;, which are
+factors of
+
+ <p>After running Metafont, you can use the font in a TeX document as
+usual. For example:
+<pre class="example"> \font\myfont = newfont
+ \myfont Now I am typesetting in my new font (minimum hamburgers).
+</pre>
+ <p>The program accepts the following options, as well as the standard
+`<samp><span class="samp">-help</span></samp>' and `<samp><span class="samp">-version</span></samp>' (see <a href="#Common-options">Common options</a>):
+ <dl>
+<dt>`<samp><span class="samp">-[no]-file-line-error</span></samp>'<dt>`<samp><span class="samp">-fmt=</span><var>fmtname</var></samp>'<dt>`<samp><span class="samp">-halt-on-error</span></samp>'<dt>`<samp><span class="samp">-ini</span></samp>'<dt>`<samp><span class="samp">-interaction=</span><var>string</var></samp>'<dt>`<samp><span class="samp">-jobname=</span><var>string</var></samp>'<dt>`<samp><span class="samp">-kpathsea-debug=</span><var>number</var></samp>'<dt>`<samp><span class="samp">-[no]parse-first-line</span></samp>'<dt>`<samp><span class="samp">-output-directory</span></samp>'<dt>`<samp><span class="samp">-progname=</span><var>string</var></samp>'<dt>`<samp><span class="samp">-recorder</span></samp>'<dt>`<samp><span class="samp">-translate-file=</span><var>tcxfile</var></samp>'<dt>`<samp><span class="samp">-8bit</span></samp>'<dd>These options are common to TeX, Metafont, and MetaPost.
+See <a href="#Common-options">Common options</a>.
+
+ <br><dt>`<samp><span class="samp">-mktex=</span><var>filetype</var></samp>'<dt>`<samp><span class="samp">-no-mktex=</span><var>filetype</var></samp>'<dd><a name="index-g_t_002dmktex_003d_0040var_007bfiletype_007d-376"></a><a name="index-g_t_002dno_002dmktex_003d_0040var_007bfiletype_007d-377"></a>Turn on or off the `<samp><span class="samp">mktex</span></samp>' script associated with <var>filetype</var>.
+The only value that makes sense for <var>filetype</var> is `<samp><span class="samp">mf</span></samp>'.
+</dl>
+
+<div class="node">
+<p><hr>
+<a name="Initial-Metafont"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Modes">Modes</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#mf-invocation">mf invocation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Metafont">Metafont</a>
+
+</div>
+
+<h3 class="section">5.2 Initial Metafont</h3>
+
+<p><a name="index-initial-Metafont-378"></a><a name="index-Metafont_002c-initial-379"></a>
+<a name="index-g_t_002ebase-380"></a><a name="index-base-files-381"></a><code>inimf</code> is the &ldquo;initial&rdquo; form of Metafont, which does lengthy
+initializations avoided by the &ldquo;virgin&rdquo; (<code>vir</code>) form, so as to
+be capable of dumping `<samp><span class="samp">.base</span></samp>' files (see <a href="#Memory-dumps">Memory dumps</a>). For
+a detailed comparison of virgin and initial forms, see <a href="#Initial-and-virgin">Initial and virgin</a>. In past releases, a separate program <samp><span class="command">inimf</span></samp> was
+installed to invoke the initial form, but this is no longer the case.
+
+ <p>For a list of options and other information, see <a href="#mf-invocation">mf invocation</a>.
+
+ <p><a name="index-plain_002ebase-382"></a><a name="index-mf_002ebase-383"></a>The only memory dump file commonly used with Metafont is the default
+`<samp><span class="samp">plain.base</span></samp>', also known as `<samp><span class="samp">mf.base</span></samp>' (again, see <a href="#Memory-dumps">Memory dumps</a>). 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):
+<pre class="example"> mf -ini '\input plain; input modes; dump'
+</pre>
+ <p class="noindent">(The quotes prevent interpretation of the backslashes from the shell.)
+Then install the resulting <samp><span class="file">plain.base</span></samp> in `<samp><span class="samp">$(basedir)</span></samp>'
+(<samp><span class="file">/usr/local/share/texmf/web2c</span></samp> by default), and link
+<samp><span class="file">mf.base</span></samp> to it.
+
+ <p>For an explanation of the additional <samp><span class="file">modes.mf</span></samp> file,
+see <a href="#Modes">Modes</a>. This file has no counterpart in TeX or MetaPost.
+
+ <p><a name="index-cmmf_002ebase-_0040r_007bnot-recommended_007d-384"></a><a name="index-cm_002ebase-385"></a><a name="index-cmbase_002emf-386"></a><a name="index-Computer-Modern-macros-387"></a><a name="index-base-files_002c-plain-only-388"></a>In the past, it was sometimes useful to create a base file
+<samp><span class="file">cmmf.base</span></samp> (a.k.a. <samp><span class="file">cm.base</span></samp>), with the Computer Modern
+macros also included in the base file. Nowadays, however, the
+additional time required to read <samp><span class="file">cmbase.mf</span></samp> is exceedingly small,
+usually not enough to be worth the administrative hassle of updating the
+<samp><span class="file">cmmf.base</span></samp> file when you install a new version of <samp><span class="file">modes.mf</span></samp>.
+<a name="index-type-design_002c-personal-389"></a>People actually working on a typeface may still find it worthwhile to
+create their own base file, of course.
+
+<div class="node">
+<p><hr>
+<a name="Modes"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Online-Metafont-graphics">Online Metafont graphics</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Initial-Metafont">Initial Metafont</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Metafont">Metafont</a>
+
+</div>
+
+<h3 class="section">5.3 Modes: Device definitions for Metafont</h3>
+
+<p><a name="index-modes-file-needed-for-Metafont-390"></a><a name="index-base-files_002c-need-mode-definitions-391"></a><a name="index-device-definitions_002c-for-Metafont-392"></a><a name="index-printer-characteristics_002c-for-Metafont-393"></a>Running Metafont and creating Metafont base files requires information
+that TeX and MetaPost do not: <dfn>mode</dfn> definitions which specify
+device characteristics, so Metafont can properly rasterize the shapes.
+
+ <p><a name="index-modes_002emf-_0040r_007brecommended-modes-file_007d-394"></a>When making a base file, a file containing modes for locally-available
+devices should be input after <samp><span class="file">plain.mf</span></samp>. One commonly used file
+is <a href="ftp://ftp.tug.org/tex/modes.mf">ftp://ftp.tug.org/tex/modes.mf</a>; it includes all known
+definitions.
+
+ <p><a name="index-small-Metafont-memory-and-modes-395"></a><a name="index-mode_005fdef-396"></a><a name="index-mode_005fsetup-397"></a>If, however, for some reason you have decreased the memory available in
+your Metafont, you may need to copy <samp><span class="file">modes.mf</span></samp> 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 <code>mode_def</code> and/or <code>mode_setup</code>; right now, the
+amount of memory used is approximately four times the total length of
+the <code>mode_def</code> names, and that's a lot.)
+
+ <p>If you have a device not included in <samp><span class="file">modes.mf</span></samp>, please see
+comments in that file for how to create the new definition, and please
+send the definition to <a href="mailto:tex-fonts@mail.tug.org">tex-fonts@mail.tug.org</a> to get it included
+in the next release of <samp><span class="file">modes.mf</span></samp>.
+
+ <p><a name="index-smode-_0040r_007band-dynamic-Metafont-mode-definition_007d-398"></a><a name="index-dynamic-Metafont-mode-definitions-with-_0040code_007bsmode_007d-399"></a>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
+<code>smode</code> instead of <code>mode</code>, like this:
+<pre class="example"> mf '\smode:="newmode.mf"; mag:=<var>magnification</var>; input <var>mfname</var>'
+</pre>
+ <p class="noindent">This is most useful when you are working on the definition of a new
+mode.
+
+ <p>The <var>magnification</var> and <var>mfname</var> arguments are explained in
+<a href="#mf-invocation">mf invocation</a>. In the file <samp><span class="file">newmode.mf</span></samp>, you should have the
+following (with no <code>mode_def</code> or <code>enddef</code>), if you are using
+<samp><span class="file">modes.mf</span></samp> conventions:
+<pre class="example"> mode_param (pixels_per_inch, <var>dpi</var>);
+ mode_param (blacker, <var>b</var>);
+ mode_param (fillin, <var>f</var>);
+ mode_param (o_correction, <var>o</var>);
+ mode_common_setup_;
+</pre>
+ <p class="noindent">(Of course, you should use real numbers for <var>dpi</var>, <var>b</var>, <var>f</var>,
+and <var>o</var>.)
+
+ <p>For more information on the use of <code>smode</code>, or if you are not using
+<samp><span class="file">modes.mf</span></samp>, see page 269 of <cite>The Metafontbook</cite>.
+
+<div class="node">
+<p><hr>
+<a name="Online-Metafont-graphics"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#gftodvi-invocation">gftodvi invocation</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Modes">Modes</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Metafont">Metafont</a>
+
+</div>
+
+<h3 class="section">5.4 Online Metafont graphics</h3>
+
+<p><a name="index-online-Metafont-graphics-400"></a><a name="index-Metafont-graphics-401"></a>
+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.
+
+ <p><a name="index-MFTERM-402"></a><a name="index-TERM-403"></a>Metafont examines the <code>MFTERM</code> environment variable or config file
+value at runtime, or the <code>TERM</code> environment variable if
+<code>MFTERM</code> is not set, to determine the device support to use.
+Naturally, only the devices for which support has been compiled in can
+be selected.
+
+ <p>Here is a table of the possibilities, showing the <code>MFTERM</code> value
+and the corresponding <code>configure</code> option(s) in parentheses.
+
+ <dl>
+<dt><code>epsf</code><a name="index-epsf-404"></a><dd><a name="index-Herberts_002c-Mathias-405"></a><a name="index-g_t_002d_002dwith_002depsfwin-406"></a>(`<samp><span class="samp">--with-epsfwin</span></samp>') Pseudo-window server for Encapsulated
+PostScript (see <samp><span class="file">web2c/window/epsf.c</span></samp>). 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.
+
+ <br><dt><code>hp2627</code><a name="index-hp2627-407"></a><dd><a name="index-g_t_002d_002dwith_002dhp2627win-408"></a>(`<samp><span class="samp">--with-hp2627win</span></samp>') HP2627a color graphics terminals.
+
+ <br><dt><code>mftalk</code><a name="index-mftalk-409"></a><dd><a name="index-g_t_002d_002dwith_002dmftalkwin-410"></a>(`<samp><span class="samp">--with-mftalkwin</span></samp>') Generic window server (see
+<samp><span class="file">web2c/window/mftalk.c</span></samp>).
+
+ <br><dt><code>next</code><a name="index-next-411"></a><dd><a name="index-DrawingServant-412"></a><a name="index-g_t_002d_002dwith_002dnext-413"></a>(`<samp><span class="samp">--with-next</span></samp>') NeXT window system. This requires a separate
+program, called <code>DrawingServant</code>, available separately. See the
+<samp><span class="file">web2c/window/next.c</span></samp>.
+
+ <br><dt><code>regis</code><a name="index-regis-414"></a><dd><a name="index-g_t_002d_002dwith_002dregiswin-415"></a><a name="index-Regis-graphics-support-416"></a>(`<samp><span class="samp">--with-regiswin</span></samp>') Regis terminals.
+
+ <br><dt><code>sun</code><a name="index-sun-417"></a><dd><a name="index-SunView-418"></a><a name="index-Suntools-419"></a><a name="index-g_t_002d_002dwith_002dsuntoolswin-420"></a><a name="index-sun_002dgfx_002ec-421"></a>(`<samp><span class="samp">--with-suntoolswin</span></samp>') The old Suntools (not any flavor of X)
+window system. (You can get the even older SunWindows <code>gfx</code> system
+by using <samp><span class="file">sun-gfx.c</span></samp>.)
+
+ <br><dt><code>tek</code><a name="index-tek-422"></a><dd><a name="index-Tektronix-423"></a><a name="index-g_t_002d_002dwith_002dtektronixwin-424"></a>(`<samp><span class="samp">--with-tektronixwin</span></samp>') Tektronix terminals.
+
+ <p><a name="index-Poole_002c-Simon-425"></a><br><dt><code>uniterm</code><a name="index-uniterm-426"></a><dd><a name="index-Tektronix-4014-427"></a><a name="index-g_t_002d_002dwith_002dunitermwin-428"></a>(`<samp><span class="samp">--with-unitermwin</span></samp>') 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 `<samp><span class="samp">--with-tek</span></samp>' selects.
+
+ <p><a name="index-NO_005fX11WIN-429"></a><a name="index-Xt-430"></a><a name="index-Xlib-431"></a><br><dt><code>xterm</code><a name="index-xterm-432"></a><dd><a name="index-g_t_002d_002dwith_002dx11win-433"></a><a name="index-g_t_002d_002dwith_002dx-434"></a><a name="index-g_t_002d_002dwith_002dx11-435"></a>(`<samp><span class="samp">--with-x11win</span></samp>', `<samp><span class="samp">--with-x</span></samp>', `<samp><span class="samp">--with-x11</span></samp>') The X window
+system (version 11).
+
+ <p><a name="index-g_t_002d_002dwith_002dx_002dtoolkit_003d_0040var_007bkit_007d-436"></a><a name="index-toolkits_002c-X-437"></a><a name="index-X-toolkits-and-Metafont-438"></a><a name="index-Xt-support-439"></a><a name="index-Xlib-support-440"></a>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 `<samp><span class="samp">configure --with-x
+--with-x-toolkit=no</span></samp>'.
+
+ <p><a name="index-X-resources-441"></a><a name="index-X-class-name-for-Metafont-442"></a><a name="index-class-name-for-Metafont-443"></a><a name="index-geometry-for-Metafont-444"></a><a name="index-Metafont-geometry-445"></a><a name="index-g_t_002eXdefaults-446"></a><a name="index-g_t_002eXresources-447"></a><a name="index-g_t_002dgeometry_0040r_007b_002c-supported-with-Xt_007d-448"></a>You cannot specify any of the usual X options (e.g., `<samp><span class="samp">-geometry</span></samp>')
+on the Metafont command line, but you can specify X resources in your
+<samp><span class="file">~/.Xdefaults</span></samp> or <samp><span class="file">~/.Xresources</span></samp> file. The class name is
+<code>Metafont</code>. If you're using the Xt support, all the usual X toolkit
+resources are supported. If you're using the Xlib support, only the
+<code>geometry</code> resource is supported.
+
+ <p><a name="index-DISPLAY-449"></a>You specify the X display to which Metafont connects in the
+<code>DISPLAY</code> environment variable, as usual.
+
+ </dl>
+
+ <p><a name="index-Metafont-online-support_002c-new-devices-450"></a><a name="index-new-graphics-support-for-Metafont-451"></a><a name="index-texmfmp_002ec-452"></a>Writing support for a new device is straightforward. Aside from defining
+the basic drawing routines that Metafont uses (see <samp><span class="file">mf.web</span></samp>), you
+only have to add another entry to the tables on the last page of
+<samp><span class="file">web2c/lib/texmfmp.c</span></samp>. Or you can write an independent program and
+use MFtalk (see <samp><span class="file">web2c/window/mftalk.c</span></samp>).
+
+<div class="node">
+<p><hr>
+<a name="gftodvi-invocation"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#mft-invocation">mft invocation</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Online-Metafont-graphics">Online Metafont graphics</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Metafont">Metafont</a>
+
+</div>
+
+<h3 class="section">5.5 GFtoDVI: Character proofs of fonts</h3>
+
+<p><a name="index-gftodvi-453"></a><a name="index-character-proofs-of-fonts-454"></a><a name="index-font-proofs-455"></a><a name="index-proof-sheets_002c-of-fonts-456"></a>
+GFtoDVI makes <dfn>proof sheets</dfn> from a GF bitmap file as output by, for
+example, Metafont (see <a href="#Metafont">Metafont</a>). This is an indispensable aid for
+font designers or Metafont hackers. Synopsis:
+
+<pre class="example"> gftodvi [<var>option</var>]... <var>gfname</var>[gf]
+</pre>
+ <p>The font <var>gfname</var> is searched for in the usual places (see <a href="kpathsea.html#Glyph-lookup">Glyph lookup</a>). To see all the relevant paths, set the
+environment variable <code>KPATHSEA_DEBUG</code> to `<samp><span class="samp">-1</span></samp>' before running
+the program.
+
+ <p>The suffix `<samp><span class="samp">gf</span></samp>' is supplied if not already present. This suffix is
+not an extension; no `<samp><span class="samp">.</span></samp>' precedes it: for instance <samp><span class="file">cmr10.600gf</span></samp>.
+
+ <p>The output filename is the basename of <var>gfname</var> extended with
+<samp><span class="file">.dvi</span></samp>, e.g., `<samp><span class="samp">gftodvi /wherever/foo.600gf</span></samp>' creates
+<samp><span class="file">./foo.dvi</span></samp>.
+
+ <p>The characters from <var>gfname</var> appear one per page in the DVI output,
+with labels, titles, and annotations, as specified in Appendix H
+(Hardcopy Proofs) of <cite>The Metafontbook</cite>.
+
+ <p>GFtoDVI uses several fonts besides <var>gfname</var> itself:
+
+ <ul>
+<li><a name="index-gray-font-457"></a><dfn>gray font</dfn> (default <samp><span class="file">gray</span></samp>): 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.
+
+ <li><a name="index-title-font-458"></a><dfn>title font</dfn> (default <samp><span class="file">cmr8</span></samp>): for the header information at
+the top of each output page.
+
+ <li><a name="index-label-font-459"></a><dfn>label font</dfn> (default <samp><span class="file">cmtt10</span></samp>): for the labels on key points
+of the figure.
+
+ <li><a name="index-slant-font-460"></a><dfn>slant font</dfn> (no default): for diagonal lines, which are otherwise
+simulated using horizontal and vertical rules.
+
+ </ul>
+
+ <p>To change the default fonts, you must use <code>special</code> commands in
+your Metafont source file.
+
+ <p>The program accepts the following option, as well as the standard
+`<samp><span class="samp">-verbose</span></samp>', `<samp><span class="samp">-help</span></samp>', and `<samp><span class="samp">-version</span></samp>' (see <a href="#Common-options">Common options</a>):
+ <dl>
+<dt>`<samp><span class="samp">-overflow-label-offset=</span><var>points</var></samp>'<dd><a name="index-g_t_002doverflow_002dlabel_002doffset_003d_0040var_007bpoints_007d-461"></a><a name="index-overflow-label-offset-462"></a><a name="index-offset-for-overflow-labels-463"></a>Typeset the so-called overflow labels, if any, <var>points</var> 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.
+</dl>
+
+<div class="node">
+<p><hr>
+<a name="mft-invocation"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#gftodvi-invocation">gftodvi invocation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Metafont">Metafont</a>
+
+</div>
+
+<h3 class="section">5.6 MFT: Prettyprinting Metafont source</h3>
+
+<p><a name="index-mft-464"></a><a name="index-Metafont-source_002c-prettyprinting-465"></a><a name="index-prettyprinting-Metafont-source-466"></a><a name="index-g_t_0040TeX_007b_007d_002c-creating-from-Metafont-467"></a>
+<a name="index-mftmac_002etex-468"></a>MFT translates a Metafont program into a TeX document suitable for
+typesetting, with the aid of TeX macros defined in the file
+<samp><span class="file">mftmac.tex</span></samp>. Synopsis:
+
+<pre class="example"> mft [<var>option</var>]... <var>mfname</var>[.mf]
+</pre>
+ <p>MFT searches the usual places for <var>mfname</var> (see <a href="kpathsea.html#Supported-file-formats">Supported file formats</a>). To see all the relevant paths, set the
+environment variable <code>KPATHSEA_DEBUG</code> to `<samp><span class="samp">-1</span></samp>' before running
+the program. The output goes to the basename of <var>mfname</var> extended
+with <samp><span class="file">.tex</span></samp>, e.g., `<samp><span class="samp">mft /wherever/foo.mf</span></samp>' creates
+<samp><span class="file">./foo.tex</span></samp>.
+
+ <p>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.
+
+ <p>Further control is allowed via Metafont comments:
+<a name="index-comments_002c-MFT-control-469"></a>
+ <ul>
+<li>Metafont comments following a single `<samp><span class="samp">%</span></samp>' 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 `<samp><span class="samp">% |x2r| is the tip of the bowl</span></samp>'
+will be translated into the TeX `<samp><span class="samp">% $x_{2r}$ is the ...</span></samp>',
+i.e., the `<samp><span class="samp">x2r</span></samp>' is treated as an identifier.
+
+ <li>`<samp><span class="samp">%%</span></samp>' 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 <samp><span class="file">mftmac.tex</span></samp>,
+or to add a line saying `<samp><span class="samp">%%\bye</span></samp>' 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.)
+
+ <li>`<samp><span class="samp">%%% </span><var>token1</var> <var>other-tokens</var></samp>'
+introduces a change in MFT's formatting rules; all the <var>other-tokens</var>
+will henceforth be translated according to the current conventions for
+<var>token1</var>. The tokens must be symbolic (i.e., not
+numeric or string tokens). For example, the input line
+ <pre class="example"> %%% addto fill draw filldraw
+ </pre>
+ <p class="noindent">says to format the `<samp><span class="samp">fill</span></samp>', `<samp><span class="samp">draw</span></samp>', and `<samp><span class="samp">filldraw</span></samp>'
+operations of plain Metafont just like the primitive token `<samp><span class="samp">addto</span></samp>',
+i.e., in boldface type. Without such reformatting commands, MFT would
+treat `<samp><span class="samp">fill</span></samp>' like an ordinary tag or variable name. In fact, you
+need a `<samp><span class="samp">%%%</span></samp>' command even to get parentheses to act like
+delimiters.
+
+ <li>`<samp><span class="samp">%%%%</span></samp>' introduces an MFT comment, i.e., MFT ignores the remainder
+of such a line.
+
+ <li>Five or more `<samp><span class="samp">%</span></samp>' signs should not be used.
+</ul>
+
+ <p><a name="index-Knuth_002c-Donald-E_002e-470"></a>(The above description was edited from <samp><span class="file">mft.web</span></samp>, written by
+D.E.&nbsp;Knuth<!-- /@w -->.)
+
+ <p>The program accepts the following options, as well as the standard
+`<samp><span class="samp">-help</span></samp>' and `<samp><span class="samp">-version</span></samp>' (see <a href="#Common-options">Common options</a>):
+ <dl>
+<dt>`<samp><span class="samp">-change=</span><var>chfile</var><span class="samp">[.ch]</span></samp>'<dd><a name="index-g_t_002dchange_003d_0040var_007bchfile_007d-471"></a><a name="index-change-files_002c-and-MFT-472"></a>Apply the change file <var>chfile</var> as with Tangle and Weave
+(see <a href="#WEB">WEB</a>).
+
+ <br><dt>`<samp><span class="samp">-style=</span><var>mftfile</var><span class="samp">[.mft]</span></samp>'<dd><a name="index-g_t_002dstyle_003d_0040var_007bmftfile_007d-473"></a><a name="index-style-files-474"></a><a name="index-plain_002emft-475"></a>Read <var>mftfile</var> before anything else; a MFT style file typically
+contains only MFT directives as described above. The default style file
+is named <samp><span class="file">plain.mft</span></samp>, which defines this properly for programs
+using plain Metafont. The MFT files is searched along the
+<code>MFTINPUTS</code> path; see <a href="kpathsea.html#Supported-file-formats">Supported file formats</a>.
+
+ <p><a name="index-cmbase_002emft-476"></a><a name="index-e_002emft-477"></a><a name="index-g_t_0040cite_007bComputer-Modern-Typefaces_007d_002c-production-of-478"></a>Other examples of MFT style files are <samp><span class="file">cmbase.mft</span></samp>, which defines
+formatting rules for the macros defined in <samp><span class="file">cm.base</span></samp>, and
+<samp><span class="file">e.mft</span></samp>, which was used in the production of Knuth's Volume&nbsp;<!-- /@w -->E,
+<cite>Computer Modern Typefaces</cite>.
+
+ <p><a name="index-MetaPost-source_002c-prettyprinting-479"></a>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.
+</dl>
+
+ <p>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.
+
+<div class="node">
+<p><hr>
+<a name="MetaPost"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#BibTeX">BibTeX</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Metafont">Metafont</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
+
+</div>
+
+<h2 class="chapter">6 MetaPost: Creating technical illustrations</h2>
+
+<p><a name="index-MetaPost-480"></a><a name="index-PostScript-meets-Metafont-481"></a><a name="index-Metafont-meets-PostScript-482"></a>MetaPost is a picture-drawing language similar to Metafont
+(see <a href="#Metafont">Metafont</a>), but instead of outputting bitmaps in a &ldquo;font&rdquo;, it
+outputs PostScript commands. It's primarily intended for creating
+technical illustrations.
+
+ <p>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.
+
+<ul class="menu">
+<li><a accesskey="1" href="#mpost-invocation">mpost invocation</a>: Invoking MetaPost.
+<li><a accesskey="2" href="#Initial-MetaPost">Initial MetaPost</a>: Making mems.
+<li><a accesskey="3" href="#makempx-invocation">makempx invocation</a>: Create MPX files for labels.
+<li><a accesskey="4" href="#dvitomp-invocation">dvitomp invocation</a>: DVI-to-MPX translation.
+<li><a accesskey="5" href="#dmp-invocation">dmp invocation</a>: Ditroff-to-MPX translation.
+<li><a accesskey="6" href="#mpto-invocation">mpto invocation</a>: Extracting labels from MetaPost programs.
+<li><a accesskey="7" href="#newer-invocation">newer invocation</a>: Is one file newer than another?
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="mpost-invocation"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Initial-MetaPost">Initial MetaPost</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#MetaPost">MetaPost</a>
+
+</div>
+
+<h3 class="section">6.1 <code>mpost</code> invocation</h3>
+
+<p><a name="index-mpost-483"></a><a name="index-MetaPost-invocation-484"></a>
+<a name="index-mpman_002eps-485"></a>MetaPost (installed as <code>mpost</code>) 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&amp;T technical report
+CSTR-162, generally available in <samp><var>texmf</var><span class="file">/doc/metapost/</span></samp>,
+where <var>texmf</var> is the root of TeX directory structure. See
+also:
+ <ul>
+<li><a href="http://cm.bell-labs.com/who/hobby/MetaPost.html">http://cm.bell-labs.com/who/hobby/MetaPost.html</a> (the
+ MetaPost author's home page);
+<li><a href="http://tug.org/metapost.html">http://tug.org/metapost.html</a> (papers, packages, and
+ related information).
+</ul>
+
+ <p><a name="index-mpgraph_002eps-486"></a>Also, a standard MetaPost package for drawing graphs is documented in
+AT&amp;T technical report CSTR-164, available as the file <samp><span class="file">mpgraph.ps</span></samp>,
+generally stored alongside <samp><span class="file">mpman.ps</span></samp>.
+
+ <p>MetaPost processes its command line and determines its memory dump (mem)
+file in a way exactly analogous to Metafont and TeX (see <a href="#tex-invocation"><code>tex</code> invocation</a>, and see <a href="#Memory-dumps">Memory dumps</a>).
+Synopses:
+
+<pre class="example"> mpost [<var>option</var>]... [<var>mpname</var>[.mp]] [<var>mp-commands</var>]
+ mpost [<var>option</var>]... \<var>first-line</var>
+ mpost [<var>option</var>]... &amp;<var>mem</var> <var>args</var>
+</pre>
+ <p><a name="index-g_t_002emp-487"></a><a name="index-MetaPost-input-files-488"></a>MetaPost searches the usual places for the main input file <var>mpname</var>
+(see <a href="kpathsea.html#Supported-file-formats">Supported file formats</a>), extending
+<var>mpname</var> with <samp><span class="file">.mp</span></samp> if necessary. To see all the relevant
+paths, set the environment variable <code>KPATHSEA_DEBUG</code> to `<samp><span class="samp">-1</span></samp>'
+before running the program.
+
+ <p><a name="index-beginfig-489"></a><a name="index-g_t_002e_0040var_007bnnn_007d-_0040r_007bPostScript-figures_007d-490"></a><a name="index-g_t_002etfm-_0040r_007boutput_007d-491"></a><a name="index-mpout-492"></a><a name="index-TFM-files_002c-output-by-MetaPost-493"></a><a name="index-PostScript-output-494"></a>MetaPost writes its PostScript output to a series of files
+<samp><var>basempname</var><span class="file">.</span><var>nnn</var></samp> (or perhaps
+<samp><var>basempname</var><span class="file">.ps</span></samp>, very occasionally
+<samp><var>basempname</var><span class="file">.tfm</span></samp>), where <var>nnn</var> are the figure numbers
+specified in the input, typically to the <code>beginfig</code> macro, and
+<var>basempname</var> is the basename of <var>mpname</var>, or `<samp><span class="samp">mpout</span></samp>' if no
+input file was specified. MetaPost uses the `<samp><span class="samp">.ps</span></samp>' extension when
+the figure number is out of range, e.g., if you say <code>beginfig(-1)</code>.
+
+ <p>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:
+<pre class="example"> \special{psfile="<var>filename</var>"}
+</pre>
+ <p class="noindent">or by using <samp><span class="file">epsf.tex</span></samp> (see <a href="dvips.html#EPSF-macros">EPSF macros</a>).
+
+ <p><a name="index-btex-_0040r_007bfor-MetaPost-labels_007d-495"></a><a name="index-etex-_0040r_007bfor-MetaPost-labels_007d-496"></a>The MetaPost construct
+<pre class="example"> btex ... <var>tex-input</var> ... etex
+</pre>
+ <p class="noindent">calls MakeMPX to generate a MPX file containing a MetaPost picture
+expression corresponding to <var>tex-input</var> (see <a href="#makempx-invocation">makempx invocation</a>).
+
+ <p>The construct
+<pre class="example"> verbatimtex ... <var>tex-input</var> ... etex
+</pre>
+ <p class="noindent">simply passes the <var>tex-input</var> through to MakeMPX and thus to
+TeX. For example, if you are using LaTeX, your MetaPost input file
+must start with a <code>verbatimtex</code> block that gives the necessary
+<code>\documentclass</code> (or <code>\documentstyle</code>)
+<code>\begin{document}</code> command. You will also need to set the
+enviroment variable <code>TEX</code> to `<samp><span class="samp">latex</span></samp>' (see <a href="#makempx-invocation">makempx invocation</a>).
+
+ <p><var>tex-input</var> need not be specifically TeX input; it could also be
+Troff. In that case, you will need the `<samp><span class="samp">-m pictures</span></samp>' Troff macro
+package (unfortunately absent from many Troff implementations), or an
+equivalent such as the `<samp><span class="samp">-m pspic</span></samp>' macros from GNU groff described
+in grops(1).
+
+ <p>Other typesetters can be supported with no change to MetaPost itself;
+only MakeMPX needs to be updated.
+
+ <p><a name="index-PostScript-fonts_002c-and-Troff-497"></a><a name="index-Troff_002c-and-MetaPost-498"></a><a name="index-Computer-Modern-fonts_002c-and-Troff-499"></a>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.
+
+ <p><a name="index-mproof_002etex-500"></a><a name="index-downloading-of-fonts-for-MetaPost-labels-501"></a><a name="index-font-downloading-for-MetaPost-labels-502"></a>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 (see <a href="dvips.html#Fonts-in-figures">Fonts in figures</a>). To help with this, the MetaPost
+distribution provides a small TeX file <samp><span class="file">mproof.tex</span></samp> which is
+typically called as:
+<pre class="example"> tex mproof <var>mp-output-files</var>... ; dvips mproof -o
+</pre>
+ <p class="noindent">The resulting file <samp><span class="file">mproof.ps</span></samp> can then be printed or previewed.
+
+ <p><a name="index-prologues_0040r_007b_002c-and-EPSF-output_007d-503"></a><a name="index-psfonts_002emap_0040r_007b_002c-read-by-MetaPost_007d-504"></a>To generate EPSF files, set the internal MetaPost variable
+<code>prologues</code> positive. To make the output files self-contained, use
+only standard PostScript fonts. MetaPost reads the same
+<samp><span class="file">psfonts.map</span></samp> file as Dvips, to determine PostScript fonts that
+need to be downloaded (see <a href="dvips.html#psfonts_002emap">psfonts.map</a>).
+
+ <p>MetaPost can write output files, via the <code>write</code> primitive; this
+opens a security hole. See <a href="#tex-invocation">tex invocation</a>.
+
+ <p>The program accepts the following options, as well as the standard
+`<samp><span class="samp">-help</span></samp>' and `<samp><span class="samp">-version</span></samp>' (see <a href="#Common-options">Common options</a>):
+ <dl>
+<dt>`<samp><span class="samp">-[no]-file-line-error</span></samp>'<dt>`<samp><span class="samp">-fmt=</span><var>fmtname</var></samp>'<dt>`<samp><span class="samp">-halt-on-error</span></samp>'<dt>`<samp><span class="samp">-ini</span></samp>'<dt>`<samp><span class="samp">-interaction=</span><var>string</var></samp>'<dt>`<samp><span class="samp">-jobname=</span><var>string</var></samp>'<dt>`<samp><span class="samp">-kpathsea-debug=</span><var>number</var></samp>'<dt>`<samp><span class="samp">-[no]parse-first-line</span></samp>'<dt>`<samp><span class="samp">-output-directory</span></samp>'<dt>`<samp><span class="samp">-progname=</span><var>string</var></samp>'<dt>`<samp><span class="samp">-recorder</span></samp>'<dt>`<samp><span class="samp">-translate-file=</span><var>tcxfile</var></samp>'<dt>`<samp><span class="samp">-8bit</span></samp>'<dd>These options are common to TeX, Metafont, and MetaPost.
+See <a href="#Common-options">Common options</a>.
+
+ <br><dt>`<samp><span class="samp">-T</span></samp>'<dt>`<samp><span class="samp">-troff</span></samp>'<dd><a name="index-g_t_002dT-505"></a><a name="index-g_t_002dtroff-506"></a><a name="index-prologues-507"></a>Set the <code>prologues</code> internal variable to <code>1</code>, and use
+<code>makempx -troff</code> to generate MPX files.
+
+ <br><dt>`<samp><span class="samp">-tex=</span><var>texprogram</var></samp>'<dd><a name="index-g_t_002dtex_003d_0040var_007btexprogram_007d-508"></a>When this option is given, the program <var>texprogram</var> is used to
+typeset the labels.
+
+ </dl>
+
+<div class="node">
+<p><hr>
+<a name="Initial-MetaPost"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#makempx-invocation">makempx invocation</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#mpost-invocation">mpost invocation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#MetaPost">MetaPost</a>
+
+</div>
+
+<h3 class="section">6.2 Initial MetaPost</h3>
+
+<p><a name="index-initial-MetaPost-509"></a><a name="index-MetaPost_002c-initial-510"></a>
+<a name="index-g_t_002emem-511"></a><a name="index-mem-files-512"></a><code>inimpost</code> is the &ldquo;initial&rdquo; form of MetaPost, which does
+lengthy initializations avoided by the &ldquo;virgin&rdquo; (<code>vir</code>) form,
+so as to be capable of dumping <samp><span class="file">.mem</span></samp> files (see <a href="#Memory-dumps">Memory dumps</a>). For a detailed comparison of virgin and initial forms, see
+<a href="#Initial-and-virgin">Initial and virgin</a>. In past releases, a separate program
+<samp><span class="command">inimpost</span></samp> was installed for the initial form, but this is no
+longer the case.
+
+ <p>For a list of options and other information, see <a href="#mpost-invocation">mpost invocation</a>.
+
+ <p><a name="index-plain_002emem-513"></a><a name="index-mpost_002emem-514"></a><a name="index-mem-files_002c-plain-only-515"></a>The principal memory dump file used with MetaPost is the default,
+<samp><span class="file">plain.mem</span></samp>, also known as <samp><span class="file">mpost.mem</span></samp> (again, see <a href="#Memory-dumps">Memory dumps</a>). It is created by default during installation, but you can
+also do so by hand if necessary (e.g., if a <samp><span class="file">plain.mp</span></samp> update is
+issued):
+<pre class="example"> mpost -ini '\input plain dump'
+</pre>
+ <p class="noindent">(The quotes prevent interpretation of the backslashes from the shell.)
+Then install the resulting <samp><span class="file">plain.mem</span></samp> in `<samp><span class="samp">$(memdir)</span></samp>'
+(<samp><span class="file">/usr/local/share/texmf/web2c</span></samp> by default), and link
+<samp><span class="file">mpost.mem</span></samp> to it.
+
+ <p><a name="index-Metafont_002c-compatibility-in-MetaPost-516"></a><a name="index-plain-Metafont_002c-compatibility-in-MetaPost-517"></a><a name="index-MetaPost-and-plain-Metafont-compatibility-518"></a><a name="index-mfplain_002emem-519"></a>MetaPost also provides a mem file with all the features of plain
+Metafont, called <samp><span class="file">mfplain.mem</span></samp>. You can create that in the same
+way; just replace `<samp><span class="samp">plain</span></samp>' in the above command with `<samp><span class="samp">mfplain</span></samp>'.
+<samp><span class="file">mfplain.mem</span></samp> file 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
+(see <a href="#gftodvi-invocation">gftodvi invocation</a>).
+
+ <p><a name="index-metafun_002emp-520"></a><a name="index-MetaFun_002c-enhanced-MetaPost-521"></a><a name="index-Pragma-ADE-522"></a>Another MetaPost mem file, named MetaFun, provides many advanced
+features. It was developed and maintained by Pragma ADE. The home
+page for MetaFun, and other MetaPost-related things from Pragma:
+<a href="http://www.pragma-ade.com/metapost.htm">http://www.pragma-ade.com/metapost.htm</a>.
+
+<div class="node">
+<p><hr>
+<a name="makempx-invocation"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#dvitomp-invocation">dvitomp invocation</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Initial-MetaPost">Initial MetaPost</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#MetaPost">MetaPost</a>
+
+</div>
+
+<h3 class="section">6.3 MakeMPX: Support MetaPost labels</h3>
+
+<p><a name="index-makempx-523"></a><a name="index-MetaPost-labels-524"></a><a name="index-captions_002c-for-MetaPost-525"></a><a name="index-labels_002c-for-MetaPost-526"></a>
+In MetaPost, labels can be typeset using any document processor; the
+Web2c implementation supports TeX and Troff. MakeMPX translates the
+labels from the typesetting language back into low-level MetaPost
+commands in a so-called <dfn>mpx file</dfn>, so text can be manipulated like
+other graphic objects. It is invoked automatically by MetaPost.
+Synopsis:
+
+<pre class="example"> makempx [-troff] <var>mpfile</var> <var>mpxfile</var>
+</pre>
+ <p class="noindent">The input comes from <var>mpfile</var> (no path searching is done), and the
+output goes to <var>mpxfile</var>. However, if the file <var>mpxfile</var>
+already exists, and is newer than <var>mpfile</var>, then nothing is done
+(presumably the file is up-to-date).
+
+ <p>Otherwise:
+ <ol type=1 start=1>
+<li><a name="index-MPto_002c-invoked-by-MakeMPX-527"></a>MPto is run to extract the label text from the
+MetaPost source file <var>mpfile</var> (see <a href="#mpto-invocation">mpto invocation</a>).
+
+ <li>The typesetting program itself is run, either TeX or Troff (see
+below). If TeX, and the file named by the <code>MPTEXPRE</code>
+environment variable exists (<samp><span class="file">mptexpre.tex</span></samp> by default), that file
+is prepended to the input from the MetaPost file.
+
+ <li><a name="index-DVItoMP_002c-invoked-by-MakeMPX-528"></a><a name="index-DMP_002c-invoked-by-MakeMPX-529"></a>The typesetter output (a DVI file in the case of TeX, Ditroff output
+for Troff) is translated back to MetaPost, by DVItoMP (see <a href="#dvitomp-invocation">dvitomp invocation</a>) or DMP (see <a href="#dmp-invocation">dmp invocation</a>) respectively.
+ </ol>
+
+ <p><a name="index-mpxerr_002elog-530"></a><a name="index-mpxerr_002edvi-531"></a><a name="index-mpxerr_002etex-532"></a><a name="index-mpxerr_002et-533"></a><a name="index-mpxerr-534"></a>If any of the above steps fail, for example if there was a typesetting
+mistake in the original <var>mpfile</var>, output may be left in files named
+<samp><span class="file">mpxerr.{log,tex,dvi}</span></samp> (TeX) or <samp><span class="file">mpxerr{,.t}</span></samp> (Troff),
+so you can diagnose the problem.
+
+ <p><a name="index-g_t_002dtroff-535"></a><a name="index-prologues-_0040r_007band-Troff-in-MetaPost_007d-536"></a>The `<samp><span class="samp">-troff</span></samp>' option to MPto selects the Troff commands, rather than
+TeX. MetaPost supplies this automatically if the `<samp><span class="samp">-T</span></samp>' or
+`<samp><span class="samp">-troff</span></samp>' option was specified to MetaPost.
+
+ <p><a name="index-picture-expressions-537"></a><a name="index-mpx-file_002c-defined-538"></a>The MPX file created by MakeMPX is a sequence of MetaPost picture
+expressions, one for every label in the original MetaPost input file.
+
+ <p>The names of the commands run by MakeMPX, and the directory
+added to the shell search <code>PATH</code> for the commands' location, are
+overridden by environment variables. Here is a list:
+
+ <dl>
+<dt><code>MAKEMPX_BINDIR</code><a name="index-MAKEMPX_005fBINDIR-539"></a><dd>The directory added to the <code>PATH</code>. Default is the `<samp><span class="samp">$(bindir)</span></samp>'
+Make directory, which in turn is set from the configure-time
+`<samp><span class="samp">--bindir</span></samp>', `<samp><span class="samp">--exec-prefix</span></samp>' and `<samp><span class="samp">--prefix</span></samp>' options; if
+nothing else is specified, the default is file `<samp><span class="samp">/usr/local</span></samp>'.
+
+ <br><dt><code>NEWER</code><a name="index-NEWER-540"></a><dd>The command run to determine if <var>mpxfile</var> is out of date with respect
+to <var>mpfile</var>; default is `<samp><span class="samp">newer</span></samp>'.
+
+ <br><dt><code>MPTOTEX</code><a name="index-MPTOTEX-541"></a><dd>The command run to extract MetaPost labels in TeX format; default is
+`<samp><span class="samp">mpto -tex</span></samp>'.
+
+ <br><dt><code>MPTOTR</code><a name="index-MPTOTR-542"></a><dd>Likewise, for Troff; default is `<samp><span class="samp">mpto -troff</span></samp>'.
+
+ <br><dt><code>DVITOMP</code><a name="index-DVITOMP-543"></a><dd>The command run to convert TeX output back to MetaPost; default is
+`<samp><span class="samp">dvitomp</span></samp>'.
+
+ <br><dt><code>DMP</code><a name="index-DMP-544"></a><dd>Likewise, for Troff; default is `<samp><span class="samp">dmp</span></samp>'.
+
+ <br><dt><code>TEX</code><a name="index-TEX-545"></a><dd>The command run to typeset the labels in TeX; default is `<samp><span class="samp">tex</span></samp>'.
+If you use LaTeX, set this to <code>latex</code>, and supply an appropriate
+<code>verbatimtex</code> header in the MP source (see <a href="#mpost-invocation">mpost invocation</a>).
+
+ <br><dt><code>TROFF</code><a name="index-TROFF-546"></a><dd>Likewise, for Troff; default is `<samp><span class="samp">'eqn -d\$\$ | troff -Tpost'</span></samp>'. You
+may need to replace `<samp><span class="samp">-Tpost</span></samp>' by `<samp><span class="samp">-T</span><var>term</var></samp>', where
+<var>term</var> is the PostScript device name for your Troff implementation,
+e.g., `<samp><span class="samp">ps</span></samp>' or `<samp><span class="samp">psc</span></samp>'; see troff(1).
+
+ <p>If you change this, you will also need to set the <code>TRFONTS</code>
+environment variable or configuration value to point to the appropriate
+font directory, traditionally <samp><span class="file">/usr/lib/font/dev</span><var>term</var></samp>.
+
+ </dl>
+
+<div class="node">
+<p><hr>
+<a name="dvitomp-invocation"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#dmp-invocation">dmp invocation</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#makempx-invocation">makempx invocation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#MetaPost">MetaPost</a>
+
+</div>
+
+<h3 class="section">6.4 DVItoMP: DVI to MPX conversion</h3>
+
+<p><a name="index-dvitomp-547"></a><a name="index-DVI-files_002c-converting-to-MPX-548"></a><a name="index-MPX-files_002c-converting-from-DVI-files-549"></a>
+DVItoMP converts DVI files into low-level MetaPost commands in a
+so-called MPX file. This program is generally invoked only by MakeMPX
+(see <a href="#makempx-invocation">makempx invocation</a>). Synopsis:
+
+<pre class="example"> dvitomp <var>dvifile</var>[.dvi] [<var>mpxfile</var>[.mpx]]
+</pre>
+ <p class="noindent">If <var>mpxfile</var> is not specified, the output goes to the basename of
+<var>dvifile</var> extended with <samp><span class="file">.mpx</span></samp>, e.g., `<samp><span class="samp">dvitomp
+/wherever/foo.dvi</span></samp>' creates <samp><span class="file">./foo.mpx</span></samp>.
+
+ <p>The only options are `<samp><span class="samp">-help</span></samp>' and `<samp><span class="samp">-version</span></samp>' (see <a href="#Common-options">Common options</a>).
+
+<div class="node">
+<p><hr>
+<a name="dmp-invocation"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#mpto-invocation">mpto invocation</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#dvitomp-invocation">dvitomp invocation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#MetaPost">MetaPost</a>
+
+</div>
+
+<h3 class="section">6.5 DMP: Ditroff to MPX conversion</h3>
+
+<p><a name="index-DMP-550"></a><a name="index-ditroff-output_002c-converting-to-MPX-551"></a><a name="index-MPX-files_002c-creating-from-ditroff-output-552"></a>
+DMP converts device-independent Troff (ditroff) output files into
+low-level MetaPost commands in a so-called MPX file. This program is
+generally invoked by MakeMPX (see <a href="#makempx-invocation">makempx invocation</a>). Synopsis:
+
+<pre class="example"> dmp [<var>ditroff-file</var> [<var>mpxfile</var>]]
+</pre>
+ <p class="noindent">If <var>ditroff-file</var> is not specified, input comes from standard input;
+and if <var>mpxfile</var> is not specified, output goes to standard output.
+
+ <p><a name="index-dpost-553"></a><a name="index-D-_0040var_007bc_007d-_0040r_007bditroff-graphics_007d-554"></a><a name="index-x-X-_0040r_007bditroff-device-control_007d-555"></a><a name="index-SetColor-_0040r_007bditroff-command_007d-556"></a><a name="index-BeginPath-_0040r_007bditroff-command_007d-557"></a><a name="index-DrawPath-_0040r_007bditroff-command_007d-558"></a>DMP was written to process the output of a Troff pipeline fed the output
+of <code>mpto -troff</code> (see <a href="#mpto-invocation">mpto invocation</a>). DMP understands all
+the `<samp><span class="samp">D</span><var>c</var></samp>' graphics functions that <code>dpost</code> does, but it
+ignores `<samp><span class="samp">x X</span></samp>' device control functions such as `<samp><span class="samp">x X
+SetColor:...</span></samp>', `<samp><span class="samp">x X BeginPath:</span></samp>', and `<samp><span class="samp">x X
+DrawPath:...</span></samp>'.
+
+ <p><a name="index-MPSUPPORT-559"></a>The available font names are defined in the support file
+<samp><span class="file">trfonts.map</span></samp>, which DMP looks for along the <code>MPSUPPORT</code> path.
+
+ <p><a name="index-trchars_002eadj-560"></a>Another support file <samp><span class="file">trchars.adj</span></samp>, also looked for along the
+<code>MPSUPPORT</code> path, contains a character adjustment table which
+should reflect the shift amounts found in the standard PostScript
+prologue for Troff and dpost found in the <code>TRFONTS</code> directory.
+Such an adjustment table is unnecessary for some Troff implementations,
+in which case <samp><span class="file">trchars.adj</span></samp> should be replaced by an empty
+file&mdash;but it must still exist.
+
+ <p>DMP was written for one particular Troff implementation, and it
+unfortunately has many built-in assumptions about the output and fonts
+file formats used by Troff, which may not be satisfied in other
+environments. In particular, GNU groff uses some extensions in its file
+formats described in groff_font(5) and groff_out(5) which make its
+output completely unusable for DMP. On the other hand, the Troff
+version found in Sun Solaris 2.x, and perhaps other systems derived from
+System V R4, works fine with the default settings.
+
+ <p>If you run into trouble and want to adapt DMP to other systems,
+you might have to try the following (this is primarily for hackers):
+
+ <ul>
+<li>If DMP complains about a missing font table (e.g., `<samp><span class="samp">Cannot find
+TR</span></samp>'), your Troff may not support the device `<samp><span class="samp">post</span></samp>'.
+
+ <p>Check troff(1) for the devices supported by your Troff and set the
+<code>TROFF</code> environment variable appropriately (see above). Also,
+locate the appropriate font directory and set the <code>TRFONTS</code>
+variable as needed.
+
+ <li>If DMP complains about a missing font description file (e.g., `<samp><span class="samp">Font
+TR was not in map file</span></samp>'), your version of Troff may be using internal
+font names different from those in the distributed <samp><span class="file">trfonts.map</span></samp>;
+e.g., TR and TI instead of R and I for Times-Roman and Times-Italic.
+
+ <p><a name="index-trchars_002eadj-561"></a>In this case, you may have to adapt <samp><span class="file">trfonts.map</span></samp> and perhaps also
+<samp><span class="file">trchars.adj</span></samp> in the MetaPost support directory
+(<samp><span class="file">texmf/metapost/support</span></samp> by default).
+
+ <li>If DMP still complains that it cannot parse the font description files
+or the Troff output (e.g., `<samp><span class="samp">TR has a bad line in its description
+file</span></samp>', you are probably out of luck and have to hack the DMP program (in
+<samp><span class="file">web2c/mpware/dmp.c</span></samp>).
+
+ <p>Such problems may be caused by subtle differences in the file
+formats, such as use of tabs vs. spaces as field separators
+or decimal vs. octal vs. hex format for font metric data.
+
+ <p>A reasonably good description of the expected Troff file formats can be
+found in AT&amp;T technical report CSTR-54 (<cite>Troff User's Manual</cite>,
+Revised 1992). Documentation on the subtle differences in other Troff
+implementation is harder to find except for GNU groff, where it's all
+documented in the above-mentioned groff_font(5) and groff_out(5).
+
+ <p>Any contributions to improve the portability of DMP or to make it work
+with GNU groff are welcome, of course.
+
+ </ul>
+
+ <p><a name="index-dmp_002ec-562"></a><a name="index-Hobby_002c-John-563"></a>(Some of the above description was edited from the <samp><span class="file">dmp.c</span></samp> source
+file, written by John Hobby.)
+
+ <p>The only options are `<samp><span class="samp">--help</span></samp>' and `<samp><span class="samp">--version</span></samp>' (see <a href="#Common-options">Common options</a>).
+
+<div class="node">
+<p><hr>
+<a name="mpto-invocation"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#newer-invocation">newer invocation</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#dmp-invocation">dmp invocation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#MetaPost">MetaPost</a>
+
+</div>
+
+<h3 class="section">6.6 MPto: Extract labels from MetaPost input</h3>
+
+<p><a name="index-MPto-564"></a><a name="index-labels_002c-extracting-from-MetaPost-input-565"></a><a name="index-captions_002c-extracting-from-MetaPost-input-566"></a><a name="index-text_002c-extracting-from-MetaPost-input-567"></a><a name="index-MetaPost-input_002c-extracting-labels-from-568"></a>
+<a name="index-btex-_0040r_007band-label-extraction_007d-569"></a><a name="index-etex-_0040r_007band-label-extraction_007d-570"></a><a name="index-verbatimtex-_0040r_007bMetaPost-command_007d-571"></a>MPto extracts the labels from a MetaPost input file; this is the
+contents of any <code>btex...etex</code> and <code>verbatimtex...etex</code>
+sections. This program is generally invoked by MakeMPX (see <a href="#makempx-invocation">makempx invocation</a>). Synopsis:
+
+<pre class="example"> mpto [<var>option</var>]... <var>mpfile</var>
+</pre>
+ <p class="noindent">The input comes from <var>mpfile</var>; no path searching is done. The
+output goes to standard output. Leading and trailing spaces and tabs
+are removed, and various predefined typesetter commands are included at
+the beginning of and end of the file and of each section.
+
+ <p>The program accepts the following options, as well as the standard
+`<samp><span class="samp">-help</span></samp>' and `<samp><span class="samp">-version</span></samp>' (see <a href="#Common-options">Common options</a>):
+ <dl>
+<dt>`<samp><span class="samp">-troff</span></samp>'<dd><a name="index-g_t_002dtroff-572"></a>Surround the MetaPost sections with Troff commands.
+
+ <br><dt>`<samp><span class="samp">-tex</span></samp>'<dd><a name="index-g_t_002dtex-573"></a>Surround the MetaPost sections with TeX commands. This is the default.
+</dl>
+
+<div class="node">
+<p><hr>
+<a name="newer-invocation"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#mpto-invocation">mpto invocation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#MetaPost">MetaPost</a>
+
+</div>
+
+<h3 class="section">6.7 Newer: Compare file modification times</h3>
+
+<p><a name="index-newer-_0040r_007bfile-comparison_007d-574"></a><a name="index-comparing-file-modification-times-575"></a><a name="index-file-mtimes_002c-comparing-576"></a><a name="index-mtimes-of-files_002c-comparing-577"></a><a name="index-older_002dthan_002c-file-comparisons-578"></a>
+Newer compares file modification times. Synopsis:
+
+<pre class="example"> newer <var>src1</var> [ <var>src2</var> ... <var>srcN</var> ] <var>target</var>
+</pre>
+ <p class="noindent">Newer exits successfully if the files <var>src1</var> ... <var>srcN</var> exist
+and at least one of them is not older than <var>dependent</var>, i.e., the
+modification time (mtime) of at least one of the source files
+is greater than or the same as that of <var>dependent</var>. Newer also
+exits successfully if the file <var>dependent</var> doesn't exist.
+See <a href="libc.html#Attribute-Meanings">Attribute Meanings</a>.
+
+ <p>The program accepts the following option, as well as the standard
+`<samp><span class="samp">--help</span></samp>' and `<samp><span class="samp">--version</span></samp>' (see <a href="#Common-options">Common options</a>):
+ <dl>
+<dt>`<samp><span class="samp">--quiet</span></samp>'<dd><a name="index-g_t_002d_002dquiet-_0028newer_0029-579"></a>Return result only, do not print any output.
+<br><dt>`<samp><span class="samp">--verbose</span></samp>'<dd><a name="index-g_t_002d_002dverbose-_0028newer_0029-580"></a>List missing source files to STDERR. This is the default.
+</dl>
+
+ <p>This is used by MakeMPX (see <a href="#makempx-invocation">makempx invocation</a>).
+
+<div class="node">
+<p><hr>
+<a name="BibTeX"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#WEB">WEB</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#MetaPost">MetaPost</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
+
+</div>
+
+<h2 class="chapter">7 BibTeX: Bibliographies</h2>
+
+<p><a name="index-bibliographies_002c-creating-581"></a><a name="index-Bib_0040TeX_007b_007d-582"></a>
+BibTeX automates much of the job of typesetting bibliographies, and
+makes bibliography entries reusable in many different contexts.
+
+<ul class="menu">
+<li><a accesskey="1" href="#bibtex-invocation">bibtex invocation</a>
+<li><a accesskey="2" href="#Basic-BibTeX-style-files">Basic BibTeX style files</a>: The standard and semi-standard styles.
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="bibtex-invocation"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Basic-BibTeX-style-files">Basic BibTeX style files</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#BibTeX">BibTeX</a>
+
+</div>
+
+<h3 class="section">7.1 BibTeX invocation</h3>
+
+<p><a name="index-bibtex-583"></a>
+<a name="index-g_t_002ebbl-_0040r_007bbibliography-files_007d-584"></a><a name="index-g_t_002eaux-_0040r_007bcross_002dreference-files_007d-585"></a><a name="index-g_t_002ebib-_0040r_007bbibliography-databases_007d-586"></a>BibTeX creates a printable bibliography (<samp><span class="file">.bbl</span></samp>) file from
+references in a <samp><span class="file">.aux</span></samp> file, generally written by TeX or
+LaTeX. The <samp><span class="file">.bbl</span></samp> file is then incorporated on a subsequent
+run. The basic bibliographic information comes from <samp><span class="file">.bib</span></samp> files,
+and a BibTeX style (<samp><span class="file">.bst</span></samp>) file controls the precise contents
+of the <samp><span class="file">.bbl</span></samp> file. Synopsis:
+
+<pre class="example"> bibtex [<var>option</var>]... <var>auxfile</var>[.aux]
+</pre>
+ <p><a name="index-g_t_002eblg-_0040r_007bBib_0040TeX_007b_007d-log-file_007d-587"></a><a name="index-log-file_002c-Bib_0040TeX_007b_007d-588"></a>The output goes to the basename of <var>auxfile</var> extended with
+<samp><span class="file">.bbl</span></samp>; for example, `<samp><span class="samp">bibtex /wherever/foo.aux</span></samp>' creates
+<samp><span class="file">./foo.bbl</span></samp>. BibTeX also writes a log file to the basename of
+<var>auxfile</var> extended with `<samp><span class="samp">.blg</span></samp>'.
+
+ <p><a name="index-g_t_005cbibliography-589"></a><a name="index-g_t_005cbibliographystyle-590"></a><a name="index-TEXBIB_0040r_007b_002c-search-path-for-bib-files_007d-591"></a><a name="index-BIBINPUTS_0040r_007b_002c-search-path-for-bib-files_007d-592"></a><a name="index-BSTINPUTS_0040r_007b_002c-search-path-for-bst-files_007d-593"></a>The names of the <samp><span class="file">.bib</span></samp> and <samp><span class="file">.bst</span></samp> files are specified in the
+<samp><span class="file">.aux</span></samp> file as well, via the <samp><span class="file">\bibliography</span></samp> and
+<samp><span class="file">\bibliographystyle</span></samp> (La)TeX macros. BibTeX searches for
+<samp><span class="file">.bib</span></samp> files using the <code>BIBINPUTS</code> and <code>TEXBIB</code> paths,
+and for <samp><span class="file">.bst</span></samp> files using <code>BSTINPUTS</code> (see <a href="kpathsea.html#Supported-file-formats">Supported file formats</a>). It does no path searching for
+<samp><span class="file">.aux</span></samp> files.
+
+ <p>The program accepts the following options, as well as the standard
+`<samp><span class="samp">-help</span></samp>' and `<samp><span class="samp">-version</span></samp>' (see <a href="#Common-options">Common options</a>):
+ <dl>
+<dt>`<samp><span class="samp">-terse</span></samp>'<dd><a name="index-g_t_002dterse-594"></a><a name="index-terse-output-595"></a><a name="index-verbose-Bib_0040TeX_007b_007d-output_002c-suppressing-596"></a>Suppress the program banner and progress reports normally output.
+
+ <br><dt>`<samp><span class="samp">-min-crossrefs=</span><var>n</var></samp>'<dd><a name="index-g_t_002dmin_002dcrossrefs_003d_0040var_007bn_007d-597"></a><a name="index-cross_002dreferenced-bibliography-items-598"></a><a name="index-bibliography-items_002c-cross_002dreferenced-599"></a>If at least <var>n</var> (2 by default) bibliography entries refer to another
+entry <var>e</var> via their <code>crossref</code> field, include <var>e</var> in the
+<tt>.bbl</tt> file, even if it was not explicitly referenced in the <tt>.aux</tt>
+file. For example, <var>e</var> 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 <var>n</var> a sufficiently
+large number.
+</dl>
+
+ <p>See also:
+ <dl>
+<dt><samp><span class="file">btxdoc.tex</span></samp><dd><a name="index-btxdoc_002etex-600"></a>Basic LaTeXable documentation for general BibTeX users.
+
+ <br><dt><samp><span class="file">btxhak.tex</span></samp><dd><a name="index-btxhak_002etex-601"></a><a name="index-style-design_002c-for-Bib_0040TeX_007b_007d-602"></a>LaTeXable documentation for style designers.
+
+ <br><dt><samp><span class="file">btxdoc.bib</span></samp><dd><a name="index-btxdoc_002ebib-603"></a>BibTeX database file for the two above documents.
+
+ <br><dt><samp><span class="file">xampl.bib</span></samp><dd><a name="index-xampl_002ebib-604"></a>Example database file with all the standard entry types.
+
+ <br><dt><samp><span class="file"><a href="ftp://ftp.math.utah.edu/pub/tex/bib/">ftp://ftp.math.utah.edu/pub/tex/bib/</a></span></samp><dd><a name="index-ftp_002emath_002eutah_002eedu-605"></a><a name="index-Bib_0040TeX_007b_007d-collection-606"></a><a name="index-TUGboat-bibliography-607"></a><a name="index-g_t_0040TeX_007b_007d_002c-bibliographies-for-608"></a>A very large <samp><span class="file">.bib</span></samp> and <samp><span class="file">.bst</span></samp> collection, including
+references for all the standard TeX books and a complete bibliography
+for TUGboat.
+</dl>
+
+<div class="node">
+<p><hr>
+<a name="Basic-BibTeX-style-files"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#bibtex-invocation">bibtex invocation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#BibTeX">BibTeX</a>
+
+</div>
+
+<h3 class="section">7.2 Basic BibTeX style files</h3>
+
+<p><a name="index-basic-Bib_0040TeX_007b_007d-style-files-609"></a><a name="index-Bib_0040TeX_007b_007d-style-files-610"></a>
+Here are descriptions of the four standard and four semi-standard basic
+BibTeX styles. <samp><var>CTAN:</var><span class="file">/biblio/bibtex</span></samp> contains these and
+many more (for CTAN info, see <a href="kpathsea.html#unixtex_002eftp">unixtex.ftp</a>).
+
+ <dl>
+<dt><code>plain</code><dd><a name="index-plain_002ebst-611"></a>Sorts entries alphabetically, with numeric labels. Generally formatted
+according to van Leunen's <cite>A Handbook for Scholars</cite>. The other
+style files listed here are based on <code>plain</code>.
+
+ <br><dt><code>abbrv</code><dd><a name="index-abbrv_002ebst-612"></a>First names, month names, and journal names are abbreviated.
+
+ <br><dt><code>acm</code><dd><a name="index-acm_002ebst-613"></a>Names are printed in small caps.
+
+ <br><dt><code>alpha</code><dd><a name="index-alpha_002ebst-614"></a>Alphanumeric labels, e.g., `<samp><span class="samp">Knu66</span></samp>'.
+
+ <br><dt><code>apalike</code><dd><a name="index-apalike_002ebst-615"></a>No labels at all; instead, the year appears in parentheses after the author.
+Use this in conjunction with <samp><span class="file">apalike.tex</span></samp> (plain TeX) or
+<samp><span class="file">apalike.sty</span></samp> (LaTeX), which also changes the citations in the
+text to be `<samp><span class="samp">(</span><var>author</var><span class="samp">, </span><var>year</var><span class="samp">)</span></samp>'.
+
+ <br><dt><code>ieeetr</code><dd><a name="index-ieeetr_002ebst-616"></a>Numeric labels, entries in citation order, <span class="sc">ieee</span> abbreviations,
+article titles in quotes.
+
+ <br><dt><code>siam</code><dd><a name="index-siam_002ebst-617"></a>Numeric labels, alphabetic order, <cite>Math. Reviews</cite>
+abbreviations, names in small caps.
+
+ <br><dt><code>unsrt</code><dd><a name="index-unsrt_002ebst-618"></a>Lists entries in citation order, i.e., unsorted.
+
+ <br><dt><code>btxbst.doc</code><dd>The template file and documentation for the standard styles.
+
+ </dl>
+
+<div class="node">
+<p><hr>
+<a name="WEB"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#DVI-utilities">DVI utilities</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#BibTeX">BibTeX</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
+
+</div>
+
+<h2 class="chapter">8 WEB: Literate programming</h2>
+
+<p><a name="index-WEB-619"></a><a name="index-literate-programming-620"></a>
+<a name="index-litprog_0040_0040shsu_002eedu-621"></a><dfn>WEB</dfn> 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 <dfn>literate
+programming</dfn>. (The Usenet newsgroup <samp><span class="file">comp.programming.literate</span></samp>
+and the mailing list <a href="mailto:litprog@shsu.edu">litprog@shsu.edu</a> are devoted to this
+subject; they are gatewayed to each other.)
+
+ <p><a name="index-webman_002etex-622"></a><a name="index-Spiderweb-623"></a><a name="index-Cweb-624"></a><a name="index-CWEB-625"></a><a name="index-Awk_002c-WEB-for-626"></a><a name="index-Ada_002c-WEB-for-627"></a><a name="index-Troff_002c-WEB-for-628"></a>WEB-like languages have been implemented with many pairs of base
+languages: Cweb provides C and Troff (see <a href="#References">References</a>); CWEB provides
+C and TeX (<samp><var>CTAN:</var><span class="file">/web/c_cpp/cweb</span></samp>); Spiderweb provides C,
+C++, Awk, Ada, many others, and TeX
+(<samp><var>CTAN:</var><span class="file">/web/spiderweb</span></samp>); 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.
+
+ <p>The original WEB language is documented in the file <samp><span class="file">webman.tex</span></samp>,
+which is included in the <a href="ftp://ftp.tug.org/tex/lib.tar.gz">ftp://ftp.tug.org/tex/lib.tar.gz</a> archive
+(and available in many other places, of course).
+
+<ul class="menu">
+<li><a accesskey="1" href="#tangle-invocation">tangle invocation</a>
+<li><a accesskey="2" href="#weave-invocation">weave invocation</a>
+<li><a accesskey="3" href="#pooltype-invocation">pooltype invocation</a>
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="tangle-invocation"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#weave-invocation">weave invocation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#WEB">WEB</a>
+
+</div>
+
+<h3 class="section">8.1 Tangle: Translate WEB to Pascal</h3>
+
+<p><a name="index-tangle-629"></a><a name="index-Pascal_002c-creating-from-WEB-630"></a><a name="index-WEB-programs_002c-compiling-631"></a>
+Tangle creates a compilable Pascal program from a WEB source file
+(see <a href="#WEB">WEB</a>). Synopsis:
+
+<pre class="example"> tangle [<var>option</var>]... <var>webfile</var>[.web] [<var>changefile</var>[.ch]]
+</pre>
+ <p><a name="index-change-files_002c-and-Tangle-632"></a>The Pascal output is written to the basename of <var>webfile</var> extended
+with `<samp><span class="samp">.p</span></samp>'; for example, `<samp><span class="samp">tangle /wherever/foo.web</span></samp>' creates
+<samp><span class="file">./foo.p</span></samp>. Tangle applies <var>changefile</var> to <var>webfile</var> before
+writing the output; by default, there is no change file.
+
+ <p><a name="index-pool-file_002c-writing-633"></a><a name="index-string-pool_002c-writing-634"></a>If the program makes use of the WEB string facility, Tangle writes the
+string pool to the basename of <var>webfile</var> extended with `<samp><span class="samp">.pool</span></samp>'.
+
+ <p>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.
+
+ <p>The program accepts the following options, as well as the standard
+`<samp><span class="samp">--help</span></samp>' and `<samp><span class="samp">--version</span></samp>' (see <a href="#Common-options">Common options</a>):
+
+ <dl>
+<dt>`<samp><span class="samp">-length=</span><var>number</var></samp>'<dd><a name="index-g_t_002dlength_003d_0040var_007bnumber_007d-635"></a><a name="index-identifier-length-636"></a>The number of characters that are considered significant in an
+identifier. Whether underline characters are counted depends on the
+`<samp><span class="samp">-underline</span></samp>' option. The default value is 32, the original tangle
+used 7, but this proved too restrictive for use by Web2c.
+
+ <br><dt>`<samp><span class="samp">-lowercase</span></samp>'<dt>`<samp><span class="samp">-mixedcase</span></samp>'<dt>`<samp><span class="samp">-uppercase</span></samp>'<dd><a name="index-g_t_002dlowercase-637"></a><a name="index-g_t_002dmixedcase-638"></a><a name="index-g_t_002duppercase-639"></a><a name="index-identifier-case-640"></a>These options specify the case of identifiers in the output of tangle.
+If `<samp><span class="samp">-uppercase</span></samp>' (`<samp><span class="samp">-lowercase</span></samp>') is specified, tangle will
+convert all identfiers to uppercase (lowercase). The default is
+`<samp><span class="samp">-mixedcase</span></samp>', which specifies that the case will not be changed.
+
+ <br><dt>`<samp><span class="samp">-underline</span></samp>'<dd><a name="index-g_t_002dunderline-641"></a><a name="index-identifiers-with-underlines-642"></a>When this option is given, tangle does not strip underline characters
+from identifiers.
+
+ <br><dt>`<samp><span class="samp">-loose</span></samp>'<dt>`<samp><span class="samp">-strict</span></samp>'<dd><a name="index-g_t_002dloose-643"></a><a name="index-g_t_002dstrict-644"></a><a name="index-identifier-collisions-645"></a>These options specify how strict tangle must be when checking
+identifiers for equality. The default is `<samp><span class="samp">-loose</span></samp>', which means
+that tangle will follow the rules set by the case-smashing and underline
+options above. If `<samp><span class="samp">-strict</span></samp>' is set, then identifiers will always
+be stripped of underlines and converted to uppercase before checking
+whether they collide.
+
+ </dl>
+
+<div class="node">
+<p><hr>
+<a name="weave-invocation"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#pooltype-invocation">pooltype invocation</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#tangle-invocation">tangle invocation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#WEB">WEB</a>
+
+</div>
+
+<h3 class="section">8.2 Weave: Translate WEB to TeX</h3>
+
+<p><a name="index-weave-646"></a><a name="index-g_t_0040TeX_007b_007d_002c-creating-from-WEB-647"></a><a name="index-WEB-programs_002c-typesetting-648"></a><a name="index-prettyprinting-WEB-programs-649"></a>
+Weave creates a TeX document from a WEB source file (see <a href="#WEB">WEB</a>),
+assuming various macros defined in <samp><span class="file">webmac.tex</span></samp>. 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:
+
+<pre class="example"> weave [<var>option</var>]... <var>webfile</var>[.web] [<var>changefile</var>[.ch]]
+</pre>
+ <p><a name="index-change-files_002c-and-Weave-650"></a>The output is to the basename of <var>webfile</var> extended with
+`<samp><span class="samp">.tex</span></samp>'; for example, `<samp><span class="samp">weave /wherever/foo.web</span></samp>' creates
+<samp><span class="file">./foo.tex</span></samp>. Weave applies <var>changefile</var> to <var>webfile</var>
+before writing the output; by default, there is no change file.
+
+ <p>The program accepts the following option, as well as the standard
+`<samp><span class="samp">-verbose</span></samp>', `<samp><span class="samp">-help</span></samp>' and `<samp><span class="samp">-version</span></samp>' (see <a href="#Common-options">Common options</a>):
+ <dl>
+<dt>`<samp><span class="samp">-x</span></samp>'<dd><a name="index-g_t_002dx-651"></a><a name="index-cross_002dreferences_002c-omitting-652"></a><a name="index-CONTENTS_002etex-653"></a><a name="index-webmac_002etex-654"></a>Omit the cross-reference information: the index, the list of WEB module
+names, and the table of contents (an empty <samp><span class="file">CONTENTS.tex</span></samp> file will
+still be written when the Weave output file is processed by TeX using
+the default <samp><span class="file">webmac.tex</span></samp>, though).
+</dl>
+
+ <p>Conventionally, WEB programmers should define the TeX <code>\title</code>
+macro at the beginning of the source file. Also, to get output of only
+changed modules, one can say <code>\let\maybe=\iffalse</code> (usually as the
+first change in the change file).
+
+<div class="node">
+<p><hr>
+<a name="pooltype-invocation"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#weave-invocation">weave invocation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#WEB">WEB</a>
+
+</div>
+
+<h3 class="section">8.3 Pooltype: Display WEB pool files</h3>
+
+<p><a name="index-pooltype-655"></a><a name="index-type-programs_002c-pool-656"></a><a name="index-string-numbers_002c-displaying-657"></a><a name="index-WEB-pool-files_002c-displaying-658"></a>
+Pooltype shows the so-called <dfn>string number</dfn> of each string in a WEB
+pool file (see <a href="#WEB">WEB</a>), as output by Tangle (see <a href="#tangle-invocation">tangle invocation</a>), 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:
+
+<pre class="example"> pooltype [<var>option</var>]... <var>poolfile</var>[.pool]
+</pre>
+ <p class="noindent">No path searching is done for <var>poolfile</var>. Output is to standard
+output.
+
+ <p>The only options are `<samp><span class="samp">--help</span></samp>' and `<samp><span class="samp">--version</span></samp>' (see <a href="#Common-options">Common options</a>).
+
+ <p>As an example of the output, here is the (edited) output for <samp><span class="file">tex.pool</span></samp>:
+<pre class="example"> 0: "^^@"
+ 1: "^^A"
+ ...
+ 255: "^^ff"
+ 256: "pool size"
+ ...
+ 1314: "Using character substitution: "
+ (23617 characters in all.)
+</pre>
+ <p><a name="index-representation-of-strings-659"></a><a name="index-string-representation-660"></a>In Metafont and MetaPost, the first 256 characters are actually
+represented as single bytes (i.e., themselves), not in the `<samp><span class="samp">^^</span></samp>'
+notation. Consider Pooltype as showing the results after conversion for
+output.
+
+<div class="node">
+<p><hr>
+<a name="DVI-utilities"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Font-utilities">Font utilities</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#WEB">WEB</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
+
+</div>
+
+<h2 class="chapter">9 DVI utilities</h2>
+
+<p><a name="index-DVI-utilities-661"></a>
+TeX outputs a file in <dfn>DVI</dfn> (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 (see <a href="dvips.html#Top">Introduction</a>), PCL
+printers (see dvilj(1)), and X displays (see xdvi(1)). In fact, DVI
+translators are available for virtually all common devices: see
+<samp><var>CTAN:</var><span class="file">/dviware</span></samp> (for CTAN info, see <a href="kpathsea.html#unixtex_002eftp">unixtex.ftp</a>).
+
+ <p><a name="index-dvitype_002eweb-662"></a><a name="index-DVI-format-definition-663"></a>For the precise definition of the DVI file format, see (for example) the
+source file <samp><span class="file">web2c/dvitype.web</span></samp>.
+
+ <p>The DVI-processing programs in the Web2c distribution are not device
+drivers; they perform generic utility functions.
+
+<ul class="menu">
+<li><a accesskey="1" href="#dvicopy-invocation">dvicopy invocation</a>: Expand virtual fonts.
+<li><a accesskey="2" href="#dvitype-invocation">dvitype invocation</a>: DVI to human-readable text.
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="dvicopy-invocation"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#dvitype-invocation">dvitype invocation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#DVI-utilities">DVI utilities</a>
+
+</div>
+
+<h3 class="section">9.1 DVIcopy: Canonicalize virtual font references</h3>
+
+<p><a name="index-dvicopy-664"></a><a name="index-virtual-fonts_002c-expanding-665"></a>
+DVIcopy reads a DVI file, expands any references to virtual fonts
+(see <a href="dvips.html#Virtual-fonts">Virtual fonts</a>) 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:
+
+<pre class="example"> dvicopy [<var>option</var>]... [<var>indvi</var>[.dvi] [<var>outdvi</var>[.dvi]]]
+</pre>
+ <p>DVIcopy reads standard input if <var>indvi</var> is not specified, and writes
+standard output if <var>outdvi</var> is not specified.
+
+ <p>The program accepts the following options, as well as the standard
+`<samp><span class="samp">-help</span></samp>' and `<samp><span class="samp">-version</span></samp>' (see <a href="#Common-options">Common options</a>):
+ <dl>
+<dt>`<samp><span class="samp">-magnification=</span><var>integer</var></samp>'<dd><a name="index-g_t_002dmagnification_003d_0040var_007binteger_007d-666"></a><a name="index-magnification-667"></a><a name="index-g_t_005cmag-668"></a>Override existing magnification in <var>indvi</var> with <var>integer</var>; 1000
+specifies no magnification. This is equivalent to setting TeX's
+<code>\mag</code> parameter.
+
+ <br><dt>`<samp><span class="samp">-max-pages=</span><var>n</var></samp>'<dd><a name="index-g_t_002dmax_002dpages_003d_0040var_007bn_007d-669"></a>Process <var>n</var> pages; default is one million.
+
+ <br><dt>`<samp><span class="samp">-page-start=</span><var>page-spec</var></samp>'<dd><a name="index-g_t_002dpage_002dstart_003d_0040var_007bpage_002dspec_007d-670"></a><a name="index-starting-page-671"></a><a name="index-page_002c-starting-672"></a><a name="index-g_t_005ccount_0040var_007bn_007d-673"></a>Start at the first page matching <var>page-spec</var>, which is one or more
+(signed) integers separated by periods, corresponding to TeX's
+<code>\count0...9</code> parameters at <code>\shipout</code> time; `<samp><span class="samp">*</span></samp>'
+matches anything. Examples: `<samp><span class="samp">3</span></samp>', `<samp><span class="samp">1.*.-4</span></samp>'.
+</dl>
+
+<div class="node">
+<p><hr>
+<a name="dvitype-invocation"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#dvicopy-invocation">dvicopy invocation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#DVI-utilities">DVI utilities</a>
+
+</div>
+
+<h3 class="section">9.2 DVItype: Plain text transliteration of DVI files</h3>
+
+<p><a name="index-dvitype-_0040r_007bDVI-validation_007d-674"></a><a name="index-conversion_002c-DVI-to-plain-text-675"></a><a name="index-plain-text_002c-converting-DVI-to-676"></a><a name="index-human_002dreadable-text_002c-converting-DVI-to-677"></a><a name="index-type-programs_002c-DVI-678"></a><a name="index-validation_002c-of-DVI-files-679"></a>
+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:
+
+<pre class="example"> dvitype [<var>option</var>]... <var>dvifile</var>[.dvi]
+</pre>
+ <p class="noindent">DVItype does not read any bitmap files, but it does read TFM files for
+fonts referenced in <var>dvifile</var>. The usual places are searched
+(see <a href="kpathsea.html#Supported-file-formats">Supported file formats</a>). To see all the
+relevant paths, set the environment variable <code>KPATHSEA_DEBUG</code> to
+`<samp><span class="samp">-1</span></samp>' before running the program.
+
+ <p>Output goes to standard output.
+
+ <p>The program accepts the following options, as well as the standard
+`<samp><span class="samp">-help</span></samp>' and `<samp><span class="samp">-version</span></samp>' (see <a href="#Common-options">Common options</a>):
+ <dl>
+<dt>`<samp><span class="samp">-dpi=</span><var>real</var></samp>'<dd><a name="index-g_t_002ddpi_003d_0040var_007breal_007d-680"></a>Do pixel movement calculations at <var>real</var> pixels per inch; default
+300.0.
+
+ <br><dt>`<samp><span class="samp">-magnification=</span><var>integer</var></samp>'<dd><a name="index-g_t_002dmagnification_003d_0040var_007binteger_007d-681"></a><a name="index-magnification-682"></a><a name="index-g_t_005cmag-683"></a>Override existing magnification in <var>indvi</var> with <var>integer</var>; 1000
+specifies no magnification. This is equivalent to setting TeX's
+<code>\mag</code> parameter.
+
+ <br><dt>`<samp><span class="samp">-max-pages=</span><var>n</var></samp>'<dd><a name="index-g_t_002dmax_002dpages_003d_0040var_007bn_007d-684"></a>Process <var>n</var> pages; default is one million.
+
+ <br><dt>`<samp><span class="samp">-output-level=</span><var>n</var></samp>'<dd><a name="index-g_t_002doutput_002dlevel_003d_0040var_007bn_007d-685"></a>Verbosity level of output, from 0 to 4 (default 4):
+ <ul>
+<li>0: Global document information only.
+<li>1: Most DVI commands included, and typeset characters summarized.
+<li>2: Character and movement commands explicitly included.
+<li>3: DVI stack and current position calculations included.
+<li>4: Same information as level 3, but DVItype does random positioning
+in the file, reading the DVI postamble first.
+</ul>
+
+ <br><dt>`<samp><span class="samp">-page-start=</span><var>page-spec</var></samp>'<dd><a name="index-g_t_002dpage_002dstart_003d_0040var_007bpage_002dspec_007d-686"></a><a name="index-starting-page-687"></a><a name="index-page_002c-starting-688"></a><a name="index-g_t_005ccount_0040var_007bn_007d-689"></a>Start at the first page matching <var>page-spec</var>, which is one or more
+(signed) integers separated by periods, corresponding to TeX's
+<code>\count0...9</code> parameters at <code>\shipout</code> time; `<samp><span class="samp">*</span></samp>'
+matches anything. Examples: `<samp><span class="samp">1</span></samp>', `<samp><span class="samp">5.*.-9</span></samp>'.
+
+ <br><dt>`<samp><span class="samp">-show-opcodes</span></samp>'<dd><a name="index-g_t_002dshow_002dopcodes-690"></a><a name="index-opcodes_002c-showing-DVI-691"></a><a name="index-DVI-opcodes_002c-showing-692"></a><a name="index-debugging-DVI-utilities-693"></a>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
+<samp><span class="file">dvitype.web</span></samp>, among others) the opcodes are shown in decimal.
+</dl>
+
+<ul class="menu">
+<li><a accesskey="1" href="#dvitype-output-example">dvitype output example</a>
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="dvitype-output-example"></a>
+Up:&nbsp;<a rel="up" accesskey="u" href="#dvitype-invocation">dvitype invocation</a>
+
+</div>
+
+<h4 class="subsection">9.2.1 DVItype output example</h4>
+
+<p><a name="index-dvitype-output-example-694"></a>As an example of the output from DVItype (see section above), here is
+its (abridged) translation of the <samp><span class="file">story.dvi</span></samp> resulting from
+running the example in <cite>The TeXbook</cite>, with
+`<samp><span class="samp">-output-level=4</span></samp>' and `<samp><span class="samp">-show-opcodes</span></samp>' on.
+
+<pre class="example"> ...
+ 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}
+</pre>
+ <p>Explanation:
+
+ <ul>
+<li>The DVItype options are recorded at the beginning, followed by
+global information about the document, including fonts used.
+
+ <li>Each DVI command is preceded by its byte position in the file
+(`<samp><span class="samp">42:</span></samp>', `<samp><span class="samp">87:</span></samp>', <small class="dots">...</small>), and (because of the
+`<samp><span class="samp">-show-opcodes</span></samp>') followed by its decimal opcode value in braces
+(`<samp><span class="samp">{141}</span></samp>', `<samp><span class="samp">{142}</span></samp>', <small class="dots">...</small>).
+
+ <li>The `<samp><span class="samp">level</span></samp>' lines record information about the DVI stack; `<samp><span class="samp">h</span></samp>'
+and `<samp><span class="samp">v</span></samp>' define the current position in DVI units, while `<samp><span class="samp">hh</span></samp>'
+and `<samp><span class="samp">vv</span></samp>' are the same in pixels.
+
+ <li>Text sequences are summarized in brackets, as in `<samp><span class="samp">[A SHORT
+STORY]</span></samp>' and the `<samp><span class="samp">[ 1]</span></samp>'.
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="Font-utilities"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Legalisms">Legalisms</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#DVI-utilities">DVI utilities</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
+
+</div>
+
+<h2 class="chapter">10 Font utilities</h2>
+
+<p><a name="index-font-utilities-695"></a>
+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.
+
+ <p><a name="index-pktype_002eweb-696"></a><a name="index-gftype_002eweb-697"></a><a name="index-PK-format-definition-698"></a><a name="index-GF-format-definition-699"></a>The precise definitions of the PK, GF, TFM, PL, VF, and VPL formats
+mentioned below are in the source files that read them;
+<samp><span class="file">pktype.web</span></samp>, <samp><span class="file">gftype.web</span></samp>, <samp><span class="file">tftopl.web</span></samp>, etc.
+
+<ul class="menu">
+<li><a accesskey="1" href="#Font-file-formats">Font file formats</a>: Explanations of GF, PK, TFM, VF, ...
+<li><a accesskey="2" href="#gftopk-invocation">gftopk invocation</a>: GF -&gt; PK (compact)
+<li><a accesskey="3" href="#pktogf-invocation">pktogf invocation</a>: PK -&gt; GF (expand).
+<li><a accesskey="4" href="#pktype-invocation">pktype invocation</a>: PK -&gt; human-readable text.
+<li><a accesskey="5" href="#gftype-invocation">gftype invocation</a>: GF -&gt; human-readable text.
+<li><a accesskey="6" href="#tftopl-invocation">tftopl invocation</a>: TFM -&gt; PL (for editing TFM).
+<li><a accesskey="7" href="#pltotf-invocation">pltotf invocation</a>: PL -&gt; TFM (make editing results usable).
+<li><a accesskey="8" href="#vftovp-invocation">vftovp invocation</a>: VF -&gt; VPL (tftopl for virtual fonts).
+<li><a accesskey="9" href="#vptovf-invocation">vptovf invocation</a>: VPL -&gt; VF (pltotf for virtual fonts).
+<li><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a>: Type 1, BDF, editors, etc.
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="Font-file-formats"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#gftopk-invocation">gftopk invocation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Font-utilities">Font utilities</a>
+
+</div>
+
+<h3 class="section">10.1 Font file formats</h3>
+
+<p><a name="index-font-file-formats-700"></a><a name="index-file-formats-for-fonts-701"></a>
+(For another perspective on this, see <a href="dvips.html#Font-concepts">Font concepts</a>).
+
+ <p>Font files come in several varieties, with suffixes like:
+<pre class="example"> .tfm .*pk .*gf .*pxl<span class="roman"> (obsolete)</span> .pl .mf .vf .vpl
+</pre>
+ <p class="noindent">Each represents a file format.
+
+ <p><a name="index-TFM-files_002c-explained-702"></a>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.
+
+ <p><a name="index-scaling-of-fonts-703"></a><a name="index-optical-font-scaling-704"></a><a name="index-geometric-font-scaling-705"></a><a name="index-PostScript_002c-and-font-scaling-706"></a>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.
+
+ <p><a name="index-DVI-files_002c-explained-707"></a>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 `<samp><span class="samp">.600pk</span></samp>' or `<samp><span class="samp">.600gf</span></samp>' or `<samp><span class="samp">.3000pxl</span></samp>', where
+the `<samp><span class="samp">600</span></samp>' is the horizontal dots-per-inch resolution at which the
+font was produced, and the `<samp><span class="samp">pk</span></samp>' or `<samp><span class="samp">gf</span></samp>' or `<samp><span class="samp">pxl</span></samp>'
+indicates the font format. Outline fonts in PostScript Type 1 format
+have suffixes such as `<samp><span class="samp">.pfa</span></samp>' or `<samp><span class="samp">.pfb</span></samp>'.
+
+ <p><a name="index-PXL-files_002c-explained-708"></a><a name="index-PK-files_002c-explained-709"></a><a name="index-GF-files_002c-explained-710"></a>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.
+
+ <p><a name="index-PL-files_002c-explained-711"></a>Font files with the `<samp><span class="samp">.pl</span></samp>' (property list) suffix are the plain text
+(human-readable) analog of the binary `<samp><span class="samp">.tfm</span></samp>' files.
+The TFtoPL and PLtoTF programs convert between the two formats
+(see <a href="#tftopl-invocation">tftopl invocation</a> and <a href="#pltotf-invocation">pltotf invocation</a>).
+
+ <p>Font files with the `<samp><span class="samp">.mf</span></samp>' 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.
+
+ <p><a name="index-virtual_002dfonts_002eknuth-712"></a><a name="index-virtualfonts_002etxt-713"></a>The suffix `<samp><span class="samp">.vf</span></samp>' identifies &ldquo;virtual font&rdquo; files, for which
+`<samp><span class="samp">.vpl</span></samp>' is the human-readable analog. See See <a href="#vftovp-invocation">vftovp invocation</a>,
+and <a href="#vptovf-invocation">vptovf invocation</a>. For further discussion of virtual fonts,
+see <samp><var>CTAN:</var><span class="file">/doc/virtual-fonts.knuth</span></samp>,
+<samp><var>CTAN:</var><span class="file">/help/virtualfonts.txt</span></samp>, and <a href="dvips.html#Virtual-fonts">Virtual fonts</a>.
+
+ <p><a name="index-MacKay_002c-Pierre-714"></a><a name="index-Tachikawa_002c-Elizabeth-715"></a>(This section is based on documentation in the original Unix TeX
+distribution by Pierre MacKay and Elizabeth Tachikawa.)
+
+<div class="node">
+<p><hr>
+<a name="gftopk-invocation"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#pktogf-invocation">pktogf invocation</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Font-file-formats">Font file formats</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Font-utilities">Font utilities</a>
+
+</div>
+
+<h3 class="section">10.2 GFtoPK: Generic to packed font conversion</h3>
+
+<p><a name="index-gftopk-716"></a><a name="index-conversion_002c-GF-to-PK-717"></a><a name="index-PK_002c-converting-GF-to-718"></a><a name="index-GF_002c-converting-to-PK-719"></a>
+GFtoPK converts a generic font (GF) file output by, for example,
+Metafont (see <a href="#mf-invocation">mf invocation</a>) 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:
+
+<pre class="example"> gftopk [<var>option</var>]... <var>gfname</var>.<var>dpi</var>[gf] [<var>pkfile</var>]
+</pre>
+ <p class="noindent">The font <var>gfname</var> is searched for in the usual places (see <a href="kpathsea.html#Glyph-lookup">Glyph lookup</a>). To see all the relevant paths, set the
+environment variable <code>KPATHSEA_DEBUG</code> to `<samp><span class="samp">-1</span></samp>' before running
+the program.
+
+ <p>The suffix `<samp><span class="samp">gf</span></samp>' is supplied if not already present. This suffix is
+not an extension; no `<samp><span class="samp">.</span></samp>' precedes it: for instance,
+<samp><span class="file">cmr10.600gf</span></samp>.
+
+ <p>If <var>pkfile</var> is not specified, the output is written to the basename
+of `<samp><var>gfname</var><span class="samp">.</span><var>dpi</var><span class="samp">pk</span></samp>', e.g., `<samp><span class="samp">gftopk
+/wherever/cmr10.600gf</span></samp>' creates <samp><span class="file">./cmr10.600pk</span></samp>.
+
+ <p>The only options are `<samp><span class="samp">--verbose</span></samp>', `<samp><span class="samp">--help</span></samp>', and
+`<samp><span class="samp">--version</span></samp>' (see <a href="#Common-options">Common options</a>).
+
+<div class="node">
+<p><hr>
+<a name="pktogf-invocation"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#pktype-invocation">pktype invocation</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#gftopk-invocation">gftopk invocation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Font-utilities">Font utilities</a>
+
+</div>
+
+<h3 class="section">10.3 PKtoGF: Packed to generic font conversion</h3>
+
+<p><a name="index-pktogf-720"></a><a name="index-conversion_002c-PK-to-GF-721"></a><a name="index-GF_002c-converting-PK-to-722"></a><a name="index-PK_002c-converting-to-GF-723"></a>
+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 (see <a href="#gftype-invocation">gftype invocation</a>) on the
+result, so you can see the bitmap images. Also, a few old utility
+programs do not support PK format. Synopsis:
+
+<pre class="example"> pktogf [<var>option</var>]... <var>pkname</var>.<var>dpi</var>[pk] [<var>gffile</var>]
+</pre>
+ <p class="noindent">The font <var>pkname</var> is searched for in the usual places (see <a href="kpathsea.html#Glyph-lookup">Glyph lookup</a>). To see all the relevant paths, set the
+environment variable <code>KPATHSEA_DEBUG</code> to `<samp><span class="samp">-1</span></samp>' before running
+the program.
+
+ <p>The suffix `<samp><span class="samp">pk</span></samp>' is supplied if not already present. This suffix is
+not an extension; no `<samp><span class="samp">.</span></samp>' precedes it: for instance,
+<samp><span class="file">cmr10.600pk</span></samp>.
+
+ <p>If <var>gffile</var> is not specified, the output is written to the basename
+of `<samp><var>pkname</var><span class="samp">.</span><var>dpi</var><span class="samp">gf</span></samp>', e.g., `<samp><span class="samp">pktogf
+/wherever/cmr10.600pk</span></samp>' creates <samp><span class="file">./cmr10.600gf</span></samp>.
+
+ <p>The only options are `<samp><span class="samp">--verbose</span></samp>', `<samp><span class="samp">--help</span></samp>', and
+`<samp><span class="samp">--version</span></samp>' (see <a href="#Common-options">Common options</a>).
+
+<div class="node">
+<p><hr>
+<a name="pktype-invocation"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#gftype-invocation">gftype invocation</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#pktogf-invocation">pktogf invocation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Font-utilities">Font utilities</a>
+
+</div>
+
+<h3 class="section">10.4 PKtype: Plain text transliteration of packed fonts</h3>
+
+<p><a name="index-pktype-_0040r_007bPK-validation_007d-724"></a><a name="index-conversion_002c-PK-to-plain-text-725"></a><a name="index-plain-text_002c-converting-PK-to-726"></a><a name="index-human_002dreadable-text_002c-converting-PK-to-727"></a><a name="index-type-programs_002c-PK-728"></a><a name="index-validation_002c-of-PK-files-729"></a>
+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:
+
+<pre class="example"> pktype <var>pkname</var>.<var>dpi</var>[pk]
+</pre>
+ <p>The font <var>pkname</var> is searched for in the usual places (see <a href="kpathsea.html#Glyph-lookup">Glyph lookup</a>). To see all the relevant paths, set the
+environment variable <code>KPATHSEA_DEBUG</code> to `<samp><span class="samp">-1</span></samp>' before running
+the program.
+
+ <p>The suffix `<samp><span class="samp">pk</span></samp>' is supplied if not already present. This suffix is
+not an extension; no `<samp><span class="samp">.</span></samp>' precedes it: for instance, <samp><span class="file">cmr10.600pk</span></samp>.
+
+ <p>The translation is written to standard output.
+
+ <p>The only options are `<samp><span class="samp">-help</span></samp>' and `<samp><span class="samp">-version</span></samp>'
+(see <a href="#Common-options">Common options</a>).
+
+ <p>As an example of the output, here is the (abridged) translation of the
+letter `K' in `<samp><span class="samp">cmr10</span></samp>', as rendered at 600<span class="dmn">dpi</span> with the mode
+`<samp><span class="samp">ljfour</span></samp>' from <a href="modes.mf">modes.mf</a> (available from
+<samp><span class="file">ftp://ftp.tug.org/tex/modes.mf</span></samp>).
+
+<pre class="smallexample"> 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
+</pre>
+ <p class="noindent">Explanation:
+
+ <dl>
+<dt>`<samp><span class="samp">955</span></samp>'<dd><a name="index-byte-position-730"></a>The byte position in the file where this character starts.
+
+ <br><dt>`<samp><span class="samp">Flag byte</span></samp>'<dt>`<samp><span class="samp">Dynamic packing variable</span></samp>'<dd><a name="index-flag-byte-731"></a><a name="index-dynamic-packing-variable-732"></a>Related to the packing for this character; see the source code.
+
+ <br><dt>`<samp><span class="samp">Character</span></samp>'<dd><a name="index-character-codes_002c-in-PKtype-output-733"></a>The character code, in decimal.
+
+ <br><dt>`<samp><span class="samp">Packet length</span></samp>'<dd><a name="index-packet-length-734"></a>The total length of this character definition, in bytes.
+
+ <br><dt>`<samp><span class="samp">TFM width</span></samp>'<dd><a name="index-TFM-width-of-characters-735"></a><a name="index-device_002dindependent-width-736"></a><a name="index-width_002c-device_002dindependent-737"></a>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.
+
+ <br><dt>`<samp><span class="samp">dx</span></samp>'<dd><a name="index-horizontal-escapement-738"></a><a name="index-escapement_002c-horizontal-739"></a><a name="index-scaled-pixels-740"></a><a name="index-dx-_0040r_007bhorizontal-escapement_007d-741"></a>The device-dependent width, in <dfn>scaled pixels</dfn>, i.e., units of
+horizontal pixels times 2^16.
+
+ <br><dt>`<samp><span class="samp">Height</span></samp>'<dt>`<samp><span class="samp">Width</span></samp>'<dd><a name="index-height_002c-in-pixels-742"></a><a name="index-pixel-height-743"></a><a name="index-pixel-width-744"></a><a name="index-width_002c-in-pixels-745"></a>The bitmap height and width, in pixels.
+
+ <br><dt>`<samp><span class="samp">X-offset</span></samp>'<dt>`<samp><span class="samp">Y-offset</span></samp>'<dd><a name="index-x-offset-746"></a><a name="index-y-offset-747"></a><a name="index-origin-748"></a><a name="index-reference-pixel-749"></a><a name="index-side-bearings-750"></a><a name="index-left-side-bearing-751"></a><a name="index-right-side-bearing-752"></a>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 <dfn>reference pixel</dfn> 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.
+
+ <br><dt>`<samp><span class="samp">[2]23(16)...</span></samp>'<dd><a name="index-run-length-encoded-bitmaps-753"></a><a name="index-repeated-rows-754"></a>Finally, run lengths of black pixels alternate with parenthesized run
+lengths of white pixels, and brackets indicate a repeated row.
+</dl>
+
+<div class="node">
+<p><hr>
+<a name="gftype-invocation"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#tftopl-invocation">tftopl invocation</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#pktype-invocation">pktype invocation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Font-utilities">Font utilities</a>
+
+</div>
+
+<h3 class="section">10.5 GFtype: Plain text transliteration of generic fonts</h3>
+
+<p><a name="index-gftype-_0040r_007bGF-validation_007d-755"></a><a name="index-conversion_002c-GF-to-plain-text-756"></a><a name="index-plain-text_002c-converting-GF-to-757"></a><a name="index-human_002dreadable-text_002c-converting-GF-to-758"></a><a name="index-type-programs_002c-GF-759"></a><a name="index-validation_002c-of-GF-files-760"></a>
+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:
+
+<pre class="example"> gftype [<var>option</var>]... <var>gfname</var>.<var>dpi</var>[gf]
+</pre>
+ <p>The font <var>gfname</var> is searched for in the usual places (see <a href="kpathsea.html#Glyph-lookup">Glyph lookup</a>). To see all the relevant paths, set the
+environment variable <code>KPATHSEA_DEBUG</code> to `<samp><span class="samp">-1</span></samp>' before running
+the program.
+
+ <p>The suffix `<samp><span class="samp">gf</span></samp>' is supplied if not already present. This suffix is
+not an extension; no `<samp><span class="samp">.</span></samp>' precedes it: for instance, <samp><span class="file">cmr10.600gf</span></samp>.
+
+ <p>The translation is written to standard output.
+
+ <p>The program accepts the following options, as well as the standard
+`<samp><span class="samp">-help</span></samp>' and `<samp><span class="samp">-version</span></samp>' (see <a href="#Common-options">Common options</a>):
+ <dl>
+<dt>`<samp><span class="samp">-images</span></samp>'<dd><a name="index-g_t_002dimages-761"></a>Show the characters' bitmaps using asterisks and spaces.
+
+ <br><dt>`<samp><span class="samp">-mnemonics</span></samp>'<dd><a name="index-g_t_002dmnemonics-762"></a>Translate all commands in the GF file.
+</dl>
+
+ <p>As an example of the output, here is the (abrdiged) translation of the
+letter `K' in `<samp><span class="samp">cmr10</span></samp>', as rendered at 600<span class="dmn">dpi</span> with the mode
+`<samp><span class="samp">ljfour</span></samp>' from <samp><span class="file">modes.mf</span></samp> (available from
+<a href="ftp://ftp.tug.org/tex/modes.mf">ftp://ftp.tug.org/tex/modes.mf</a>), with both `<samp><span class="samp">-mnemonics</span></samp>' and
+`<samp><span class="samp">-images</span></samp>' enabled.
+
+ <p>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:
+
+<pre class="example"> 2033: beginning of char 75: 3&lt;=m&lt;=60 0&lt;=n&lt;=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
+ .&lt;--This pixel's lower left corner is at (3,57) in METAFONT coordinates
+ ************************ ********************
+ ************************ ********************
+ ************************ ********************
+ ************************ ********************
+ ********** *************
+ ******** *********
+ ...
+ ******** ***********
+ ********** ************
+ ************************ **********************
+ ************************ **********************
+ ************************ **********************
+ ************************ **********************
+ .&lt;--This pixel's upper left corner is at (3,0) in METAFONT coordinates
+</pre>
+ <p class="noindent">Explanation:
+
+ <dl>
+<dt>`<samp><span class="samp">2033</span></samp>'<dt>`<samp><span class="samp">2043</span></samp>'<dt>`<samp><span class="samp">...</span></samp>'<dd><a name="index-byte-position-763"></a>The byte position in the file where each GF command starts.
+
+ <br><dt>`<samp><span class="samp">beginning of char 75</span></samp>'<dd><a name="index-character-codes_002c-in-GFtype-output-764"></a>The character code, in decimal.
+
+ <br><dt>`<samp><span class="samp">3&lt;=m&lt;=60 0&lt;=n&lt;=56</span></samp>'<dd><a name="index-left-side-bearing-765"></a><a name="index-right-side-bearing-766"></a><a name="index-side-bearings-767"></a>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.
+
+ <br><dt>`<samp><span class="samp">(initially n=56) paint (0)24(12)20</span></samp>'<dd><a name="index-run-length-encoded-bitmaps-768"></a>The first row of pixels: 0 white pixels, 24 black pixels, 12 white
+pixels, etc.
+
+ <br><dt>`<samp><span class="samp">newrow 0 (n=55) paint 24(12)20</span></samp>'<dd><a name="index-newrow-_0040r_007bGF-command_007d-769"></a>The second row of pixels, with zero leading white pixels on the row.
+
+ <br><dt>`<samp><span class="samp">eoc</span></samp>'<dd><a name="index-eoc-_0040r_007bGF-command_007d-770"></a>The end of the main character definition.
+
+ </dl>
+
+ <p>Here is the GF postamble information that GFtype outputs at the end:
+
+<pre class="example"> Character 75: dx 4259840 (65), width 815562 (64.57289), loc 2033
+</pre>
+ <p>Explanation:
+
+ <dl>
+<dt>`<samp><span class="samp">dx</span></samp>'<dd><a name="index-horizontal-escapement-771"></a><a name="index-escapement_002c-horizontal-772"></a><a name="index-vertical-escapement-773"></a><a name="index-escapement_002c-vertical-774"></a><a name="index-scaled-pixels-775"></a><a name="index-dx-_0040r_007bhorizontal-escapement_007d-776"></a><a name="index-dy-_0040r_007bvertical-escapement_007d-777"></a>The device-dependent width, in <dfn>scaled pixels</dfn>, i.e., units of
+horizontal pixels times 2^16. The `<samp><span class="samp">(65)</span></samp>' is simply the same number
+rounded. If the vertical escapement is nonzero, it would appear here as
+a `<samp><span class="samp">dy</span></samp>' value.
+
+ <br><dt>`<samp><span class="samp">width</span></samp>'<dd><a name="index-TFM-width-of-characters-778"></a><a name="index-device_002dindependent-width-779"></a><a name="index-width_002c-device_002dindependent-780"></a>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
+`<samp><span class="samp">64.57289</span></samp>' is the same number converted to pixels.
+
+ <br><dt>`<samp><span class="samp">loc</span></samp>'<dd>The byte position in the file where this character starts.
+
+ </dl>
+
+<div class="node">
+<p><hr>
+<a name="tftopl-invocation"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#pltotf-invocation">pltotf invocation</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#gftype-invocation">gftype invocation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Font-utilities">Font utilities</a>
+
+</div>
+
+<h3 class="section">10.6 TFtoPL: TeX font metric to property list conversion</h3>
+
+<p><a name="index-tftopl-781"></a><a name="index-conversion_002c-TFM-to-property-list-782"></a><a name="index-validation_002c-of-TFM-files-783"></a><a name="index-property-list_002c-converting-TFM-to-784"></a><a name="index-human_002dreadable-text_002c-converting-TFM-to-785"></a><a name="index-plain-text_002c-converting-TFM-to-786"></a>
+TFtoPL translates a TeX font metric (TFM, see <a href="dvips.html#Metric-files">Metric files</a>) file (as output by Metafont, for example) to
+<dfn>property list format</dfn> (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:
+
+<pre class="example"> tftopl [<var>option</var>]... <var>tfmname</var>[.tfm] [<var>plfile</var>[.pl]]
+</pre>
+ <p>The font <var>tfmname</var> (extended with `<samp><span class="samp">.tfm</span></samp>' if necessary) is
+searched for in the usual places (see <a href="kpathsea.html#Supported-file-formats">Supported file formats</a>). To see all the relevant paths, set the
+environment variable <code>KPATHSEA_DEBUG</code> to `<samp><span class="samp">-1</span></samp>' before running
+the program.
+
+ <p>If <var>plfile</var> (which is extended with `<samp><span class="samp">.pl</span></samp>' 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).
+
+ <p>The program accepts the following option, as well as the standard
+`<samp><span class="samp">-verbose</span></samp>', `<samp><span class="samp">-help</span></samp>' and `<samp><span class="samp">-version</span></samp>' (see <a href="#Common-options">Common options</a>):
+ <dl>
+<dt>`<samp><span class="samp">-charcode-format=</span><var>type</var></samp>'<dd><a name="index-g_t_002dcharcode_002dformat_003d_0040var_007btype_007d-787"></a>Output character codes in the PL file according to <var>type</var>: either
+`<samp><span class="samp">octal</span></samp>' or `<samp><span class="samp">ascii</span></samp>'. Default is `<samp><span class="samp">ascii</span></samp>' for letters and
+digits, octal for all other characters. Exception: if the font's coding
+scheme starts with `<samp><span class="samp">TeX math sy</span></samp>' or `<samp><span class="samp">TeX math ex</span></samp>', all
+character codes are output in octal.
+
+ <p>In `<samp><span class="samp">ascii</span></samp>' format, character codes that correspond to graphic
+characters, except for left and right parentheses, are output as a
+`<samp><span class="samp">C</span></samp>' followed by the single character: `<samp><span class="samp">C K</span></samp>', for example. In
+octal format, character codes are output as the letter `<samp><span class="samp">O</span></samp>' followed
+by octal digits, as in `<samp><span class="samp">O 113</span></samp>' for `<samp><span class="samp">K</span></samp>'.
+
+ <p>`<samp><span class="samp">octal</span></samp>' format is useful for symbol and other non-alphabetic fonts,
+where using ASCII characters for the character codes is merely
+confusing.
+</dl>
+
+ <p><a name="index-property-list-format-788"></a>As an example of the output, here is the (abridged) property list
+translation of <samp><span class="file">cmr10.tfm</span></samp>:
+
+<pre class="example"> (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)
+ ...
+ )
+ )
+ ...
+</pre>
+ <p>As you can see, the general format is a list of parenthesized
+<dfn>properties</dfn>, nested where necessary.
+
+ <ul>
+<li><a name="index-FAMILY-_0040r_007bproperty_007d-789"></a><a name="index-FACE-_0040r_007bproperty_007d-790"></a><a name="index-headerbyte-_0040r_007binformation_007d-791"></a>The first few items (<code>FAMILY</code>, <code>FACE</code>, and so on) are
+the so-called <dfn>headerbyte</dfn> information from Metafont, giving general
+information about the font.
+
+ <li><a name="index-FAMILY-_0040r_007bproperty_007d-792"></a><a name="index-g_t_005cfontdimen-793"></a>The <code>FONTDIMEN</code> property defines the TeX <code>\fontdimen</code>
+values.
+
+ <li><a name="index-LIGTABLE-_0040r_007bproperty_007d-794"></a><a name="index-LABEL-_0040r_007bproperty_007d-795"></a><a name="index-LIG-_0040r_007bproperty_007d-796"></a><a name="index-KRN-_0040r_007bproperty_007d-797"></a><a name="index-ligature-table_002c-in-TFM-files-798"></a><a name="index-kerning-table_002c-in-TFM-files-799"></a><a name="index-design_002dsize-units-800"></a>The <code>LIGTABLE</code> property defines the ligature and kerning table.
+<code>LIG</code> properties define ligatures: in the example above, an
+`<samp><span class="samp">f</span></samp>' (in the `<samp><span class="samp">LABEL</span></samp>') followed by an `<samp><span class="samp">i</span></samp>' 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&mdash;presumably the `fi' ligature. <code>KRN</code> properties define
+kerns: if an `<samp><span class="samp">f</span></samp>' 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).
+
+ <li><a name="index-CHARACTER-_0040r_007bproperty_007d-801"></a><a name="index-CHARWD-_0040r_007bproperty_007d-802"></a><a name="index-CHARHT-_0040r_007bproperty_007d-803"></a><a name="index-CHARDP-_0040r_007bproperty_007d-804"></a><a name="index-CHARIC-_0040r_007bproperty_007d-805"></a>The <code>CHARACTER</code> 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.
+
+ </ul>
+
+<div class="node">
+<p><hr>
+<a name="pltotf-invocation"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#vftovp-invocation">vftovp invocation</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#tftopl-invocation">tftopl invocation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Font-utilities">Font utilities</a>
+
+</div>
+
+<h3 class="section">10.7 PLtoTF: Property list to TeX font metric conversion</h3>
+
+<p><a name="index-pltotf-806"></a><a name="index-conversion_002c-property-list-to-TFM-807"></a><a name="index-TFM-files_002c-converting-property-lists-to-808"></a><a name="index-machine_002dreadable_002c-converting-property-lists-to-809"></a>
+PLtoTF translates a property list file (as output by TFtoPL, for
+example) to TeX font metric (TFM, see <a href="dvips.html#Metric-files">Metric files</a>)
+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:
+
+<pre class="example"> pltotf [<var>option</var>]... <var>plfile</var>[.pl] [<var>tfmfile</var>[.tfm]]
+</pre>
+ <p>If <var>tfmfile</var> (extended with `<samp><span class="samp">.tfm</span></samp>' if necessary) is
+not specified, the TFM file is written to the basename of
+`<samp><var>plfile</var><span class="samp">.tfm</span></samp>', e.g., `<samp><span class="samp">pltotf /wherever/cmr10.pl</span></samp>' creates
+<samp><span class="file">./cmr10.tfm</span></samp>. (Since TFM files are binary, writing to standard
+output by default is undesirable.)
+
+ <p>The only options are `<samp><span class="samp">-verbose</span></samp>', `<samp><span class="samp">-help</span></samp>', and
+`<samp><span class="samp">-version</span></samp>' (see <a href="#Common-options">Common options</a>).
+
+ <p>For an example of property list format, see the previous section.
+
+<div class="node">
+<p><hr>
+<a name="vftovp-invocation"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#vptovf-invocation">vptovf invocation</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#pltotf-invocation">pltotf invocation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Font-utilities">Font utilities</a>
+
+</div>
+
+<h3 class="section">10.8 VFtoVP: Virtual font to virtual property lists</h3>
+
+<p><a name="index-vftovp-810"></a><a name="index-conversion_002c-VF-to-VPL-811"></a><a name="index-validation_002c-of-VF-files-812"></a><a name="index-property-list_002c-converting-VF-to-virtual-813"></a><a name="index-human_002dreadable-text_002c-converting-VF-to-814"></a><a name="index-plain-text_002c-converting-VF-to-815"></a>
+VFtoVP translates a virtual font metric (VF, see <a href="dvips.html#Virtual-fonts">Virtual fonts</a>) file and its accompanying TeX font metric (TFM,
+see <a href="dvips.html#Metric-files">Metric files</a>) file (as output by VPtoVF, for
+example) to <dfn>virtual property list format</dfn> (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:
+
+<pre class="example"> vftovp [<var>option</var>]... <var>vfname</var>[.vf] [<var>tfmname</var>[.tfm] [<var>vplfile</var>[.vpl]]]
+</pre>
+ <p>The fonts <var>vfname</var> and <var>tfmname</var> (extended with `<samp><span class="samp">.vf</span></samp>' and
+`<samp><span class="samp">.tfm</span></samp>' if necessary) are searched for in the usual places
+(see <a href="kpathsea.html#Supported-file-formats">Supported file formats</a>). To see all the
+relevant paths, set the environment variable <code>KPATHSEA_DEBUG</code> to
+`<samp><span class="samp">-1</span></samp>' before running the program. If <var>tfmname</var> is not
+specified, <var>vfname</var> (without a trailing `<samp><span class="samp">.vf</span></samp>') is used.
+
+ <p>If <var>vplfile</var> (extended with `<samp><span class="samp">.vpl</span></samp>' 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).
+
+ <p>The program accepts the following option, as well as the standard
+`<samp><span class="samp">-verbose</span></samp>', `<samp><span class="samp">-help</span></samp>' and `<samp><span class="samp">-version</span></samp>' (see <a href="#Common-options">Common options</a>):
+ <dl>
+<dt>`<samp><span class="samp">-charcode-format=</span><var>type</var></samp>'<dd><a name="index-g_t_002dcharcode_002dformat_003d_0040var_007btype_007d-816"></a>Output character codes in the PL file according to <var>type</var>: either
+`<samp><span class="samp">octal</span></samp>' or `<samp><span class="samp">ascii</span></samp>'. Default is `<samp><span class="samp">ascii</span></samp>' for letters and
+digits, octal for all other characters. Exception: if the font's coding
+scheme starts with `<samp><span class="samp">TeX math sy</span></samp>' or `<samp><span class="samp">TeX math ex</span></samp>', all
+character codes are output in octal.
+
+ <p>In `<samp><span class="samp">ascii</span></samp>' format, character codes that correspond to graphic
+characters, except for left and right parentheses, are output as a
+`<samp><span class="samp">C</span></samp>' followed by the single character: `<samp><span class="samp">C K</span></samp>', for example. In
+octal format, character codes are output as the letter `<samp><span class="samp">O</span></samp>' followed
+by octal digits, as in `<samp><span class="samp">O 113</span></samp>' for `<samp><span class="samp">K</span></samp>'.
+
+ <p>`<samp><span class="samp">octal</span></samp>' format is useful for symbol and other non-alphabetic fonts,
+where using ASCII characters for the character codes is merely
+confusing.
+</dl>
+
+<div class="node">
+<p><hr>
+<a name="vptovf-invocation"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#vftovp-invocation">vftovp invocation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Font-utilities">Font utilities</a>
+
+</div>
+
+<h3 class="section">10.9 VPtoVF: Virtual property lists to virtual font</h3>
+
+<p><a name="index-vptovf-817"></a><a name="index-conversion_002c-property-list-to-VF-818"></a><a name="index-VF-files_002c-converting-property-lists-to-819"></a><a name="index-machine_002dreadable_002c-converting-property-lists-to-820"></a>
+VPtoVF translates a virtual property list file (as output by VFtoVP, for
+example) to virtual font (VF, see <a href="dvips.html#Virtual-fonts">Virtual fonts</a>) and
+TeX font metric (TFM, see <a href="dvips.html#Metric-files">Metric files</a>) 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:
+
+<pre class="example"> vptovf [<var>option</var>]... <var>vplfile</var>[.vpl] [<var>vffile</var>[.vf] [<var>tfmfile</var>[.tfm]]]
+</pre>
+ <p>If <var>vffile</var> (extended with `<samp><span class="samp">.vf</span></samp>' if necessary) is not
+specified, the VF output is written to the basename of
+`<samp><var>vplfile</var><span class="samp">.vf</span></samp>'; similarly for <var>tfmfile</var>. For example,
+`<samp><span class="samp">vptovf /wherever/ptmr.vpl</span></samp>' creates <samp><span class="file">./ptmr.vf</span></samp> and
+<samp><span class="file">./ptmr.tfm</span></samp>.
+
+ <p>The only options are `<samp><span class="samp">-verbose</span></samp>', `<samp><span class="samp">-help</span></samp>', and `<samp><span class="samp">-version</span></samp>'
+(see <a href="#Common-options">Common options</a>).
+
+<div class="node">
+<p><hr>
+<a name="Font-utilities-available-elsewhere"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#vptovf-invocation">vptovf invocation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Font-utilities">Font utilities</a>
+
+</div>
+
+<h3 class="section">10.10 Font utilities available elsewhere</h3>
+
+<p><a name="index-font-utilities_002c-non_002dWeb2c-821"></a>
+The Web2c complement of font utilities merely implements a few basic
+conversions. Many other more sophisticated font utilities exist; most
+are in <samp><var>CTAN:</var><span class="file">/fonts/utilities</span></samp> (for CTAN info,
+see <a href="kpathsea.html#unixtex_002eftp">unixtex.ftp</a>). Here are some of the most
+commonly-requested items:
+
+ <ul>
+<li><a name="index-AFM-to-TFM-conversion-822"></a><a name="index-afm2tfm-823"></a><a name="index-afmtopl-824"></a>AFM (Adobe font metric) to TFM conversion: see <a href="dvips.html#Invoking-afm2tfm">Invoking afm2tfm</a>, and <samp><var>CTAN:</var><span class="file">/fonts/utilities/afmtopl</span></samp>.
+
+ <li><a name="index-X-bitmap-fonts-825"></a><a name="index-BDF-and-GF-conversion-826"></a>BDF (the X bitmap format) conversion:
+<a href="ftp://ftp.tug.org/tex/bdf.tar.gz">ftp://ftp.tug.org/tex/bdf.tar.gz</a>.
+
+ <li><a name="index-metatype1-827"></a><a name="index-Latin-Modern-828"></a>Creating fonts using MetaPost: MetaType1.
+<a href="ftp://bop.eps.gda.pl/pub/metatype1">ftp://bop.eps.gda.pl/pub/metatype1</a>. This is used to create
+the excellent Latin Modern font family (<samp><var>CTAN:</var><span class="file">/fonts/lm</span></samp>),
+which extends Computer Modern to a vast repertoire of scripts.
+
+ <li><a name="index-editing-of-bitmap-fonts-829"></a><a name="index-xbfe_0040r_007b_002c-bitmap-font-editor_007d-830"></a><a name="index-xfed_0040r_007b_002c-bitmap-font-editor_007d-831"></a><a name="index-xfedor_0040r_007b_002c-bitmap-font-editor_007d-832"></a><a name="index-gftopxl-833"></a><a name="index-chtopx-834"></a><a name="index-pxtoch-835"></a>Editing of bitmap fonts: Xbfe from the GNU font utilities mentioned
+below; the X BDF-editing programs available from
+<a href="ftp://ftp.x.org/R5contrib/xfed.tar.Z">ftp://ftp.x.org/R5contrib/xfed.tar.Z</a> and
+<a href="ftp://ftp.x.org/R5contrib/xfedor.tar.Z">ftp://ftp.x.org/R5contrib/xfedor.tar.Z</a>; and finally, if your
+fonts have only 128 characters, you can use the old <code>gftopxl</code>,
+<code>pxtoch</code>, and <code>chtopx</code> programs from
+<a href="ftp://ftp.tug.org/tex/web">ftp://ftp.tug.org/tex/web</a>.
+
+ <li><a name="index-fontforge-836"></a><a name="index-pfaedit-837"></a>Editing of outline fonts: FontForge, <a href="fontforge.sourceforge.net">fontforge.sourceforge.net</a>.
+This is a very elaborate program with support for many outline formats
+(Type&nbsp;<!-- /@w -->1, OpenType, TrueType, <small class="dots">...</small>), and many advanced font
+editing features.
+
+ <li><a name="index-PK-bitmaps-from-PostScript-838"></a><a name="index-PostScript-to-PK-bitmaps-839"></a><a name="index-gsftopk-840"></a><a name="index-ps2pk-841"></a>PK bitmaps from PostScript outline fonts: gsftopk from the `<samp><span class="samp">xdvi</span></samp>'
+distribution. Alternatively, <code>ps2pk</code>, from
+<samp><var>CTAN:</var><span class="file">/fonts/utilities/ps2pk</span></samp>.
+
+ <li><a name="index-Type-1-conversion-842"></a><a name="index-PFA-and-PFB-conversion-843"></a><a name="index-PostScript-Type-1-font-conversion-844"></a>PostScript Type 1 font format conversion (i.e., between PFA and PFB
+formats): <a href="ftp://ftp.tug.org/tex/t1utils.tar.gz">ftp://ftp.tug.org/tex/t1utils.tar.gz</a>.
+
+ <li><a name="index-scanned-images-of-fonts-845"></a><a name="index-typeface-specimen-sheets-846"></a><a name="index-fontutils-847"></a>Scanned image conversion: the (aging) GNU font utilities convert type
+specimen images to Metafont, PostScript, etc.:
+<a href="http://www.gnu.org/software/fontutils/">http://www.gnu.org/software/fontutils/</a>.
+
+ <li><a name="index-autotrace-848"></a><a name="index-potrace-849"></a>Tracing bitmaps to fitted outlines: Autotrace
+(<a href="http://autotrace.sourceforge.net">http://autotrace.sourceforge.net</a>), Potrace
+(<a href="http://potrace.sourceforge.net">http://potrace.sourceforge.net</a>). For Metafont fonts, either of
+the two programs <code>mftrace</code>
+(<a href="http://www.xs4all.nl/~hanwen/mftrace">http://www.xs4all.nl/~hanwen/mftrace</a>) or <code>textrace</code>
+(<a href="http://textrace.sourceforge.net">http://textrace.sourceforge.net</a>) make the job easier.
+
+ <li><a name="index-virtual-font-creation-850"></a><a name="index-fontinst_0040r_007b_002c-for-creating-virtual-fonts_007d-851"></a>Virtual font creation: <samp><var>CTAN:</var><span class="file">/fonts/utilities/fontinst</span></samp>.
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="Legalisms"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#References">References</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Font-utilities">Font utilities</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
+
+</div>
+
+<h2 class="appendix">Appendix A Legalisms</h2>
+
+<p><a name="index-legalisms-852"></a><a name="index-copyright-notices-853"></a><a name="index-permissions_002c-legal-854"></a>
+In general, each file has its own copyright notice stating the copying
+permissions for that file. Following is a summary.
+
+ <p>The Web2c system itself and most of the original WEB source files are
+public domain.
+
+ <p><samp><span class="file">tex.web</span></samp>, the MLTeX code, <samp><span class="file">mf.web</span></samp>, and <samp><span class="file">bibtex.web</span></samp>,
+are copyrighted by their authors. They may be copied verbatim, but may
+be modified only through a <samp><span class="file">.ch</span></samp> file.
+
+ <p>MetaPost-related files, including <samp><span class="file">mp.web</span></samp> itself, are copyrighted
+under X-like terms; the precise notice is included below.
+
+ <p>Finally, the Kpathsea library is covered by the GNU Lesser General
+Public License (see <a href="kpathsea.html#Introduction">Introduction</a>). Therefore,
+the <em>binaries</em> 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 <samp><span class="file">LGPL</span></samp> for complete details on the LGPL.
+
+ <p>The following notice must be included by the terms of the MetaPost
+copyright.
+
+ <blockquote>
+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&amp;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.
+
+ <p>AT&amp;T disclaims all warranties with regard to this software, including
+all implied warranties of merchantability and fitness. In no event
+shall AT&amp;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.
+</blockquote>
+
+<div class="node">
+<p><hr>
+<a name="References"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Index">Index</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Legalisms">Legalisms</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
+
+</div>
+
+<h2 class="appendix">Appendix B References</h2>
+
+<p><a name="index-references-855"></a><a name="index-bibliography-856"></a>
+ <ol type=1 start=1>
+<li>Kpathsea: See <a href="kpathsea.html#Top">Introduction</a>.
+
+ <li>Dvips and Afm2tfm: See <a href="dvips.html#Top">Introduction</a>.
+
+ <li>The TeX Users Group: <a href="http://www.tug.org">http://www.tug.org</a>. For an introduction
+to the TeX system, see <a href="http://tug.org/begin.html">http://tug.org/begin.html</a>.
+
+ <li>TUGboat: <a href="http://tug.org/TUGboat">http://tug.org/TUGboat</a>.
+
+ <li>TeX and computer typesetting in general:<br>
+<a href="ftp://ftp.math.utah.edu/pub/tex/bib/texbook1.bib">ftp://ftp.math.utah.edu/pub/tex/bib/texbook1.bib</a>.
+
+ <li>For a bibliography of formal articles and technical reports on the
+TeX project, see the books <cite>TeX: The Program</cite> or
+<cite>Metafont: The Program</cite> cited below.
+
+ <!-- begin{thebibliography}{Knu86d} -->
+<li>[Bil87]
+Neenie Billawala.
+Write-white printing engines and tuning fonts with Metafont.
+<cite>TUGboat</cite>, 8(1):29&ndash;32, April 1987.
+
+ <li>[GMS94]
+Michel Goossens, Frank Mittelbach, and Alexander Samarin.
+<cite>The LaTeX Companion</cite>.
+Addison-Wesley, Reading, MA, USA, 1994.
+
+ <li>[Hob89]
+John D. Hobby.
+A Metafont-like system with PS output.
+<cite>TUGboat</cite>, 10(4):505&ndash;512, December 1989.
+
+ <li>[Hob92]
+John D. Hobby.
+A User's Manual for MetaPost.
+Technical Report CSTR-162, AT&amp;T Bell Laboratories, 1992.
+
+ <li>[Hob93]
+John D. Hobby.
+Drawing Graphs with MetaPost.
+Technical Report CSTR-164, AT&amp;T Bell Laboratories, 1993.
+
+ <li>[HS91]
+Samuel P. Harbison and Guy L. Steele Jr.
+<cite>C&mdash;A Reference Manual</cite>.
+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.
+
+ <li>[KL93]
+Donald E. Knuth and Silvio Levy.
+<cite>The CWEB System of Structured Documentation, Version 3.0</cite>.
+Addison-Wesley, Reading, MA, USA, 1993.
+
+ <li>[Knu84]
+Donald E. Knuth.
+A torture test for TeX.
+Report No. STAN-CS-84-1027, Stanford University, Department of Computer
+ Science, 1984.
+
+ <li>[Knu86a]
+Donald E. Knuth.
+A Torture Test for METAFONT.
+Report No. STAN-CS-86-1095, Stanford University, Department of Computer
+ Science, 1986.
+
+ <li>[Knu86b]
+Donald E. Knuth.
+<cite>The TeXbook</cite>, volume A of <cite>Computers and Typesetting</cite>.
+Addison-Wesley, Reading, MA, USA, 1986.
+
+ <li>[Knu86c]
+Donald E. Knuth.
+<cite>TeX: The Program</cite>, volume B of <cite>Computers and Typesetting</cite>.
+Addison-Wesley, Reading, MA, USA, 1986.
+
+ <li>[Knu86d]
+Donald E. Knuth.
+<cite>The METAFONTbook</cite>, volume C of <cite>Computers and Typesetting</cite>.
+Addison-Wesley, Reading, MA, USA, 1986.
+
+ <li>[Knu86e]
+Donald E. Knuth.
+<cite>METAFONT: The Program</cite>, volume D of <cite>Computers and
+ Typesetting</cite>.
+Addison-Wesley, Reading, MA, USA, 1986.
+
+ <li>[Knu86f]
+Donald E. Knuth.
+<cite>Computer Modern Typefaces</cite>, volume E of <cite>Computers and
+ Typesetting</cite>.
+Addison-Wesley, Reading, MA, USA, 1986.
+
+ <li>[Knu89]
+Donald E. Knuth.
+The errors of TeX.
+<cite>Software&mdash;Practice and Experience</cite>, 19(7):607&ndash;681, July
+ 1989.
+This is an updated version of iteKnuth:1988:ET.
+
+ <li>[Knu90]
+Donald Knuth.
+Virtual Fonts: More Fun for Grand Wizards.
+<cite>TUGboat</cite>, 11(1):13&ndash;23, April 1990.
+
+ <li>[Knu92]
+Donald E. Knuth.
+<cite>Literate Programming</cite>.
+CSLI Lecture Notes Number 27. Stanford University Center for the Study of
+ Language and Information, Stanford, CA, USA, 1992.
+
+ <li>[Lam94]
+Leslie Lamport.
+<cite>LaTeX: A Document Preparation System: User's Guide and Reference
+ Manual</cite>.
+Addison-Wesley, Reading, MA, USA, second edition, 1994.
+Reprinted with corrections in 1996.
+
+ <li>[Lia83]
+Franklin Mark Liang.
+Word hy-phen-a-tion by com-pu-ter.
+Technical Report STAN-CS-83-977, Stanford University, August 1983.
+
+ <li>[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, <cite>Raster Imaging and
+ Digital Typography II&mdash;Papers from the second RIDT meeting, held in
+ Boston, Oct. 14&ndash;16, 1991</cite>, pages 205&ndash;215, New York, 1991. Cambridge
+ University Press.
+
+ <li>[Spi89]
+Michael D. Spivak.
+<cite>LAMSTeX, The Synthesis</cite>.
+The TeXplorators Corporation, 3701 W. Alabama, Suite 450-273, Houston, TX
+ 77027, USA, 1989.
+
+ <li>[Spi90]
+Michael D. Spivak.
+<cite>The Joy of TeX&mdash;A Gourmet Guide to Typesetting with the
+ AMSTeX macro package</cite>.
+American Mathematical Society, Providence, RI, USA, 2nd revised edition, 1990.
+
+ <!-- end{thebibliography} -->
+</ol>
+
+<div class="node">
+<p><hr>
+<a name="Index"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#References">References</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
+
+</div>
+
+<h2 class="unnumbered">Index</h2>
+
+<ul class="index-cp" compact>
+<li><a href="#index-g_t_0040samp_007b_0023define_007d-options-36">`<samp><span class="samp">#define</span></samp>' options</a>: <a href="#Compile_002dtime-options">Compile-time options</a></li>
+<li><a href="#index-g_t_0024-_0040r_007bexpansion-in-filenames_007d-225"><code>$ </code><span class="roman">expansion in filenames</span></a>: <a href="#g_t_005cinput-filenames">\input filenames</a></li>
+<li><a href="#index-g_t_0025_0026-_0040r_007bmagic-number_007d-182"><code>%&amp; </code><span class="roman">magic number</span></a>: <a href="#Determining-the-memory-dump-to-use">Determining the memory dump to use</a></li>
+<li><a href="#index-g_t_002d-_0040r_007bstarting-a-filename_007d-93"><code>- </code><span class="roman">starting a filename</span></a>: <a href="#Option-conventions">Option conventions</a></li>
+<li><a href="#index-g_t_002d-_0040r_007bstarts-option-names_007d-91"><code>- </code><span class="roman">starts option names</span></a>: <a href="#Option-conventions">Option conventions</a></li>
+<li><a href="#index-g_t_002d_002d-_0040r_007bstarts-option-names_007d-92"><code>-- </code><span class="roman">starts option names</span></a>: <a href="#Option-conventions">Option conventions</a></li>
+<li><a href="#index-g_t_002d_002ddisable_002ddump_002dshare-configure-_0040r_007boption_007d-197"><code>--disable-dump-share configure </code><span class="roman">option</span></a>: <a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></li>
+<li><a href="#index-g_t_002d_002denable_002dipc-configure-_0040r_007boption_007d-252"><code>--enable-ipc configure </code><span class="roman">option</span></a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-g_t_002d_002dhelp-_0040r_007bcommon-option_007d-96"><code>--help </code><span class="roman">common option</span></a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-g_t_002d_002dquiet-_0028newer_0029-579"><code>--quiet (newer)</code></a>: <a href="#newer-invocation">newer invocation</a></li>
+<li><a href="#index-g_t_002d_002dverbose-_0028newer_0029-580"><code>--verbose (newer)</code></a>: <a href="#newer-invocation">newer invocation</a></li>
+<li><a href="#index-g_t_002d_002dverbose-_0040r_007bcommon-option_007d-98"><code>--verbose </code><span class="roman">common option</span></a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-g_t_002d_002dversion-_0040r_007bcommon-option_007d-100"><code>--version </code><span class="roman">common option</span></a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-g_t_002d_002dwith_002deditor_003d_0040var_007bcmd_007d-213"><code>--with-editor=</code><var>cmd</var></a>: <a href="#Editor-invocation">Editor invocation</a></li>
+<li><a href="#index-g_t_002d_002dwith_002depsfwin-406"><code>--with-epsfwin</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-g_t_002d_002dwith_002dhp2627win-408"><code>--with-hp2627win</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-g_t_002d_002dwith_002dmftalkwin-410"><code>--with-mftalkwin</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-g_t_002d_002dwith_002dnext-413"><code>--with-next</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-g_t_002d_002dwith_002dregiswin-415"><code>--with-regiswin</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-g_t_002d_002dwith_002dsuntoolswin-420"><code>--with-suntoolswin</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-g_t_002d_002dwith_002dtektronixwin-424"><code>--with-tektronixwin</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-g_t_002d_002dwith_002dunitermwin-428"><code>--with-unitermwin</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-g_t_002d_002dwith_002dx-434"><code>--with-x</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-g_t_002d_002dwith_002dx_002dtoolkit_003d_0040var_007bkit_007d-436"><code>--with-x-toolkit=</code><var>kit</var></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-g_t_002d_002dwith_002dx11-435"><code>--with-x11</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-g_t_002d_002dwith_002dx11win-433"><code>--with-x11win</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-g_t_002d8bit-138"><code>-8bit</code></a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-g_t_002dbase_003d_0040var_007bbase_007d-179"><code>-base=</code><var>base</var></a>: <a href="#Determining-the-memory-dump-to-use">Determining the memory dump to use</a></li>
+<li><a href="#index-g_t_002dbase_003d_0040var_007bdumpname_007d-107"><code>-base=</code><var>dumpname</var></a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-g_t_002dchange_003d_0040var_007bchfile_007d-471"><code>-change=</code><var>chfile</var></a>: <a href="#mft-invocation">mft invocation</a></li>
+<li><a href="#index-g_t_002dcharcode_002dformat_003d_0040var_007btype_007d-816"><code>-charcode-format=</code><var>type</var></a>: <a href="#vftovp-invocation">vftovp invocation</a></li>
+<li><a href="#index-g_t_002dcharcode_002dformat_003d_0040var_007btype_007d-787"><code>-charcode-format=</code><var>type</var></a>: <a href="#tftopl-invocation">tftopl invocation</a></li>
+<li><a href="#index-g_t_002dD-_0040r_007bcompiler-options_007d-37"><code>-D </code><span class="roman">compiler options</span></a>: <a href="#Compile_002dtime-options">Compile-time options</a></li>
+<li><a href="#index-g_t_002ddpi_003d_0040var_007breal_007d-680"><code>-dpi=</code><var>real</var></a>: <a href="#dvitype-invocation">dvitype invocation</a></li>
+<li><a href="#index-g_t_002denc-247"><code>-enc</code></a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-g_t_002dfile_002dline_002derror-102"><code>-file-line-error</code></a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-g_t_002dfile_002dline_002derror_002dstyle-104"><code>-file-line-error-style</code></a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-g_t_002dfmt_003d_0040var_007bdumpname_007d-106"><code>-fmt=</code><var>dumpname</var></a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-g_t_002dfmt_003d_0040var_007bfmt_007d-178"><code>-fmt=</code><var>fmt</var></a>: <a href="#Determining-the-memory-dump-to-use">Determining the memory dump to use</a></li>
+<li><a href="#index-g_t_002dgeometry_0040r_007b_002c-supported-with-Xt_007d-448"><code>-geometry</code><span class="roman">, supported with Xt</span></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-g_t_002dhalt_002don_002derror-110"><code>-halt-on-error</code></a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-g_t_002dimages-761"><code>-images</code></a>: <a href="#gftype-invocation">gftype invocation</a></li>
+<li><a href="#index-g_t_002dini-162"><code>-ini</code></a>: <a href="#Initial-and-virgin">Initial and virgin</a></li>
+<li><a href="#index-g_t_002dini-112"><code>-ini</code></a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-g_t_002dinteraction_003d_0040var_007bstring_007d-115"><code>-interaction=</code><var>string</var></a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-g_t_002dipc-250"><code>-ipc</code></a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-g_t_002dipc_002dstart-251"><code>-ipc-start</code></a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-g_t_002djobname_003d_0040var_007bstring_007d-117"><code>-jobname=</code><var>string</var></a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-g_t_002dkpathsea_002ddebug_003d_0040var_007bnumber_007d-119"><code>-kpathsea-debug=</code><var>number</var></a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-g_t_002dlength_003d_0040var_007bnumber_007d-635"><code>-length=</code><var>number</var></a>: <a href="#tangle-invocation">tangle invocation</a></li>
+<li><a href="#index-g_t_002dloose-643"><code>-loose</code></a>: <a href="#tangle-invocation">tangle invocation</a></li>
+<li><a href="#index-g_t_002dlowercase-637"><code>-lowercase</code></a>: <a href="#tangle-invocation">tangle invocation</a></li>
+<li><a href="#index-g_t_002dmagnification_003d_0040var_007binteger_007d-681"><code>-magnification=</code><var>integer</var></a>: <a href="#dvitype-invocation">dvitype invocation</a></li>
+<li><a href="#index-g_t_002dmagnification_003d_0040var_007binteger_007d-666"><code>-magnification=</code><var>integer</var></a>: <a href="#dvicopy-invocation">dvicopy invocation</a></li>
+<li><a href="#index-g_t_002dmax_002dpages_003d_0040var_007bn_007d-684"><code>-max-pages=</code><var>n</var></a>: <a href="#dvitype-invocation">dvitype invocation</a></li>
+<li><a href="#index-g_t_002dmax_002dpages_003d_0040var_007bn_007d-669"><code>-max-pages=</code><var>n</var></a>: <a href="#dvicopy-invocation">dvicopy invocation</a></li>
+<li><a href="#index-g_t_002dmem_003d_0040var_007bdumpname_007d-108"><code>-mem=</code><var>dumpname</var></a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-g_t_002dmem_003d_0040var_007bmem_007d-180"><code>-mem=</code><var>mem</var></a>: <a href="#Determining-the-memory-dump-to-use">Determining the memory dump to use</a></li>
+<li><a href="#index-g_t_002dmin_002dcrossrefs_003d_0040var_007bn_007d-597"><code>-min-crossrefs=</code><var>n</var></a>: <a href="#bibtex-invocation">bibtex invocation</a></li>
+<li><a href="#index-g_t_002dmixedcase-638"><code>-mixedcase</code></a>: <a href="#tangle-invocation">tangle invocation</a></li>
+<li><a href="#index-g_t_002dmktex_003d_0040var_007bfiletype_007d-376"><code>-mktex=</code><var>filetype</var></a>: <a href="#mf-invocation">mf invocation</a></li>
+<li><a href="#index-g_t_002dmktex_003d_0040var_007bfiletype_007d-253"><code>-mktex=</code><var>filetype</var></a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-g_t_002dmltex-255"><code>-mltex</code></a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-g_t_002dmnemonics-762"><code>-mnemonics</code></a>: <a href="#gftype-invocation">gftype invocation</a></li>
+<li><a href="#index-g_t_002dno_002dfile_002dline_002derror-103"><code>-no-file-line-error</code></a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-g_t_002dno_002dmktex_003d_0040var_007bfiletype_007d-377"><code>-no-mktex=</code><var>filetype</var></a>: <a href="#mf-invocation">mf invocation</a></li>
+<li><a href="#index-g_t_002dno_002dmktex_003d_0040var_007bfiletype_007d-254"><code>-no-mktex=</code><var>filetype</var></a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-g_t_002dno_002dparse_002dfirst_002dline-126"><code>-no-parse-first-line</code></a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-g_t_002dno_002dshell_002descape-263"><code>-no-shell-escape</code></a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-g_t_002doem-141"><code>-oem</code></a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-g_t_002doutput_002dcomment_003d_0040var_007bstring_007d-258"><code>-output-comment=</code><var>string</var></a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-g_t_002doutput_002ddirectory-152"><code>-output-directory</code></a>: <a href="#Output-file-location">Output file location</a></li>
+<li><a href="#index-g_t_002doutput_002ddirectory-123"><code>-output-directory</code></a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-g_t_002doutput_002dlevel_003d_0040var_007bn_007d-685"><code>-output-level=</code><var>n</var></a>: <a href="#dvitype-invocation">dvitype invocation</a></li>
+<li><a href="#index-g_t_002doverflow_002dlabel_002doffset_003d_0040var_007bpoints_007d-461"><code>-overflow-label-offset=</code><var>points</var></a>: <a href="#gftodvi-invocation">gftodvi invocation</a></li>
+<li><a href="#index-g_t_002dpage_002dstart_003d_0040var_007bpage_002dspec_007d-686"><code>-page-start=</code><var>page-spec</var></a>: <a href="#dvitype-invocation">dvitype invocation</a></li>
+<li><a href="#index-g_t_002dpage_002dstart_003d_0040var_007bpage_002dspec_007d-670"><code>-page-start=</code><var>page-spec</var></a>: <a href="#dvicopy-invocation">dvicopy invocation</a></li>
+<li><a href="#index-g_t_002dparse_002dfirst_002dline-125"><code>-parse-first-line</code></a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-g_t_002dprogname_003d_0040var_007bstring_007d-181"><code>-progname=</code><var>string</var></a>: <a href="#Determining-the-memory-dump-to-use">Determining the memory dump to use</a></li>
+<li><a href="#index-g_t_002dprogname_003d_0040var_007bstring_007d-128"><code>-progname=</code><var>string</var></a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-g_t_002drecorder-132"><code>-recorder</code></a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-g_t_002dshell_002descape-262"><code>-shell-escape</code></a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-g_t_002dshow_002dopcodes-690"><code>-show-opcodes</code></a>: <a href="#dvitype-invocation">dvitype invocation</a></li>
+<li><a href="#index-g_t_002dstrict-644"><code>-strict</code></a>: <a href="#tangle-invocation">tangle invocation</a></li>
+<li><a href="#index-g_t_002dstyle_003d_0040var_007bmftfile_007d-473"><code>-style=</code><var>mftfile</var></a>: <a href="#mft-invocation">mft invocation</a></li>
+<li><a href="#index-g_t_002dT-505"><code>-T</code></a>: <a href="#mpost-invocation">mpost invocation</a></li>
+<li><a href="#index-g_t_002dterse-594"><code>-terse</code></a>: <a href="#bibtex-invocation">bibtex invocation</a></li>
+<li><a href="#index-g_t_002dtex-573"><code>-tex</code></a>: <a href="#mpto-invocation">mpto invocation</a></li>
+<li><a href="#index-g_t_002dtex_003d_0040var_007btexprogram_007d-508"><code>-tex=</code><var>texprogram</var></a>: <a href="#mpost-invocation">mpost invocation</a></li>
+<li><a href="#index-g_t_002dtranslate_002dfile_003d_0040var_007btcxfile_007d-134"><code>-translate-file=</code><var>tcxfile</var></a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-g_t_002dtroff-572"><code>-troff</code></a>: <a href="#mpto-invocation">mpto invocation</a></li>
+<li><a href="#index-g_t_002dtroff-535"><code>-troff</code></a>: <a href="#makempx-invocation">makempx invocation</a></li>
+<li><a href="#index-g_t_002dtroff-506"><code>-troff</code></a>: <a href="#mpost-invocation">mpost invocation</a></li>
+<li><a href="#index-g_t_002dunderline-641"><code>-underline</code></a>: <a href="#tangle-invocation">tangle invocation</a></li>
+<li><a href="#index-g_t_002duppercase-639"><code>-uppercase</code></a>: <a href="#tangle-invocation">tangle invocation</a></li>
+<li><a href="#index-g_t_002dx-651"><code>-x</code></a>: <a href="#weave-invocation">weave invocation</a></li>
+<li><a href="#index-g_t_002e_0040r_007b_002c-used-for-output_007d-151"><code>.</code><span class="roman">, used for output</span></a>: <a href="#Output-file-location">Output file location</a></li>
+<li><a href="#index-g_t_002e2602gf-375"><code>.2602gf</code></a>: <a href="#mf-invocation">mf invocation</a></li>
+<li><a href="#index-g_t_002eaux-_0040r_007bcross_002dreference-files_007d-585"><code>.aux </code><span class="roman">cross-reference files</span></a>: <a href="#bibtex-invocation">bibtex invocation</a></li>
+<li><a href="#index-g_t_002ebase-380"><code>.base</code></a>: <a href="#Initial-Metafont">Initial Metafont</a></li>
+<li><a href="#index-g_t_002ebbl-_0040r_007bbibliography-files_007d-584"><code>.bbl </code><span class="roman">bibliography files</span></a>: <a href="#bibtex-invocation">bibtex invocation</a></li>
+<li><a href="#index-g_t_002ebib-_0040r_007bbibliography-databases_007d-586"><code>.bib </code><span class="roman">bibliography databases</span></a>: <a href="#bibtex-invocation">bibtex invocation</a></li>
+<li><a href="#index-g_t_002eblg-_0040r_007bBib_0040TeX_007b_007d-log-file_007d-587"><code>.blg </code><span class="roman">BibTeX log file</span></a>: <a href="#bibtex-invocation">bibtex invocation</a></li>
+<li><a href="#index-g_t_002efmt-274"><code>.fmt</code></a>: <a href="#Initial-TeX">Initial TeX</a></li>
+<li><a href="#index-g_t_002emem-511"><code>.mem</code></a>: <a href="#Initial-MetaPost">Initial MetaPost</a></li>
+<li><a href="#index-g_t_002emf-361"><code>.mf</code></a>: <a href="#mf-invocation">mf invocation</a></li>
+<li><a href="#index-g_t_002emp-487"><code>.mp</code></a>: <a href="#mpost-invocation">mpost invocation</a></li>
+<li><a href="#index-g_t_002e_0040var_007bnnn_007d-_0040r_007bPostScript-figures_007d-490"><code>.</code><var>nnn</var> <span class="roman">PostScript figures</span></a>: <a href="#mpost-invocation">mpost invocation</a></li>
+<li><a href="#index-g_t_002e_0040var_007bnnn_007dgf-_0040r_007bgeneric-fonts_007d-365"><code>.</code><var>nnn</var><code>gf </code><span class="roman">generic fonts</span></a>: <a href="#mf-invocation">mf invocation</a></li>
+<li><a href="#index-g_t_002etcx-_0040r_007bcharacter-translation-files_007d-310"><code>.tcx </code><span class="roman">character translation files</span></a>: <a href="#TCX-files">TCX files</a></li>
+<li><a href="#index-g_t_002etcx-_0040r_007bcharacter-translation-files_007d-136"><code>.tcx </code><span class="roman">character translation files</span></a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-g_t_002etex-234"><code>.tex</code></a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-g_t_002etfm-_0040r_007boutput_007d-491"><code>.tfm </code><span class="roman">output</span></a>: <a href="#mpost-invocation">mpost invocation</a></li>
+<li><a href="#index-g_t_002etfm-_0040r_007boutput_007d-370"><code>.tfm </code><span class="roman">output</span></a>: <a href="#mf-invocation">mf invocation</a></li>
+<li><a href="#index-g_t_002eXdefaults-446"><code>.Xdefaults</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-g_t_002eXresources-447"><code>.Xresources</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-g_t2602gf-374"><code>2602gf</code></a>: <a href="#mf-invocation">mf invocation</a></li>
+<li><a href="#index-g_t8-bit-clean-139">8 bit clean</a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-g_t8-bit-clean-output_002c-specifying-140"><code>8 bit clean output, specifying</code></a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-g_t8_002dbit-characters-313">8-bit characters</a>: <a href="#TCX-files">TCX files</a></li>
+<li><a href="#index-g_t_005cbibliography-589"><code>\bibliography</code></a>: <a href="#bibtex-invocation">bibtex invocation</a></li>
+<li><a href="#index-g_t_005cbibliographystyle-590"><code>\bibliographystyle</code></a>: <a href="#bibtex-invocation">bibtex invocation</a></li>
+<li><a href="#index-g_t_005ccharsubdef-_0040r_007band-ML_0040TeX_007b_007d_007d-303"><code>\charsubdef </code><span class="roman">and MLTeX</span></a>: <a href="#g_t_005ccharsubdef">\charsubdef</a></li>
+<li><a href="#index-g_t_005ccount_0040var_007bn_007d-689"><code>\count</code><var>n</var></a>: <a href="#dvitype-invocation">dvitype invocation</a></li>
+<li><a href="#index-g_t_005ccount_0040var_007bn_007d-673"><code>\count</code><var>n</var></a>: <a href="#dvicopy-invocation">dvicopy invocation</a></li>
+<li><a href="#index-g_t_005cfont-_0040r_007band-dynamic-generation_007d-239"><code>\font </code><span class="roman">and dynamic generation</span></a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-g_t_005cfontdimen-793"><code>\fontdimen</code></a>: <a href="#tftopl-invocation">tftopl invocation</a></li>
+<li><a href="#index-g_t_005cimmediate_005cwrite18-267"><code>\immediate\write18</code></a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-g_t_005cinput-_0040r_007bfilenames_007d-216"><code>\input </code><span class="roman">filenames</span></a>: <a href="#g_t_005cinput-filenames">\input filenames</a></li>
+<li><a href="#index-g_t_005cmag-683"><code>\mag</code></a>: <a href="#dvitype-invocation">dvitype invocation</a></li>
+<li><a href="#index-g_t_005cmag-668"><code>\mag</code></a>: <a href="#dvicopy-invocation">dvicopy invocation</a></li>
+<li><a href="#index-g_t_005copenout-_0040r_007band-security_007d-240"><code>\openout </code><span class="roman">and security</span></a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-g_t_005cstring-226"><code>\string</code></a>: <a href="#g_t_005cinput-filenames">\input filenames</a></li>
+<li><a href="#index-g_t_005ctracingcharsubdef-_0040r_007band-ML_0040TeX_007b_007d_007d-306"><code>\tracingcharsubdef </code><span class="roman">and MLTeX</span></a>: <a href="#g_t_005ctracingcharsubdef">\tracingcharsubdef</a></li>
+<li><a href="#index-g_t_005ctracinglostchars-_0040r_007band-ML_0040TeX_007b_007d_007d-308"><code>\tracinglostchars </code><span class="roman">and MLTeX</span></a>: <a href="#g_t_005ctracingcharsubdef">\tracingcharsubdef</a></li>
+<li><a href="#index-g_t_005cwrite18-_0040r_007bshell-escape-extension_007d-268"><code>\write18 </code><span class="roman">shell escape extension</span></a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-g_t_005e_005e-_0040r_007bnotation_002c-avoiding_007d-330"><code>^^ </code><span class="roman">notation, avoiding</span></a>: <a href="#TCX-files">TCX files</a></li>
+<li><a href="#index-g_t_0040cite_007bComputer-Modern-Typefaces_007d_002c-production-of-478"><cite>Computer Modern Typefaces</cite>, production of</a>: <a href="#mft-invocation">mft invocation</a></li>
+<li><a href="#index-abbrv_002ebst-612"><code>abbrv.bst</code></a>: <a href="#Basic-BibTeX-style-files">Basic BibTeX style files</a></li>
+<li><a href="#index-accented-character-314">accented character</a>: <a href="#TCX-files">TCX files</a></li>
+<li><a href="#index-accents_002c-hyphenating-words-with-300">accents, hyphenating words with</a>: <a href="#MLTeX">MLTeX</a></li>
+<li><a href="#index-acknowledgements-19">acknowledgements</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-acm_002ebst-613"><code>acm.bst</code></a>: <a href="#Basic-BibTeX-style-files">Basic BibTeX style files</a></li>
+<li><a href="#index-Ada_002c-WEB-for-627">Ada, WEB for</a>: <a href="#WEB">WEB</a></li>
+<li><a href="#index-additional-Make-targets-44">additional Make targets</a>: <a href="#Additional-targets">Additional targets</a></li>
+<li><a href="#index-AFM-to-TFM-conversion-822">AFM to TFM conversion</a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-afm2tfm-823"><code>afm2tfm</code></a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-afmtopl-824"><code>afmtopl</code></a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-aliases-for-fonts-147">aliases for fonts</a>: <a href="#Path-searching">Path searching</a></li>
+<li><a href="#index-alpha_002ebst-614"><code>alpha.bst</code></a>: <a href="#Basic-BibTeX-style-files">Basic BibTeX style files</a></li>
+<li><a href="#index-American-Mathematical-Society_002c-typesetting-system-284">American Mathematical Society, typesetting system</a>: <a href="#Formats">Formats</a></li>
+<li><a href="#index-AMS_0040TeX_007b_007d-283">AMSTeX</a>: <a href="#Formats">Formats</a></li>
+<li><a href="#index-apalike_002ebst-615"><code>apalike.bst</code></a>: <a href="#Basic-BibTeX-style-files">Basic BibTeX style files</a></li>
+<li><a href="#index-Arabic-typesetting-349">Arabic typesetting</a>: <a href="#TeX-extensions">TeX extensions</a></li>
+<li><a href="#index-architecture-dependencies-195">architecture dependencies</a>: <a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></li>
+<li><a href="#index-array-limit_002c-fixed-83">array limit, fixed</a>: <a href="#Runtime-options">Runtime options</a></li>
+<li><a href="#index-array-sizes-71">array sizes</a>: <a href="#Runtime-options">Runtime options</a></li>
+<li><a href="#index-assembly-language-routines-41">assembly language routines</a>: <a href="#Compile_002dtime-options">Compile-time options</a></li>
+<li><a href="#index-autotrace-848"><code>autotrace</code></a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-Awk_002c-WEB-for-626">Awk, WEB for</a>: <a href="#WEB">WEB</a></li>
+<li><a href="#index-base-file_002c-determining-176">base file, determining</a>: <a href="#Determining-the-memory-dump-to-use">Determining the memory dump to use</a></li>
+<li><a href="#index-base-files-381">base files</a>: <a href="#Initial-Metafont">Initial Metafont</a></li>
+<li><a href="#index-base-files_002c-need-mode-definitions-391">base files, need mode definitions</a>: <a href="#Modes">Modes</a></li>
+<li><a href="#index-base-files_002c-plain-only-388">base files, plain only</a>: <a href="#Initial-Metafont">Initial Metafont</a></li>
+<li><a href="#index-base-files_002c-sharing-189">base files, sharing</a>: <a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></li>
+<li><a href="#index-bases-_0040r_007bMake-target_007d-53"><code>bases </code><span class="roman">Make target</span></a>: <a href="#Additional-targets">Additional targets</a></li>
+<li><a href="#index-basic-Bib_0040TeX_007b_007d-style-files-609">basic BibTeX style files</a>: <a href="#Basic-BibTeX-style-files">Basic BibTeX style files</a></li>
+<li><a href="#index-basic-fonts-and-macros-29">basic fonts and macros</a>: <a href="#Installation">Installation</a></li>
+<li><a href="#index-batch-languages-230">batch languages</a>: <a href="#TeX">TeX</a></li>
+<li><a href="#index-BDF-and-GF-conversion-826">BDF and GF conversion</a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-beginfig-489"><code>beginfig</code></a>: <a href="#mpost-invocation">mpost invocation</a></li>
+<li><a href="#index-BeginPath-_0040r_007bditroff-command_007d-557"><code>BeginPath </code><span class="roman">ditroff command</span></a>: <a href="#dmp-invocation">dmp invocation</a></li>
+<li><a href="#index-Berry_002c-Karl-17">Berry, Karl</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-BIBINPUTS_0040r_007b_002c-search-path-for-bib-files_007d-592"><code>BIBINPUTS</code><span class="roman">, search path for bib files</span></a>: <a href="#bibtex-invocation">bibtex invocation</a></li>
+<li><a href="#index-bibliographies_002c-creating-581">bibliographies, creating</a>: <a href="#BibTeX">BibTeX</a></li>
+<li><a href="#index-bibliography-856">bibliography</a>: <a href="#References">References</a></li>
+<li><a href="#index-bibliography-items_002c-cross_002dreferenced-599">bibliography items, cross-referenced</a>: <a href="#bibtex-invocation">bibtex invocation</a></li>
+<li><a href="#index-bibtex-583"><code>bibtex</code></a>: <a href="#bibtex-invocation">bibtex invocation</a></li>
+<li><a href="#index-Bib_0040TeX_007b_007d-582">BibTeX</a>: <a href="#BibTeX">BibTeX</a></li>
+<li><a href="#index-Bib_0040TeX_007b_007d-collection-606">BibTeX collection</a>: <a href="#bibtex-invocation">bibtex invocation</a></li>
+<li><a href="#index-Bib_0040TeX_007b_007d-style-files-610">BibTeX style files</a>: <a href="#Basic-BibTeX-style-files">Basic BibTeX style files</a></li>
+<li><a href="#index-BigEndian-machines-192">BigEndian machines</a>: <a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></li>
+<li><a href="#index-binaries_002c-linking-129">binaries, linking</a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-blank-lines_002c-in-TCX-files-322">blank lines, in TCX files</a>: <a href="#TCX-files">TCX files</a></li>
+<li><a href="#index-Bourne-shell-commands-in-_0040TeX_007b_007d-265">Bourne shell commands in TeX</a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-boxes_002c-memory-for-74">boxes, memory for</a>: <a href="#Runtime-options">Runtime options</a></li>
+<li><a href="#index-breakpoints_002c-memory-for-76">breakpoints, memory for</a>: <a href="#Runtime-options">Runtime options</a></li>
+<li><a href="#index-Breitenlohner_002c-Peter-5">Breitenlohner, Peter</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-BSTINPUTS_0040r_007b_002c-search-path-for-bst-files_007d-593"><code>BSTINPUTS</code><span class="roman">, search path for bst files</span></a>: <a href="#bibtex-invocation">bibtex invocation</a></li>
+<li><a href="#index-btex-_0040r_007band-label-extraction_007d-569"><code>btex </code><span class="roman">and label extraction</span></a>: <a href="#mpto-invocation">mpto invocation</a></li>
+<li><a href="#index-btex-_0040r_007bfor-MetaPost-labels_007d-495"><code>btex </code><span class="roman">for MetaPost labels</span></a>: <a href="#mpost-invocation">mpost invocation</a></li>
+<li><a href="#index-btxdoc_002ebib-603"><code>btxdoc.bib</code></a>: <a href="#bibtex-invocation">bibtex invocation</a></li>
+<li><a href="#index-btxdoc_002etex-600"><code>btxdoc.tex</code></a>: <a href="#bibtex-invocation">bibtex invocation</a></li>
+<li><a href="#index-btxhak_002etex-601"><code>btxhak.tex</code></a>: <a href="#bibtex-invocation">bibtex invocation</a></li>
+<li><a href="#index-byte-position-763">byte position</a>: <a href="#gftype-invocation">gftype invocation</a></li>
+<li><a href="#index-byte-position-730">byte position</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-byte-swapping-198">byte swapping</a>: <a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></li>
+<li><a href="#index-c_002dsources-_0040r_007bMakefile-target_007d-47"><code>c-sources </code><span class="roman">Makefile target</span></a>: <a href="#Additional-targets">Additional targets</a></li>
+<li><a href="#index-captions_002c-extracting-from-MetaPost-input-566">captions, extracting from MetaPost input</a>: <a href="#mpto-invocation">mpto invocation</a></li>
+<li><a href="#index-captions_002c-for-MetaPost-525">captions, for MetaPost</a>: <a href="#makempx-invocation">makempx invocation</a></li>
+<li><a href="#index-change-files_002c-and-MFT-472">change files, and MFT</a>: <a href="#mft-invocation">mft invocation</a></li>
+<li><a href="#index-change-files_002c-and-Tangle-632">change files, and Tangle</a>: <a href="#tangle-invocation">tangle invocation</a></li>
+<li><a href="#index-change-files_002c-and-Weave-650">change files, and Weave</a>: <a href="#weave-invocation">weave invocation</a></li>
+<li><a href="#index-changing-error-messages-style-105">changing error messages style</a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-character-codes_002c-in-GFtype-output-764">character codes, in GFtype output</a>: <a href="#gftype-invocation">gftype invocation</a></li>
+<li><a href="#index-character-codes_002c-in-PKtype-output-733">character codes, in PKtype output</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-character-codes_002c-in-TCX-files-325">character codes, in TCX files</a>: <a href="#TCX-files">TCX files</a></li>
+<li><a href="#index-character-proofs-of-fonts-454">character proofs of fonts</a>: <a href="#gftodvi-invocation">gftodvi invocation</a></li>
+<li><a href="#index-CHARACTER-_0040r_007bproperty_007d-801"><code>CHARACTER </code><span class="roman">property</span></a>: <a href="#tftopl-invocation">tftopl invocation</a></li>
+<li><a href="#index-character-translation-files-311">character translation files</a>: <a href="#TCX-files">TCX files</a></li>
+<li><a href="#index-CHARDP-_0040r_007bproperty_007d-804"><code>CHARDP </code><span class="roman">property</span></a>: <a href="#tftopl-invocation">tftopl invocation</a></li>
+<li><a href="#index-CHARHT-_0040r_007bproperty_007d-803"><code>CHARHT </code><span class="roman">property</span></a>: <a href="#tftopl-invocation">tftopl invocation</a></li>
+<li><a href="#index-CHARIC-_0040r_007bproperty_007d-805"><code>CHARIC </code><span class="roman">property</span></a>: <a href="#tftopl-invocation">tftopl invocation</a></li>
+<li><a href="#index-CHARWD-_0040r_007bproperty_007d-802"><code>CHARWD </code><span class="roman">property</span></a>: <a href="#tftopl-invocation">tftopl invocation</a></li>
+<li><a href="#index-chtopx-834"><code>chtopx</code></a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-class-name-for-Metafont-443">class name for Metafont</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-cm_002ebase-385"><code>cm.base</code></a>: <a href="#Initial-Metafont">Initial Metafont</a></li>
+<li><a href="#index-cmbase_002emf-386"><code>cmbase.mf</code></a>: <a href="#Initial-Metafont">Initial Metafont</a></li>
+<li><a href="#index-cmbase_002emft-476"><code>cmbase.mft</code></a>: <a href="#mft-invocation">mft invocation</a></li>
+<li><a href="#index-cmmf_002ebase-_0040r_007bnot-recommended_007d-384"><code>cmmf.base </code><span class="roman">not recommended</span></a>: <a href="#Initial-Metafont">Initial Metafont</a></li>
+<li><a href="#index-comments_002c-in-TCX-files-324">comments, in TCX files</a>: <a href="#TCX-files">TCX files</a></li>
+<li><a href="#index-comments_002c-MFT-control-469">comments, MFT control</a>: <a href="#mft-invocation">mft invocation</a></li>
+<li><a href="#index-common-options-95">common options</a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-commonalities-87">commonalities</a>: <a href="#Commonalities">Commonalities</a></li>
+<li><a href="#index-comparing-file-modification-times-575">comparing file modification times</a>: <a href="#newer-invocation">newer invocation</a></li>
+<li><a href="#index-compilation-25">compilation</a>: <a href="#Installation">Installation</a></li>
+<li><a href="#index-compile_002dtime-options-35">compile-time options</a>: <a href="#Compile_002dtime-options">Compile-time options</a></li>
+<li><a href="#index-compile_002dtime-options-33">compile-time options</a>: <a href="#configure-options">configure options</a></li>
+<li><a href="#index-Computer-Modern-fonts_002c-and-Troff-499">Computer Modern fonts, and Troff</a>: <a href="#mpost-invocation">mpost invocation</a></li>
+<li><a href="#index-Computer-Modern-macros-387">Computer Modern macros</a>: <a href="#Initial-Metafont">Initial Metafont</a></li>
+<li><a href="#index-configuration-24">configuration</a>: <a href="#Installation">Installation</a></li>
+<li><a href="#index-configuration-file-reading-145">configuration file reading</a>: <a href="#Path-searching">Path searching</a></li>
+<li><a href="#index-configuration-file-values-70">configuration file values</a>: <a href="#Runtime-options">Runtime options</a></li>
+<li><a href="#index-configuration_002c-compile_002dtime-32">configuration, compile-time</a>: <a href="#configure-options">configure options</a></li>
+<li><a href="#index-configure-_002d_002dwith_002f_002d_002denable-_0040r_007boptions_007d-34"><code>configure --with/--enable </code><span class="roman">options</span></a>: <a href="#configure-options">configure options</a></li>
+<li><a href="#index-CONTENTS_002etex-653"><code>CONTENTS.tex</code></a>: <a href="#weave-invocation">weave invocation</a></li>
+<li><a href="#index-control-sequence-names_002c-space-for-81">control sequence names, space for</a>: <a href="#Runtime-options">Runtime options</a></li>
+<li><a href="#index-conventions-for-options_002c-89">conventions for options,</a>: <a href="#Option-conventions">Option conventions</a></li>
+<li><a href="#index-conversion_002c-DVI-to-plain-text-675">conversion, DVI to plain text</a>: <a href="#dvitype-invocation">dvitype invocation</a></li>
+<li><a href="#index-conversion_002c-GF-to-PK-717">conversion, GF to PK</a>: <a href="#gftopk-invocation">gftopk invocation</a></li>
+<li><a href="#index-conversion_002c-GF-to-plain-text-756">conversion, GF to plain text</a>: <a href="#gftype-invocation">gftype invocation</a></li>
+<li><a href="#index-conversion_002c-PK-to-GF-721">conversion, PK to GF</a>: <a href="#pktogf-invocation">pktogf invocation</a></li>
+<li><a href="#index-conversion_002c-PK-to-plain-text-725">conversion, PK to plain text</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-conversion_002c-property-list-to-TFM-807">conversion, property list to TFM</a>: <a href="#pltotf-invocation">pltotf invocation</a></li>
+<li><a href="#index-conversion_002c-property-list-to-VF-818">conversion, property list to VF</a>: <a href="#vptovf-invocation">vptovf invocation</a></li>
+<li><a href="#index-conversion_002c-TFM-to-property-list-782">conversion, TFM to property list</a>: <a href="#tftopl-invocation">tftopl invocation</a></li>
+<li><a href="#index-conversion_002c-VF-to-VPL-811">conversion, VF to VPL</a>: <a href="#vftovp-invocation">vftovp invocation</a></li>
+<li><a href="#index-copyright-notices-853">copyright notices</a>: <a href="#Legalisms">Legalisms</a></li>
+<li><a href="#index-Cork-encoding-and-ISO-input-319">Cork encoding and ISO input</a>: <a href="#TCX-files">TCX files</a></li>
+<li><a href="#index-creating-memory-dumps-172">creating memory dumps</a>: <a href="#Creating-memory-dumps">Creating memory dumps</a></li>
+<li><a href="#index-cross_002dreferenced-bibliography-items-598">cross-referenced bibliography items</a>: <a href="#bibtex-invocation">bibtex invocation</a></li>
+<li><a href="#index-cross_002dreferences_002c-omitting-652">cross-references, omitting</a>: <a href="#weave-invocation">weave invocation</a></li>
+<li><a href="#index-current-directory_002c-used-for-output-150">current directory, used for output</a>: <a href="#Output-file-location">Output file location</a></li>
+<li><a href="#index-Curtis_002c-Pavel-15">Curtis, Pavel</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-CWEB-625">CWEB</a>: <a href="#WEB">WEB</a></li>
+<li><a href="#index-Cweb-624">Cweb</a>: <a href="#WEB">WEB</a></li>
+<li><a href="#index-D-_0040var_007bc_007d-_0040r_007bditroff-graphics_007d-554"><code>D </code><var>c</var> <span class="roman">ditroff graphics</span></a>: <a href="#dmp-invocation">dmp invocation</a></li>
+<li><a href="#index-date-and-time_002c-in-memory-dumps-202">date and time, in memory dumps</a>: <a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></li>
+<li><a href="#index-debugging-DVI-utilities-693">debugging DVI utilities</a>: <a href="#dvitype-invocation">dvitype invocation</a></li>
+<li><a href="#index-debugging-flags_002c-specifying-121">debugging flags, specifying</a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-decimal-character-codes_002c-in-TCX-files-328">decimal character codes, in TCX files</a>: <a href="#TCX-files">TCX files</a></li>
+<li><a href="#index-dependencies_002c-hardware-196">dependencies, hardware</a>: <a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></li>
+<li><a href="#index-design_002dsize-units-800">design-size units</a>: <a href="#tftopl-invocation">tftopl invocation</a></li>
+<li><a href="#index-device-definitions_002c-for-Metafont-392">device definitions, for Metafont</a>: <a href="#Modes">Modes</a></li>
+<li><a href="#index-device_002dindependent-width-779">device-independent width</a>: <a href="#gftype-invocation">gftype invocation</a></li>
+<li><a href="#index-device_002dindependent-width-736">device-independent width</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-directory-structure-28">directory structure</a>: <a href="#Installation">Installation</a></li>
+<li><a href="#index-DISPLAY-449"><code>DISPLAY</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-ditroff-output_002c-converting-to-MPX-551">ditroff output, converting to MPX</a>: <a href="#dmp-invocation">dmp invocation</a></li>
+<li><a href="#index-DMP-550"><code>DMP</code></a>: <a href="#dmp-invocation">dmp invocation</a></li>
+<li><a href="#index-DMP-544"><code>DMP</code></a>: <a href="#makempx-invocation">makempx invocation</a></li>
+<li><a href="#index-DMP_002c-invoked-by-MakeMPX-529">DMP, invoked by MakeMPX</a>: <a href="#makempx-invocation">makempx invocation</a></li>
+<li><a href="#index-dmp_002ec-562"><code>dmp.c</code></a>: <a href="#dmp-invocation">dmp invocation</a></li>
+<li><a href="#index-dot-files_002c-written-by-_0040TeX_007b_007d-programs-244">dot files, written by TeX programs</a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-downloading-of-fonts-for-MetaPost-labels-501">downloading of fonts for MetaPost labels</a>: <a href="#mpost-invocation">mpost invocation</a></li>
+<li><a href="#index-dpost-553"><code>dpost</code></a>: <a href="#dmp-invocation">dmp invocation</a></li>
+<li><a href="#index-DrawingServant-412"><code>DrawingServant</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-DrawPath-_0040r_007bditroff-command_007d-558"><code>DrawPath </code><span class="roman">ditroff command</span></a>: <a href="#dmp-invocation">dmp invocation</a></li>
+<li><a href="#index-dump-file-109">dump file</a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-dumping-memory-168">dumping memory</a>: <a href="#Memory-dumps">Memory dumps</a></li>
+<li><a href="#index-DVI-comment_002c-specifying-260">DVI comment, specifying</a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-DVI-files_002c-converting-to-MPX-548">DVI files, converting to MPX</a>: <a href="#dvitomp-invocation">dvitomp invocation</a></li>
+<li><a href="#index-DVI-files_002c-creating-multiple-352">DVI files, creating multiple</a>: <a href="#TeX-extensions">TeX extensions</a></li>
+<li><a href="#index-DVI-files_002c-explained-707">DVI files, explained</a>: <a href="#Font-file-formats">Font file formats</a></li>
+<li><a href="#index-DVI-format-definition-663">DVI format definition</a>: <a href="#DVI-utilities">DVI utilities</a></li>
+<li><a href="#index-DVI-opcodes_002c-showing-692">DVI opcodes, showing</a>: <a href="#dvitype-invocation">dvitype invocation</a></li>
+<li><a href="#index-DVI-utilities-661">DVI utilities</a>: <a href="#DVI-utilities">DVI utilities</a></li>
+<li><a href="#index-dvicopy-664"><code>dvicopy</code></a>: <a href="#dvicopy-invocation">dvicopy invocation</a></li>
+<li><a href="#index-dvitomp-547"><code>dvitomp</code></a>: <a href="#dvitomp-invocation">dvitomp invocation</a></li>
+<li><a href="#index-DVITOMP-543"><code>DVITOMP</code></a>: <a href="#makempx-invocation">makempx invocation</a></li>
+<li><a href="#index-DVItoMP_002c-invoked-by-MakeMPX-528">DVItoMP, invoked by MakeMPX</a>: <a href="#makempx-invocation">makempx invocation</a></li>
+<li><a href="#index-dvitype-_0040r_007bDVI-validation_007d-674"><code>dvitype </code><span class="roman">DVI validation</span></a>: <a href="#dvitype-invocation">dvitype invocation</a></li>
+<li><a href="#index-dvitype-output-example-694">dvitype output example</a>: <a href="#dvitype-output-example">dvitype output example</a></li>
+<li><a href="#index-dvitype_002eweb-662"><code>dvitype.web</code></a>: <a href="#DVI-utilities">DVI utilities</a></li>
+<li><a href="#index-dx-_0040r_007bhorizontal-escapement_007d-776">dx <span class="roman">horizontal escapement</span></a>: <a href="#gftype-invocation">gftype invocation</a></li>
+<li><a href="#index-dx-_0040r_007bhorizontal-escapement_007d-741">dx <span class="roman">horizontal escapement</span></a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-dy-_0040r_007bvertical-escapement_007d-777">dy <span class="roman">vertical escapement</span></a>: <a href="#gftype-invocation">gftype invocation</a></li>
+<li><a href="#index-dynamic-array-allocation-86">dynamic array allocation</a>: <a href="#Runtime-options">Runtime options</a></li>
+<li><a href="#index-dynamic-Metafont-mode-definitions-with-_0040code_007bsmode_007d-399">dynamic Metafont mode definitions with <code>smode</code></a>: <a href="#Modes">Modes</a></li>
+<li><a href="#index-dynamic-packing-variable-732">dynamic packing variable</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-e-_0040r_007bresponse-at-error-prompt_007d-209"><code>e </code><span class="roman">response at error prompt</span></a>: <a href="#Editor-invocation">Editor invocation</a></li>
+<li><a href="#index-e_002dcircumflex-304">e-circumflex</a>: <a href="#g_t_005ccharsubdef">\charsubdef</a></li>
+<li><a href="#index-e_002d_0040TeX_007b_007d-342">e-TeX</a>: <a href="#TeX-extensions">TeX extensions</a></li>
+<li><a href="#index-e_002emft-477"><code>e.mft</code></a>: <a href="#mft-invocation">mft invocation</a></li>
+<li><a href="#index-EC-fonts-363">EC fonts</a>: <a href="#mf-invocation">mf invocation</a></li>
+<li><a href="#index-EC-fonts-237">EC fonts</a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-editing-of-bitmap-fonts-829">editing of bitmap fonts</a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-editor-invoked-at-error-207">editor invoked at error</a>: <a href="#Editor-invocation">Editor invocation</a></li>
+<li><a href="#index-eight_002dbit-characters-in-filenames-221">eight-bit characters in filenames</a>: <a href="#g_t_005cinput-filenames">\input filenames</a></li>
+<li><a href="#index-empty_002etcx-318"><code>empty.tcx</code></a>: <a href="#TCX-files">TCX files</a></li>
+<li><a href="#index-endian-dependencies-193">endian dependencies</a>: <a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></li>
+<li><a href="#index-eoc-_0040r_007bGF-command_007d-770"><code>eoc </code><span class="roman">GF command</span></a>: <a href="#gftype-invocation">gftype invocation</a></li>
+<li><a href="#index-Eplain-289">Eplain</a>: <a href="#Formats">Formats</a></li>
+<li><a href="#index-epsf-404"><code>epsf</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-errors_002c-editor-invoked-at-208">errors, editor invoked at</a>: <a href="#Editor-invocation">Editor invocation</a></li>
+<li><a href="#index-escapement_002c-horizontal-772">escapement, horizontal</a>: <a href="#gftype-invocation">gftype invocation</a></li>
+<li><a href="#index-escapement_002c-horizontal-739">escapement, horizontal</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-escapement_002c-vertical-774">escapement, vertical</a>: <a href="#gftype-invocation">gftype invocation</a></li>
+<li><a href="#index-etex-_0040r_007band-label-extraction_007d-570"><code>etex </code><span class="roman">and label extraction</span></a>: <a href="#mpto-invocation">mpto invocation</a></li>
+<li><a href="#index-etex-_0040r_007bfor-MetaPost-labels_007d-496"><code>etex </code><span class="roman">for MetaPost labels</span></a>: <a href="#mpost-invocation">mpost invocation</a></li>
+<li><a href="#index-executables_002c-shared-initial-and-virgin-161">executables, shared initial and virgin</a>: <a href="#Initial-and-virgin">Initial and virgin</a></li>
+<li><a href="#index-expanded-plain-format-290">expanded plain format</a>: <a href="#Formats">Formats</a></li>
+<li><a href="#index-extensions-to-_0040TeX_007b_007d-340">extensions to TeX</a>: <a href="#TeX-extensions">TeX extensions</a></li>
+<li><a href="#index-extra_005fmem_005fbot-73"><code>extra_mem_bot</code></a>: <a href="#Runtime-options">Runtime options</a></li>
+<li><a href="#index-FACE-_0040r_007bproperty_007d-790"><code>FACE </code><span class="roman">property</span></a>: <a href="#tftopl-invocation">tftopl invocation</a></li>
+<li><a href="#index-FAMILY-_0040r_007bproperty_007d-789"><code>FAMILY </code><span class="roman">property</span></a>: <a href="#tftopl-invocation">tftopl invocation</a></li>
+<li><a href="#index-Ferguson_002c-Michael-298">Ferguson, Michael</a>: <a href="#MLTeX">MLTeX</a></li>
+<li><a href="#index-file-formats-for-fonts-701">file formats for fonts</a>: <a href="#Font-file-formats">Font file formats</a></li>
+<li><a href="#index-file-mtimes_002c-comparing-576">file mtimes, comparing</a>: <a href="#newer-invocation">newer invocation</a></li>
+<li><a href="#index-file-recorder-133">file recorder</a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-File_002dhandling-_0040TeX_007b_007d-351">File-handling TeX</a>: <a href="#TeX-extensions">TeX extensions</a></li>
+<li><a href="#index-filename-conventions_002c-in-input-files-215">filename conventions, in input files</a>: <a href="#g_t_005cinput-filenames">\input filenames</a></li>
+<li><a href="#index-filenames-starting-with-_0040samp_007b_002d_007d-94">filenames starting with `<samp><span class="samp">-</span></samp>'</a>: <a href="#Option-conventions">Option conventions</a></li>
+<li><a href="#index-first-line-of-the-main-input-file-137">first line of the main input file</a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-fixed_002dpoint-arithmetic-39">fixed-point arithmetic</a>: <a href="#Compile_002dtime-options">Compile-time options</a></li>
+<li><a href="#index-FIXPT-38"><code>FIXPT</code></a>: <a href="#Compile_002dtime-options">Compile-time options</a></li>
+<li><a href="#index-flag-byte-731">flag byte</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-floating_002dpoint-arithmetic-40">floating-point arithmetic</a>: <a href="#Compile_002dtime-options">Compile-time options</a></li>
+<li><a href="#index-floating_002dpoint-values-200">floating-point values</a>: <a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></li>
+<li><a href="#index-fmt-file_002c-determining-175">fmt file, determining</a>: <a href="#Determining-the-memory-dump-to-use">Determining the memory dump to use</a></li>
+<li><a href="#index-fmt-files-275">fmt files</a>: <a href="#Initial-TeX">Initial TeX</a></li>
+<li><a href="#index-fmt-files_002c-sharing-188">fmt files, sharing</a>: <a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></li>
+<li><a href="#index-fmts-_0040r_007bMake-target_007d-51"><code>fmts </code><span class="roman">Make target</span></a>: <a href="#Additional-targets">Additional targets</a></li>
+<li><a href="#index-font-aliases-146">font aliases</a>: <a href="#Path-searching">Path searching</a></li>
+<li><a href="#index-font-character-code_002c-translating-331">font character code, translating</a>: <a href="#TCX-files">TCX files</a></li>
+<li><a href="#index-font-design-358">font design</a>: <a href="#Metafont">Metafont</a></li>
+<li><a href="#index-font-downloading-for-MetaPost-labels-502">font downloading for MetaPost labels</a>: <a href="#mpost-invocation">mpost invocation</a></li>
+<li><a href="#index-font-file-formats-700">font file formats</a>: <a href="#Font-file-formats">Font file formats</a></li>
+<li><a href="#index-font-proofs-455">font proofs</a>: <a href="#gftodvi-invocation">gftodvi invocation</a></li>
+<li><a href="#index-font-utilities-695">font utilities</a>: <a href="#Font-utilities">Font utilities</a></li>
+<li><a href="#index-font-utilities_002c-non_002dWeb2c-821">font utilities, non-Web2c</a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-font_005fmem_005fsize-78"><code>font_mem_size</code></a>: <a href="#Runtime-options">Runtime options</a></li>
+<li><a href="#index-fontforge-836"><code>fontforge</code></a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-fontinst_0040r_007b_002c-for-creating-virtual-fonts_007d-851"><code>fontinst</code><span class="roman">, for creating virtual fonts</span></a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-fonts_002c-basic-30">fonts, basic</a>: <a href="#Installation">Installation</a></li>
+<li><a href="#index-fontutils-847"><code>fontutils</code></a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-format-files-278">format files</a>: <a href="#Initial-TeX">Initial TeX</a></li>
+<li><a href="#index-formats-for-_0040TeX_007b_007d-279">formats for TeX</a>: <a href="#Formats">Formats</a></li>
+<li><a href="#index-formats-_0040r_007bMake-target_007d-49"><code>formats </code><span class="roman">Make target</span></a>: <a href="#Additional-targets">Additional targets</a></li>
+<li><a href="#index-fraction-routines-42">fraction routines</a>: <a href="#Compile_002dtime-options">Compile-time options</a></li>
+<li><a href="#index-Free-Software-Foundation-documentation-system-288">Free Software Foundation documentation system</a>: <a href="#Formats">Formats</a></li>
+<li><a href="#index-freedom-of-Web2c-9">freedom of Web2c</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-ftp_002emath_002eutah_002eedu-605"><code>ftp.math.utah.edu</code></a>: <a href="#bibtex-invocation">bibtex invocation</a></li>
+<li><a href="#index-generating-source-specials-271">generating source specials</a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-geometric-designs-356">geometric designs</a>: <a href="#Metafont">Metafont</a></li>
+<li><a href="#index-geometric-font-scaling-705">geometric font scaling</a>: <a href="#Font-file-formats">Font file formats</a></li>
+<li><a href="#index-geometry-for-Metafont-444">geometry for Metafont</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-getopt_005flong_005fonly-90"><code>getopt_long_only</code></a>: <a href="#Option-conventions">Option conventions</a></li>
+<li><a href="#index-GF-files_002c-explained-710">GF files, explained</a>: <a href="#Font-file-formats">Font file formats</a></li>
+<li><a href="#index-GF-files_002c-output-by-Metafont-368">GF files, output by Metafont</a>: <a href="#mf-invocation">mf invocation</a></li>
+<li><a href="#index-GF-format-definition-699">GF format definition</a>: <a href="#Font-utilities">Font utilities</a></li>
+<li><a href="#index-GF-output-367">GF output</a>: <a href="#mf-invocation">mf invocation</a></li>
+<li><a href="#index-GF_002c-converting-PK-to-722">GF, converting PK to</a>: <a href="#pktogf-invocation">pktogf invocation</a></li>
+<li><a href="#index-GF_002c-converting-to-PK-719">GF, converting to PK</a>: <a href="#gftopk-invocation">gftopk invocation</a></li>
+<li><a href="#index-gftodvi-453"><code>gftodvi</code></a>: <a href="#gftodvi-invocation">gftodvi invocation</a></li>
+<li><a href="#index-gftopk-716"><code>gftopk</code></a>: <a href="#gftopk-invocation">gftopk invocation</a></li>
+<li><a href="#index-gftopxl-833"><code>gftopxl</code></a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-gftype-_0040r_007bGF-validation_007d-755"><code>gftype </code><span class="roman">GF validation</span></a>: <a href="#gftype-invocation">gftype invocation</a></li>
+<li><a href="#index-gftype_002eweb-697"><code>gftype.web</code></a>: <a href="#Font-utilities">Font utilities</a></li>
+<li><a href="#index-glue-ratio-representations-201">glue ratio representations</a>: <a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></li>
+<li><a href="#index-glue_002c-memory-for-75">glue, memory for</a>: <a href="#Runtime-options">Runtime options</a></li>
+<li><a href="#index-glyph-substitutions-301">glyph substitutions</a>: <a href="#MLTeX">MLTeX</a></li>
+<li><a href="#index-gray-font-457">gray font</a>: <a href="#gftodvi-invocation">gftodvi invocation</a></li>
+<li><a href="#index-Gruff_002c-Billy-Goat-61">Gruff, Billy Goat</a>: <a href="#Triptrap">Triptrap</a></li>
+<li><a href="#index-gsftopk-840"><code>gsftopk</code></a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-Harbison_002c-Samuel-P_002e-205">Harbison, Samuel P.</a>: <a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></li>
+<li><a href="#index-hardware-and-memory-dumps-185">hardware and memory dumps</a>: <a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></li>
+<li><a href="#index-hash-table_002c-increasing-size-of-82">hash table, increasing size of</a>: <a href="#Runtime-options">Runtime options</a></li>
+<li><a href="#index-hash_005fextra-80"><code>hash_extra</code></a>: <a href="#Runtime-options">Runtime options</a></li>
+<li><a href="#index-headerbyte-_0040r_007binformation_007d-791"><code>headerbyte </code><span class="roman">information</span></a>: <a href="#tftopl-invocation">tftopl invocation</a></li>
+<li><a href="#index-height_002c-in-pixels-742">height, in pixels</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-help_002c-online-97">help, online</a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-Henry_002c-Patrick-11">Henry, Patrick</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-Herberts_002c-Mathias-405">Herberts, Mathias</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-hex-character-codes_002c-in-TCX-files-327">hex character codes, in TCX files</a>: <a href="#TCX-files">TCX files</a></li>
+<li><a href="#index-history-12">history</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-Hobby_002c-John-563">Hobby, John</a>: <a href="#dmp-invocation">dmp invocation</a></li>
+<li><a href="#index-Hobby_002c-John-4">Hobby, John</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-horizontal-escapement-771">horizontal escapement</a>: <a href="#gftype-invocation">gftype invocation</a></li>
+<li><a href="#index-horizontal-escapement-738">horizontal escapement</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-hp2627-407"><code>hp2627</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-human-languages_002c-supported-in-_0040TeX_007b_007d-294">human languages, supported in TeX</a>: <a href="#Languages-and-hyphenation">Languages and hyphenation</a></li>
+<li><a href="#index-human_002dreadable-text_002c-converting-DVI-to-677">human-readable text, converting DVI to</a>: <a href="#dvitype-invocation">dvitype invocation</a></li>
+<li><a href="#index-human_002dreadable-text_002c-converting-GF-to-758">human-readable text, converting GF to</a>: <a href="#gftype-invocation">gftype invocation</a></li>
+<li><a href="#index-human_002dreadable-text_002c-converting-PK-to-727">human-readable text, converting PK to</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-human_002dreadable-text_002c-converting-TFM-to-785">human-readable text, converting TFM to</a>: <a href="#tftopl-invocation">tftopl invocation</a></li>
+<li><a href="#index-human_002dreadable-text_002c-converting-VF-to-814">human-readable text, converting VF to</a>: <a href="#vftovp-invocation">vftovp invocation</a></li>
+<li><a href="#index-hyphenation-and-languages-295">hyphenation and languages</a>: <a href="#Languages-and-hyphenation">Languages and hyphenation</a></li>
+<li><a href="#index-hyphenation-patterns_002c-creating-335">hyphenation patterns, creating</a>: <a href="#patgen-invocation">patgen invocation</a></li>
+<li><a href="#index-ice-cream-10">ice cream</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-identifier-case-640">identifier case</a>: <a href="#tangle-invocation">tangle invocation</a></li>
+<li><a href="#index-identifier-collisions-645">identifier collisions</a>: <a href="#tangle-invocation">tangle invocation</a></li>
+<li><a href="#index-identifier-length-636">identifier length</a>: <a href="#tangle-invocation">tangle invocation</a></li>
+<li><a href="#index-identifiers-with-underlines-642">identifiers with underlines</a>: <a href="#tangle-invocation">tangle invocation</a></li>
+<li><a href="#index-ieeetr_002ebst-616"><code>ieeetr.bst</code></a>: <a href="#Basic-BibTeX-style-files">Basic BibTeX style files</a></li>
+<li><a href="#index-il1_002dt1_002etcx-316"><code>il1-t1.tcx</code></a>: <a href="#TCX-files">TCX files</a></li>
+<li><a href="#index-il2_002dt1_002etcx-317"><code>il2-t1.tcx</code></a>: <a href="#TCX-files">TCX files</a></li>
+<li><a href="#index-Info-format-287">Info format</a>: <a href="#Formats">Formats</a></li>
+<li><a href="#index-initial-form_002c-enabling-114">initial form, enabling</a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-initial-Metafont-378">initial Metafont</a>: <a href="#Initial-Metafont">Initial Metafont</a></li>
+<li><a href="#index-initial-MetaPost-509">initial MetaPost</a>: <a href="#Initial-MetaPost">Initial MetaPost</a></li>
+<li><a href="#index-initial-programs-165">initial programs</a>: <a href="#Initial-and-virgin">Initial and virgin</a></li>
+<li><a href="#index-initial-_0040TeX_007b_007d-272">initial TeX</a>: <a href="#Initial-TeX">Initial TeX</a></li>
+<li><a href="#index-initializations_002c-lengthy-166">initializations, lengthy</a>: <a href="#Initial-and-virgin">Initial and virgin</a></li>
+<li><a href="#index-input-filenames-214">input filenames</a>: <a href="#g_t_005cinput-filenames">\input filenames</a></li>
+<li><a href="#index-install_002dbases-_0040r_007bMake-target_007d-54"><code>install-bases </code><span class="roman">Make target</span></a>: <a href="#Additional-targets">Additional targets</a></li>
+<li><a href="#index-install_002dfmts-_0040r_007bMake-target_007d-52"><code>install-fmts </code><span class="roman">Make target</span></a>: <a href="#Additional-targets">Additional targets</a></li>
+<li><a href="#index-install_002dformats-_0040r_007bMake-target_007d-50"><code>install-formats </code><span class="roman">Make target</span></a>: <a href="#Additional-targets">Additional targets</a></li>
+<li><a href="#index-install_002dmems-_0040r_007bMake-target_007d-56"><code>install-mems </code><span class="roman">Make target</span></a>: <a href="#Additional-targets">Additional targets</a></li>
+<li><a href="#index-installation-26">installation</a>: <a href="#Installation">Installation</a></li>
+<li><a href="#index-interaction-between-TCX-files-and-_0040samp_007b_002d8bit_007d_002e-333">interaction between TCX files and `<samp><span class="samp">-8bit</span></samp>'.</a>: <a href="#TCX-files">TCX files</a></li>
+<li><a href="#index-interaction-mode-116">interaction mode</a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-international-characters-312">international characters</a>: <a href="#TCX-files">TCX files</a></li>
+<li><a href="#index-introduction-1">introduction</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-IPC-337">IPC</a>: <a href="#IPC-and-TeX">IPC and TeX</a></li>
+<li><a href="#index-IPC_005fDEBUG-339"><code>IPC_DEBUG</code></a>: <a href="#IPC-and-TeX">IPC and TeX</a></li>
+<li><a href="#index-IPC_005fDEBUG-43"><code>IPC_DEBUG</code></a>: <a href="#Compile_002dtime-options">Compile-time options</a></li>
+<li><a href="#index-job-name-118">job name</a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-kerning-table_002c-in-TFM-files-799">kerning table, in TFM files</a>: <a href="#tftopl-invocation">tftopl invocation</a></li>
+<li><a href="#index-keyboard-character-code_002c-translating-332">keyboard character code, translating</a>: <a href="#TCX-files">TCX files</a></li>
+<li><a href="#index-Knuth_002c-Donald-E_002e-470">Knuth, Donald E.</a>: <a href="#mft-invocation">mft invocation</a></li>
+<li><a href="#index-Knuth_002c-Donald-E_002e-2">Knuth, Donald E.</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-KPATHSEA_005fDEBUG-120"><code>KPATHSEA_DEBUG</code></a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-KRN-_0040r_007bproperty_007d-797"><code>KRN </code><span class="roman">property</span></a>: <a href="#tftopl-invocation">tftopl invocation</a></li>
+<li><a href="#index-label-font-459">label font</a>: <a href="#gftodvi-invocation">gftodvi invocation</a></li>
+<li><a href="#index-LABEL-_0040r_007bproperty_007d-795"><code>LABEL </code><span class="roman">property</span></a>: <a href="#tftopl-invocation">tftopl invocation</a></li>
+<li><a href="#index-labels_002c-extracting-from-MetaPost-input-565">labels, extracting from MetaPost input</a>: <a href="#mpto-invocation">mpto invocation</a></li>
+<li><a href="#index-labels_002c-for-MetaPost-526">labels, for MetaPost</a>: <a href="#makempx-invocation">makempx invocation</a></li>
+<li><a href="#index-language-support-in-_0040TeX_007b_007d-293">language support in TeX</a>: <a href="#Languages-and-hyphenation">Languages and hyphenation</a></li>
+<li><a href="#index-languages_002c-hyphenation-rules-for-336">languages, hyphenation rules for</a>: <a href="#patgen-invocation">patgen invocation</a></li>
+<li><a href="#index-g_t_0040LaTeX_007b_007d-282">LaTeX</a>: <a href="#Formats">Formats</a></li>
+<li><a href="#index-Latin-Modern-828">Latin Modern</a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-left-side-bearing-765">left side bearing</a>: <a href="#gftype-invocation">gftype invocation</a></li>
+<li><a href="#index-left-side-bearing-751">left side bearing</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-legalisms-852">legalisms</a>: <a href="#Legalisms">Legalisms</a></li>
+<li><a href="#index-licensing-terms-8">licensing terms</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-LIG-_0040r_007bproperty_007d-796"><code>LIG </code><span class="roman">property</span></a>: <a href="#tftopl-invocation">tftopl invocation</a></li>
+<li><a href="#index-ligature-table_002c-in-TFM-files-798">ligature table, in TFM files</a>: <a href="#tftopl-invocation">tftopl invocation</a></li>
+<li><a href="#index-LIGTABLE-_0040r_007bproperty_007d-794"><code>LIGTABLE </code><span class="roman">property</span></a>: <a href="#tftopl-invocation">tftopl invocation</a></li>
+<li><a href="#index-linking-binaries-130">linking binaries</a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-links-to-binaries-184">links to binaries</a>: <a href="#Determining-the-memory-dump-to-use">Determining the memory dump to use</a></li>
+<li><a href="#index-literate-programming-620">literate programming</a>: <a href="#WEB">WEB</a></li>
+<li><a href="#index-litprog_0040_0040shsu_002eedu-621"><code>litprog@shsu.edu</code></a>: <a href="#WEB">WEB</a></li>
+<li><a href="#index-LittleEndian-machines-191">LittleEndian machines</a>: <a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></li>
+<li><a href="#index-log-file_002c-Bib_0040TeX_007b_007d-588">log file, BibTeX</a>: <a href="#bibtex-invocation">bibtex invocation</a></li>
+<li><a href="#index-machine-dependencies-194">machine dependencies</a>: <a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></li>
+<li><a href="#index-machine_002dreadable_002c-converting-property-lists-to-820">machine-readable, converting property lists to</a>: <a href="#vptovf-invocation">vptovf invocation</a></li>
+<li><a href="#index-machine_002dreadable_002c-converting-property-lists-to-809">machine-readable, converting property lists to</a>: <a href="#pltotf-invocation">pltotf invocation</a></li>
+<li><a href="#index-MacKay_002c-Pierre-714">MacKay, Pierre</a>: <a href="#Font-file-formats">Font file formats</a></li>
+<li><a href="#index-macro-packages_002c-major-_0040TeX_007b_007d-281">macro packages, major TeX</a>: <a href="#Formats">Formats</a></li>
+<li><a href="#index-macros_002c-basic-31">macros, basic</a>: <a href="#Installation">Installation</a></li>
+<li><a href="#index-macros_002c-predefining-in-memory-dumps-169">macros, predefining in memory dumps</a>: <a href="#Memory-dumps">Memory dumps</a></li>
+<li><a href="#index-magnification-682">magnification</a>: <a href="#dvitype-invocation">dvitype invocation</a></li>
+<li><a href="#index-magnification-667">magnification</a>: <a href="#dvicopy-invocation">dvicopy invocation</a></li>
+<li><a href="#index-main_005fmemory-72"><code>main_memory</code></a>: <a href="#Runtime-options">Runtime options</a></li>
+<li><a href="#index-Make-targets_002c-additional-46">Make targets, additional</a>: <a href="#Additional-targets">Additional targets</a></li>
+<li><a href="#index-makempx-523"><code>makempx</code></a>: <a href="#makempx-invocation">makempx invocation</a></li>
+<li><a href="#index-MAKEMPX_005fBINDIR-539"><code>MAKEMPX_BINDIR</code></a>: <a href="#makempx-invocation">makempx invocation</a></li>
+<li><a href="#index-Martin_002c-Rick-20">Martin, Rick</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-Mathematical-Reviews-285">Mathematical Reviews</a>: <a href="#Formats">Formats</a></li>
+<li><a href="#index-mathematical-typesetting-229">mathematical typesetting</a>: <a href="#TeX">TeX</a></li>
+<li><a href="#index-mem-file_002c-determining-177">mem file, determining</a>: <a href="#Determining-the-memory-dump-to-use">Determining the memory dump to use</a></li>
+<li><a href="#index-mem-files-512">mem files</a>: <a href="#Initial-MetaPost">Initial MetaPost</a></li>
+<li><a href="#index-mem-files_002c-plain-only-515">mem files, plain only</a>: <a href="#Initial-MetaPost">Initial MetaPost</a></li>
+<li><a href="#index-mem-files_002c-sharing-190">mem files, sharing</a>: <a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></li>
+<li><a href="#index-memory-dump-to-use_002c-determining-174">memory dump to use, determining</a>: <a href="#Determining-the-memory-dump-to-use">Determining the memory dump to use</a></li>
+<li><a href="#index-memory-dumps-167">memory dumps</a>: <a href="#Memory-dumps">Memory dumps</a></li>
+<li><a href="#index-memory-dumps-and-hardware-186">memory dumps and hardware</a>: <a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></li>
+<li><a href="#index-memory-dumps_002c-contain-date-and-time-204">memory dumps, contain date and time</a>: <a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></li>
+<li><a href="#index-memory-dumps_002c-creating-171">memory dumps, creating</a>: <a href="#Creating-memory-dumps">Creating memory dumps</a></li>
+<li><a href="#index-mems-_0040r_007bMake-target_007d-55"><code>mems </code><span class="roman">Make target</span></a>: <a href="#Additional-targets">Additional targets</a></li>
+<li><a href="#index-meta-characters-in-filenames-222">meta characters in filenames</a>: <a href="#g_t_005cinput-filenames">\input filenames</a></li>
+<li><a href="#index-Metafont-354">Metafont</a>: <a href="#Metafont">Metafont</a></li>
+<li><a href="#index-Metafont-geometry-445">Metafont geometry</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-Metafont-graphics-401">Metafont graphics</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-Metafont-input-files-362">Metafont input files</a>: <a href="#mf-invocation">mf invocation</a></li>
+<li><a href="#index-Metafont-invocation-360">Metafont invocation</a>: <a href="#mf-invocation">mf invocation</a></li>
+<li><a href="#index-Metafont-meets-PostScript-482">Metafont meets PostScript</a>: <a href="#MetaPost">MetaPost</a></li>
+<li><a href="#index-Metafont-online-support_002c-new-devices-450">Metafont online support, new devices</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-Metafont-source_002c-prettyprinting-465">Metafont source, prettyprinting</a>: <a href="#mft-invocation">mft invocation</a></li>
+<li><a href="#index-Metafont_002c-compatibility-in-MetaPost-516">Metafont, compatibility in MetaPost</a>: <a href="#Initial-MetaPost">Initial MetaPost</a></li>
+<li><a href="#index-Metafont_002c-initial-379">Metafont, initial</a>: <a href="#Initial-Metafont">Initial Metafont</a></li>
+<li><a href="#index-Metafont_002c-MetaPost_002c-and-_0040TeX_007b_007d-159">Metafont, MetaPost, and TeX</a>: <a href="#Three-programs">Three programs</a></li>
+<li><a href="#index-MetaFun_002c-enhanced-MetaPost-521">MetaFun, enhanced MetaPost</a>: <a href="#Initial-MetaPost">Initial MetaPost</a></li>
+<li><a href="#index-metafun_002emp-520"><code>metafun.mp</code></a>: <a href="#Initial-MetaPost">Initial MetaPost</a></li>
+<li><a href="#index-MetaPost-480">MetaPost</a>: <a href="#MetaPost">MetaPost</a></li>
+<li><a href="#index-MetaPost-and-plain-Metafont-compatibility-518">MetaPost and plain Metafont compatibility</a>: <a href="#Initial-MetaPost">Initial MetaPost</a></li>
+<li><a href="#index-MetaPost-input-files-488">MetaPost input files</a>: <a href="#mpost-invocation">mpost invocation</a></li>
+<li><a href="#index-MetaPost-input_002c-extracting-labels-from-568">MetaPost input, extracting labels from</a>: <a href="#mpto-invocation">mpto invocation</a></li>
+<li><a href="#index-MetaPost-invocation-484">MetaPost invocation</a>: <a href="#mpost-invocation">mpost invocation</a></li>
+<li><a href="#index-MetaPost-labels-524">MetaPost labels</a>: <a href="#makempx-invocation">makempx invocation</a></li>
+<li><a href="#index-MetaPost-source_002c-prettyprinting-479">MetaPost source, prettyprinting</a>: <a href="#mft-invocation">mft invocation</a></li>
+<li><a href="#index-MetaPost_002c-initial-510">MetaPost, initial</a>: <a href="#Initial-MetaPost">Initial MetaPost</a></li>
+<li><a href="#index-MetaPost_002c-_0040TeX_007b_007d_002c-and-Metafont-160">MetaPost, TeX, and Metafont</a>: <a href="#Three-programs">Three programs</a></li>
+<li><a href="#index-metatype1-827"><code>metatype1</code></a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-mf-359"><code>mf</code></a>: <a href="#mf-invocation">mf invocation</a></li>
+<li><a href="#index-mf_002ebase-383"><code>mf.base</code></a>: <a href="#Initial-Metafont">Initial Metafont</a></li>
+<li><a href="#index-MFEDIT-211"><code>MFEDIT</code></a>: <a href="#Editor-invocation">Editor invocation</a></li>
+<li><a href="#index-mfplain_002emem-519"><code>mfplain.mem</code></a>: <a href="#Initial-MetaPost">Initial MetaPost</a></li>
+<li><a href="#index-mfput-366"><code>mfput</code></a>: <a href="#mf-invocation">mf invocation</a></li>
+<li><a href="#index-mft-464"><code>mft</code></a>: <a href="#mft-invocation">mft invocation</a></li>
+<li><a href="#index-mftalk-409"><code>mftalk</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-MFTERM-402"><code>MFTERM</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-mftmac_002etex-468"><code>mftmac.tex</code></a>: <a href="#mft-invocation">mft invocation</a></li>
+<li><a href="#index-mktexmf_0040r_007b_002c-disabling_007d-364"><code>mktexmf</code><span class="roman">, disabling</span></a>: <a href="#mf-invocation">mf invocation</a></li>
+<li><a href="#index-mktextfM_0040r_007b_002c-disabling_007d-238"><code>mktextfM</code><span class="roman">, disabling</span></a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-mltex-296"><code>mltex</code></a>: <a href="#MLTeX">MLTeX</a></li>
+<li><a href="#index-ML_0040TeX_007b_007d_002c-enabling-256">MLTeX, enabling</a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-mode-needed-to-run-Metafont-372">mode needed to run Metafont</a>: <a href="#mf-invocation">mf invocation</a></li>
+<li><a href="#index-mode_005fdef-396"><code>mode_def</code></a>: <a href="#Modes">Modes</a></li>
+<li><a href="#index-mode_005fsetup-397"><code>mode_setup</code></a>: <a href="#Modes">Modes</a></li>
+<li><a href="#index-modes-file-needed-for-Metafont-390">modes file needed for Metafont</a>: <a href="#Modes">Modes</a></li>
+<li><a href="#index-modes_002emf-_0040r_007brecommended-modes-file_007d-394"><code>modes.mf </code><span class="roman">recommended modes file</span></a>: <a href="#Modes">Modes</a></li>
+<li><a href="#index-Morgan_002c-Tim-16">Morgan, Tim</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-Morris_002c-Bob-21">Morris, Bob</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-MPEDIT-212"><code>MPEDIT</code></a>: <a href="#Editor-invocation">Editor invocation</a></li>
+<li><a href="#index-mpgraph_002eps-486"><code>mpgraph.ps</code></a>: <a href="#mpost-invocation">mpost invocation</a></li>
+<li><a href="#index-mpman_002eps-485"><code>mpman.ps</code></a>: <a href="#mpost-invocation">mpost invocation</a></li>
+<li><a href="#index-mpost-483"><code>mpost</code></a>: <a href="#mpost-invocation">mpost invocation</a></li>
+<li><a href="#index-mpost_0040r_007b_002c-reason-for-name-change_007d-27"><code>mpost</code><span class="roman">, reason for name change</span></a>: <a href="#Installation">Installation</a></li>
+<li><a href="#index-mpost_002emem-514"><code>mpost.mem</code></a>: <a href="#Initial-MetaPost">Initial MetaPost</a></li>
+<li><a href="#index-mpout-492"><code>mpout</code></a>: <a href="#mpost-invocation">mpost invocation</a></li>
+<li><a href="#index-mproof_002etex-500"><code>mproof.tex</code></a>: <a href="#mpost-invocation">mpost invocation</a></li>
+<li><a href="#index-MPSUPPORT-559"><code>MPSUPPORT</code></a>: <a href="#dmp-invocation">dmp invocation</a></li>
+<li><a href="#index-MPto-564"><code>MPto</code></a>: <a href="#mpto-invocation">mpto invocation</a></li>
+<li><a href="#index-MPto_002c-invoked-by-MakeMPX-527">MPto, invoked by MakeMPX</a>: <a href="#makempx-invocation">makempx invocation</a></li>
+<li><a href="#index-MPTOTEX-541"><code>MPTOTEX</code></a>: <a href="#makempx-invocation">makempx invocation</a></li>
+<li><a href="#index-MPTOTR-542"><code>MPTOTR</code></a>: <a href="#makempx-invocation">makempx invocation</a></li>
+<li><a href="#index-mptrap-_0040r_007bMake-target_007d-60"><code>mptrap </code><span class="roman">Make target</span></a>: <a href="#Additional-targets">Additional targets</a></li>
+<li><a href="#index-mptrap-test-64">mptrap test</a>: <a href="#Triptrap">Triptrap</a></li>
+<li><a href="#index-mptrap_002ereadme-68"><code>mptrap.readme</code></a>: <a href="#Triptrap">Triptrap</a></li>
+<li><a href="#index-mpx-file_002c-defined-538">mpx file, defined</a>: <a href="#makempx-invocation">makempx invocation</a></li>
+<li><a href="#index-MPX-files_002c-converting-from-DVI-files-549">MPX files, converting from DVI files</a>: <a href="#dvitomp-invocation">dvitomp invocation</a></li>
+<li><a href="#index-MPX-files_002c-creating-from-ditroff-output-552">MPX files, creating from ditroff output</a>: <a href="#dmp-invocation">dmp invocation</a></li>
+<li><a href="#index-mpxerr-534"><code>mpxerr</code></a>: <a href="#makempx-invocation">makempx invocation</a></li>
+<li><a href="#index-mpxerr_002edvi-531"><code>mpxerr.dvi</code></a>: <a href="#makempx-invocation">makempx invocation</a></li>
+<li><a href="#index-mpxerr_002elog-530"><code>mpxerr.log</code></a>: <a href="#makempx-invocation">makempx invocation</a></li>
+<li><a href="#index-mpxerr_002et-533"><code>mpxerr.t</code></a>: <a href="#makempx-invocation">makempx invocation</a></li>
+<li><a href="#index-mpxerr_002etex-532"><code>mpxerr.tex</code></a>: <a href="#makempx-invocation">makempx invocation</a></li>
+<li><a href="#index-mtimes-of-files_002c-comparing-577">mtimes of files, comparing</a>: <a href="#newer-invocation">newer invocation</a></li>
+<li><a href="#index-Multi_002dlingual-_0040TeX_007b_007d-297">Multi-lingual TeX</a>: <a href="#MLTeX">MLTeX</a></li>
+<li><a href="#index-multiple-DVI-files_002c-creating-353">multiple DVI files, creating</a>: <a href="#TeX-extensions">TeX extensions</a></li>
+<li><a href="#index-N-tilde-305">N tilde</a>: <a href="#g_t_005ccharsubdef">\charsubdef</a></li>
+<li><a href="#index-new-graphics-support-for-Metafont-451">new graphics support for Metafont</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-NEWER-540"><code>NEWER</code></a>: <a href="#makempx-invocation">makempx invocation</a></li>
+<li><a href="#index-newer-_0040r_007bfile-comparison_007d-574"><code>newer </code><span class="roman">file comparison</span></a>: <a href="#newer-invocation">newer invocation</a></li>
+<li><a href="#index-newrow-_0040r_007bGF-command_007d-769"><code>newrow </code><span class="roman">GF command</span></a>: <a href="#gftype-invocation">gftype invocation</a></li>
+<li><a href="#index-next-411"><code>next</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-NO_005fX11WIN-429"><code>NO_X11WIN</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-non_002dUnix-system_002c-compiling-on-48">non-Unix system, compiling on</a>: <a href="#Additional-targets">Additional targets</a></li>
+<li><a href="#index-NUL_002c-not-allowed-in-filenames-220">NUL, not allowed in filenames</a>: <a href="#g_t_005cinput-filenames">\input filenames</a></li>
+<li><a href="#index-octal-character-codes_002c-in-TCX-files-326">octal character codes, in TCX files</a>: <a href="#TCX-files">TCX files</a></li>
+<li><a href="#index-offset-for-overflow-labels-463">offset for overflow labels</a>: <a href="#gftodvi-invocation">gftodvi invocation</a></li>
+<li><a href="#index-older_002dthan_002c-file-comparisons-578">older-than, file comparisons</a>: <a href="#newer-invocation">newer invocation</a></li>
+<li><a href="#index-Omega-344">Omega</a>: <a href="#TeX-extensions">TeX extensions</a></li>
+<li><a href="#index-online-Metafont-graphics-400">online Metafont graphics</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-opcodes_002c-showing-DVI-691">opcodes, showing DVI</a>: <a href="#dvitype-invocation">dvitype invocation</a></li>
+<li><a href="#index-optical-font-scaling-704">optical font scaling</a>: <a href="#Font-file-formats">Font file formats</a></li>
+<li><a href="#index-option-conventions-88">option conventions</a>: <a href="#Option-conventions">Option conventions</a></li>
+<li><a href="#index-origin-748">origin</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-output-directory_002c-specifying-153">output directory, specifying</a>: <a href="#Output-file-location">Output file location</a></li>
+<li><a href="#index-output-directory_002c-specifying-124">output directory, specifying</a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-output-file-location-149">output file location</a>: <a href="#Output-file-location">Output file location</a></li>
+<li><a href="#index-output-files_002c-written-by-_0040TeX_007b_007d-programs-242">output files, written by TeX programs</a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-output_005fcomment-_0040r_007bfor-DVI-files_007d-259"><code>output_comment </code><span class="roman">for DVI files</span></a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-overflow-label-offset-462">overflow label offset</a>: <a href="#gftodvi-invocation">gftodvi invocation</a></li>
+<li><a href="#index-packet-length-734">packet length</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-page_002c-starting-688">page, starting</a>: <a href="#dvitype-invocation">dvitype invocation</a></li>
+<li><a href="#index-page_002c-starting-672">page, starting</a>: <a href="#dvicopy-invocation">dvicopy invocation</a></li>
+<li><a href="#index-parsing-the-first-line-127">parsing the first line</a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-Pascal_002c-creating-from-WEB-630">Pascal, creating from WEB</a>: <a href="#tangle-invocation">tangle invocation</a></li>
+<li><a href="#index-patgen-334"><code>patgen</code></a>: <a href="#patgen-invocation">patgen invocation</a></li>
+<li><a href="#index-path-searching-143">path searching</a>: <a href="#Path-searching">Path searching</a></li>
+<li><a href="#index-path-searching-debugging-122">path searching debugging</a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-PDF-347">PDF</a>: <a href="#TeX-extensions">TeX extensions</a></li>
+<li><a href="#index-pdf_0040TeX_007b_007d-346">pdfTeX</a>: <a href="#TeX-extensions">TeX extensions</a></li>
+<li><a href="#index-permissions_002c-legal-854">permissions, legal</a>: <a href="#Legalisms">Legalisms</a></li>
+<li><a href="#index-PFA-and-PFB-conversion-843">PFA and PFB conversion</a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-pfaedit-837"><code>pfaedit</code></a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-PiC_0040TeX_007b_007d_002c-increasing-memory-for-77">PiCTeX, increasing memory for</a>: <a href="#Runtime-options">Runtime options</a></li>
+<li><a href="#index-picture-expressions-537">picture expressions</a>: <a href="#makempx-invocation">makempx invocation</a></li>
+<li><a href="#index-pixel-height-743">pixel height</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-pixel-width-744">pixel width</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-PK-bitmaps-from-PostScript-838">PK bitmaps from PostScript</a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-PK-files_002c-explained-709">PK files, explained</a>: <a href="#Font-file-formats">Font file formats</a></li>
+<li><a href="#index-PK-files_002c-not-output-by-Metafont-369">PK files, not output by Metafont</a>: <a href="#mf-invocation">mf invocation</a></li>
+<li><a href="#index-PK-format-definition-698">PK format definition</a>: <a href="#Font-utilities">Font utilities</a></li>
+<li><a href="#index-PK_002c-converting-GF-to-718">PK, converting GF to</a>: <a href="#gftopk-invocation">gftopk invocation</a></li>
+<li><a href="#index-PK_002c-converting-to-GF-723">PK, converting to GF</a>: <a href="#pktogf-invocation">pktogf invocation</a></li>
+<li><a href="#index-pktogf-720"><code>pktogf</code></a>: <a href="#pktogf-invocation">pktogf invocation</a></li>
+<li><a href="#index-pktype-_0040r_007bPK-validation_007d-724"><code>pktype </code><span class="roman">PK validation</span></a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-pktype_002eweb-696"><code>pktype.web</code></a>: <a href="#Font-utilities">Font utilities</a></li>
+<li><a href="#index-PL-files_002c-explained-711">PL files, explained</a>: <a href="#Font-file-formats">Font file formats</a></li>
+<li><a href="#index-plain-Metafont_002c-compatibility-in-MetaPost-517">plain Metafont, compatibility in MetaPost</a>: <a href="#Initial-MetaPost">Initial MetaPost</a></li>
+<li><a href="#index-plain-text_002c-converting-DVI-to-676">plain text, converting DVI to</a>: <a href="#dvitype-invocation">dvitype invocation</a></li>
+<li><a href="#index-plain-text_002c-converting-GF-to-757">plain text, converting GF to</a>: <a href="#gftype-invocation">gftype invocation</a></li>
+<li><a href="#index-plain-text_002c-converting-PK-to-726">plain text, converting PK to</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-plain-text_002c-converting-TFM-to-786">plain text, converting TFM to</a>: <a href="#tftopl-invocation">tftopl invocation</a></li>
+<li><a href="#index-plain-text_002c-converting-VF-to-815">plain text, converting VF to</a>: <a href="#vftovp-invocation">vftovp invocation</a></li>
+<li><a href="#index-plain_002ebase-382"><code>plain.base</code></a>: <a href="#Initial-Metafont">Initial Metafont</a></li>
+<li><a href="#index-plain_002ebst-611"><code>plain.bst</code></a>: <a href="#Basic-BibTeX-style-files">Basic BibTeX style files</a></li>
+<li><a href="#index-plain_002efmt-276"><code>plain.fmt</code></a>: <a href="#Initial-TeX">Initial TeX</a></li>
+<li><a href="#index-plain_002emem-513"><code>plain.mem</code></a>: <a href="#Initial-MetaPost">Initial MetaPost</a></li>
+<li><a href="#index-plain_002emft-475"><code>plain.mft</code></a>: <a href="#mft-invocation">mft invocation</a></li>
+<li><a href="#index-pltotf-806"><code>pltotf</code></a>: <a href="#pltotf-invocation">pltotf invocation</a></li>
+<li><a href="#index-pool-file_002c-writing-633">pool file, writing</a>: <a href="#tangle-invocation">tangle invocation</a></li>
+<li><a href="#index-Poole_002c-Simon-425">Poole, Simon</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-pooltype-655"><code>pooltype</code></a>: <a href="#pooltype-invocation">pooltype invocation</a></li>
+<li><a href="#index-portable-filenames-223">portable filenames</a>: <a href="#g_t_005cinput-filenames">\input filenames</a></li>
+<li><a href="#index-PostScript-fonts_002c-and-Troff-497">PostScript fonts, and Troff</a>: <a href="#mpost-invocation">mpost invocation</a></li>
+<li><a href="#index-PostScript-meets-Metafont-481">PostScript meets Metafont</a>: <a href="#MetaPost">MetaPost</a></li>
+<li><a href="#index-PostScript-output-494">PostScript output</a>: <a href="#mpost-invocation">mpost invocation</a></li>
+<li><a href="#index-PostScript-to-PK-bitmaps-839">PostScript to PK bitmaps</a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-PostScript-Type-1-font-conversion-844">PostScript Type 1 font conversion</a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-PostScript_002c-and-font-scaling-706">PostScript, and font scaling</a>: <a href="#Font-file-formats">Font file formats</a></li>
+<li><a href="#index-potrace-849"><code>potrace</code></a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-Pragma-ADE-522">Pragma ADE</a>: <a href="#Initial-MetaPost">Initial MetaPost</a></li>
+<li><a href="#index-predefined-macros-and-memory-dumps-170">predefined macros and memory dumps</a>: <a href="#Memory-dumps">Memory dumps</a></li>
+<li><a href="#index-prettyprinting-Metafont-source-466">prettyprinting Metafont source</a>: <a href="#mft-invocation">mft invocation</a></li>
+<li><a href="#index-prettyprinting-WEB-programs-649">prettyprinting WEB programs</a>: <a href="#weave-invocation">weave invocation</a></li>
+<li><a href="#index-primitives_002c-new-343">primitives, new</a>: <a href="#TeX-extensions">TeX extensions</a></li>
+<li><a href="#index-printable-characters_002c-specifying-329">printable characters, specifying</a>: <a href="#TCX-files">TCX files</a></li>
+<li><a href="#index-printer-characteristics_002c-for-Metafont-393">printer characteristics, for Metafont</a>: <a href="#Modes">Modes</a></li>
+<li><a href="#index-production-use-164">production use</a>: <a href="#Initial-and-virgin">Initial and virgin</a></li>
+<li><a href="#index-program-name_002c-determines-memory-dump-183">program name, determines memory dump</a>: <a href="#Determining-the-memory-dump-to-use">Determining the memory dump to use</a></li>
+<li><a href="#index-program-names_002c-special-257">program names, special</a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-program-names_002c-special-113">program names, special</a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-prologues-507"><code>prologues</code></a>: <a href="#mpost-invocation">mpost invocation</a></li>
+<li><a href="#index-prologues-_0040r_007band-Troff-in-MetaPost_007d-536"><code>prologues </code><span class="roman">and Troff in MetaPost</span></a>: <a href="#makempx-invocation">makempx invocation</a></li>
+<li><a href="#index-prologues_0040r_007b_002c-and-EPSF-output_007d-503"><code>prologues</code><span class="roman">, and EPSF output</span></a>: <a href="#mpost-invocation">mpost invocation</a></li>
+<li><a href="#index-proof-_0040r_007bmode_007d-373"><code>proof </code><span class="roman">mode</span></a>: <a href="#mf-invocation">mf invocation</a></li>
+<li><a href="#index-proof-sheets_002c-of-fonts-456">proof sheets, of fonts</a>: <a href="#gftodvi-invocation">gftodvi invocation</a></li>
+<li><a href="#index-property-list-format-788">property list format</a>: <a href="#tftopl-invocation">tftopl invocation</a></li>
+<li><a href="#index-property-list_002c-converting-TFM-to-784">property list, converting TFM to</a>: <a href="#tftopl-invocation">tftopl invocation</a></li>
+<li><a href="#index-property-list_002c-converting-VF-to-virtual-813">property list, converting VF to virtual</a>: <a href="#vftovp-invocation">vftovp invocation</a></li>
+<li><a href="#index-ps2pk-841"><code>ps2pk</code></a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-psfonts_002emap_0040r_007b_002c-read-by-MetaPost_007d-504"><code>psfonts.map</code><span class="roman">, read by MetaPost</span></a>: <a href="#mpost-invocation">mpost invocation</a></li>
+<li><a href="#index-PXL-files_002c-explained-708">PXL files, explained</a>: <a href="#Font-file-formats">Font file formats</a></li>
+<li><a href="#index-pxtoch-835"><code>pxtoch</code></a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-Raichle_002c-Bernd-299">Raichle, Bernd</a>: <a href="#MLTeX">MLTeX</a></li>
+<li><a href="#index-reading_002c-additional-23">reading, additional</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-readonly-directory_002c-running-_0040TeX_007b_007d-in-154">readonly directory, running TeX in</a>: <a href="#Output-file-location">Output file location</a></li>
+<li><a href="#index-reallocation-of-arrays-85">reallocation of arrays</a>: <a href="#Runtime-options">Runtime options</a></li>
+<li><a href="#index-redefined-character-substitutions-307">redefined character substitutions</a>: <a href="#g_t_005ctracingcharsubdef">\tracingcharsubdef</a></li>
+<li><a href="#index-reference-pixel-749">reference pixel</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-references-855">references</a>: <a href="#References">References</a></li>
+<li><a href="#index-regis-414"><code>regis</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-Regis-graphics-support-416">Regis graphics support</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-regression-testing-261">regression testing</a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-repeated-rows-754">repeated rows</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-representation-of-strings-659">representation of strings</a>: <a href="#pooltype-invocation">pooltype invocation</a></li>
+<li><a href="#index-right-side-bearing-766">right side bearing</a>: <a href="#gftype-invocation">gftype invocation</a></li>
+<li><a href="#index-right-side-bearing-752">right side bearing</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-right_002dto_002dleft-typesetting-350">right-to-left typesetting</a>: <a href="#TeX-extensions">TeX extensions</a></li>
+<li><a href="#index-Rokicki_002c-Tomas-13">Rokicki, Tomas</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-run-length-encoded-bitmaps-768">run length encoded bitmaps</a>: <a href="#gftype-invocation">gftype invocation</a></li>
+<li><a href="#index-run-length-encoded-bitmaps-753">run length encoded bitmaps</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-runtime-options-69">runtime options</a>: <a href="#Runtime-options">Runtime options</a></li>
+<li><a href="#index-scaled-pixels-775">scaled pixels</a>: <a href="#gftype-invocation">gftype invocation</a></li>
+<li><a href="#index-scaled-pixels-740">scaled pixels</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-scaling-of-fonts-703">scaling of fonts</a>: <a href="#Font-file-formats">Font file formats</a></li>
+<li><a href="#index-scanned-images-of-fonts-845">scanned images of fonts</a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-security_002c-and-_0040code_007b_005copenout_007d-241">security, and <code>\openout</code></a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-security_002c-and-output-files-245">security, and output files</a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-security_002c-and-shell-escapes-270">security, and shell escapes</a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-SetColor-_0040r_007bditroff-command_007d-556"><code>SetColor </code><span class="roman">ditroff command</span></a>: <a href="#dmp-invocation">dmp invocation</a></li>
+<li><a href="#index-shapes-357">shapes</a>: <a href="#Metafont">Metafont</a></li>
+<li><a href="#index-sharing-memory-dumps-187">sharing memory dumps</a>: <a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></li>
+<li><a href="#index-shell-commands-in-_0040TeX_007b_007d-264">shell commands in TeX</a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-shell_005fescape-_0040r_007benabling-in-_0040TeX_007b_007d_007d-266"><code>shell_escape </code><span class="roman">enabling in TeX</span></a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-siam_002ebst-617"><code>siam.bst</code></a>: <a href="#Basic-BibTeX-style-files">Basic BibTeX style files</a></li>
+<li><a href="#index-side-bearings-767">side bearings</a>: <a href="#gftype-invocation">gftype invocation</a></li>
+<li><a href="#index-side-bearings-750">side bearings</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-slant-font-460">slant font</a>: <a href="#gftodvi-invocation">gftodvi invocation</a></li>
+<li><a href="#index-slides_002c-producing-292">slides, producing</a>: <a href="#Formats">Formats</a></li>
+<li><a href="#index-Sli_0040TeX_007b_007d-291">SliTeX</a>: <a href="#Formats">Formats</a></li>
+<li><a href="#index-small-Metafont-memory-and-modes-395">small Metafont memory and modes</a>: <a href="#Modes">Modes</a></li>
+<li><a href="#index-smode-_0040r_007band-dynamic-Metafont-mode-definition_007d-398"><code>smode </code><span class="roman">and dynamic Metafont mode definition</span></a>: <a href="#Modes">Modes</a></li>
+<li><a href="#index-sockets-338">sockets</a>: <a href="#IPC-and-TeX">IPC and TeX</a></li>
+<li><a href="#index-space_002dterminated-filenames-217">space-terminated filenames</a>: <a href="#g_t_005cinput-filenames">\input filenames</a></li>
+<li><a href="#index-Spiderweb-623">Spiderweb</a>: <a href="#WEB">WEB</a></li>
+<li><a href="#index-Stallman_002c-Richard-22">Stallman, Richard</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-starting-page-687">starting page</a>: <a href="#dvitype-invocation">dvitype invocation</a></li>
+<li><a href="#index-starting-page-671">starting page</a>: <a href="#dvicopy-invocation">dvicopy invocation</a></li>
+<li><a href="#index-Steele-Jr_002e_002c-Guy-L_002e-206">Steele Jr., Guy L.</a>: <a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></li>
+<li><a href="#index-stopping-at-the-first-error-111">stopping at the first error</a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-strategy_002c-overall-7">strategy, overall</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-string-numbers_002c-displaying-657">string numbers, displaying</a>: <a href="#pooltype-invocation">pooltype invocation</a></li>
+<li><a href="#index-string-pool_002c-writing-634">string pool, writing</a>: <a href="#tangle-invocation">tangle invocation</a></li>
+<li><a href="#index-string-representation-660">string representation</a>: <a href="#pooltype-invocation">pooltype invocation</a></li>
+<li><a href="#index-style-design_002c-for-Bib_0040TeX_007b_007d-602">style design, for BibTeX</a>: <a href="#bibtex-invocation">bibtex invocation</a></li>
+<li><a href="#index-style-files-474">style files</a>: <a href="#mft-invocation">mft invocation</a></li>
+<li><a href="#index-substitutions-of-font-glyphs-302">substitutions of font glyphs</a>: <a href="#MLTeX">MLTeX</a></li>
+<li><a href="#index-sun-417"><code>sun</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-sun_002dgfx_002ec-421"><code>sun-gfx.c</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-Suntools-419">Suntools</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-SunView-418">SunView</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-swap-space_002c-as-array-limit-84">swap space, as array limit</a>: <a href="#Runtime-options">Runtime options</a></li>
+<li><a href="#index-swapping-bytes-199">swapping bytes</a>: <a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></li>
+<li><a href="#index-syntax-of-TCX-files-321">syntax of TCX files</a>: <a href="#TCX-files">TCX files</a></li>
+<li><a href="#index-system-_0040r_007bC-library-function_007d-269"><code>system </code><span class="roman">C library function</span></a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-T1-encoding-and-ISO-input-320">T1 encoding and ISO input</a>: <a href="#TCX-files">TCX files</a></li>
+<li><a href="#index-Tachikawa_002c-Elizabeth-715">Tachikawa, Elizabeth</a>: <a href="#Font-file-formats">Font file formats</a></li>
+<li><a href="#index-tangle-629"><code>tangle</code></a>: <a href="#tangle-invocation">tangle invocation</a></li>
+<li><a href="#index-targets_002c-additional-Make-45">targets, additional Make</a>: <a href="#Additional-targets">Additional targets</a></li>
+<li><a href="#index-TCX-_0040r_007bcharacter-translation-files_007d-309"><code>TCX </code><span class="roman">character translation files</span></a>: <a href="#TCX-files">TCX files</a></li>
+<li><a href="#index-tek-422"><code>tek</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-Tektronix-423">Tektronix</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-Tektronix-4014-427">Tektronix 4014</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-TERM-403"><code>TERM</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-terminator-for-filenames-219">terminator for filenames</a>: <a href="#g_t_005cinput-filenames">\input filenames</a></li>
+<li><a href="#index-terse-output-595">terse output</a>: <a href="#bibtex-invocation">bibtex invocation</a></li>
+<li><a href="#index-TEX-545"><code>TEX</code></a>: <a href="#makempx-invocation">makempx invocation</a></li>
+<li><a href="#index-tex-232"><code>tex</code></a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-g_t_0040TeX_007b_007d_002c-bibliographies-for-608">TeX, bibliographies for</a>: <a href="#bibtex-invocation">bibtex invocation</a></li>
+<li><a href="#index-g_t_0040TeX_007b_007d_002c-creating-from-Metafont-467">TeX, creating from Metafont</a>: <a href="#mft-invocation">mft invocation</a></li>
+<li><a href="#index-g_t_0040TeX_007b_007d_002c-creating-from-WEB-647">TeX, creating from WEB</a>: <a href="#weave-invocation">weave invocation</a></li>
+<li><a href="#index-g_t_0040TeX_007b_007d_002c-description-of-227">TeX, description of</a>: <a href="#TeX">TeX</a></li>
+<li><a href="#index-g_t_0040TeX_007b_007d_002c-extensions-to-341">TeX, extensions to</a>: <a href="#TeX-extensions">TeX extensions</a></li>
+<li><a href="#index-g_t_0040TeX_007b_007d_002c-format-packages-for-280">TeX, format packages for</a>: <a href="#Formats">Formats</a></li>
+<li><a href="#index-g_t_0040TeX_007b_007d_002c-initial-273">TeX, initial</a>: <a href="#Initial-TeX">Initial TeX</a></li>
+<li><a href="#index-g_t_0040TeX_007b_007d_002c-input-files-found-235">TeX, input files found</a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-g_t_0040TeX_007b_007d_002c-invocation-233">TeX, invocation</a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-g_t_0040TeX_007b_007d_002c-Metafont_002c-and-MetaPost-158">TeX, Metafont, and MetaPost</a>: <a href="#Three-programs">Three programs</a></li>
+<li><a href="#index-g_t_0040TeX_007b_007d_002c-Web2c-implementation-of-3">TeX, Web2c implementation of</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-TeX_002d_002dXeT-348"><code>TeX--XeT</code></a>: <a href="#TeX-extensions">TeX extensions</a></li>
+<li><a href="#index-tex_002efmt-277"><code>tex.fmt</code></a>: <a href="#Initial-TeX">Initial TeX</a></li>
+<li><a href="#index-TEXBIB_0040r_007b_002c-search-path-for-bib-files_007d-591"><code>TEXBIB</code><span class="roman">, search path for bib files</span></a>: <a href="#bibtex-invocation">bibtex invocation</a></li>
+<li><a href="#index-TEXEDIT-210"><code>TEXEDIT</code></a>: <a href="#Editor-invocation">Editor invocation</a></li>
+<li><a href="#index-texfonts_002emap-148"><code>texfonts.map</code></a>: <a href="#Path-searching">Path searching</a></li>
+<li><a href="#index-Texinfo-286">Texinfo</a>: <a href="#Formats">Formats</a></li>
+<li><a href="#index-texmf_002ecnf-144"><code>texmf.cnf</code></a>: <a href="#Path-searching">Path searching</a></li>
+<li><a href="#index-texmfmp_002ec-452"><code>texmfmp.c</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-texmfmp_002ec-_0040r_007band-_0040code_007bopenoutnameok_007d_007d-246"><code>texmfmp.c </code><span class="roman">and </span><code>openoutnameok</code></a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-TEXMFOUTPUT_0040r_007b_002c-used-if-_0040samp_007b_002e_007d-unwritable_007d-155"><code>TEXMFOUTPUT</code><span class="roman">, used if `<samp>.</samp>' unwritable</span></a>: <a href="#Output-file-location">Output file location</a></li>
+<li><a href="#index-texput-236"><code>texput</code></a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-text_002c-extracting-from-MetaPost-input-567">text, extracting from MetaPost input</a>: <a href="#mpto-invocation">mpto invocation</a></li>
+<li><a href="#index-TFM-files_002c-converting-property-lists-to-808">TFM files, converting property lists to</a>: <a href="#pltotf-invocation">pltotf invocation</a></li>
+<li><a href="#index-TFM-files_002c-explained-702">TFM files, explained</a>: <a href="#Font-file-formats">Font file formats</a></li>
+<li><a href="#index-TFM-files_002c-memory-for-79">TFM files, memory for</a>: <a href="#Runtime-options">Runtime options</a></li>
+<li><a href="#index-TFM-files_002c-output-by-Metafont-371">TFM files, output by Metafont</a>: <a href="#mf-invocation">mf invocation</a></li>
+<li><a href="#index-TFM-files_002c-output-by-MetaPost-493">TFM files, output by MetaPost</a>: <a href="#mpost-invocation">mpost invocation</a></li>
+<li><a href="#index-TFM-width-of-characters-778">TFM width of characters</a>: <a href="#gftype-invocation">gftype invocation</a></li>
+<li><a href="#index-TFM-width-of-characters-735">TFM width of characters</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-tftopl-781"><code>tftopl</code></a>: <a href="#tftopl-invocation">tftopl invocation</a></li>
+<li><a href="#index-three-programs-157">three programs</a>: <a href="#Three-programs">Three programs</a></li>
+<li><a href="#index-time-and-date_002c-in-memory-dumps-203">time and date, in memory dumps</a>: <a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></li>
+<li><a href="#index-title-font-458">title font</a>: <a href="#gftodvi-invocation">gftodvi invocation</a></li>
+<li><a href="#index-toolkits_002c-X-437">toolkits, X</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-torture-tests-65">torture tests</a>: <a href="#Triptrap">Triptrap</a></li>
+<li><a href="#index-translation-file-for-_0040TeX_007b_007d_002c-specifying-135">translation file for TeX, specifying</a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-translation-from-WEB-to-C-6">translation from WEB to C</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-trap-_0040r_007bMake-target_007d-59"><code>trap </code><span class="roman">Make target</span></a>: <a href="#Additional-targets">Additional targets</a></li>
+<li><a href="#index-trap-test-63">trap test</a>: <a href="#Triptrap">Triptrap</a></li>
+<li><a href="#index-trapman_002etex-67"><code>trapman.tex</code></a>: <a href="#Triptrap">Triptrap</a></li>
+<li><a href="#index-trchars_002eadj-560"><code>trchars.adj</code></a>: <a href="#dmp-invocation">dmp invocation</a></li>
+<li><a href="#index-Trickey_002c-Howard-14">Trickey, Howard</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-trip-_0040r_007bMake-target_007d-58"><code>trip </code><span class="roman">Make target</span></a>: <a href="#Additional-targets">Additional targets</a></li>
+<li><a href="#index-trip-test-62">trip test</a>: <a href="#Triptrap">Triptrap</a></li>
+<li><a href="#index-tripman_002etex-66"><code>tripman.tex</code></a>: <a href="#Triptrap">Triptrap</a></li>
+<li><a href="#index-triptrap-_0040r_007bMake-target_007d-57"><code>triptrap </code><span class="roman">Make target</span></a>: <a href="#Additional-targets">Additional targets</a></li>
+<li><a href="#index-TROFF-546"><code>TROFF</code></a>: <a href="#makempx-invocation">makempx invocation</a></li>
+<li><a href="#index-Troff_002c-and-MetaPost-498">Troff, and MetaPost</a>: <a href="#mpost-invocation">mpost invocation</a></li>
+<li><a href="#index-Troff_002c-WEB-for-628">Troff, WEB for</a>: <a href="#WEB">WEB</a></li>
+<li><a href="#index-Trojan-horses-and-_0040TeX_007b_007d-programs-243">Trojan horses and TeX programs</a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-TUGboat-bibliography-607">TUGboat bibliography</a>: <a href="#bibtex-invocation">bibtex invocation</a></li>
+<li><a href="#index-Type-1-conversion-842">Type 1 conversion</a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-type-design_002c-personal-389">type design, personal</a>: <a href="#Initial-Metafont">Initial Metafont</a></li>
+<li><a href="#index-type-programs_002c-DVI-678">type programs, DVI</a>: <a href="#dvitype-invocation">dvitype invocation</a></li>
+<li><a href="#index-type-programs_002c-GF-759">type programs, GF</a>: <a href="#gftype-invocation">gftype invocation</a></li>
+<li><a href="#index-type-programs_002c-PK-728">type programs, PK</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-type-programs_002c-pool-656">type programs, pool</a>: <a href="#pooltype-invocation">pooltype invocation</a></li>
+<li><a href="#index-typeface-families-355">typeface families</a>: <a href="#Metafont">Metafont</a></li>
+<li><a href="#index-typeface-specimen-sheets-846">typeface specimen sheets</a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-typesetting-228">typesetting</a>: <a href="#TeX">TeX</a></li>
+<li><a href="#index-Unicode-345">Unicode</a>: <a href="#TeX-extensions">TeX extensions</a></li>
+<li><a href="#index-Unicode-input-248">Unicode input</a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-uniterm-426"><code>uniterm</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-unsrt_002ebst-618"><code>unsrt.bst</code></a>: <a href="#Basic-BibTeX-style-files">Basic BibTeX style files</a></li>
+<li><a href="#index-using-local-codepage-to-display-messages-142">using local codepage to display messages</a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-UTF_002d8-input-249">UTF-8 input</a>: <a href="#tex-invocation">tex invocation</a></li>
+<li><a href="#index-validation_002c-of-DVI-files-679">validation, of DVI files</a>: <a href="#dvitype-invocation">dvitype invocation</a></li>
+<li><a href="#index-validation_002c-of-GF-files-760">validation, of GF files</a>: <a href="#gftype-invocation">gftype invocation</a></li>
+<li><a href="#index-validation_002c-of-PK-files-729">validation, of PK files</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-validation_002c-of-TFM-files-783">validation, of TFM files</a>: <a href="#tftopl-invocation">tftopl invocation</a></li>
+<li><a href="#index-validation_002c-of-VF-files-812">validation, of VF files</a>: <a href="#vftovp-invocation">vftovp invocation</a></li>
+<li><a href="#index-verbatimtex-_0040r_007bMetaPost-command_007d-571"><code>verbatimtex </code><span class="roman">MetaPost command</span></a>: <a href="#mpto-invocation">mpto invocation</a></li>
+<li><a href="#index-verbose-Bib_0040TeX_007b_007d-output_002c-suppressing-596">verbose BibTeX output, suppressing</a>: <a href="#bibtex-invocation">bibtex invocation</a></li>
+<li><a href="#index-verbosity_002c-enabling-99">verbosity, enabling</a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-version-number_002c-finding-101">version number, finding</a>: <a href="#Common-options">Common options</a></li>
+<li><a href="#index-vertical-escapement-773">vertical escapement</a>: <a href="#gftype-invocation">gftype invocation</a></li>
+<li><a href="#index-VF-files_002c-converting-property-lists-to-819">VF files, converting property lists to</a>: <a href="#vptovf-invocation">vptovf invocation</a></li>
+<li><a href="#index-vftovp-810"><code>vftovp</code></a>: <a href="#vftovp-invocation">vftovp invocation</a></li>
+<li><a href="#index-virgin-programs-163">virgin programs</a>: <a href="#Initial-and-virgin">Initial and virgin</a></li>
+<li><a href="#index-virtual-font-creation-850">virtual font creation</a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-virtual-fonts_002c-expanding-665">virtual fonts, expanding</a>: <a href="#dvicopy-invocation">dvicopy invocation</a></li>
+<li><a href="#index-virtual_002dfonts_002eknuth-712"><code>virtual-fonts.knuth</code></a>: <a href="#Font-file-formats">Font file formats</a></li>
+<li><a href="#index-virtualfonts_002etxt-713"><code>virtualfonts.txt</code></a>: <a href="#Font-file-formats">Font file formats</a></li>
+<li><a href="#index-vptovf-817"><code>vptovf</code></a>: <a href="#vptovf-invocation">vptovf invocation</a></li>
+<li><a href="#index-weave-646"><code>weave</code></a>: <a href="#weave-invocation">weave invocation</a></li>
+<li><a href="#index-WEB-619">WEB</a>: <a href="#WEB">WEB</a></li>
+<li><a href="#index-WEB-pool-files_002c-displaying-658">WEB pool files, displaying</a>: <a href="#pooltype-invocation">pooltype invocation</a></li>
+<li><a href="#index-WEB-programs_002c-compiling-631">WEB programs, compiling</a>: <a href="#tangle-invocation">tangle invocation</a></li>
+<li><a href="#index-WEB-programs_002c-typesetting-648">WEB programs, typesetting</a>: <a href="#weave-invocation">weave invocation</a></li>
+<li><a href="#index-WEB2C_0040r_007b_002c-search-path-for-TCX-files_007d-315"><code>WEB2C</code><span class="roman">, search path for TCX files</span></a>: <a href="#TCX-files">TCX files</a></li>
+<li><a href="#index-Weber_002c-Olaf-18">Weber, Olaf</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-webmac_002etex-654"><code>webmac.tex</code></a>: <a href="#weave-invocation">weave invocation</a></li>
+<li><a href="#index-webman_002etex-622"><code>webman.tex</code></a>: <a href="#WEB">WEB</a></li>
+<li><a href="#index-whitespace_002c-in-TCX-files-323">whitespace, in TCX files</a>: <a href="#TCX-files">TCX files</a></li>
+<li><a href="#index-whitespace_002dterminated-filenames-218">whitespace-terminated filenames</a>: <a href="#g_t_005cinput-filenames">\input filenames</a></li>
+<li><a href="#index-width_002c-device_002dindependent-780">width, device-independent</a>: <a href="#gftype-invocation">gftype invocation</a></li>
+<li><a href="#index-width_002c-device_002dindependent-737">width, device-independent</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-width_002c-in-pixels-745">width, in pixels</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-word-processor_002c-not-231">word processor, not</a>: <a href="#TeX">TeX</a></li>
+<li><a href="#index-writing-memory-dumps-173">writing memory dumps</a>: <a href="#Creating-memory-dumps">Creating memory dumps</a></li>
+<li><a href="#index-X-bitmap-fonts-825">X bitmap fonts</a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-X-class-name-for-Metafont-442">X class name for Metafont</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-x-offset-746">x offset</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-X-resources-441">X resources</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-X-toolkits-and-Metafont-438">X toolkits and Metafont</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-x-X-_0040r_007bditroff-device-control_007d-555"><code>x X </code><span class="roman">ditroff device control</span></a>: <a href="#dmp-invocation">dmp invocation</a></li>
+<li><a href="#index-xampl_002ebib-604"><code>xampl.bib</code></a>: <a href="#bibtex-invocation">bibtex invocation</a></li>
+<li><a href="#index-xbfe_0040r_007b_002c-bitmap-font-editor_007d-830"><code>xbfe</code><span class="roman">, bitmap font editor</span></a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-xfed_0040r_007b_002c-bitmap-font-editor_007d-831"><code>xfed</code><span class="roman">, bitmap font editor</span></a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-xfedor_0040r_007b_002c-bitmap-font-editor_007d-832"><code>xfedor</code><span class="roman">, bitmap font editor</span></a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li>
+<li><a href="#index-Xlib-431"><code>Xlib</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-Xlib-support-440">Xlib support</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-Xt-430"><code>Xt</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-Xt-support-439">Xt support</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-xterm-432"><code>xterm</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li>
+<li><a href="#index-y-offset-747">y offset</a>: <a href="#pktype-invocation">pktype invocation</a></li>
+<li><a href="#index-g_t_007e-_0040r_007bexpansion-in-filenames_007d-224"><code>~ </code><span class="roman">expansion in filenames</span></a>: <a href="#g_t_005cinput-filenames">\input filenames</a></li>
+ </ul></body></html>
+
diff --git a/Master/texmf/doc/web2c/web2c.pdf b/Master/texmf/doc/web2c/web2c.pdf
new file mode 100644
index 00000000000..ab535d5f135
--- /dev/null
+++ b/Master/texmf/doc/web2c/web2c.pdf
Binary files differ