diff options
Diffstat (limited to 'Master/texmf/doc/web2c/web2c.html')
-rw-r--r-- | Master/texmf/doc/web2c/web2c.html | 4718 |
1 files changed, 0 insertions, 4718 deletions
diff --git a/Master/texmf/doc/web2c/web2c.html b/Master/texmf/doc/web2c/web2c.html deleted file mode 100644 index ed9c8a4947c..00000000000 --- a/Master/texmf/doc/web2c/web2c.html +++ /dev/null @@ -1,4718 +0,0 @@ -<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.13"> -<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, 2005, 2007, 2008, 2009 Karl Berry & Olaf Weber. - -Permission is granted to make and distribute verbatim copies of this -manual provided the copyright notice and this permission notice are -preserved on all copies. - - -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided that the -entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - -Permission is granted to copy and distribute translations of this manual -into another language, under the above conditions for modified versions, -except that this permission notice may be stated in a translation--> -<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="#Shell-escapes">4.5 Shell escapes</a> -<li><a href="#IPC-and-TeX">4.6 IPC and TeX</a> -<li><a href="#TeX-extensions">4.7 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="#dvitomp-invocation">6.3 DVItoMP: DVI to MPX conversion</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"> -<a name="Top"></a> -<p><hr> -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 2012, released in -May 2012. - -<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"> -<a name="Introduction"></a> -<p><hr> -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 2012 of Web2c, released in -May 2012. - - <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) 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"> -<a name="Installation"></a> -<p><hr> -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"> -<a name="configure-options"></a> -<p><hr> -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"> -<a name="Compile-time-options"></a> -<a name="Compile_002dtime-options"></a> -<p><hr> -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"> -<a name="Additional-targets"></a> -<p><hr> -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"> -<a name="Triptrap"></a> -<p><hr> -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"> -<a name="Runtime-options"></a> -<p><hr> -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"> -<a name="Commonalities"></a> -<p><hr> -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"> -<a name="Option-conventions"></a> -<p><hr> -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"> -<a name="Common-options"></a> -<p><hr> -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>. - - <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. See <a href="#Output-file-location">Output file location</a>. - - <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 -Aleph, this option is always on, and the file has extension ‘<samp><span class="samp">.ofl</span></samp>’. - - <p>Ordinarily, the ‘<samp><span class="samp">.fls</span></samp>’ file is written to the same location as -the ‘<samp><span class="samp">.log</span></samp>’ file, for example, respecting -<samp><span class="option">-output-directory</span></samp> if it is given (see <a href="#Output-file-location">Output file location</a>). However, if TeX processing is done on the command line -(or in response to the ‘<samp><span class="samp">**</span></samp>’ prompt), the ‘<samp><span class="samp">.fls</span></samp>’ might be -written to the current directory, or include an integer (the current -pid), as in <samp><span class="file">texput1234.fls</span></samp>. You can use <samp><span class="option">-jobname</span></samp> to -explicitly set the basename. - - <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. - - </dl> - -<div class="node"> -<a name="Path-searching"></a> -<p><hr> -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-141"></a> -<a name="index-texmf_002ecnf-142"></a><a name="index-configuration-file-reading-143"></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-144"></a><a name="index-aliases-for-fonts-145"></a><a name="index-texfonts_002emap-146"></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"> -<a name="Output-file-location"></a> -<p><hr> -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-147"></a><a name="index-current-directory_002c-used-for-output-148"></a><a name="index-g_t_002e_0040r_007b_002c-used-for-output_007d-149"></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-150"></a><a name="index-output-directory_002c-specifying-151"></a><a name="index-readonly-directory_002c-running-_0040TeX_007b_007d-in-152"></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-153"></a><a name="index-readonly-directory_002c-running-_0040TeX_007b_007d-in-154"></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 or environment -variable value <code>TEXMFOUTPUT</code> is set (it is not by default), -output files are written to the directory specified. - - <p><a name="index-TEXMFOUTPUT_0040r_007b_002c-used-for-reading_007d-155"></a><code>TEXMFOUTPUT</code> is also checked for input files, as TeX often -generates files that need to be subsequently read; for input, no -suffixes (such as ‘<samp><span class="samp">.tex</span></samp>’) are added by default and no exhaustive -path searching is done, the input name is -simply checked as given. - -<div class="node"> -<a name="Three-programs"></a> -<p><hr> -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-156"></a><a name="index-g_t_0040TeX_007b_007d_002c-Metafont_002c-and-MetaPost-157"></a><a name="index-Metafont_002c-MetaPost_002c-and-_0040TeX_007b_007d-158"></a><a name="index-MetaPost_002c-_0040TeX_007b_007d_002c-and-Metafont-159"></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 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"> -<a name="Initial-and-virgin"></a> -<p><hr> -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-160"></a>The TeX and Metafont programs each have two main variants, called -<dfn>initial</dfn> and <dfn>virgin</dfn>. MetaPost no longer makes this -distinction. - - <p>The initial form is enabled if: - <ol type=1 start=1> -<li><a name="index-g_t_002dini-161"></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>; 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-162"></a><a name="index-production-use-163"></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-164"></a><a name="index-initializations_002c-lengthy-165"></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"> -<a name="Memory-dumps"></a> -<p><hr> -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-166"></a> -<a name="index-dumping-memory-167"></a><a name="index-macros_002c-predefining-in-memory-dumps-168"></a><a name="index-predefined-macros-and-memory-dumps-169"></a>In typical use, TeX and Metafont 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"> -<a name="Creating-memory-dumps"></a> -<p><hr> -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-170"></a><a name="index-creating-memory-dumps-171"></a><a name="index-writing-memory-dumps-172"></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>. -</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"> -<a name="Determining-the-memory-dump-to-use"></a> -<p><hr> -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-173"></a><a name="index-fmt-file_002c-determining-174"></a><a name="index-base-file_002c-determining-175"></a><a name="index-mem-file_002c-determining-176"></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-177"></a><a name="index-g_t_002dbase_003d_0040var_007bbase_007d-178"></a>If the ‘<samp><span class="samp">-fmt</span></samp>’ resp. ‘<samp><span class="samp">-base</span></samp>’ option is -specified, its value is used. - - <li><a name="index-g_t_002dprogname_003d_0040var_007bstring_007d-179"></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-180"></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-181"></a><a name="index-links-to-binaries-182"></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>. 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"> -<a name="Hardware-and-memory-dumps"></a> -<p><hr> -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-183"></a><a name="index-memory-dumps-and-hardware-184"></a><a name="index-sharing-memory-dumps-185"></a><a name="index-fmt-files_002c-sharing-186"></a><a name="index-base-files_002c-sharing-187"></a><a name="index-mem-files_002c-sharing-188"></a> -<a name="index-LittleEndian-machines-189"></a><a name="index-BigEndian-machines-190"></a><a name="index-endian-dependencies-191"></a><a name="index-machine-dependencies-192"></a><a name="index-architecture-dependencies-193"></a><a name="index-dependencies_002c-hardware-194"></a><a name="index-g_t_002d_002ddisable_002ddump_002dshare-configure-_0040r_007boption_007d-195"></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-196"></a><a name="index-swapping-bytes-197"></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-198"></a><a name="index-glue-ratio-representations-199"></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 does not use floating point in -any dumped value at all. - - <p><a name="index-date-and-time_002c-in-memory-dumps-200"></a><a name="index-time-and-date_002c-in-memory-dumps-201"></a><a name="index-memory-dumps_002c-contain-date-and-time-202"></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-203"></a><a name="index-Steele-Jr_002e_002c-Guy-L_002e-204"></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"> -<a name="Editor-invocation"></a> -<p><hr> -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-205"></a><a name="index-errors_002c-editor-invoked-at-206"></a><a name="index-e-_0040r_007bresponse-at-error-prompt_007d-207"></a> -TeX, Metafont, and MetaPost all (by default) stop and ask for user -intervention at an error. If the input came from a file, and the user -responds with <kbd>e</kbd> or <kbd>E</kbd>, the program invokes an editor. - - <p><a name="index-TEXEDIT-208"></a><a name="index-MFEDIT-209"></a><a name="index-MPEDIT-210"></a><a name="index-g_t_002d_002dwith_002deditor_003d_0040var_007bcmd_007d-211"></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> on Unix, and an -invocation of the TeXworks editor on Windows. (See -<samp><span class="file">texmf.cnf</span></samp> for the precise values.) - - <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"> -<a name="%5cinput-filenames"></a> -<a name="g_t_005cinput-filenames"></a> -<p><hr> -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-212"></a><a name="index-filename-conventions_002c-in-input-files-213"></a><a name="index-g_t_005cinput-_0040r_007bfilenames_007d-214"></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-215"></a><a name="index-whitespace_002dterminated-filenames-216"></a><a name="index-terminator-for-filenames-217"></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-218"></a><a name="index-eight_002dbit-characters-in-filenames-219"></a><a name="index-meta-characters-in-filenames-220"></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-221"></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-222"></a><a name="index-g_t_0024-_0040r_007bexpansion-in-filenames_007d-223"></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-224"></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"> -<a name="TeX"></a> -<p><hr> -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-225"></a><a name="index-typesetting-226"></a><a name="index-mathematical-typesetting-227"></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-228"></a><a name="index-word-processor_002c-not-229"></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="#Shell-escapes">Shell escapes</a>: Running subprograms from TeX. -<li><a accesskey="6" href="#IPC-and-TeX">IPC and TeX</a>: DVI output to a socket. -<li><a accesskey="7" href="#TeX-extensions">TeX extensions</a>: Changes to the TeX language. -</ul> - -<div class="node"> -<a name="tex-invocation"></a> -<p><hr> -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-230"></a><a name="index-g_t_0040TeX_007b_007d_002c-invocation-231"></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-232"></a><a name="index-g_t_0040TeX_007b_007d_002c-input-files-found-233"></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-234"></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-235"></a><a name="index-mktextfM_0040r_007b_002c-disabling_007d-236"></a><a name="index-g_t_005cfont-_0040r_007band-dynamic-generation_007d-237"></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-238"></a><a name="index-security_002c-and-_0040code_007b_005copenout_007d-239"></a><a name="index-output-files_002c-written-by-_0040TeX_007b_007d-programs-240"></a><a name="index-Trojan-horses-and-_0040TeX_007b_007d-programs-241"></a><a name="index-dot-files_002c-written-by-_0040TeX_007b_007d-programs-242"></a><a name="index-security_002c-and-output-files-243"></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 and -similar problems the functions <code>kpathsea_out_name_ok</code> and -<code>kpathsea_in_name_ok</code> from the Kpathse library (see <a href="kpathsea.html#Calling-sequence">Calling sequence</a>) are used to determine if a given filename -is acceptable to be opened for output or input, depending on the setting of -the configuration variables <code>openout_any</code> and <code>openin_any</code>: -‘<samp><span class="samp">a</span></samp>’ (for “any”, the default for <code>openin_any</code>), ‘<samp><span class="samp">r</span></samp>’ (for -“restricted”), or ‘<samp><span class="samp">p</span></samp>’ (for “paranoid”, the default for -<code>openout_any</code>). - - <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. - - <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-244"></a><a name="index-Unicode-input-245"></a><a name="index-UTF_002d8-input-246"></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-247"></a><a name="index-g_t_002dipc_002dstart-248"></a><a name="index-g_t_002d_002denable_002dipc-configure-_0040r_007boption_007d-249"></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-250"></a><a name="index-g_t_002dno_002dmktex_003d_0040var_007bfiletype_007d-251"></a>Turn on or off the ‘<samp><span class="samp">mktex</span></samp>’ script associated with <var>filetype</var>. -For TeX proper, <var>filetype</var> can only be ‘<samp><span class="samp">tex</span></samp>’ and -‘<samp><span class="samp">tfm</span></samp>’, but for pdfTeX and luaTeX, it can also be ‘<samp><span class="samp">pk</span></samp>’. - - <br><dt>‘<samp><span class="samp">-mltex</span></samp>’<dd><a name="index-g_t_002dmltex-252"></a><a name="index-ML_0040TeX_007b_007d_002c-enabling-253"></a><a name="index-program-names_002c-special-254"></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-255"></a><a name="index-output_005fcomment-_0040r_007bfor-DVI-files_007d-256"></a><a name="index-DVI-comment_002c-specifying-257"></a><a name="index-regression-testing-258"></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-259"></a><dt>‘<samp><span class="samp">-no-shell-escape</span></samp>’<dd><a name="index-g_t_002dno_002dshell_002descape-260"></a><dt>‘<samp><span class="samp">-shell-restricted</span></samp>’<dd><a name="index-g_t_002dshell_002drestricted-261"></a>Enable, or disable, or enable with restrictions the -<code>\write18{</code><var>shell-command</var><code>}</code> feature for external executing -shell commands. See <a href="#Shell-escapes">Shell escapes</a>. - - <br><dt>‘<samp><span class="samp">-enable-write18</span></samp>’<dd><a name="index-g_t_002denable_002dwrite18-262"></a><dt>‘<samp><span class="samp">-disable-write18</span></samp>’<dd><a name="index-g_t_002ddisable_002dwrite18-263"></a>Synonyms for <samp><span class="option">-shell-escape</span></samp> and <samp><span class="option">-no-shell-escape</span></samp>, for -compatibility with MiKTeX. (MiKTeX also accepts both pairs of -options.) See <a href="#Shell-escapes">Shell escapes</a>. - - <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-264"></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"> -<a name="Initial-TeX"></a> -<p><hr> -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-265"></a><a name="index-g_t_0040TeX_007b_007d_002c-initial-266"></a> -<a name="index-g_t_002efmt-267"></a><a name="index-fmt-files-268"></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-269"></a><a name="index-tex_002efmt-270"></a><a name="index-format-files-271"></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"> -<a name="Formats"></a> -<p><hr> -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-272"></a><a name="index-g_t_0040TeX_007b_007d_002c-format-packages-for-273"></a><a name="index-macro-packages_002c-major-_0040TeX_007b_007d-274"></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-275"></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-276"></a><a name="index-American-Mathematical-Society_002c-typesetting-system-277"></a><a name="index-Mathematical-Reviews-278"></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-279"></a><a name="index-Info-format-280"></a><a name="index-Free-Software-Foundation-documentation-system-281"></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-282"></a><a name="index-expanded-plain-format-283"></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-284"></a><a name="index-slides_002c-producing-285"></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"> -<a name="Languages-and-hyphenation"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Shell-escapes">Shell escapes</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-286"></a><a name="index-human-languages_002c-supported-in-_0040TeX_007b_007d-287"></a><a name="index-hyphenation-and-languages-288"></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"> -<a name="MLTeX"></a> -<p><hr> -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-289"></a><a name="index-Multi_002dlingual-_0040TeX_007b_007d-290"></a> -<a name="index-Ferguson_002c-Michael-291"></a><a name="index-Raichle_002c-Bernd-292"></a><a name="index-accents_002c-hyphenating-words-with-293"></a><a name="index-glyph-substitutions-294"></a><a name="index-substitutions-of-font-glyphs-295"></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"> -<a name="%5ccharsubdef"></a> -<a name="g_t_005ccharsubdef"></a> -<p><hr> -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-296"></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-297"></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-298"></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"> -<a name="%5ctracingcharsubdef"></a> -<a name="g_t_005ctracingcharsubdef"></a> -<p><hr> -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-299"></a><a name="index-redefined-character-substitutions-300"></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-301"></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"> -<a name="TCX-files"></a> -<p><hr> -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-302"></a><a name="index-g_t_002etcx-_0040r_007bcharacter-translation-files_007d-303"></a><a name="index-character-translation-files-304"></a> -<a name="index-international-characters-305"></a><a name="index-g_t8_002dbit-characters-306"></a><a name="index-accented-character-307"></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-308"></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-309"></a><a name="index-il2_002dt1_002etcx-310"></a><a name="index-empty_002etcx-311"></a><a name="index-Cork-encoding-and-ISO-input-312"></a><a name="index-T1-encoding-and-ISO-input-313"></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-314"></a>Syntax of TCX files: - <ol type=1 start=1> -<li><a name="index-blank-lines_002c-in-TCX-files-315"></a>Line-oriented. Blank lines are ignored. - - <li><a name="index-whitespace_002c-in-TCX-files-316"></a>Whitespace is ignored except as a separator. - - <li><a name="index-comments_002c-in-TCX-files-317"></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-318"></a><a name="index-octal-character-codes_002c-in-TCX-files-319"></a><a name="index-hex-character-codes_002c-in-TCX-files-320"></a><a name="index-decimal-character-codes_002c-in-TCX-files-321"></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-322"></a><a name="index-g_t_005e_005e-_0040r_007bnotation_002c-avoiding_007d-323"></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-324"></a><a name="index-keyboard-character-code_002c-translating-325"></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-326"></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"> -<a name="patgen-invocation"></a> -<p><hr> -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-327"></a><a name="index-hyphenation-patterns_002c-creating-328"></a><a name="index-languages_002c-hyphenation-rules-for-329"></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"> -<a name="Shell-escapes"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#IPC-and-TeX">IPC and TeX</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 Shell escapes</h3> - -<p><a name="index-shell-commands-in-_0040TeX_007b_007d-330"></a><a name="index-security_002c-and-shell-escapes-331"></a><a name="index-restricted-shell-escapes-332"></a><a name="index-system-command-333"></a><a name="index-shell_005fescape-_0040r_007benabling-in-_0040TeX_007b_007d_007d-334"></a><a name="index-g_t_005cimmediate_005cwrite18-335"></a><a name="index-g_t_005cwrite18-_0040r_007bshell-escape-extension_007d-336"></a><a name="index-system-_0040r_007bC-library-function_007d-337"></a> -TeX can execute <dfn>shell escapes</dfn>, that is, arbitrary shell -commands. Although tremendously useful, this also has obvious -security implications. Therefore, as of TeX Live 2009, a -<dfn>restricted</dfn> mode for shell escapes is the default mode of -operation, which allows executing only certain commands, as specified -in the <samp><span class="file">texmf.cnf</span></samp> configuration file. - - <ul> -<li>Unrestricted shell escapes are allowed if the option -<samp><span class="option">--shell-escape</span></samp> is specified, or if the environment variable -or config file value <code>shell_escape</code> is set to ‘<samp><span class="samp">t</span></samp>’ or -‘<samp><span class="samp">y</span></samp>’ and ‘<samp><span class="samp">1</span></samp>’. - - <li>Restricted shell escapes are allowed if <code>shell_escape</code> is set to -‘<samp><span class="samp">p</span></samp>’. This is the default. - - <li>Shell escapes are completely disabled if <samp><span class="option">--no-shell-escape</span></samp> is -specified, or if <code>shell_escape</code> is set to anything else. -</ul> - - <p>When enabled, the TeX construct to execute a system command is -<code>\write18{</code><var>shell-command</var><code>}</code>; for example: - -<pre class="example"> \write18{echo "hello, world"} -</pre> - <p><a name="index-g_t_005coutput-_0040r_007broutine_002c-and-_0040code_007b_005cwrite_007d_007d-338"></a>From TeX's point of view, this is a normal <code>\write</code> command, -and is therefore subject to the usual TeX expansions. Also, the -system call either happens during the ‘<samp><span class="samp">\output</span></samp>’ routine or right -away, according to the absence or presence of the <code>\immediate</code> -prefix, as usual for <code>\write</code>. - - <p><a name="index-exit-status_002c-of-shell-escape-339"></a>The <var>shell-command</var> string is passed to the command shell (via the -C library function <code>system</code>). The output of <var>shell-command</var> -is not diverted anywhere, so it will not appear in the log file, or -anywhere but the terminal output. The exit status of the system call -is also not available to TeX. - - <p>In unrestricted mode, the argument is simply passed straight to -<code>system</code> unaltered. - - <p>In restricted mode, ASCII double quote characters (<tt>"</tt>) should -always be used in the argument to <code>\write18</code> where quoting of -arguments is needed, as in the example above. This is to achieve some -measure of system independence. On Unix systems, these are replaced -with single quote (<tt>'</tt>) characters to avoid insecure further -expansion. Care is also taken on Windows to avoid additional -expansions (from, e.g., <tt>`...`</tt>). Mismatched quotation marks -in the command string result in a diagnostic message in the log file; -no execution is performed. - - <p><a name="index-shell_005fescape_005fcommands-340"></a>After quotation processing, if the first word (delimited by a space or -tab) of the command is in the list specified by the -<code>shell_escape_commands</code> configuration value, the command is -executed. Otherwise it is not. In any case, a message is written to -the log file. - - <p>The <code>shell_escape_commands</code> value is a comma-separated list of -words. Whitespace is significant, and typically should not be -present. The default definition looks like this, but with more -commands included: - -<pre class="example"> shell_escape_commands = bibtex,dvips,epstopdf,...,tex -</pre> - <p><a name="index-pipes_002c-reading-and-writing-341"></a><a name="index-g_t_005copenin_0040r_007b_002c-and-pipes_007d-342"></a><a name="index-g_t_005cinput_0040r_007b_002c-and-pipes_007d-343"></a><a name="index-g_t_005copenout_0040r_007b_002c-and-pipes_007d-344"></a><a name="index-g_t_005cpdfshellescape-345"></a>pdfTeX and luaTeX support reading (via <code>\input</code> and -<code>\openin</code>) and writing (via <code>\openout</code>) from pipes if the -first character is ‘<samp><span class="samp">|</span></samp>’. The following command is then treated -exactly the same as the argument to <code>\write18</code>. In these -engines, the primitive variable <code>\pdfshellescape</code> is set to 0 if -shell escapes are disabled, 1 if they are enabled, and 2 if they are -enabled with restrictions. - - <p><a name="index-web-environments_002c-and-security-346"></a>The purpose of this feature is to make it possible for TeX -documents to perform useful external actions in the common case of an -individual user running a known document on his or her own machine. -In such environments as CGI scripts or wikis where the input has to be -considered untrustworthy, shell escapes should be completely disabled. - -<div class="node"> -<a name="IPC-and-TeX"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#TeX-extensions">TeX extensions</a>, -Previous: <a rel="previous" accesskey="p" href="#Shell-escapes">Shell escapes</a>, -Up: <a rel="up" accesskey="u" href="#TeX">TeX</a> - -</div> - -<h3 class="section">4.6 IPC and TeX</h3> - -<p><a name="index-IPC-347"></a><a name="index-sockets-348"></a>(If anyone uses this feature and needs documentation, write -<a href="mailto:tex-k@tug.org">tex-k@tug.org</a>.) - - <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-349"></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"> -<a name="TeX-extensions"></a> -<p><hr> -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.7 TeX extensions</h3> - -<p><a name="index-extensions-to-_0040TeX_007b_007d-350"></a><a name="index-g_t_0040TeX_007b_007d_002c-extensions-to-351"></a> -The base TeX program has been extended in many ways. Here's a -partial list. - - <dl> -<dt>e-TeX<dd><a name="index-e_002d_0040TeX_007b_007d-352"></a><a name="index-primitives_002c-new-353"></a>Adds many new primitives, including right-to-left typesetting and more -registers. Now frozen. - - <br><dt>Aleph<dd><a name="index-Aleph-354"></a><a name="index-Unicode-355"></a>This adds Unicode support, right-to-left typesetting, and more. Omega -was the original program. Aleph is an updated version with a variety -of bug fixes, and includes e-TeX. Aleph is not actively maintained. - - <br><dt>pdfTeX<dd><a name="index-pdf_0040TeX_007b_007d-356"></a><a name="index-PDF-357"></a><a name="index-micro_002dtypography-358"></a><a name="index-hypertext-359"></a>Can produce PDF as well as DVI files. It also incorporates the -e-TeX extensions, new primitives for hypertext and -micro-typography, reading/writing from pipes, and much more. Home -page: <a href="http://pdftex.org">http://pdftex.org</a>. - - <br><dt>luaTeX<dd><a name="index-lua_0040TeX_007b_007d-360"></a><a name="index-Lua-361"></a>Based on pdfTeX, this also embeds the Lua programming language -(<a href="http://lua.org">http://lua.org</a>) and opens up the TeX typesetting engine to -control from Lua. Home page: <a href="http://luatex.org">http://luatex.org</a>. - - <br><dt>XeTeX<dd><a name="index-Xe_0040TeX_007b_007d-362"></a><a name="index-Unicode-363"></a>Combines support for Unicode input and OpenType- and system fonts -with the capabilities of pdfTeX. -Home page: <a href="http://tug.org/xetex">http://tug.org/xetex</a>. - - </dl> - -<div class="node"> -<a name="Metafont"></a> -<p><hr> -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-364"></a><a name="index-typeface-families-365"></a><a name="index-geometric-designs-366"></a><a name="index-shapes-367"></a><a name="index-font-design-368"></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"> -<a name="mf-invocation"></a> -<p><hr> -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-369"></a><a name="index-Metafont-invocation-370"></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-371"></a><a name="index-Metafont-input-files-372"></a><a name="index-EC-fonts-373"></a><a name="index-mktexmf_0040r_007b_002c-disabling_007d-374"></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-375"></a><a name="index-mfput-376"></a><a name="index-GF-output-377"></a><a name="index-GF-files_002c-output-by-Metafont-378"></a><a name="index-PK-files_002c-not-output-by-Metafont-379"></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-380"></a><a name="index-TFM-files_002c-output-by-Metafont-381"></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-382"></a><a name="index-proof-_0040r_007bmode_007d-383"></a><a name="index-g_t2602gf-384"></a><a name="index-g_t_002e2602gf-385"></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-386"></a><a name="index-g_t_002dno_002dmktex_003d_0040var_007bfiletype_007d-387"></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"> -<a name="Initial-Metafont"></a> -<p><hr> -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-388"></a><a name="index-Metafont_002c-initial-389"></a> -<a name="index-g_t_002ebase-390"></a><a name="index-base-files-391"></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-392"></a><a name="index-mf_002ebase-393"></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-394"></a><a name="index-cm_002ebase-395"></a><a name="index-cmbase_002emf-396"></a><a name="index-Computer-Modern-macros-397"></a><a name="index-base-files_002c-plain-only-398"></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-399"></a>People actually working on a typeface may still find it worthwhile to -create their own base file, of course. - -<div class="node"> -<a name="Modes"></a> -<p><hr> -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-400"></a><a name="index-base-files_002c-need-mode-definitions-401"></a><a name="index-device-definitions_002c-for-Metafont-402"></a><a name="index-printer-characteristics_002c-for-Metafont-403"></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-404"></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-405"></a><a name="index-mode_005fdef-406"></a><a name="index-mode_005fsetup-407"></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@math.utah.edu">tex-fonts@math.utah.edu</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-408"></a><a name="index-dynamic-Metafont-mode-definitions-with-_0040code_007bsmode_007d-409"></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"> -<a name="Online-Metafont-graphics"></a> -<p><hr> -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-410"></a><a name="index-Metafont-graphics-411"></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-412"></a><a name="index-TERM-413"></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-414"></a><dd><a name="index-Herberts_002c-Mathias-415"></a><a name="index-g_t_002d_002denable_002depsfwin-416"></a>(‘<samp><span class="samp">--enable-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-417"></a><dd><a name="index-g_t_002d_002denable_002dhp2627win-418"></a>(‘<samp><span class="samp">--enable-hp2627win</span></samp>’) HP2627a color graphics terminals. - - <br><dt><code>mftalk</code><a name="index-mftalk-419"></a><dd><a name="index-g_t_002d_002denable_002dmftalkwin-420"></a>(‘<samp><span class="samp">--enable-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-421"></a><dd><a name="index-DrawingServant-422"></a><a name="index-g_t_002d_002denable_002dnext-423"></a>(‘<samp><span class="samp">--enable-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-424"></a><dd><a name="index-g_t_002d_002denable_002dregiswin-425"></a><a name="index-Regis-graphics-support-426"></a>(‘<samp><span class="samp">--enable-regiswin</span></samp>’) Regis terminals. - - <br><dt><code>sun</code><a name="index-sun-427"></a><dd><a name="index-SunView-428"></a><a name="index-Suntools-429"></a><a name="index-g_t_002d_002denable_002dsuntoolswin-430"></a><a name="index-sun_002dgfx_002ec-431"></a>(‘<samp><span class="samp">--enable-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-432"></a><dd><a name="index-Tektronix-433"></a><a name="index-g_t_002d_002denable_002dtektronixwin-434"></a>(‘<samp><span class="samp">--enable-tektronixwin</span></samp>’) Tektronix terminals. - - <p><a name="index-Poole_002c-Simon-435"></a><br><dt><code>uniterm</code><a name="index-uniterm-436"></a><dd><a name="index-Tektronix-4014-437"></a><a name="index-g_t_002d_002denable_002dunitermwin-438"></a>(‘<samp><span class="samp">--enable-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">--enable-tektronixwin</span></samp>’ selects. - - <p><a name="index-NO_005fX11WIN-439"></a><a name="index-Xt-440"></a><a name="index-Xlib-441"></a><br><dt><code>xterm</code><a name="index-xterm-442"></a><dd><a name="index-g_t_002d_002dwith_002dx-443"></a>‘<samp><span class="samp">--with-x</span></samp>’ The X window system (version 11). - - <p><a name="index-g_t_002d_002dwith_002dmf_002dx_002dtoolkit_003d_0040var_007bkit_007d-444"></a><a name="index-toolkits_002c-X-445"></a><a name="index-X-toolkits-and-Metafont-446"></a><a name="index-Xt-support-447"></a><a name="index-Xlib-support-448"></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-kf-x-toolkit=no</span></samp>’. - - <p><a name="index-g_t_002d_002ddisable_002dmf_002dnowin-449"></a><a name="index-non_002dwindows_002dcapable-Metafont-450"></a>Specify ‘<samp><span class="samp">--disable-mf-nowin</span></samp>’ in order not to build a separate -non-windows-capable Metafont executable <code>mf-nowin</code> (or -<code>mf-nowin.exe</code>). - - <p><a name="index-X-resources-451"></a><a name="index-X-class-name-for-Metafont-452"></a><a name="index-class-name-for-Metafont-453"></a><a name="index-geometry-for-Metafont-454"></a><a name="index-Metafont-geometry-455"></a><a name="index-g_t_002eXdefaults-456"></a><a name="index-g_t_002eXresources-457"></a><a name="index-g_t_002dgeometry_0040r_007b_002c-supported-with-Xt_007d-458"></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-459"></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-460"></a><a name="index-new-graphics-support-for-Metafont-461"></a><a name="index-texmfmp_002ec-462"></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"> -<a name="gftodvi-invocation"></a> -<p><hr> -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-463"></a><a name="index-character-proofs-of-fonts-464"></a><a name="index-font-proofs-465"></a><a name="index-proof-sheets_002c-of-fonts-466"></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-467"></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-468"></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-469"></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-470"></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, typically via commands like <code>slantfont -slantlj4</code>. There is no default slant font since no one printer is -suitable as a default. You can make your own by copying one of the -existing files, such as -<samp><span class="file">.../fonts/source/public/misc/slantlj4.mf</span></samp> and then running -<samp><span class="command">mf</span></samp> on it. - - <p>For testing purposes, you may it useful to run <code>mf-nowin rtest</code> -(hit RETURN when it stops) to get a <samp><span class="file">gf</span></samp> file of a thorn glyph. -Or use <samp><span class="command">mf</span></samp> instead of <samp><span class="command">mf-nowin</span></samp> to have the glyph(s) -displayed on the screen. After that, <code>gftodvi rtest.2602gf</code> -should produce <samp><span class="file">rtest.dvi</span></samp>, which you process as usual. - - <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-471"></a><a name="index-overflow-label-offset-472"></a><a name="index-offset-for-overflow-labels-473"></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"> -<a name="mft-invocation"></a> -<p><hr> -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-474"></a><a name="index-Metafont-source_002c-prettyprinting-475"></a><a name="index-prettyprinting-Metafont-source-476"></a><a name="index-g_t_0040TeX_007b_007d_002c-creating-from-Metafont-477"></a> -<a name="index-mftmac_002etex-478"></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-479"></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-480"></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-481"></a><a name="index-change-files_002c-and-MFT-482"></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-483"></a><a name="index-style-files-484"></a><a name="index-plain_002emft-485"></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-486"></a><a name="index-e_002emft-487"></a><a name="index-g_t_0040cite_007bComputer-Modern-Typefaces_007d_002c-production-of-488"></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-489"></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"> -<a name="MetaPost"></a> -<p><hr> -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-490"></a><a name="index-PostScript-meets-Metafont-491"></a><a name="index-Metafont-meets-PostScript-492"></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="#dvitomp-invocation">dvitomp invocation</a>: DVI-to-MPX translation. -</ul> - -<div class="node"> -<a name="mpost-invocation"></a> -<p><hr> -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-493"></a><a name="index-MetaPost-invocation-494"></a> -<a name="index-mpman_002eps-495"></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">http://tug.org/metapost</a> (papers, packages, and - related information). -</ul> - - <p><a name="index-mpgraph_002eps-496"></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-497"></a><a name="index-MetaPost-input-files-498"></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-499"></a><a name="index-g_t_002e_0040var_007bnnn_007d-_0040r_007bPostScript-figures_007d-500"></a><a name="index-g_t_002etfm-_0040r_007boutput_007d-501"></a><a name="index-mpout-502"></a><a name="index-TFM-files_002c-output-by-MetaPost-503"></a><a name="index-PostScript-output-504"></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-505"></a><a name="index-etex-_0040r_007bfor-MetaPost-labels_007d-506"></a>The MetaPost construct -<pre class="example"> btex ... <var>tex-input</var> ... etex -</pre> - <p class="noindent">generates a MetaPost picture expression corresponding to -<var>tex-input</var>. - - <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 -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>’. - - <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><a name="index-PostScript-fonts_002c-and-Troff-507"></a><a name="index-Troff_002c-and-MetaPost-508"></a><a name="index-Computer-Modern-fonts_002c-and-Troff-509"></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-510"></a><a name="index-downloading-of-fonts-for-MetaPost-labels-511"></a><a name="index-font-downloading-for-MetaPost-labels-512"></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-513"></a><a name="index-psfonts_002emap_0040r_007b_002c-read-by-MetaPost_007d-514"></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><a name="index-PDF_002c-and-_0040code_007b_002emps_007d-files-515"></a><a name="index-g_t_0040code_007b_002emps_007d-files-and-PDF-516"></a>It is posible for pdfTeX to read MetaPost output directly; this is -in contrast to general EPSF files, which have to be converted for use -with PDF output. The easiest way is to name the MetaPost output files -with the <code>.mps</code> extension. Then the LaTeX -<code>\includegraphics</code> command, for example, will be able to read -them, even when outputting PDF. - - <p><a name="index-security_002c-and-_0040code_007bwrite_007d-517"></a>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-518"></a><a name="index-g_t_002dtroff-519"></a><a name="index-prologues-520"></a>Set the <code>prologues</code> internal variable to <code>1</code>. - - <br><dt>‘<samp><span class="samp">-tex=</span><var>texprogram</var></samp>’<dd><a name="index-g_t_002dtex_003d_0040var_007btexprogram_007d-521"></a>When this option is given, the program <var>texprogram</var> is used to -typeset the labels. - - </dl> - -<div class="node"> -<a name="Initial-MetaPost"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#dvitomp-invocation">dvitomp 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-522"></a><a name="index-MetaPost_002c-initial-523"></a> -As of MetaPost 1.504 (TeX Live 2011), MetaPost no longer dumps -<samp><span class="file">.mem</span></samp> files (see <a href="#Memory-dumps">Memory dumps</a>) and does not distinguish -virgin and initial forms (see <a href="#Initial-and-virgin">Initial and virgin</a>). Instead, the -“initial” file name is read in its source form—that is, -<samp><span class="file">mpost.mp</span></samp> when the program is invoked as <samp><span class="command">mpost</span></samp>. - - <p>For a list of options and other information, see <a href="#mpost-invocation">mpost invocation</a>. - - <p><a name="index-Metafont_002c-compatibility-in-MetaPost-524"></a><a name="index-plain-Metafont_002c-compatibility-in-MetaPost-525"></a><a name="index-MetaPost-and-plain-Metafont-compatibility-526"></a><a name="index-mfplain-527"></a>MetaPost provides a format with all the features of plain Metafont, -called <samp><span class="file">mfplain</span></samp>. You can use that in the same way; just run -<samp><span class="command">mfplain</span></samp> instead of <samp><span class="command">mpost</span></samp>. This lets you directly -process Metafont source files with MetaPost, producing character -proofs (one file for each character) similar to those produced with -Metafont in proof mode and GFtoDVI (see <a href="#gftodvi-invocation">gftodvi invocation</a>). - -<div class="node"> -<a name="dvitomp-invocation"></a> -<p><hr> -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 DVItoMP: DVI to MPX conversion</h3> - -<p><a name="index-dvitomp-528"></a><a name="index-DVI-files_002c-converting-to-MPX-529"></a><a name="index-MPX-files_002c-converting-from-DVI-files-530"></a> -DVItoMP converts DVI files into low-level MetaPost commands in a -so-called MPX file. 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><a name="index-color_002c-in-DVItoMP-531"></a>DVItoMP supports Dvips-style color specials, such as ‘<samp><span class="samp">color push -</span><var>name</var></samp>’ and ‘<samp><span class="samp">color pop</span></samp>’, outputting them as <code>withcolor</code> -MetaPost commands. - - <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"> -<a name="BibTeX"></a> -<p><hr> -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-532"></a><a name="index-Bib_0040TeX_007b_007d-533"></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"> -<a name="bibtex-invocation"></a> -<p><hr> -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-534"></a> -<a name="index-g_t_002ebbl-_0040r_007bbibliography-files_007d-535"></a><a name="index-g_t_002eaux-_0040r_007bcross_002dreference-files_007d-536"></a><a name="index-g_t_002ebib-_0040r_007bbibliography-databases_007d-537"></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-538"></a><a name="index-log-file_002c-Bib_0040TeX_007b_007d-539"></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-540"></a><a name="index-g_t_005cbibliographystyle-541"></a><a name="index-TEXBIB_0040r_007b_002c-search-path-for-bib-files_007d-542"></a><a name="index-BIBINPUTS_0040r_007b_002c-search-path-for-bib-files_007d-543"></a><a name="index-BSTINPUTS_0040r_007b_002c-search-path-for-bst-files_007d-544"></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-545"></a><a name="index-terse-output-546"></a><a name="index-verbose-Bib_0040TeX_007b_007d-output_002c-suppressing-547"></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-548"></a><a name="index-cross_002dreferenced-bibliography-items-549"></a><a name="index-bibliography-items_002c-cross_002dreferenced-550"></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-551"></a>Basic LaTeXable documentation for general BibTeX users. - - <br><dt><samp><span class="file">btxhak.tex</span></samp><dd><a name="index-btxhak_002etex-552"></a><a name="index-style-design_002c-for-Bib_0040TeX_007b_007d-553"></a>LaTeXable documentation for style designers. - - <br><dt><samp><span class="file">btxdoc.bib</span></samp><dd><a name="index-btxdoc_002ebib-554"></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-555"></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-556"></a><a name="index-Bib_0040TeX_007b_007d-collection-557"></a><a name="index-TUGboat-bibliography-558"></a><a name="index-g_t_0040TeX_007b_007d_002c-bibliographies-for-559"></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"> -<a name="Basic-BibTeX-style-files"></a> -<p><hr> -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-560"></a><a name="index-Bib_0040TeX_007b_007d-style-files-561"></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-562"></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-563"></a>First names, month names, and journal names are abbreviated. - - <br><dt><code>acm</code><dd><a name="index-acm_002ebst-564"></a>Names are printed in small caps. - - <br><dt><code>alpha</code><dd><a name="index-alpha_002ebst-565"></a>Alphanumeric labels, e.g., ‘<samp><span class="samp">Knu66</span></samp>’. - - <br><dt><code>apalike</code><dd><a name="index-apalike_002ebst-566"></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-567"></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-568"></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-569"></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"> -<a name="WEB"></a> -<p><hr> -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-570"></a><a name="index-literate-programming-571"></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> -is devoted to this subject.) - - <p><a name="index-webman_002etex-572"></a><a name="index-Spiderweb-573"></a><a name="index-Cweb-574"></a><a name="index-CWEB-575"></a><a name="index-Awk_002c-WEB-for-576"></a><a name="index-Ada_002c-WEB-for-577"></a><a name="index-Troff_002c-WEB-for-578"></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"> -<a name="tangle-invocation"></a> -<p><hr> -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-579"></a><a name="index-Pascal_002c-creating-from-WEB-580"></a><a name="index-WEB-programs_002c-compiling-581"></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-582"></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-583"></a><a name="index-string-pool_002c-writing-584"></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-585"></a><a name="index-identifier-length-586"></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-587"></a><a name="index-g_t_002dmixedcase-588"></a><a name="index-g_t_002duppercase-589"></a><a name="index-identifier-case-590"></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-591"></a><a name="index-identifiers-with-underlines-592"></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-593"></a><a name="index-g_t_002dstrict-594"></a><a name="index-identifier-collisions-595"></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"> -<a name="weave-invocation"></a> -<p><hr> -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-596"></a><a name="index-g_t_0040TeX_007b_007d_002c-creating-from-WEB-597"></a><a name="index-WEB-programs_002c-typesetting-598"></a><a name="index-prettyprinting-WEB-programs-599"></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-600"></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-601"></a><a name="index-cross_002dreferences_002c-omitting-602"></a><a name="index-CONTENTS_002etex-603"></a><a name="index-webmac_002etex-604"></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"> -<a name="pooltype-invocation"></a> -<p><hr> -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-605"></a><a name="index-type-programs_002c-pool-606"></a><a name="index-string-numbers_002c-displaying-607"></a><a name="index-WEB-pool-files_002c-displaying-608"></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-609"></a><a name="index-string-representation-610"></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"> -<a name="DVI-utilities"></a> -<p><hr> -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-611"></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-612"></a><a name="index-DVI-format-definition-613"></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"> -<a name="dvicopy-invocation"></a> -<p><hr> -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-614"></a><a name="index-virtual-fonts_002c-expanding-615"></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-616"></a><a name="index-magnification-617"></a><a name="index-g_t_005cmag-618"></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-619"></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-620"></a><a name="index-starting-page-621"></a><a name="index-page_002c-starting-622"></a><a name="index-g_t_005ccount_0040var_007bn_007d-623"></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"> -<a name="dvitype-invocation"></a> -<p><hr> -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-624"></a><a name="index-conversion_002c-DVI-to-plain-text-625"></a><a name="index-plain-text_002c-converting-DVI-to-626"></a><a name="index-human_002dreadable-text_002c-converting-DVI-to-627"></a><a name="index-type-programs_002c-DVI-628"></a><a name="index-validation_002c-of-DVI-files-629"></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-630"></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-631"></a><a name="index-magnification-632"></a><a name="index-g_t_005cmag-633"></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-634"></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-635"></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-636"></a><a name="index-starting-page-637"></a><a name="index-page_002c-starting-638"></a><a name="index-g_t_005ccount_0040var_007bn_007d-639"></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-640"></a><a name="index-opcodes_002c-showing-DVI-641"></a><a name="index-DVI-opcodes_002c-showing-642"></a><a name="index-debugging-DVI-utilities-643"></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"> -<a name="dvitype-output-example"></a> -<p><hr> -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-644"></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"> -<a name="Font-utilities"></a> -<p><hr> -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-645"></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-646"></a><a name="index-gftype_002eweb-647"></a><a name="index-PK-format-definition-648"></a><a name="index-GF-format-definition-649"></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"> -<a name="Font-file-formats"></a> -<p><hr> -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-650"></a><a name="index-file-formats-for-fonts-651"></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-652"></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-653"></a><a name="index-optical-font-scaling-654"></a><a name="index-geometric-font-scaling-655"></a><a name="index-PostScript_002c-and-font-scaling-656"></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-657"></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-658"></a><a name="index-PK-files_002c-explained-659"></a><a name="index-GF-files_002c-explained-660"></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-661"></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-662"></a><a name="index-virtualfonts_002etxt-663"></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-664"></a><a name="index-Tachikawa_002c-Elizabeth-665"></a>(This section is based on documentation in the original Unix TeX -distribution by Pierre MacKay and Elizabeth Tachikawa.) - -<div class="node"> -<a name="gftopk-invocation"></a> -<p><hr> -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-666"></a><a name="index-conversion_002c-GF-to-PK-667"></a><a name="index-PK_002c-converting-GF-to-668"></a><a name="index-GF_002c-converting-to-PK-669"></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"> -<a name="pktogf-invocation"></a> -<p><hr> -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-670"></a><a name="index-conversion_002c-PK-to-GF-671"></a><a name="index-GF_002c-converting-PK-to-672"></a><a name="index-PK_002c-converting-to-GF-673"></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"> -<a name="pktype-invocation"></a> -<p><hr> -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-674"></a><a name="index-conversion_002c-PK-to-plain-text-675"></a><a name="index-plain-text_002c-converting-PK-to-676"></a><a name="index-human_002dreadable-text_002c-converting-PK-to-677"></a><a name="index-type-programs_002c-PK-678"></a><a name="index-validation_002c-of-PK-files-679"></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-680"></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-681"></a><a name="index-dynamic-packing-variable-682"></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-683"></a>The character code, in decimal. - - <br><dt>‘<samp><span class="samp">Packet length</span></samp>’<dd><a name="index-packet-length-684"></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-685"></a><a name="index-device_002dindependent-width-686"></a><a name="index-width_002c-device_002dindependent-687"></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-688"></a><a name="index-escapement_002c-horizontal-689"></a><a name="index-scaled-pixels-690"></a><a name="index-dx-_0040r_007bhorizontal-escapement_007d-691"></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-692"></a><a name="index-pixel-height-693"></a><a name="index-pixel-width-694"></a><a name="index-width_002c-in-pixels-695"></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-696"></a><a name="index-y-offset-697"></a><a name="index-origin-698"></a><a name="index-reference-pixel-699"></a><a name="index-side-bearings-700"></a><a name="index-left-side-bearing-701"></a><a name="index-right-side-bearing-702"></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-703"></a><a name="index-repeated-rows-704"></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"> -<a name="gftype-invocation"></a> -<p><hr> -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-705"></a><a name="index-conversion_002c-GF-to-plain-text-706"></a><a name="index-plain-text_002c-converting-GF-to-707"></a><a name="index-human_002dreadable-text_002c-converting-GF-to-708"></a><a name="index-type-programs_002c-GF-709"></a><a name="index-validation_002c-of-GF-files-710"></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-711"></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-712"></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-713"></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-714"></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-715"></a><a name="index-right-side-bearing-716"></a><a name="index-side-bearings-717"></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-718"></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-719"></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-720"></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-721"></a><a name="index-escapement_002c-horizontal-722"></a><a name="index-vertical-escapement-723"></a><a name="index-escapement_002c-vertical-724"></a><a name="index-scaled-pixels-725"></a><a name="index-dx-_0040r_007bhorizontal-escapement_007d-726"></a><a name="index-dy-_0040r_007bvertical-escapement_007d-727"></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-728"></a><a name="index-device_002dindependent-width-729"></a><a name="index-width_002c-device_002dindependent-730"></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"> -<a name="tftopl-invocation"></a> -<p><hr> -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-731"></a><a name="index-conversion_002c-TFM-to-property-list-732"></a><a name="index-validation_002c-of-TFM-files-733"></a><a name="index-property-list_002c-converting-TFM-to-734"></a><a name="index-human_002dreadable-text_002c-converting-TFM-to-735"></a><a name="index-plain-text_002c-converting-TFM-to-736"></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-737"></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-738"></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-739"></a><a name="index-FACE-_0040r_007bproperty_007d-740"></a><a name="index-headerbyte-_0040r_007binformation_007d-741"></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-742"></a><a name="index-g_t_005cfontdimen-743"></a>The <code>FONTDIMEN</code> property defines the TeX <code>\fontdimen</code> -values. - - <li><a name="index-LIGTABLE-_0040r_007bproperty_007d-744"></a><a name="index-LABEL-_0040r_007bproperty_007d-745"></a><a name="index-LIG-_0040r_007bproperty_007d-746"></a><a name="index-KRN-_0040r_007bproperty_007d-747"></a><a name="index-ligature-table_002c-in-TFM-files-748"></a><a name="index-kerning-table_002c-in-TFM-files-749"></a><a name="index-design_002dsize-units-750"></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-751"></a><a name="index-CHARWD-_0040r_007bproperty_007d-752"></a><a name="index-CHARHT-_0040r_007bproperty_007d-753"></a><a name="index-CHARDP-_0040r_007bproperty_007d-754"></a><a name="index-CHARIC-_0040r_007bproperty_007d-755"></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"> -<a name="pltotf-invocation"></a> -<p><hr> -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-756"></a><a name="index-conversion_002c-property-list-to-TFM-757"></a><a name="index-TFM-files_002c-converting-property-lists-to-758"></a><a name="index-machine_002dreadable_002c-converting-property-lists-to-759"></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"> -<a name="vftovp-invocation"></a> -<p><hr> -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-760"></a><a name="index-conversion_002c-VF-to-VPL-761"></a><a name="index-validation_002c-of-VF-files-762"></a><a name="index-property-list_002c-converting-VF-to-virtual-763"></a><a name="index-human_002dreadable-text_002c-converting-VF-to-764"></a><a name="index-plain-text_002c-converting-VF-to-765"></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-766"></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"> -<a name="vptovf-invocation"></a> -<p><hr> -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-767"></a><a name="index-conversion_002c-property-list-to-VF-768"></a><a name="index-VF-files_002c-converting-property-lists-to-769"></a><a name="index-machine_002dreadable_002c-converting-property-lists-to-770"></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"> -<a name="Font-utilities-available-elsewhere"></a> -<p><hr> -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-771"></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-772"></a><a name="index-afm2tfm-773"></a><a name="index-afmtopl-774"></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-775"></a><a name="index-BDF-and-GF-conversion-776"></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-777"></a><a name="index-Latin-Modern-778"></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-779"></a><a name="index-xbfe_0040r_007b_002c-bitmap-font-editor_007d-780"></a><a name="index-xfed_0040r_007b_002c-bitmap-font-editor_007d-781"></a><a name="index-xfedor_0040r_007b_002c-bitmap-font-editor_007d-782"></a><a name="index-gftopxl-783"></a><a name="index-chtopx-784"></a><a name="index-pxtoch-785"></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-786"></a><a name="index-pfaedit-787"></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 1, OpenType, TrueType, <small class="dots">...</small>), and many advanced font -editing features. - - <li><a name="index-PK-bitmaps-from-PostScript-788"></a><a name="index-PostScript-to-PK-bitmaps-789"></a><a name="index-gsftopk-790"></a><a name="index-ps2pk-791"></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-792"></a><a name="index-PFA-and-PFB-conversion-793"></a><a name="index-PostScript-Type-1-font-conversion-794"></a>PostScript Type 1 font format conversion (i.e., between PFA and PFB -formats): <a href="http://www.lcdf.org/type">http://www.lcdf.org/type</a>. - - <li><a name="index-scanned-images-of-fonts-795"></a><a name="index-typeface-specimen-sheets-796"></a><a name="index-fontutils-797"></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-798"></a><a name="index-potrace-799"></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-800"></a><a name="index-fontinst_0040r_007b_002c-for-creating-virtual-fonts_007d-801"></a>Virtual font creation: <samp><var>CTAN:</var><span class="file">/fonts/utilities/fontinst</span></samp>. -</ul> - -<div class="node"> -<a name="Legalisms"></a> -<p><hr> -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-802"></a><a name="index-copyright-notices-803"></a><a name="index-permissions_002c-legal-804"></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"> -<a name="References"></a> -<p><hr> -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-805"></a><a name="index-bibliography-806"></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. -<a href="http://tug.org/TUGboat/tb08-1/tb17billawala.pdf">http://tug.org/TUGboat/tb08-1/tb17billawala.pdf</a>. - - <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. -<a href="http://tug.org/metapost">http://tug.org/metapost</a>. - - <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 Knuth:1988:ET. - - <li>[Knu90] -Donald Knuth. -Virtual Fonts: More Fun for Grand Wizards. -<cite>TUGboat</cite>, 11(1):13–23, April 1990. -<a href="http://tug.org/TUGboat/tb11-1/tb27knut.pdf">http://tug.org/TUGboat/tb11-1/tb27knut.pdf</a>. - - <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. -<a href="http://tug.org/docs/liang/liang-thesis.pdf">http://tug.org/docs/liang/liang-thesis.pdf</a>. - - <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"> -<a name="Index"></a> -<p><hr> -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-223"><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-180"><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-195"><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_002ddisable_002dmf_002dnowin-449"><code>--disable-mf-nowin</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-g_t_002d_002denable_002depsfwin-416"><code>--enable-epsfwin</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-g_t_002d_002denable_002dhp2627win-418"><code>--enable-hp2627win</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-g_t_002d_002denable_002dipc-configure-_0040r_007boption_007d-249"><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_002denable_002dmftalkwin-420"><code>--enable-mftalkwin</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-g_t_002d_002denable_002dnext-423"><code>--enable-next</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-g_t_002d_002denable_002dregiswin-425"><code>--enable-regiswin</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-g_t_002d_002denable_002dsuntoolswin-430"><code>--enable-suntoolswin</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-g_t_002d_002denable_002dtektronixwin-434"><code>--enable-tektronixwin</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-g_t_002d_002denable_002dunitermwin-438"><code>--enable-unitermwin</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</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_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-211"><code>--with-editor=</code><var>cmd</var></a>: <a href="#Editor-invocation">Editor invocation</a></li> -<li><a href="#index-g_t_002d_002dwith_002dmf_002dx_002dtoolkit_003d_0040var_007bkit_007d-444"><code>--with-mf-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_002dx-443"><code>--with-x</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-178"><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-481"><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-766"><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-737"><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_002ddisable_002dwrite18-263"><code>-disable-write18</code></a>: <a href="#tex-invocation">tex invocation</a></li> -<li><a href="#index-g_t_002ddpi_003d_0040var_007breal_007d-630"><code>-dpi=</code><var>real</var></a>: <a href="#dvitype-invocation">dvitype invocation</a></li> -<li><a href="#index-g_t_002denable_002dwrite18-262"><code>-enable-write18</code></a>: <a href="#tex-invocation">tex invocation</a></li> -<li><a href="#index-g_t_002denc-244"><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-177"><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-458"><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-711"><code>-images</code></a>: <a href="#gftype-invocation">gftype invocation</a></li> -<li><a href="#index-g_t_002dini-161"><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-247"><code>-ipc</code></a>: <a href="#tex-invocation">tex invocation</a></li> -<li><a href="#index-g_t_002dipc_002dstart-248"><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-585"><code>-length=</code><var>number</var></a>: <a href="#tangle-invocation">tangle invocation</a></li> -<li><a href="#index-g_t_002dloose-593"><code>-loose</code></a>: <a href="#tangle-invocation">tangle invocation</a></li> -<li><a href="#index-g_t_002dlowercase-587"><code>-lowercase</code></a>: <a href="#tangle-invocation">tangle invocation</a></li> -<li><a href="#index-g_t_002dmagnification_003d_0040var_007binteger_007d-631"><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-616"><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-634"><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-619"><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_002dmin_002dcrossrefs_003d_0040var_007bn_007d-548"><code>-min-crossrefs=</code><var>n</var></a>: <a href="#bibtex-invocation">bibtex invocation</a></li> -<li><a href="#index-g_t_002dmixedcase-588"><code>-mixedcase</code></a>: <a href="#tangle-invocation">tangle invocation</a></li> -<li><a href="#index-g_t_002dmktex_003d_0040var_007bfiletype_007d-386"><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-250"><code>-mktex=</code><var>filetype</var></a>: <a href="#tex-invocation">tex invocation</a></li> -<li><a href="#index-g_t_002dmltex-252"><code>-mltex</code></a>: <a href="#tex-invocation">tex invocation</a></li> -<li><a href="#index-g_t_002dmnemonics-712"><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-387"><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-251"><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-260"><code>-no-shell-escape</code></a>: <a href="#tex-invocation">tex invocation</a></li> -<li><a href="#index-g_t_002doutput_002dcomment_003d_0040var_007bstring_007d-255"><code>-output-comment=</code><var>string</var></a>: <a href="#tex-invocation">tex invocation</a></li> -<li><a href="#index-g_t_002doutput_002ddirectory-150"><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-635"><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-471"><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-636"><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-620"><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-179"><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-259"><code>-shell-escape</code></a>: <a href="#tex-invocation">tex invocation</a></li> -<li><a href="#index-g_t_002dshell_002drestricted-261"><code>-shell-restricted</code></a>: <a href="#tex-invocation">tex invocation</a></li> -<li><a href="#index-g_t_002dshow_002dopcodes-640"><code>-show-opcodes</code></a>: <a href="#dvitype-invocation">dvitype invocation</a></li> -<li><a href="#index-g_t_002dstrict-594"><code>-strict</code></a>: <a href="#tangle-invocation">tangle invocation</a></li> -<li><a href="#index-g_t_002dstyle_003d_0040var_007bmftfile_007d-483"><code>-style=</code><var>mftfile</var></a>: <a href="#mft-invocation">mft invocation</a></li> -<li><a href="#index-g_t_002dT-518"><code>-T</code></a>: <a href="#mpost-invocation">mpost invocation</a></li> -<li><a href="#index-g_t_002dterse-545"><code>-terse</code></a>: <a href="#bibtex-invocation">bibtex invocation</a></li> -<li><a href="#index-g_t_002dtex_003d_0040var_007btexprogram_007d-521"><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-519"><code>-troff</code></a>: <a href="#mpost-invocation">mpost invocation</a></li> -<li><a href="#index-g_t_002dunderline-591"><code>-underline</code></a>: <a href="#tangle-invocation">tangle invocation</a></li> -<li><a href="#index-g_t_002duppercase-589"><code>-uppercase</code></a>: <a href="#tangle-invocation">tangle invocation</a></li> -<li><a href="#index-g_t_002dx-601"><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-149"><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-385"><code>.2602gf</code></a>: <a href="#mf-invocation">mf invocation</a></li> -<li><a href="#index-g_t_002eaux-_0040r_007bcross_002dreference-files_007d-536"><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-390"><code>.base</code></a>: <a href="#Initial-Metafont">Initial Metafont</a></li> -<li><a href="#index-g_t_002ebbl-_0040r_007bbibliography-files_007d-535"><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-537"><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-538"><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-267"><code>.fmt</code></a>: <a href="#Initial-TeX">Initial TeX</a></li> -<li><a href="#index-g_t_002emf-371"><code>.mf</code></a>: <a href="#mf-invocation">mf invocation</a></li> -<li><a href="#index-g_t_002emp-497"><code>.mp</code></a>: <a href="#mpost-invocation">mpost invocation</a></li> -<li><a href="#index-g_t_0040code_007b_002emps_007d-files-and-PDF-516"><code>.mps</code> files and PDF</a>: <a href="#mpost-invocation">mpost invocation</a></li> -<li><a href="#index-g_t_002e_0040var_007bnnn_007d-_0040r_007bPostScript-figures_007d-500"><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-375"><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-303"><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-232"><code>.tex</code></a>: <a href="#tex-invocation">tex invocation</a></li> -<li><a href="#index-g_t_002etfm-_0040r_007boutput_007d-501"><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-380"><code>.tfm </code><span class="roman">output</span></a>: <a href="#mf-invocation">mf invocation</a></li> -<li><a href="#index-g_t_002eXdefaults-456"><code>.Xdefaults</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-g_t_002eXresources-457"><code>.Xresources</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-g_t2602gf-384"><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-306">8-bit characters</a>: <a href="#TCX-files">TCX files</a></li> -<li><a href="#index-g_t_005cbibliography-540"><code>\bibliography</code></a>: <a href="#bibtex-invocation">bibtex invocation</a></li> -<li><a href="#index-g_t_005cbibliographystyle-541"><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-296"><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-639"><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-623"><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-237"><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-743"><code>\fontdimen</code></a>: <a href="#tftopl-invocation">tftopl invocation</a></li> -<li><a href="#index-g_t_005cimmediate_005cwrite18-335"><code>\immediate\write18</code></a>: <a href="#Shell-escapes">Shell escapes</a></li> -<li><a href="#index-g_t_005cinput-_0040r_007bfilenames_007d-214"><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_005cinput_0040r_007b_002c-and-pipes_007d-343"><code>\input</code><span class="roman">, and pipes</span></a>: <a href="#Shell-escapes">Shell escapes</a></li> -<li><a href="#index-g_t_005cmag-633"><code>\mag</code></a>: <a href="#dvitype-invocation">dvitype invocation</a></li> -<li><a href="#index-g_t_005cmag-618"><code>\mag</code></a>: <a href="#dvicopy-invocation">dvicopy invocation</a></li> -<li><a href="#index-g_t_005copenin_0040r_007b_002c-and-pipes_007d-342"><code>\openin</code><span class="roman">, and pipes</span></a>: <a href="#Shell-escapes">Shell escapes</a></li> -<li><a href="#index-g_t_005copenout-_0040r_007band-security_007d-238"><code>\openout </code><span class="roman">and security</span></a>: <a href="#tex-invocation">tex invocation</a></li> -<li><a href="#index-g_t_005copenout_0040r_007b_002c-and-pipes_007d-344"><code>\openout</code><span class="roman">, and pipes</span></a>: <a href="#Shell-escapes">Shell escapes</a></li> -<li><a href="#index-g_t_005coutput-_0040r_007broutine_002c-and-_0040code_007b_005cwrite_007d_007d-338"><code>\output </code><span class="roman">routine, and </span><code>\write</code></a>: <a href="#Shell-escapes">Shell escapes</a></li> -<li><a href="#index-g_t_005cpdfshellescape-345"><code>\pdfshellescape</code></a>: <a href="#Shell-escapes">Shell escapes</a></li> -<li><a href="#index-g_t_005cstring-224"><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-299"><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-301"><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-336"><code>\write18 </code><span class="roman">shell escape extension</span></a>: <a href="#Shell-escapes">Shell escapes</a></li> -<li><a href="#index-g_t_005e_005e-_0040r_007bnotation_002c-avoiding_007d-323"><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-488"><cite>Computer Modern Typefaces</cite>, production of</a>: <a href="#mft-invocation">mft invocation</a></li> -<li><a href="#index-abbrv_002ebst-563"><code>abbrv.bst</code></a>: <a href="#Basic-BibTeX-style-files">Basic BibTeX style files</a></li> -<li><a href="#index-accented-character-307">accented character</a>: <a href="#TCX-files">TCX files</a></li> -<li><a href="#index-accents_002c-hyphenating-words-with-293">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-564"><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-577">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-772">AFM to TFM conversion</a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li> -<li><a href="#index-afm2tfm-773"><code>afm2tfm</code></a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li> -<li><a href="#index-afmtopl-774"><code>afmtopl</code></a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li> -<li><a href="#index-Aleph-354">Aleph</a>: <a href="#TeX-extensions">TeX extensions</a></li> -<li><a href="#index-aliases-for-fonts-145">aliases for fonts</a>: <a href="#Path-searching">Path searching</a></li> -<li><a href="#index-alpha_002ebst-565"><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-277">American Mathematical Society, typesetting system</a>: <a href="#Formats">Formats</a></li> -<li><a href="#index-AMS_0040TeX_007b_007d-276">AMSTeX</a>: <a href="#Formats">Formats</a></li> -<li><a href="#index-apalike_002ebst-566"><code>apalike.bst</code></a>: <a href="#Basic-BibTeX-style-files">Basic BibTeX style files</a></li> -<li><a href="#index-architecture-dependencies-193">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-798"><code>autotrace</code></a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li> -<li><a href="#index-Awk_002c-WEB-for-576">Awk, WEB for</a>: <a href="#WEB">WEB</a></li> -<li><a href="#index-base-file_002c-determining-175">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-391">base files</a>: <a href="#Initial-Metafont">Initial Metafont</a></li> -<li><a href="#index-base-files_002c-need-mode-definitions-401">base files, need mode definitions</a>: <a href="#Modes">Modes</a></li> -<li><a href="#index-base-files_002c-plain-only-398">base files, plain only</a>: <a href="#Initial-Metafont">Initial Metafont</a></li> -<li><a href="#index-base-files_002c-sharing-187">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-560">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-228">batch languages</a>: <a href="#TeX">TeX</a></li> -<li><a href="#index-BDF-and-GF-conversion-776">BDF and GF conversion</a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li> -<li><a href="#index-beginfig-499"><code>beginfig</code></a>: <a href="#mpost-invocation">mpost 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-543"><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-532">bibliographies, creating</a>: <a href="#BibTeX">BibTeX</a></li> -<li><a href="#index-bibliography-806">bibliography</a>: <a href="#References">References</a></li> -<li><a href="#index-bibliography-items_002c-cross_002dreferenced-550">bibliography items, cross-referenced</a>: <a href="#bibtex-invocation">bibtex invocation</a></li> -<li><a href="#index-bibtex-534"><code>bibtex</code></a>: <a href="#bibtex-invocation">bibtex invocation</a></li> -<li><a href="#index-Bib_0040TeX_007b_007d-533">BibTeX</a>: <a href="#BibTeX">BibTeX</a></li> -<li><a href="#index-Bib_0040TeX_007b_007d-collection-557">BibTeX collection</a>: <a href="#bibtex-invocation">bibtex invocation</a></li> -<li><a href="#index-Bib_0040TeX_007b_007d-style-files-561">BibTeX style files</a>: <a href="#Basic-BibTeX-style-files">Basic BibTeX style files</a></li> -<li><a href="#index-BigEndian-machines-190">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-315">blank lines, in TCX files</a>: <a href="#TCX-files">TCX files</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-544"><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_007bfor-MetaPost-labels_007d-505"><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-554"><code>btxdoc.bib</code></a>: <a href="#bibtex-invocation">bibtex invocation</a></li> -<li><a href="#index-btxdoc_002etex-551"><code>btxdoc.tex</code></a>: <a href="#bibtex-invocation">bibtex invocation</a></li> -<li><a href="#index-btxhak_002etex-552"><code>btxhak.tex</code></a>: <a href="#bibtex-invocation">bibtex invocation</a></li> -<li><a href="#index-byte-position-713">byte position</a>: <a href="#gftype-invocation">gftype invocation</a></li> -<li><a href="#index-byte-position-680">byte position</a>: <a href="#pktype-invocation">pktype invocation</a></li> -<li><a href="#index-byte-swapping-196">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-change-files_002c-and-MFT-482">change files, and MFT</a>: <a href="#mft-invocation">mft invocation</a></li> -<li><a href="#index-change-files_002c-and-Tangle-582">change files, and Tangle</a>: <a href="#tangle-invocation">tangle invocation</a></li> -<li><a href="#index-change-files_002c-and-Weave-600">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-714">character codes, in GFtype output</a>: <a href="#gftype-invocation">gftype invocation</a></li> -<li><a href="#index-character-codes_002c-in-PKtype-output-683">character codes, in PKtype output</a>: <a href="#pktype-invocation">pktype invocation</a></li> -<li><a href="#index-character-codes_002c-in-TCX-files-318">character codes, in TCX files</a>: <a href="#TCX-files">TCX files</a></li> -<li><a href="#index-character-proofs-of-fonts-464">character proofs of fonts</a>: <a href="#gftodvi-invocation">gftodvi invocation</a></li> -<li><a href="#index-CHARACTER-_0040r_007bproperty_007d-751"><code>CHARACTER </code><span class="roman">property</span></a>: <a href="#tftopl-invocation">tftopl invocation</a></li> -<li><a href="#index-character-translation-files-304">character translation files</a>: <a href="#TCX-files">TCX files</a></li> -<li><a href="#index-CHARDP-_0040r_007bproperty_007d-754"><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-753"><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-755"><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-752"><code>CHARWD </code><span class="roman">property</span></a>: <a href="#tftopl-invocation">tftopl invocation</a></li> -<li><a href="#index-chtopx-784"><code>chtopx</code></a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li> -<li><a href="#index-class-name-for-Metafont-453">class name for Metafont</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-cm_002ebase-395"><code>cm.base</code></a>: <a href="#Initial-Metafont">Initial Metafont</a></li> -<li><a href="#index-cmbase_002emf-396"><code>cmbase.mf</code></a>: <a href="#Initial-Metafont">Initial Metafont</a></li> -<li><a href="#index-cmbase_002emft-486"><code>cmbase.mft</code></a>: <a href="#mft-invocation">mft invocation</a></li> -<li><a href="#index-cmmf_002ebase-_0040r_007bnot-recommended_007d-394"><code>cmmf.base </code><span class="roman">not recommended</span></a>: <a href="#Initial-Metafont">Initial Metafont</a></li> -<li><a href="#index-color_002c-in-DVItoMP-531">color, in DVItoMP</a>: <a href="#dvitomp-invocation">dvitomp invocation</a></li> -<li><a href="#index-comments_002c-in-TCX-files-317">comments, in TCX files</a>: <a href="#TCX-files">TCX files</a></li> -<li><a href="#index-comments_002c-MFT-control-479">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-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-509">Computer Modern fonts, and Troff</a>: <a href="#mpost-invocation">mpost invocation</a></li> -<li><a href="#index-Computer-Modern-macros-397">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-143">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-603"><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-625">conversion, DVI to plain text</a>: <a href="#dvitype-invocation">dvitype invocation</a></li> -<li><a href="#index-conversion_002c-GF-to-PK-667">conversion, GF to PK</a>: <a href="#gftopk-invocation">gftopk invocation</a></li> -<li><a href="#index-conversion_002c-GF-to-plain-text-706">conversion, GF to plain text</a>: <a href="#gftype-invocation">gftype invocation</a></li> -<li><a href="#index-conversion_002c-PK-to-GF-671">conversion, PK to GF</a>: <a href="#pktogf-invocation">pktogf invocation</a></li> -<li><a href="#index-conversion_002c-PK-to-plain-text-675">conversion, PK to plain text</a>: <a href="#pktype-invocation">pktype invocation</a></li> -<li><a href="#index-conversion_002c-property-list-to-TFM-757">conversion, property list to TFM</a>: <a href="#pltotf-invocation">pltotf invocation</a></li> -<li><a href="#index-conversion_002c-property-list-to-VF-768">conversion, property list to VF</a>: <a href="#vptovf-invocation">vptovf invocation</a></li> -<li><a href="#index-conversion_002c-TFM-to-property-list-732">conversion, TFM to property list</a>: <a href="#tftopl-invocation">tftopl invocation</a></li> -<li><a href="#index-conversion_002c-VF-to-VPL-761">conversion, VF to VPL</a>: <a href="#vftovp-invocation">vftovp invocation</a></li> -<li><a href="#index-copyright-notices-803">copyright notices</a>: <a href="#Legalisms">Legalisms</a></li> -<li><a href="#index-Cork-encoding-and-ISO-input-312">Cork encoding and ISO input</a>: <a href="#TCX-files">TCX files</a></li> -<li><a href="#index-creating-memory-dumps-171">creating memory dumps</a>: <a href="#Creating-memory-dumps">Creating memory dumps</a></li> -<li><a href="#index-cross_002dreferenced-bibliography-items-549">cross-referenced bibliography items</a>: <a href="#bibtex-invocation">bibtex invocation</a></li> -<li><a href="#index-cross_002dreferences_002c-omitting-602">cross-references, omitting</a>: <a href="#weave-invocation">weave invocation</a></li> -<li><a href="#index-current-directory_002c-used-for-output-148">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-575">CWEB</a>: <a href="#WEB">WEB</a></li> -<li><a href="#index-Cweb-574">Cweb</a>: <a href="#WEB">WEB</a></li> -<li><a href="#index-date-and-time_002c-in-memory-dumps-200">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-643">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-321">decimal character codes, in TCX files</a>: <a href="#TCX-files">TCX files</a></li> -<li><a href="#index-dependencies_002c-hardware-194">dependencies, hardware</a>: <a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></li> -<li><a href="#index-design_002dsize-units-750">design-size units</a>: <a href="#tftopl-invocation">tftopl invocation</a></li> -<li><a href="#index-device-definitions_002c-for-Metafont-402">device definitions, for Metafont</a>: <a href="#Modes">Modes</a></li> -<li><a href="#index-device_002dindependent-width-729">device-independent width</a>: <a href="#gftype-invocation">gftype invocation</a></li> -<li><a href="#index-device_002dindependent-width-686">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-459"><code>DISPLAY</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-dot-files_002c-written-by-_0040TeX_007b_007d-programs-242">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-511">downloading of fonts for MetaPost labels</a>: <a href="#mpost-invocation">mpost invocation</a></li> -<li><a href="#index-DrawingServant-422"><code>DrawingServant</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</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-167">dumping memory</a>: <a href="#Memory-dumps">Memory dumps</a></li> -<li><a href="#index-DVI-comment_002c-specifying-257">DVI comment, specifying</a>: <a href="#tex-invocation">tex invocation</a></li> -<li><a href="#index-DVI-files_002c-converting-to-MPX-529">DVI files, converting to MPX</a>: <a href="#dvitomp-invocation">dvitomp invocation</a></li> -<li><a href="#index-DVI-files_002c-explained-657">DVI files, explained</a>: <a href="#Font-file-formats">Font file formats</a></li> -<li><a href="#index-DVI-format-definition-613">DVI format definition</a>: <a href="#DVI-utilities">DVI utilities</a></li> -<li><a href="#index-DVI-opcodes_002c-showing-642">DVI opcodes, showing</a>: <a href="#dvitype-invocation">dvitype invocation</a></li> -<li><a href="#index-DVI-utilities-611">DVI utilities</a>: <a href="#DVI-utilities">DVI utilities</a></li> -<li><a href="#index-dvicopy-614"><code>dvicopy</code></a>: <a href="#dvicopy-invocation">dvicopy invocation</a></li> -<li><a href="#index-dvitomp-528"><code>dvitomp</code></a>: <a href="#dvitomp-invocation">dvitomp invocation</a></li> -<li><a href="#index-dvitype-_0040r_007bDVI-validation_007d-624"><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-644">dvitype output example</a>: <a href="#dvitype-output-example">dvitype output example</a></li> -<li><a href="#index-dvitype_002eweb-612"><code>dvitype.web</code></a>: <a href="#DVI-utilities">DVI utilities</a></li> -<li><a href="#index-dx-_0040r_007bhorizontal-escapement_007d-726">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-691">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-727">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-409">dynamic Metafont mode definitions with <code>smode</code></a>: <a href="#Modes">Modes</a></li> -<li><a href="#index-dynamic-packing-variable-682">dynamic packing variable</a>: <a href="#pktype-invocation">pktype invocation</a></li> -<li><a href="#index-e-_0040r_007bresponse-at-error-prompt_007d-207"><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-297">e-circumflex</a>: <a href="#g_t_005ccharsubdef">\charsubdef</a></li> -<li><a href="#index-e_002d_0040TeX_007b_007d-352">e-TeX</a>: <a href="#TeX-extensions">TeX extensions</a></li> -<li><a href="#index-e_002emft-487"><code>e.mft</code></a>: <a href="#mft-invocation">mft invocation</a></li> -<li><a href="#index-EC-fonts-373">EC fonts</a>: <a href="#mf-invocation">mf invocation</a></li> -<li><a href="#index-EC-fonts-235">EC fonts</a>: <a href="#tex-invocation">tex invocation</a></li> -<li><a href="#index-editing-of-bitmap-fonts-779">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-205">editor invoked at error</a>: <a href="#Editor-invocation">Editor invocation</a></li> -<li><a href="#index-eight_002dbit-characters-in-filenames-219">eight-bit characters in filenames</a>: <a href="#g_t_005cinput-filenames">\input filenames</a></li> -<li><a href="#index-empty_002etcx-311"><code>empty.tcx</code></a>: <a href="#TCX-files">TCX files</a></li> -<li><a href="#index-endian-dependencies-191">endian dependencies</a>: <a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></li> -<li><a href="#index-eoc-_0040r_007bGF-command_007d-720"><code>eoc </code><span class="roman">GF command</span></a>: <a href="#gftype-invocation">gftype invocation</a></li> -<li><a href="#index-Eplain-282">Eplain</a>: <a href="#Formats">Formats</a></li> -<li><a href="#index-epsf-414"><code>epsf</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-errors_002c-editor-invoked-at-206">errors, editor invoked at</a>: <a href="#Editor-invocation">Editor invocation</a></li> -<li><a href="#index-escapement_002c-horizontal-722">escapement, horizontal</a>: <a href="#gftype-invocation">gftype invocation</a></li> -<li><a href="#index-escapement_002c-horizontal-689">escapement, horizontal</a>: <a href="#pktype-invocation">pktype invocation</a></li> -<li><a href="#index-escapement_002c-vertical-724">escapement, vertical</a>: <a href="#gftype-invocation">gftype invocation</a></li> -<li><a href="#index-etex-_0040r_007bfor-MetaPost-labels_007d-506"><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-160">executables, shared initial and virgin</a>: <a href="#Initial-and-virgin">Initial and virgin</a></li> -<li><a href="#index-exit-status_002c-of-shell-escape-339">exit status, of shell escape</a>: <a href="#Shell-escapes">Shell escapes</a></li> -<li><a href="#index-expanded-plain-format-283">expanded plain format</a>: <a href="#Formats">Formats</a></li> -<li><a href="#index-extensions-to-_0040TeX_007b_007d-350">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-740"><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-739"><code>FAMILY </code><span class="roman">property</span></a>: <a href="#tftopl-invocation">tftopl invocation</a></li> -<li><a href="#index-Ferguson_002c-Michael-291">Ferguson, Michael</a>: <a href="#MLTeX">MLTeX</a></li> -<li><a href="#index-file-formats-for-fonts-651">file formats for fonts</a>: <a href="#Font-file-formats">Font file formats</a></li> -<li><a href="#index-file-recorder-133">file recorder</a>: <a href="#Common-options">Common options</a></li> -<li><a href="#index-filename-conventions_002c-in-input-files-213">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-681">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-198">floating-point values</a>: <a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></li> -<li><a href="#index-fmt-file_002c-determining-174">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-268">fmt files</a>: <a href="#Initial-TeX">Initial TeX</a></li> -<li><a href="#index-fmt-files_002c-sharing-186">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-144">font aliases</a>: <a href="#Path-searching">Path searching</a></li> -<li><a href="#index-font-character-code_002c-translating-324">font character code, translating</a>: <a href="#TCX-files">TCX files</a></li> -<li><a href="#index-font-design-368">font design</a>: <a href="#Metafont">Metafont</a></li> -<li><a href="#index-font-downloading-for-MetaPost-labels-512">font downloading for MetaPost labels</a>: <a href="#mpost-invocation">mpost invocation</a></li> -<li><a href="#index-font-file-formats-650">font file formats</a>: <a href="#Font-file-formats">Font file formats</a></li> -<li><a href="#index-font-proofs-465">font proofs</a>: <a href="#gftodvi-invocation">gftodvi invocation</a></li> -<li><a href="#index-font-utilities-645">font utilities</a>: <a href="#Font-utilities">Font utilities</a></li> -<li><a href="#index-font-utilities_002c-non_002dWeb2c-771">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-786"><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-801"><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-797"><code>fontutils</code></a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li> -<li><a href="#index-format-files-271">format files</a>: <a href="#Initial-TeX">Initial TeX</a></li> -<li><a href="#index-formats-for-_0040TeX_007b_007d-272">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-281">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-556"><code>ftp.math.utah.edu</code></a>: <a href="#bibtex-invocation">bibtex invocation</a></li> -<li><a href="#index-generating-source-specials-264">generating source specials</a>: <a href="#tex-invocation">tex invocation</a></li> -<li><a href="#index-geometric-designs-366">geometric designs</a>: <a href="#Metafont">Metafont</a></li> -<li><a href="#index-geometric-font-scaling-655">geometric font scaling</a>: <a href="#Font-file-formats">Font file formats</a></li> -<li><a href="#index-geometry-for-Metafont-454">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-660">GF files, explained</a>: <a href="#Font-file-formats">Font file formats</a></li> -<li><a href="#index-GF-files_002c-output-by-Metafont-378">GF files, output by Metafont</a>: <a href="#mf-invocation">mf invocation</a></li> -<li><a href="#index-GF-format-definition-649">GF format definition</a>: <a href="#Font-utilities">Font utilities</a></li> -<li><a href="#index-GF-output-377">GF output</a>: <a href="#mf-invocation">mf invocation</a></li> -<li><a href="#index-GF_002c-converting-PK-to-672">GF, converting PK to</a>: <a href="#pktogf-invocation">pktogf invocation</a></li> -<li><a href="#index-GF_002c-converting-to-PK-669">GF, converting to PK</a>: <a href="#gftopk-invocation">gftopk invocation</a></li> -<li><a href="#index-gftodvi-463"><code>gftodvi</code></a>: <a href="#gftodvi-invocation">gftodvi invocation</a></li> -<li><a href="#index-gftopk-666"><code>gftopk</code></a>: <a href="#gftopk-invocation">gftopk invocation</a></li> -<li><a href="#index-gftopxl-783"><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-705"><code>gftype </code><span class="roman">GF validation</span></a>: <a href="#gftype-invocation">gftype invocation</a></li> -<li><a href="#index-gftype_002eweb-647"><code>gftype.web</code></a>: <a href="#Font-utilities">Font utilities</a></li> -<li><a href="#index-glue-ratio-representations-199">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-294">glyph substitutions</a>: <a href="#MLTeX">MLTeX</a></li> -<li><a href="#index-gray-font-467">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-790"><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-203">Harbison, Samuel P.</a>: <a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></li> -<li><a href="#index-hardware-and-memory-dumps-183">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-741"><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-692">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-415">Herberts, Mathias</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-hex-character-codes_002c-in-TCX-files-320">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-4">Hobby, John</a>: <a href="#Introduction">Introduction</a></li> -<li><a href="#index-horizontal-escapement-721">horizontal escapement</a>: <a href="#gftype-invocation">gftype invocation</a></li> -<li><a href="#index-horizontal-escapement-688">horizontal escapement</a>: <a href="#pktype-invocation">pktype invocation</a></li> -<li><a href="#index-hp2627-417"><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-287">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-627">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-708">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-677">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-735">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-764">human-readable text, converting VF to</a>: <a href="#vftovp-invocation">vftovp invocation</a></li> -<li><a href="#index-hypertext-359">hypertext</a>: <a href="#TeX-extensions">TeX extensions</a></li> -<li><a href="#index-hyphenation-and-languages-288">hyphenation and languages</a>: <a href="#Languages-and-hyphenation">Languages and hyphenation</a></li> -<li><a href="#index-hyphenation-patterns_002c-creating-328">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-590">identifier case</a>: <a href="#tangle-invocation">tangle invocation</a></li> -<li><a href="#index-identifier-collisions-595">identifier collisions</a>: <a href="#tangle-invocation">tangle invocation</a></li> -<li><a href="#index-identifier-length-586">identifier length</a>: <a href="#tangle-invocation">tangle invocation</a></li> -<li><a href="#index-identifiers-with-underlines-592">identifiers with underlines</a>: <a href="#tangle-invocation">tangle invocation</a></li> -<li><a href="#index-ieeetr_002ebst-567"><code>ieeetr.bst</code></a>: <a href="#Basic-BibTeX-style-files">Basic BibTeX style files</a></li> -<li><a href="#index-il1_002dt1_002etcx-309"><code>il1-t1.tcx</code></a>: <a href="#TCX-files">TCX files</a></li> -<li><a href="#index-il2_002dt1_002etcx-310"><code>il2-t1.tcx</code></a>: <a href="#TCX-files">TCX files</a></li> -<li><a href="#index-Info-format-280">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-388">initial Metafont</a>: <a href="#Initial-Metafont">Initial Metafont</a></li> -<li><a href="#index-initial-MetaPost-522">initial MetaPost</a>: <a href="#Initial-MetaPost">Initial MetaPost</a></li> -<li><a href="#index-initial-programs-164">initial programs</a>: <a href="#Initial-and-virgin">Initial and virgin</a></li> -<li><a href="#index-initial-_0040TeX_007b_007d-265">initial TeX</a>: <a href="#Initial-TeX">Initial TeX</a></li> -<li><a href="#index-initializations_002c-lengthy-165">initializations, lengthy</a>: <a href="#Initial-and-virgin">Initial and virgin</a></li> -<li><a href="#index-input-filenames-212">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-326">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-305">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-347">IPC</a>: <a href="#IPC-and-TeX">IPC and TeX</a></li> -<li><a href="#index-IPC_005fDEBUG-349"><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-749">kerning table, in TFM files</a>: <a href="#tftopl-invocation">tftopl invocation</a></li> -<li><a href="#index-keyboard-character-code_002c-translating-325">keyboard character code, translating</a>: <a href="#TCX-files">TCX files</a></li> -<li><a href="#index-Knuth_002c-Donald-E_002e-480">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-747"><code>KRN </code><span class="roman">property</span></a>: <a href="#tftopl-invocation">tftopl invocation</a></li> -<li><a href="#index-label-font-469">label font</a>: <a href="#gftodvi-invocation">gftodvi invocation</a></li> -<li><a href="#index-LABEL-_0040r_007bproperty_007d-745"><code>LABEL </code><span class="roman">property</span></a>: <a href="#tftopl-invocation">tftopl invocation</a></li> -<li><a href="#index-language-support-in-_0040TeX_007b_007d-286">language support in TeX</a>: <a href="#Languages-and-hyphenation">Languages and hyphenation</a></li> -<li><a href="#index-languages_002c-hyphenation-rules-for-329">languages, hyphenation rules for</a>: <a href="#patgen-invocation">patgen invocation</a></li> -<li><a href="#index-g_t_0040LaTeX_007b_007d-275">LaTeX</a>: <a href="#Formats">Formats</a></li> -<li><a href="#index-Latin-Modern-778">Latin Modern</a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li> -<li><a href="#index-left-side-bearing-715">left side bearing</a>: <a href="#gftype-invocation">gftype invocation</a></li> -<li><a href="#index-left-side-bearing-701">left side bearing</a>: <a href="#pktype-invocation">pktype invocation</a></li> -<li><a href="#index-legalisms-802">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-746"><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-748">ligature table, in TFM files</a>: <a href="#tftopl-invocation">tftopl invocation</a></li> -<li><a href="#index-LIGTABLE-_0040r_007bproperty_007d-744"><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-182">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-571">literate programming</a>: <a href="#WEB">WEB</a></li> -<li><a href="#index-LittleEndian-machines-189">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-539">log file, BibTeX</a>: <a href="#bibtex-invocation">bibtex invocation</a></li> -<li><a href="#index-Lua-361">Lua</a>: <a href="#TeX-extensions">TeX extensions</a></li> -<li><a href="#index-lua_0040TeX_007b_007d-360">luaTeX</a>: <a href="#TeX-extensions">TeX extensions</a></li> -<li><a href="#index-machine-dependencies-192">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-770">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-759">machine-readable, converting property lists to</a>: <a href="#pltotf-invocation">pltotf invocation</a></li> -<li><a href="#index-MacKay_002c-Pierre-664">MacKay, Pierre</a>: <a href="#Font-file-formats">Font file formats</a></li> -<li><a href="#index-macro-packages_002c-major-_0040TeX_007b_007d-274">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-168">macros, predefining in memory dumps</a>: <a href="#Memory-dumps">Memory dumps</a></li> -<li><a href="#index-magnification-632">magnification</a>: <a href="#dvitype-invocation">dvitype invocation</a></li> -<li><a href="#index-magnification-617">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-Martin_002c-Rick-20">Martin, Rick</a>: <a href="#Introduction">Introduction</a></li> -<li><a href="#index-Mathematical-Reviews-278">Mathematical Reviews</a>: <a href="#Formats">Formats</a></li> -<li><a href="#index-mathematical-typesetting-227">mathematical typesetting</a>: <a href="#TeX">TeX</a></li> -<li><a href="#index-mem-file_002c-determining-176">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_002c-sharing-188">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-173">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-166">memory dumps</a>: <a href="#Memory-dumps">Memory dumps</a></li> -<li><a href="#index-memory-dumps-and-hardware-184">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-202">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-170">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-220">meta characters in filenames</a>: <a href="#g_t_005cinput-filenames">\input filenames</a></li> -<li><a href="#index-Metafont-364">Metafont</a>: <a href="#Metafont">Metafont</a></li> -<li><a href="#index-Metafont-geometry-455">Metafont geometry</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-Metafont-graphics-411">Metafont graphics</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-Metafont-input-files-372">Metafont input files</a>: <a href="#mf-invocation">mf invocation</a></li> -<li><a href="#index-Metafont-invocation-370">Metafont invocation</a>: <a href="#mf-invocation">mf invocation</a></li> -<li><a href="#index-Metafont-meets-PostScript-492">Metafont meets PostScript</a>: <a href="#MetaPost">MetaPost</a></li> -<li><a href="#index-Metafont-online-support_002c-new-devices-460">Metafont online support, new devices</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-Metafont-source_002c-prettyprinting-475">Metafont source, prettyprinting</a>: <a href="#mft-invocation">mft invocation</a></li> -<li><a href="#index-Metafont_002c-compatibility-in-MetaPost-524">Metafont, compatibility in MetaPost</a>: <a href="#Initial-MetaPost">Initial MetaPost</a></li> -<li><a href="#index-Metafont_002c-initial-389">Metafont, initial</a>: <a href="#Initial-Metafont">Initial Metafont</a></li> -<li><a href="#index-Metafont_002c-MetaPost_002c-and-_0040TeX_007b_007d-158">Metafont, MetaPost, and TeX</a>: <a href="#Three-programs">Three programs</a></li> -<li><a href="#index-MetaPost-490">MetaPost</a>: <a href="#MetaPost">MetaPost</a></li> -<li><a href="#index-MetaPost-and-plain-Metafont-compatibility-526">MetaPost and plain Metafont compatibility</a>: <a href="#Initial-MetaPost">Initial MetaPost</a></li> -<li><a href="#index-MetaPost-input-files-498">MetaPost input files</a>: <a href="#mpost-invocation">mpost invocation</a></li> -<li><a href="#index-MetaPost-invocation-494">MetaPost invocation</a>: <a href="#mpost-invocation">mpost invocation</a></li> -<li><a href="#index-MetaPost-source_002c-prettyprinting-489">MetaPost source, prettyprinting</a>: <a href="#mft-invocation">mft invocation</a></li> -<li><a href="#index-MetaPost_002c-initial-523">MetaPost, initial</a>: <a href="#Initial-MetaPost">Initial MetaPost</a></li> -<li><a href="#index-MetaPost_002c-_0040TeX_007b_007d_002c-and-Metafont-159">MetaPost, TeX, and Metafont</a>: <a href="#Three-programs">Three programs</a></li> -<li><a href="#index-metatype1-777"><code>metatype1</code></a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li> -<li><a href="#index-mf-369"><code>mf</code></a>: <a href="#mf-invocation">mf invocation</a></li> -<li><a href="#index-mf_002ebase-393"><code>mf.base</code></a>: <a href="#Initial-Metafont">Initial Metafont</a></li> -<li><a href="#index-MFEDIT-209"><code>MFEDIT</code></a>: <a href="#Editor-invocation">Editor invocation</a></li> -<li><a href="#index-mfplain-527"><code>mfplain</code></a>: <a href="#Initial-MetaPost">Initial MetaPost</a></li> -<li><a href="#index-mfput-376"><code>mfput</code></a>: <a href="#mf-invocation">mf invocation</a></li> -<li><a href="#index-mft-474"><code>mft</code></a>: <a href="#mft-invocation">mft invocation</a></li> -<li><a href="#index-mftalk-419"><code>mftalk</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-MFTERM-412"><code>MFTERM</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-mftmac_002etex-478"><code>mftmac.tex</code></a>: <a href="#mft-invocation">mft invocation</a></li> -<li><a href="#index-micro_002dtypography-358">micro-typography</a>: <a href="#TeX-extensions">TeX extensions</a></li> -<li><a href="#index-mktexmf_0040r_007b_002c-disabling_007d-374"><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-236"><code>mktextfM</code><span class="roman">, disabling</span></a>: <a href="#tex-invocation">tex invocation</a></li> -<li><a href="#index-mltex-289"><code>mltex</code></a>: <a href="#MLTeX">MLTeX</a></li> -<li><a href="#index-ML_0040TeX_007b_007d_002c-enabling-253">MLTeX, enabling</a>: <a href="#tex-invocation">tex invocation</a></li> -<li><a href="#index-mode-needed-to-run-Metafont-382">mode needed to run Metafont</a>: <a href="#mf-invocation">mf invocation</a></li> -<li><a href="#index-mode_005fdef-406"><code>mode_def</code></a>: <a href="#Modes">Modes</a></li> -<li><a href="#index-mode_005fsetup-407"><code>mode_setup</code></a>: <a href="#Modes">Modes</a></li> -<li><a href="#index-modes-file-needed-for-Metafont-400">modes file needed for Metafont</a>: <a href="#Modes">Modes</a></li> -<li><a href="#index-modes_002emf-_0040r_007brecommended-modes-file_007d-404"><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-210"><code>MPEDIT</code></a>: <a href="#Editor-invocation">Editor invocation</a></li> -<li><a href="#index-mpgraph_002eps-496"><code>mpgraph.ps</code></a>: <a href="#mpost-invocation">mpost invocation</a></li> -<li><a href="#index-mpman_002eps-495"><code>mpman.ps</code></a>: <a href="#mpost-invocation">mpost invocation</a></li> -<li><a href="#index-mpost-493"><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-mpout-502"><code>mpout</code></a>: <a href="#mpost-invocation">mpost invocation</a></li> -<li><a href="#index-mproof_002etex-510"><code>mproof.tex</code></a>: <a href="#mpost-invocation">mpost 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-files_002c-converting-from-DVI-files-530">MPX files, converting from DVI files</a>: <a href="#dvitomp-invocation">dvitomp invocation</a></li> -<li><a href="#index-Multi_002dlingual-_0040TeX_007b_007d-290">Multi-lingual TeX</a>: <a href="#MLTeX">MLTeX</a></li> -<li><a href="#index-N-tilde-298">N tilde</a>: <a href="#g_t_005ccharsubdef">\charsubdef</a></li> -<li><a href="#index-new-graphics-support-for-Metafont-461">new graphics support for Metafont</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-newrow-_0040r_007bGF-command_007d-719"><code>newrow </code><span class="roman">GF command</span></a>: <a href="#gftype-invocation">gftype invocation</a></li> -<li><a href="#index-next-421"><code>next</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-NO_005fX11WIN-439"><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-non_002dwindows_002dcapable-Metafont-450">non-windows-capable Metafont</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-NUL_002c-not-allowed-in-filenames-218">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-319">octal character codes, in TCX files</a>: <a href="#TCX-files">TCX files</a></li> -<li><a href="#index-offset-for-overflow-labels-473">offset for overflow labels</a>: <a href="#gftodvi-invocation">gftodvi invocation</a></li> -<li><a href="#index-online-Metafont-graphics-410">online Metafont graphics</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-opcodes_002c-showing-DVI-641">opcodes, showing DVI</a>: <a href="#dvitype-invocation">dvitype invocation</a></li> -<li><a href="#index-optical-font-scaling-654">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-698">origin</a>: <a href="#pktype-invocation">pktype invocation</a></li> -<li><a href="#index-output-directory_002c-specifying-151">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-147">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-240">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-256"><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-472">overflow label offset</a>: <a href="#gftodvi-invocation">gftodvi invocation</a></li> -<li><a href="#index-packet-length-684">packet length</a>: <a href="#pktype-invocation">pktype invocation</a></li> -<li><a href="#index-page_002c-starting-638">page, starting</a>: <a href="#dvitype-invocation">dvitype invocation</a></li> -<li><a href="#index-page_002c-starting-622">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-580">Pascal, creating from WEB</a>: <a href="#tangle-invocation">tangle invocation</a></li> -<li><a href="#index-patgen-327"><code>patgen</code></a>: <a href="#patgen-invocation">patgen invocation</a></li> -<li><a href="#index-path-searching-141">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-357">PDF</a>: <a href="#TeX-extensions">TeX extensions</a></li> -<li><a href="#index-PDF_002c-and-_0040code_007b_002emps_007d-files-515">PDF, and <code>.mps</code> files</a>: <a href="#mpost-invocation">mpost invocation</a></li> -<li><a href="#index-pdf_0040TeX_007b_007d-356">pdfTeX</a>: <a href="#TeX-extensions">TeX extensions</a></li> -<li><a href="#index-permissions_002c-legal-804">permissions, legal</a>: <a href="#Legalisms">Legalisms</a></li> -<li><a href="#index-PFA-and-PFB-conversion-793">PFA and PFB conversion</a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li> -<li><a href="#index-pfaedit-787"><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-pipes_002c-reading-and-writing-341">pipes, reading and writing</a>: <a href="#Shell-escapes">Shell escapes</a></li> -<li><a href="#index-pixel-height-693">pixel height</a>: <a href="#pktype-invocation">pktype invocation</a></li> -<li><a href="#index-pixel-width-694">pixel width</a>: <a href="#pktype-invocation">pktype invocation</a></li> -<li><a href="#index-PK-bitmaps-from-PostScript-788">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-659">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-379">PK files, not output by Metafont</a>: <a href="#mf-invocation">mf invocation</a></li> -<li><a href="#index-PK-format-definition-648">PK format definition</a>: <a href="#Font-utilities">Font utilities</a></li> -<li><a href="#index-PK_002c-converting-GF-to-668">PK, converting GF to</a>: <a href="#gftopk-invocation">gftopk invocation</a></li> -<li><a href="#index-PK_002c-converting-to-GF-673">PK, converting to GF</a>: <a href="#pktogf-invocation">pktogf invocation</a></li> -<li><a href="#index-pktogf-670"><code>pktogf</code></a>: <a href="#pktogf-invocation">pktogf invocation</a></li> -<li><a href="#index-pktype-_0040r_007bPK-validation_007d-674"><code>pktype </code><span class="roman">PK validation</span></a>: <a href="#pktype-invocation">pktype invocation</a></li> -<li><a href="#index-pktype_002eweb-646"><code>pktype.web</code></a>: <a href="#Font-utilities">Font utilities</a></li> -<li><a href="#index-PL-files_002c-explained-661">PL files, explained</a>: <a href="#Font-file-formats">Font file formats</a></li> -<li><a href="#index-plain-Metafont_002c-compatibility-in-MetaPost-525">plain Metafont, compatibility in MetaPost</a>: <a href="#Initial-MetaPost">Initial MetaPost</a></li> -<li><a href="#index-plain-text_002c-converting-DVI-to-626">plain text, converting DVI to</a>: <a href="#dvitype-invocation">dvitype invocation</a></li> -<li><a href="#index-plain-text_002c-converting-GF-to-707">plain text, converting GF to</a>: <a href="#gftype-invocation">gftype invocation</a></li> -<li><a href="#index-plain-text_002c-converting-PK-to-676">plain text, converting PK to</a>: <a href="#pktype-invocation">pktype invocation</a></li> -<li><a href="#index-plain-text_002c-converting-TFM-to-736">plain text, converting TFM to</a>: <a href="#tftopl-invocation">tftopl invocation</a></li> -<li><a href="#index-plain-text_002c-converting-VF-to-765">plain text, converting VF to</a>: <a href="#vftovp-invocation">vftovp invocation</a></li> -<li><a href="#index-plain_002ebase-392"><code>plain.base</code></a>: <a href="#Initial-Metafont">Initial Metafont</a></li> -<li><a href="#index-plain_002ebst-562"><code>plain.bst</code></a>: <a href="#Basic-BibTeX-style-files">Basic BibTeX style files</a></li> -<li><a href="#index-plain_002efmt-269"><code>plain.fmt</code></a>: <a href="#Initial-TeX">Initial TeX</a></li> -<li><a href="#index-plain_002emft-485"><code>plain.mft</code></a>: <a href="#mft-invocation">mft invocation</a></li> -<li><a href="#index-pltotf-756"><code>pltotf</code></a>: <a href="#pltotf-invocation">pltotf invocation</a></li> -<li><a href="#index-pool-file_002c-writing-583">pool file, writing</a>: <a href="#tangle-invocation">tangle invocation</a></li> -<li><a href="#index-Poole_002c-Simon-435">Poole, Simon</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-pooltype-605"><code>pooltype</code></a>: <a href="#pooltype-invocation">pooltype invocation</a></li> -<li><a href="#index-portable-filenames-221">portable filenames</a>: <a href="#g_t_005cinput-filenames">\input filenames</a></li> -<li><a href="#index-PostScript-fonts_002c-and-Troff-507">PostScript fonts, and Troff</a>: <a href="#mpost-invocation">mpost invocation</a></li> -<li><a href="#index-PostScript-meets-Metafont-491">PostScript meets Metafont</a>: <a href="#MetaPost">MetaPost</a></li> -<li><a href="#index-PostScript-output-504">PostScript output</a>: <a href="#mpost-invocation">mpost invocation</a></li> -<li><a href="#index-PostScript-to-PK-bitmaps-789">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-794">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-656">PostScript, and font scaling</a>: <a href="#Font-file-formats">Font file formats</a></li> -<li><a href="#index-potrace-799"><code>potrace</code></a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li> -<li><a href="#index-predefined-macros-and-memory-dumps-169">predefined macros and memory dumps</a>: <a href="#Memory-dumps">Memory dumps</a></li> -<li><a href="#index-prettyprinting-Metafont-source-476">prettyprinting Metafont source</a>: <a href="#mft-invocation">mft invocation</a></li> -<li><a href="#index-prettyprinting-WEB-programs-599">prettyprinting WEB programs</a>: <a href="#weave-invocation">weave invocation</a></li> -<li><a href="#index-primitives_002c-new-353">primitives, new</a>: <a href="#TeX-extensions">TeX extensions</a></li> -<li><a href="#index-printable-characters_002c-specifying-322">printable characters, specifying</a>: <a href="#TCX-files">TCX files</a></li> -<li><a href="#index-printer-characteristics_002c-for-Metafont-403">printer characteristics, for Metafont</a>: <a href="#Modes">Modes</a></li> -<li><a href="#index-production-use-163">production use</a>: <a href="#Initial-and-virgin">Initial and virgin</a></li> -<li><a href="#index-program-name_002c-determines-memory-dump-181">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-254">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-520"><code>prologues</code></a>: <a href="#mpost-invocation">mpost invocation</a></li> -<li><a href="#index-prologues_0040r_007b_002c-and-EPSF-output_007d-513"><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-383"><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-466">proof sheets, of fonts</a>: <a href="#gftodvi-invocation">gftodvi invocation</a></li> -<li><a href="#index-property-list-format-738">property list format</a>: <a href="#tftopl-invocation">tftopl invocation</a></li> -<li><a href="#index-property-list_002c-converting-TFM-to-734">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-763">property list, converting VF to virtual</a>: <a href="#vftovp-invocation">vftovp invocation</a></li> -<li><a href="#index-ps2pk-791"><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-514"><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-658">PXL files, explained</a>: <a href="#Font-file-formats">Font file formats</a></li> -<li><a href="#index-pxtoch-785"><code>pxtoch</code></a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li> -<li><a href="#index-Raichle_002c-Bernd-292">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-152">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-300">redefined character substitutions</a>: <a href="#g_t_005ctracingcharsubdef">\tracingcharsubdef</a></li> -<li><a href="#index-reference-pixel-699">reference pixel</a>: <a href="#pktype-invocation">pktype invocation</a></li> -<li><a href="#index-references-805">references</a>: <a href="#References">References</a></li> -<li><a href="#index-regis-424"><code>regis</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-Regis-graphics-support-426">Regis graphics support</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-regression-testing-258">regression testing</a>: <a href="#tex-invocation">tex invocation</a></li> -<li><a href="#index-repeated-rows-704">repeated rows</a>: <a href="#pktype-invocation">pktype invocation</a></li> -<li><a href="#index-representation-of-strings-609">representation of strings</a>: <a href="#pooltype-invocation">pooltype invocation</a></li> -<li><a href="#index-restricted-shell-escapes-332">restricted shell escapes</a>: <a href="#Shell-escapes">Shell escapes</a></li> -<li><a href="#index-right-side-bearing-716">right side bearing</a>: <a href="#gftype-invocation">gftype invocation</a></li> -<li><a href="#index-right-side-bearing-702">right side bearing</a>: <a href="#pktype-invocation">pktype invocation</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-718">run length encoded bitmaps</a>: <a href="#gftype-invocation">gftype invocation</a></li> -<li><a href="#index-run-length-encoded-bitmaps-703">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-725">scaled pixels</a>: <a href="#gftype-invocation">gftype invocation</a></li> -<li><a href="#index-scaled-pixels-690">scaled pixels</a>: <a href="#pktype-invocation">pktype invocation</a></li> -<li><a href="#index-scaling-of-fonts-653">scaling of fonts</a>: <a href="#Font-file-formats">Font file formats</a></li> -<li><a href="#index-scanned-images-of-fonts-795">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-239">security, and <code>\openout</code></a>: <a href="#tex-invocation">tex invocation</a></li> -<li><a href="#index-security_002c-and-output-files-243">security, and output files</a>: <a href="#tex-invocation">tex invocation</a></li> -<li><a href="#index-security_002c-and-shell-escapes-331">security, and shell escapes</a>: <a href="#Shell-escapes">Shell escapes</a></li> -<li><a href="#index-security_002c-and-_0040code_007bwrite_007d-517">security, and <code>write</code></a>: <a href="#mpost-invocation">mpost invocation</a></li> -<li><a href="#index-shapes-367">shapes</a>: <a href="#Metafont">Metafont</a></li> -<li><a href="#index-sharing-memory-dumps-185">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-330">shell commands in TeX</a>: <a href="#Shell-escapes">Shell escapes</a></li> -<li><a href="#index-shell_005fescape-_0040r_007benabling-in-_0040TeX_007b_007d_007d-334"><code>shell_escape </code><span class="roman">enabling in TeX</span></a>: <a href="#Shell-escapes">Shell escapes</a></li> -<li><a href="#index-shell_005fescape_005fcommands-340"><code>shell_escape_commands</code></a>: <a href="#Shell-escapes">Shell escapes</a></li> -<li><a href="#index-siam_002ebst-568"><code>siam.bst</code></a>: <a href="#Basic-BibTeX-style-files">Basic BibTeX style files</a></li> -<li><a href="#index-side-bearings-717">side bearings</a>: <a href="#gftype-invocation">gftype invocation</a></li> -<li><a href="#index-side-bearings-700">side bearings</a>: <a href="#pktype-invocation">pktype invocation</a></li> -<li><a href="#index-slant-font-470">slant font</a>: <a href="#gftodvi-invocation">gftodvi invocation</a></li> -<li><a href="#index-slides_002c-producing-285">slides, producing</a>: <a href="#Formats">Formats</a></li> -<li><a href="#index-Sli_0040TeX_007b_007d-284">SliTeX</a>: <a href="#Formats">Formats</a></li> -<li><a href="#index-small-Metafont-memory-and-modes-405">small Metafont memory and modes</a>: <a href="#Modes">Modes</a></li> -<li><a href="#index-smode-_0040r_007band-dynamic-Metafont-mode-definition_007d-408"><code>smode </code><span class="roman">and dynamic Metafont mode definition</span></a>: <a href="#Modes">Modes</a></li> -<li><a href="#index-sockets-348">sockets</a>: <a href="#IPC-and-TeX">IPC and TeX</a></li> -<li><a href="#index-space_002dterminated-filenames-215">space-terminated filenames</a>: <a href="#g_t_005cinput-filenames">\input filenames</a></li> -<li><a href="#index-Spiderweb-573">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-637">starting page</a>: <a href="#dvitype-invocation">dvitype invocation</a></li> -<li><a href="#index-starting-page-621">starting page</a>: <a href="#dvicopy-invocation">dvicopy invocation</a></li> -<li><a href="#index-Steele-Jr_002e_002c-Guy-L_002e-204">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-607">string numbers, displaying</a>: <a href="#pooltype-invocation">pooltype invocation</a></li> -<li><a href="#index-string-pool_002c-writing-584">string pool, writing</a>: <a href="#tangle-invocation">tangle invocation</a></li> -<li><a href="#index-string-representation-610">string representation</a>: <a href="#pooltype-invocation">pooltype invocation</a></li> -<li><a href="#index-style-design_002c-for-Bib_0040TeX_007b_007d-553">style design, for BibTeX</a>: <a href="#bibtex-invocation">bibtex invocation</a></li> -<li><a href="#index-style-files-484">style files</a>: <a href="#mft-invocation">mft invocation</a></li> -<li><a href="#index-substitutions-of-font-glyphs-295">substitutions of font glyphs</a>: <a href="#MLTeX">MLTeX</a></li> -<li><a href="#index-sun-427"><code>sun</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-sun_002dgfx_002ec-431"><code>sun-gfx.c</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-Suntools-429">Suntools</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-SunView-428">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-197">swapping bytes</a>: <a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></li> -<li><a href="#index-syntax-of-TCX-files-314">syntax of TCX files</a>: <a href="#TCX-files">TCX files</a></li> -<li><a href="#index-system-_0040r_007bC-library-function_007d-337"><code>system </code><span class="roman">C library function</span></a>: <a href="#Shell-escapes">Shell escapes</a></li> -<li><a href="#index-system-command-333">system command</a>: <a href="#Shell-escapes">Shell escapes</a></li> -<li><a href="#index-T1-encoding-and-ISO-input-313">T1 encoding and ISO input</a>: <a href="#TCX-files">TCX files</a></li> -<li><a href="#index-Tachikawa_002c-Elizabeth-665">Tachikawa, Elizabeth</a>: <a href="#Font-file-formats">Font file formats</a></li> -<li><a href="#index-tangle-579"><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-302"><code>TCX </code><span class="roman">character translation files</span></a>: <a href="#TCX-files">TCX files</a></li> -<li><a href="#index-tek-432"><code>tek</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-Tektronix-433">Tektronix</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-Tektronix-4014-437">Tektronix 4014</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-TERM-413"><code>TERM</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-terminator-for-filenames-217">terminator for filenames</a>: <a href="#g_t_005cinput-filenames">\input filenames</a></li> -<li><a href="#index-terse-output-546">terse output</a>: <a href="#bibtex-invocation">bibtex invocation</a></li> -<li><a href="#index-tex-230"><code>tex</code></a>: <a href="#tex-invocation">tex invocation</a></li> -<li><a href="#index-g_t_0040TeX_007b_007d_002c-bibliographies-for-559">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-477">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-597">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-225">TeX, description of</a>: <a href="#TeX">TeX</a></li> -<li><a href="#index-g_t_0040TeX_007b_007d_002c-extensions-to-351">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-273">TeX, format packages for</a>: <a href="#Formats">Formats</a></li> -<li><a href="#index-g_t_0040TeX_007b_007d_002c-initial-266">TeX, initial</a>: <a href="#Initial-TeX">Initial TeX</a></li> -<li><a href="#index-g_t_0040TeX_007b_007d_002c-input-files-found-233">TeX, input files found</a>: <a href="#tex-invocation">tex invocation</a></li> -<li><a href="#index-g_t_0040TeX_007b_007d_002c-invocation-231">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-157">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_002efmt-270"><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-542"><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-208"><code>TEXEDIT</code></a>: <a href="#Editor-invocation">Editor invocation</a></li> -<li><a href="#index-texfonts_002emap-146"><code>texfonts.map</code></a>: <a href="#Path-searching">Path searching</a></li> -<li><a href="#index-Texinfo-279">Texinfo</a>: <a href="#Formats">Formats</a></li> -<li><a href="#index-texmf_002ecnf-142"><code>texmf.cnf</code></a>: <a href="#Path-searching">Path searching</a></li> -<li><a href="#index-texmfmp_002ec-462"><code>texmfmp.c</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-TEXMFOUTPUT_0040r_007b_002c-used-for-reading_007d-155"><code>TEXMFOUTPUT</code><span class="roman">, used for reading</span></a>: <a href="#Output-file-location">Output file location</a></li> -<li><a href="#index-TEXMFOUTPUT_0040r_007b_002c-used-if-_0040samp_007b_002e_007d-unwritable_007d-153"><code>TEXMFOUTPUT</code><span class="roman">, used if ‘</span><samp><span class="samp">.</span></samp><span class="roman">’ unwritable</span></a>: <a href="#Output-file-location">Output file location</a></li> -<li><a href="#index-texput-234"><code>texput</code></a>: <a href="#tex-invocation">tex invocation</a></li> -<li><a href="#index-TFM-files_002c-converting-property-lists-to-758">TFM files, converting property lists to</a>: <a href="#pltotf-invocation">pltotf invocation</a></li> -<li><a href="#index-TFM-files_002c-explained-652">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-381">TFM files, output by Metafont</a>: <a href="#mf-invocation">mf invocation</a></li> -<li><a href="#index-TFM-files_002c-output-by-MetaPost-503">TFM files, output by MetaPost</a>: <a href="#mpost-invocation">mpost invocation</a></li> -<li><a href="#index-TFM-width-of-characters-728">TFM width of characters</a>: <a href="#gftype-invocation">gftype invocation</a></li> -<li><a href="#index-TFM-width-of-characters-685">TFM width of characters</a>: <a href="#pktype-invocation">pktype invocation</a></li> -<li><a href="#index-tftopl-731"><code>tftopl</code></a>: <a href="#tftopl-invocation">tftopl invocation</a></li> -<li><a href="#index-three-programs-156">three programs</a>: <a href="#Three-programs">Three programs</a></li> -<li><a href="#index-time-and-date_002c-in-memory-dumps-201">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-468">title font</a>: <a href="#gftodvi-invocation">gftodvi invocation</a></li> -<li><a href="#index-toolkits_002c-X-445">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-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_002c-and-MetaPost-508">Troff, and MetaPost</a>: <a href="#mpost-invocation">mpost invocation</a></li> -<li><a href="#index-Troff_002c-WEB-for-578">Troff, WEB for</a>: <a href="#WEB">WEB</a></li> -<li><a href="#index-Trojan-horses-and-_0040TeX_007b_007d-programs-241">Trojan horses and TeX programs</a>: <a href="#tex-invocation">tex invocation</a></li> -<li><a href="#index-TUGboat-bibliography-558">TUGboat bibliography</a>: <a href="#bibtex-invocation">bibtex invocation</a></li> -<li><a href="#index-Type-1-conversion-792">Type 1 conversion</a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li> -<li><a href="#index-type-design_002c-personal-399">type design, personal</a>: <a href="#Initial-Metafont">Initial Metafont</a></li> -<li><a href="#index-type-programs_002c-DVI-628">type programs, DVI</a>: <a href="#dvitype-invocation">dvitype invocation</a></li> -<li><a href="#index-type-programs_002c-GF-709">type programs, GF</a>: <a href="#gftype-invocation">gftype invocation</a></li> -<li><a href="#index-type-programs_002c-PK-678">type programs, PK</a>: <a href="#pktype-invocation">pktype invocation</a></li> -<li><a href="#index-type-programs_002c-pool-606">type programs, pool</a>: <a href="#pooltype-invocation">pooltype invocation</a></li> -<li><a href="#index-typeface-families-365">typeface families</a>: <a href="#Metafont">Metafont</a></li> -<li><a href="#index-typeface-specimen-sheets-796">typeface specimen sheets</a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li> -<li><a href="#index-typesetting-226">typesetting</a>: <a href="#TeX">TeX</a></li> -<li><a href="#index-Unicode-355">Unicode</a>: <a href="#TeX-extensions">TeX extensions</a></li> -<li><a href="#index-Unicode-input-245">Unicode input</a>: <a href="#tex-invocation">tex invocation</a></li> -<li><a href="#index-uniterm-436"><code>uniterm</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-unsrt_002ebst-569"><code>unsrt.bst</code></a>: <a href="#Basic-BibTeX-style-files">Basic BibTeX style files</a></li> -<li><a href="#index-UTF_002d8-input-246">UTF-8 input</a>: <a href="#tex-invocation">tex invocation</a></li> -<li><a href="#index-validation_002c-of-DVI-files-629">validation, of DVI files</a>: <a href="#dvitype-invocation">dvitype invocation</a></li> -<li><a href="#index-validation_002c-of-GF-files-710">validation, of GF files</a>: <a href="#gftype-invocation">gftype invocation</a></li> -<li><a href="#index-validation_002c-of-PK-files-679">validation, of PK files</a>: <a href="#pktype-invocation">pktype invocation</a></li> -<li><a href="#index-validation_002c-of-TFM-files-733">validation, of TFM files</a>: <a href="#tftopl-invocation">tftopl invocation</a></li> -<li><a href="#index-validation_002c-of-VF-files-762">validation, of VF files</a>: <a href="#vftovp-invocation">vftovp invocation</a></li> -<li><a href="#index-verbose-Bib_0040TeX_007b_007d-output_002c-suppressing-547">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-723">vertical escapement</a>: <a href="#gftype-invocation">gftype invocation</a></li> -<li><a href="#index-VF-files_002c-converting-property-lists-to-769">VF files, converting property lists to</a>: <a href="#vptovf-invocation">vptovf invocation</a></li> -<li><a href="#index-vftovp-760"><code>vftovp</code></a>: <a href="#vftovp-invocation">vftovp invocation</a></li> -<li><a href="#index-virgin-programs-162">virgin programs</a>: <a href="#Initial-and-virgin">Initial and virgin</a></li> -<li><a href="#index-virtual-font-creation-800">virtual font creation</a>: <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></li> -<li><a href="#index-virtual-fonts_002c-expanding-615">virtual fonts, expanding</a>: <a href="#dvicopy-invocation">dvicopy invocation</a></li> -<li><a href="#index-virtual_002dfonts_002eknuth-662"><code>virtual-fonts.knuth</code></a>: <a href="#Font-file-formats">Font file formats</a></li> -<li><a href="#index-virtualfonts_002etxt-663"><code>virtualfonts.txt</code></a>: <a href="#Font-file-formats">Font file formats</a></li> -<li><a href="#index-vptovf-767"><code>vptovf</code></a>: <a href="#vptovf-invocation">vptovf invocation</a></li> -<li><a href="#index-weave-596"><code>weave</code></a>: <a href="#weave-invocation">weave invocation</a></li> -<li><a href="#index-WEB-570">WEB</a>: <a href="#WEB">WEB</a></li> -<li><a href="#index-web-environments_002c-and-security-346">web environments, and security</a>: <a href="#Shell-escapes">Shell escapes</a></li> -<li><a href="#index-WEB-pool-files_002c-displaying-608">WEB pool files, displaying</a>: <a href="#pooltype-invocation">pooltype invocation</a></li> -<li><a href="#index-WEB-programs_002c-compiling-581">WEB programs, compiling</a>: <a href="#tangle-invocation">tangle invocation</a></li> -<li><a href="#index-WEB-programs_002c-typesetting-598">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-308"><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-604"><code>webmac.tex</code></a>: <a href="#weave-invocation">weave invocation</a></li> -<li><a href="#index-webman_002etex-572"><code>webman.tex</code></a>: <a href="#WEB">WEB</a></li> -<li><a href="#index-whitespace_002c-in-TCX-files-316">whitespace, in TCX files</a>: <a href="#TCX-files">TCX files</a></li> -<li><a href="#index-whitespace_002dterminated-filenames-216">whitespace-terminated filenames</a>: <a href="#g_t_005cinput-filenames">\input filenames</a></li> -<li><a href="#index-width_002c-device_002dindependent-730">width, device-independent</a>: <a href="#gftype-invocation">gftype invocation</a></li> -<li><a href="#index-width_002c-device_002dindependent-687">width, device-independent</a>: <a href="#pktype-invocation">pktype invocation</a></li> -<li><a href="#index-width_002c-in-pixels-695">width, in pixels</a>: <a href="#pktype-invocation">pktype invocation</a></li> -<li><a href="#index-word-processor_002c-not-229">word processor, not</a>: <a href="#TeX">TeX</a></li> -<li><a href="#index-writing-memory-dumps-172">writing memory dumps</a>: <a href="#Creating-memory-dumps">Creating memory dumps</a></li> -<li><a href="#index-X-bitmap-fonts-775">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-452">X class name for Metafont</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-x-offset-696">x offset</a>: <a href="#pktype-invocation">pktype invocation</a></li> -<li><a href="#index-X-resources-451">X resources</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-X-toolkits-and-Metafont-446">X toolkits and Metafont</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-xampl_002ebib-555"><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-780"><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-Xe_0040TeX_007b_007d-362">XeTeX</a>: <a href="#TeX-extensions">TeX extensions</a></li> -<li><a href="#index-xfed_0040r_007b_002c-bitmap-font-editor_007d-781"><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-782"><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-441"><code>Xlib</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-Xlib-support-448">Xlib support</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-Xt-440"><code>Xt</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-Xt-support-447">Xt support</a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-xterm-442"><code>xterm</code></a>: <a href="#Online-Metafont-graphics">Online Metafont graphics</a></li> -<li><a href="#index-y-offset-697">y offset</a>: <a href="#pktype-invocation">pktype invocation</a></li> -<li><a href="#index-g_t_007e-_0040r_007bexpansion-in-filenames_007d-222"><code>~ </code><span class="roman">expansion in filenames</span></a>: <a href="#g_t_005cinput-filenames">\input filenames</a></li> - </ul></body></html> - |