diff options
Diffstat (limited to 'Master/texmf/doc')
-rw-r--r-- | Master/texmf/doc/web2c/web2c.html | 4943 | ||||
-rw-r--r-- | Master/texmf/doc/web2c/web2c.pdf | bin | 0 -> 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: <a rel="next" accesskey="n" href="#Introduction">Introduction</a>, +Up: <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: <a rel="next" accesskey="n" href="#Installation">Installation</a>, +Previous: <a rel="previous" accesskey="p" href="#Top">Top</a>, +Up: <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—“free” 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: <a rel="next" accesskey="n" href="#Commonalities">Commonalities</a>, +Previous: <a rel="previous" accesskey="p" href="#Introduction">Introduction</a>, +Up: <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: <a rel="next" accesskey="n" href="#Compile_002dtime-options">Compile-time options</a>, +Up: <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: <a rel="next" accesskey="n" href="#Additional-targets">Additional targets</a>, +Previous: <a rel="previous" accesskey="p" href="#configure-options">configure options</a>, +Up: <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: <a rel="next" accesskey="n" href="#Triptrap">Triptrap</a>, +Previous: <a rel="previous" accesskey="p" href="#Compile_002dtime-options">Compile-time options</a>, +Up: <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: <a rel="next" accesskey="n" href="#Runtime-options">Runtime options</a>, +Previous: <a rel="previous" accesskey="p" href="#Additional-targets">Additional targets</a>, +Up: <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 “torture +tests”. 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 >&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: <a rel="previous" accesskey="p" href="#Triptrap">Triptrap</a>, +Up: <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 “large” 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: <a rel="next" accesskey="n" href="#TeX">TeX</a>, +Previous: <a rel="previous" accesskey="p" href="#Installation">Installation</a>, +Up: <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: <a rel="next" accesskey="n" href="#Common-options">Common options</a>, +Up: <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: <a rel="next" accesskey="n" href="#Path-searching">Path searching</a>, +Previous: <a rel="previous" accesskey="p" href="#Option-conventions">Option conventions</a>, +Up: <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">%&</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 “initial” 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 “search” 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">%&</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">%& -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: <a rel="next" accesskey="n" href="#Output-file-location">Output file location</a>, +Previous: <a rel="previous" accesskey="p" href="#Common-options">Common options</a>, +Up: <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: <a rel="next" accesskey="n" href="#Three-programs">Three programs</a>, +Previous: <a rel="previous" accesskey="p" href="#Path-searching">Path searching</a>, +Up: <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: <a rel="previous" accesskey="p" href="#Output-file-location">Output file location</a>, +Up: <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: <a rel="next" accesskey="n" href="#Memory-dumps">Memory dumps</a>, +Up: <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">%&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: <a rel="next" accesskey="n" href="#Editor-invocation">Editor invocation</a>, +Previous: <a rel="previous" accesskey="p" href="#Initial-and-virgin">Initial and virgin</a>, +Up: <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: <a rel="next" accesskey="n" href="#Determining-the-memory-dump-to-use">Determining the memory dump to use</a>, +Up: <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: <a rel="next" accesskey="n" href="#Hardware-and-memory-dumps">Hardware and memory dumps</a>, +Previous: <a rel="previous" accesskey="p" href="#Creating-memory-dumps">Creating memory dumps</a>, +Up: <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">&</span></samp>', the +program uses the remainder of that argument as the memory dump name. +For example, running `<samp><span class="samp">tex \&super</span></samp>' reads <samp><span class="file">super.fmt</span></samp>. (The +backslash protects the `<samp><span class="samp">&</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>%&</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>%&-translate-file=</code><var>tcxfile</var> +(see <a href="#TCX-files">TCX files</a>). + + <p>These two roles can be combined: <code>%&</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: <a rel="previous" accesskey="p" href="#Determining-the-memory-dump-to-use">Determining the memory dump to use</a>, +Up: <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&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: <a rel="next" accesskey="n" href="#g_t_005cinput-filenames">\input filenames</a>, +Previous: <a rel="previous" accesskey="p" href="#Memory-dumps">Memory dumps</a>, +Up: <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: <a rel="previous" accesskey="p" href="#Editor-invocation">Editor invocation</a>, +Up: <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–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>'–`<samp><span class="samp">z</span></samp>', `<samp><span class="samp">0</span></samp>'–`<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: <a rel="next" accesskey="n" href="#Metafont">Metafont</a>, +Previous: <a rel="previous" accesskey="p" href="#Commonalities">Commonalities</a>, +Up: <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 +“word processor”: you compile a TeX input file into a corresponding +device-independent (DVI) file (and then translate the DVI file to the +commands for a particular output device). This approach has both +considerable disadvantages and considerable advantages. For a complete +description of the TeX language, see <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: <a rel="next" accesskey="n" href="#Initial-TeX">Initial TeX</a>, +Up: <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>]... &<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 “any”), no restrictions are imposed. When it is set to +`<samp><span class="samp">r</span></samp>' (for “restricted”), 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 “paranoid”) 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: <a rel="next" accesskey="n" href="#Formats">Formats</a>, +Previous: <a rel="previous" accesskey="p" href="#tex-invocation">tex invocation</a>, +Up: <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 “virgin” (<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: <a rel="next" accesskey="n" href="#Languages-and-hyphenation">Languages and hyphenation</a>, +Previous: <a rel="previous" accesskey="p" href="#Initial-TeX">Initial TeX</a>, +Up: <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 “emphasize”, instead of specific +typesetting instructions, such as “use the 10<span class="dmn">pt</span> Computer Modern +italic font”. 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 “expanded plain” format provides various common features (e.g., +symbolic cross-referencing, tables of contents, indexing, citations +using BibTeX), for those authors who prefer to handle their own +high-level formatting. The Eplain home page: +<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: <a rel="next" accesskey="n" href="#IPC-and-TeX">IPC and TeX</a>, +Previous: <a rel="previous" accesskey="p" href="#Formats">Formats</a>, +Up: <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 & fonts. +</ul> + +<div class="node"> +<p><hr> +<a name="MLTeX"></a> +Next: <a rel="next" accesskey="n" href="#patgen-invocation">patgen invocation</a>, +Up: <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: <a rel="next" accesskey="n" href="#g_t_005ctracingcharsubdef">\tracingcharsubdef</a>, +Up: <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: <a rel="previous" accesskey="p" href="#g_t_005ccharsubdef">\charsubdef</a>, +Up: <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: <a rel="previous" accesskey="p" href="#patgen-invocation">patgen invocation</a>, +Up: <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"> %& -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—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 + => terminal etc. output with 8-bit chars + latex --translate-file=empty.tcx somefile8.tex + => 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 “printable”, 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–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: <a rel="next" accesskey="n" href="#TCX-files">TCX files</a>, +Previous: <a rel="previous" accesskey="p" href="#MLTeX">MLTeX</a>, +Up: <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: <a rel="next" accesskey="n" href="#TeX-extensions">TeX extensions</a>, +Previous: <a rel="previous" accesskey="p" href="#Languages-and-hyphenation">Languages and hyphenation</a>, +Up: <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: <a rel="previous" accesskey="p" href="#IPC-and-TeX">IPC and TeX</a>, +Up: <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: <a rel="next" accesskey="n" href="#MetaPost">MetaPost</a>, +Previous: <a rel="previous" accesskey="p" href="#TeX">TeX</a>, +Up: <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: <a rel="next" accesskey="n" href="#Initial-Metafont">Initial Metafont</a>, +Up: <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>]... &<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—<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 “magstep”, 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: <a rel="next" accesskey="n" href="#Modes">Modes</a>, +Previous: <a rel="previous" accesskey="p" href="#mf-invocation">mf invocation</a>, +Up: <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 “initial” form of Metafont, which does lengthy +initializations avoided by the “virgin” (<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: <a rel="next" accesskey="n" href="#Online-Metafont-graphics">Online Metafont graphics</a>, +Previous: <a rel="previous" accesskey="p" href="#Initial-Metafont">Initial Metafont</a>, +Up: <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: <a rel="next" accesskey="n" href="#gftodvi-invocation">gftodvi invocation</a>, +Previous: <a rel="previous" accesskey="p" href="#Modes">Modes</a>, +Up: <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: <a rel="next" accesskey="n" href="#mft-invocation">mft invocation</a>, +Previous: <a rel="previous" accesskey="p" href="#Online-Metafont-graphics">Online Metafont graphics</a>, +Up: <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: <a rel="previous" accesskey="p" href="#gftodvi-invocation">gftodvi invocation</a>, +Up: <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. 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 <!-- /@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: <a rel="next" accesskey="n" href="#BibTeX">BibTeX</a>, +Previous: <a rel="previous" accesskey="p" href="#Metafont">Metafont</a>, +Up: <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 “font”, 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: <a rel="next" accesskey="n" href="#Initial-MetaPost">Initial MetaPost</a>, +Up: <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&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&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>]... &<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: <a rel="next" accesskey="n" href="#makempx-invocation">makempx invocation</a>, +Previous: <a rel="previous" accesskey="p" href="#mpost-invocation">mpost invocation</a>, +Up: <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 “initial” form of MetaPost, which does +lengthy initializations avoided by the “virgin” (<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: <a rel="next" accesskey="n" href="#dvitomp-invocation">dvitomp invocation</a>, +Previous: <a rel="previous" accesskey="p" href="#Initial-MetaPost">Initial MetaPost</a>, +Up: <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: <a rel="next" accesskey="n" href="#dmp-invocation">dmp invocation</a>, +Previous: <a rel="previous" accesskey="p" href="#makempx-invocation">makempx invocation</a>, +Up: <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: <a rel="next" accesskey="n" href="#mpto-invocation">mpto invocation</a>, +Previous: <a rel="previous" accesskey="p" href="#dvitomp-invocation">dvitomp invocation</a>, +Up: <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—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&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: <a rel="next" accesskey="n" href="#newer-invocation">newer invocation</a>, +Previous: <a rel="previous" accesskey="p" href="#dmp-invocation">dmp invocation</a>, +Up: <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: <a rel="previous" accesskey="p" href="#mpto-invocation">mpto invocation</a>, +Up: <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: <a rel="next" accesskey="n" href="#WEB">WEB</a>, +Previous: <a rel="previous" accesskey="p" href="#MetaPost">MetaPost</a>, +Up: <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: <a rel="next" accesskey="n" href="#Basic-BibTeX-style-files">Basic BibTeX style files</a>, +Up: <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: <a rel="previous" accesskey="p" href="#bibtex-invocation">bibtex invocation</a>, +Up: <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: <a rel="next" accesskey="n" href="#DVI-utilities">DVI utilities</a>, +Previous: <a rel="previous" accesskey="p" href="#BibTeX">BibTeX</a>, +Up: <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: <a rel="next" accesskey="n" href="#weave-invocation">weave invocation</a>, +Up: <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: <a rel="next" accesskey="n" href="#pooltype-invocation">pooltype invocation</a>, +Previous: <a rel="previous" accesskey="p" href="#tangle-invocation">tangle invocation</a>, +Up: <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: <a rel="previous" accesskey="p" href="#weave-invocation">weave invocation</a>, +Up: <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: <a rel="next" accesskey="n" href="#Font-utilities">Font utilities</a>, +Previous: <a rel="previous" accesskey="p" href="#WEB">WEB</a>, +Up: <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: <a rel="next" accesskey="n" href="#dvitype-invocation">dvitype invocation</a>, +Up: <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: <a rel="previous" accesskey="p" href="#dvicopy-invocation">dvicopy invocation</a>, +Up: <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: <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: <a rel="next" accesskey="n" href="#Legalisms">Legalisms</a>, +Previous: <a rel="previous" accesskey="p" href="#DVI-utilities">DVI utilities</a>, +Up: <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 -> PK (compact) +<li><a accesskey="3" href="#pktogf-invocation">pktogf invocation</a>: PK -> GF (expand). +<li><a accesskey="4" href="#pktype-invocation">pktype invocation</a>: PK -> human-readable text. +<li><a accesskey="5" href="#gftype-invocation">gftype invocation</a>: GF -> human-readable text. +<li><a accesskey="6" href="#tftopl-invocation">tftopl invocation</a>: TFM -> PL (for editing TFM). +<li><a accesskey="7" href="#pltotf-invocation">pltotf invocation</a>: PL -> TFM (make editing results usable). +<li><a accesskey="8" href="#vftovp-invocation">vftovp invocation</a>: VF -> VPL (tftopl for virtual fonts). +<li><a accesskey="9" href="#vptovf-invocation">vptovf invocation</a>: VPL -> 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: <a rel="next" accesskey="n" href="#gftopk-invocation">gftopk invocation</a>, +Up: <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 “virtual font” 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: <a rel="next" accesskey="n" href="#pktogf-invocation">pktogf invocation</a>, +Previous: <a rel="previous" accesskey="p" href="#Font-file-formats">Font file formats</a>, +Up: <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: <a rel="next" accesskey="n" href="#pktype-invocation">pktype invocation</a>, +Previous: <a rel="previous" accesskey="p" href="#gftopk-invocation">gftopk invocation</a>, +Up: <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: <a rel="next" accesskey="n" href="#gftype-invocation">gftype invocation</a>, +Previous: <a rel="previous" accesskey="p" href="#pktogf-invocation">pktogf invocation</a>, +Up: <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: <a rel="next" accesskey="n" href="#tftopl-invocation">tftopl invocation</a>, +Previous: <a rel="previous" accesskey="p" href="#pktype-invocation">pktype invocation</a>, +Up: <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<=m<=60 0<=n<=56 + (initially n=56) paint (0)24(12)20 + 2043: newrow 0 (n=55) paint 24(12)20 + 2047: newrow 0 (n=54) paint 24(12)20 + 2051: newrow 0 (n=53) paint 24(12)20 + 2055: newrow 7 (n=52) paint 10(21)13 + 2059: newrow 8 (n=51) paint 8(23)9 + ... + 2249: newrow 8 (n=5) paint 8(23)11 + 2253: newrow 7 (n=4) paint 10(22)12 + 2257: newrow 0 (n=3) paint 24(11)22 + 2261: newrow 0 (n=2) paint 24(11)22 + 2265: newrow 0 (n=1) paint 24(11)22 + 2269: newrow 0 (n=0) paint 24(11)22 + 2273: eoc + .<--This pixel's lower left corner is at (3,57) in METAFONT coordinates + ************************ ******************** + ************************ ******************** + ************************ ******************** + ************************ ******************** + ********** ************* + ******** ********* + ... + ******** *********** + ********** ************ + ************************ ********************** + ************************ ********************** + ************************ ********************** + ************************ ********************** + .<--This pixel's upper left corner is at (3,0) in METAFONT coordinates +</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<=m<=60 0<=n<=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: <a rel="next" accesskey="n" href="#pltotf-invocation">pltotf invocation</a>, +Previous: <a rel="previous" accesskey="p" href="#gftype-invocation">gftype invocation</a>, +Up: <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—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: <a rel="next" accesskey="n" href="#vftovp-invocation">vftovp invocation</a>, +Previous: <a rel="previous" accesskey="p" href="#tftopl-invocation">tftopl invocation</a>, +Up: <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: <a rel="next" accesskey="n" href="#vptovf-invocation">vptovf invocation</a>, +Previous: <a rel="previous" accesskey="p" href="#pltotf-invocation">pltotf invocation</a>, +Up: <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: <a rel="next" accesskey="n" href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a>, +Previous: <a rel="previous" accesskey="p" href="#vftovp-invocation">vftovp invocation</a>, +Up: <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: <a rel="previous" accesskey="p" href="#vptovf-invocation">vptovf invocation</a>, +Up: <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 <!-- /@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: <a rel="next" accesskey="n" href="#References">References</a>, +Previous: <a rel="previous" accesskey="p" href="#Font-utilities">Font utilities</a>, +Up: <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&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&T disclaims all warranties with regard to this software, including +all implied warranties of merchantability and fitness. In no event +shall AT&T be liable for any special, indirect or consequential damages +or any damages whatsoever resulting from loss of use, data or profits, +whether in an action of contract, negligence or other tortious action, +arising out of or in connection with the use or performance of this +software. +</blockquote> + +<div class="node"> +<p><hr> +<a name="References"></a> +Next: <a rel="next" accesskey="n" href="#Index">Index</a>, +Previous: <a rel="previous" accesskey="p" href="#Legalisms">Legalisms</a>, +Up: <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–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–512, December 1989. + + <li>[Hob92] +John D. Hobby. +A User's Manual for MetaPost. +Technical Report CSTR-162, AT&T Bell Laboratories, 1992. + + <li>[Hob93] +John D. Hobby. +Drawing Graphs with MetaPost. +Technical Report CSTR-164, AT&T Bell Laboratories, 1993. + + <li>[HS91] +Samuel P. Harbison and Guy L. Steele Jr. +<cite>C—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—Practice and Experience</cite>, 19(7):607–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–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—Papers from the second RIDT meeting, held in + Boston, Oct. 14–16, 1991</cite>, pages 205–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—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: <a rel="previous" accesskey="p" href="#References">References</a>, +Up: <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>%& </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 Binary files differnew file mode 100644 index 00000000000..ab535d5f135 --- /dev/null +++ b/Master/texmf/doc/web2c/web2c.pdf |