diff options
Diffstat (limited to 'Master/texmf-dist/doc')
-rw-r--r-- | Master/texmf-dist/doc/dvipng/dvipng.html | 2107 | ||||
-rw-r--r-- | Master/texmf-dist/doc/dvipng/dvipng.pdf | bin | 224832 -> 224087 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/dvips/dvips.html | 8310 | ||||
-rw-r--r-- | Master/texmf-dist/doc/dvips/dvips.pdf | bin | 408067 -> 404657 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/info/dir | 1 | ||||
-rw-r--r-- | Master/texmf-dist/doc/info/dvipng.info | 981 | ||||
-rw-r--r-- | Master/texmf-dist/doc/info/dvips.info | 6 | ||||
-rw-r--r-- | Master/texmf-dist/doc/info/kpathsea.info | 2934 | ||||
-rw-r--r-- | Master/texmf-dist/doc/info/tlbuild.info | 5209 | ||||
-rw-r--r-- | Master/texmf-dist/doc/info/web2c.info | 193 | ||||
-rw-r--r-- | Master/texmf-dist/doc/kpathsea/kpathsea.html | 8637 | ||||
-rw-r--r-- | Master/texmf-dist/doc/kpathsea/kpathsea.pdf | bin | 443334 -> 374724 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/texlive/tlbuild/tlbuild.html | 6544 | ||||
-rw-r--r-- | Master/texmf-dist/doc/texlive/tlbuild/tlbuild.pdf | bin | 0 -> 462491 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/web2c/web2c.html | 8350 | ||||
-rw-r--r-- | Master/texmf-dist/doc/web2c/web2c.pdf | bin | 467319 -> 464431 bytes |
16 files changed, 28640 insertions, 14632 deletions
diff --git a/Master/texmf-dist/doc/dvipng/dvipng.html b/Master/texmf-dist/doc/dvipng/dvipng.html index bcbc45d8bc7..982b70f087f 100644 --- a/Master/texmf-dist/doc/dvipng/dvipng.html +++ b/Master/texmf-dist/doc/dvipng/dvipng.html @@ -1,602 +1,709 @@ -<html lang="en"> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ --> <head> <title>A DVI-to-PNG translator</title> -<meta http-equiv="Content-Type" content="text/html"> + <meta name="description" content="A DVI-to-PNG translator"> -<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"> -<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> +<meta name="keywords" content="A DVI-to-PNG translator"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<link href="#Top" rel="start" title="Top"> +<link href="#Index" rel="index" title="Index"> +<link href="#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="dir.html#Top" rel="up" title="(dir)"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.indentedblock {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smallindentedblock {margin-left: 3.2em; font-size: smaller} +div.smalllisp {margin-left: 3.2em} +kbd {font-style:oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space:nowrap} +span.nolinebreak {white-space:nowrap} +span.roman {font-family:serif; font-weight:normal} +span.sansserif {font-family:sans-serif; font-weight:normal} +ul.no-bullet {list-style: none} +--> +</style> + + </head> -<body> -<h1 class="settitle">A DVI-to-PNG translator</h1> -<div class="contents"> -<h2>Table of Contents</h2> -<ul> -<li><a name="toc_Top" href="#Top">dvipng</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="#Prerequisites">2.1 Prerequisites</a> -<li><a href="#Configure">2.2 Configure</a> -<li><a href="#Build_002finstall">2.3 Build/install</a> -<li><a href="#Installation-outside-the-texmf-tree">2.4 Installation outside the texmf tree</a> -<li><a href="#Advice-for-non_002dprivileged-users">2.5 Installation for non-privileged users</a> -</li></ul> -<li><a name="toc_Basic-usage" href="#Basic-usage">3 Basic usage of dvipng</a> -<li><a name="toc_Command_002dline-options" href="#Command_002dline-options">4 Command-line options</a> -<ul> -<li><a href="#Option-summary">4.1 Option summary</a> -<li><a href="#Option-details">4.2 Option details</a> -</li></ul> -<li><a name="toc_Graphics" href="#Graphics">5 Graphics</a> -<ul> -<li><a href="#Encapsulated-PostScript">5.1 Encapsulated PostScript</a> -<li><a href="#Bitmapped-graphics">5.2 Bitmapped graphics</a> -<li><a href="#Raw-PostScript">5.3 Raw PostScript</a> -</li></ul> -<li><a name="toc_Color" href="#Color">6 Color</a> -<ul> -<li><a href="#Color-specifications">6.1 Color specifications</a> -<li><a href="#Color-specials">6.2 Color specials</a> -</li></ul> -<li><a name="toc_Diagnosing-problems" href="#Diagnosing-problems">7 Diagnosing problems</a> -<ul> -<li><a href="#Contact-information">7.1 Contact information</a> -<li><a href="#Debug-options">7.2 Debug options</a> -</li></ul> -<li><a name="toc_Credits" href="#Credits">8 Credits</a> -<li><a name="toc_Copying" href="#Copying">9 Copying</a> -<li><a name="toc_Index" href="#Index">Index</a> -</li></ul> -</div> +<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000"> +<h1 class="settitle" align="center">A DVI-to-PNG translator</h1> -<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">dvipng</h2> -<p>This manual documents dvipng, a program to translate a DVI (DeVice -Independent) file into PNG (Portable Network Graphics). - <p>This file documents dvipng version 1.14 - <p>Corrections or perhaps rewrites of sections are <em>very welcome</em>. +<a name="SEC_Contents"></a> +<h2 class="contents-heading">Table of Contents</h2> - <p>Jan-Åke Larsson +<div class="contents"> -<ul class="menu"> -<li><a accesskey="1" href="#Introduction">Introduction</a>: Introduction -<li><a accesskey="2" href="#Installation">Installation</a>: How to compile and install dvipng -<li><a accesskey="3" href="#Basic-usage">Basic usage</a>: First things first -<li><a accesskey="4" href="#Command_002dline-options">Command-line options</a>: Advanced usage -<li><a accesskey="5" href="#Graphics">Graphics</a>: Including PostScript and/or bitmaps -<li><a accesskey="6" href="#Color">Color</a>: Using color with dvipng -<li><a accesskey="7" href="#Diagnosing-problems">Diagnosing problems</a>: Problems? -<li><a accesskey="8" href="#Credits">Credits</a>: People who have contributed -<li><a accesskey="9" href="#Copying">Copying</a>: GNU Lesser General Public License -<li><a href="#Index">Index</a>: General index +<ul class="no-bullet"> + <li><a name="toc-Introduction-1" href="#Introduction">1 Introduction</a></li> + <li><a name="toc-Installation-1" href="#Installation">2 Installation</a> + <ul class="no-bullet"> + <li><a name="toc-Prerequisites-1" href="#Prerequisites">2.1 Prerequisites</a></li> + <li><a name="toc-Configure-1" href="#Configure">2.2 Configure</a></li> + <li><a name="toc-Build_002finstall-1" href="#Build_002finstall">2.3 Build/install</a></li> + <li><a name="toc-Installation-outside-the-texmf-tree-1" href="#Installation-outside-the-texmf-tree">2.4 Installation outside the texmf tree</a></li> + <li><a name="toc-Installation-for-non_002dprivileged-users" href="#Advice-for-non_002dprivileged-users">2.5 Installation for non-privileged users</a></li> + </ul></li> + <li><a name="toc-Basic-usage-of-dvipng" href="#Basic-usage">3 Basic usage of dvipng</a></li> + <li><a name="toc-Command_002dline-options-1" href="#Command_002dline-options">4 Command-line options</a> + <ul class="no-bullet"> + <li><a name="toc-Option-summary-1" href="#Option-summary">4.1 Option summary</a></li> + <li><a name="toc-Option-details-1" href="#Option-details">4.2 Option details</a></li> + </ul></li> + <li><a name="toc-Graphics-1" href="#Graphics">5 Graphics</a> + <ul class="no-bullet"> + <li><a name="toc-Encapsulated-PostScript-1" href="#Encapsulated-PostScript">5.1 Encapsulated PostScript</a></li> + <li><a name="toc-Bitmapped-graphics-1" href="#Bitmapped-graphics">5.2 Bitmapped graphics</a></li> + <li><a name="toc-Raw-PostScript-1" href="#Raw-PostScript">5.3 Raw PostScript</a></li> + </ul></li> + <li><a name="toc-Color-1" href="#Color">6 Color</a> + <ul class="no-bullet"> + <li><a name="toc-Color-specifications-1" href="#Color-specifications">6.1 Color specifications</a></li> + <li><a name="toc-Color-specials-1" href="#Color-specials">6.2 Color specials</a></li> + </ul></li> + <li><a name="toc-Diagnosing-problems-1" href="#Diagnosing-problems">7 Diagnosing problems</a> + <ul class="no-bullet"> + <li><a name="toc-Contact-information-1" href="#Contact-information">7.1 Contact information</a></li> + <li><a name="toc-Debug-options-1" href="#Debug-options">7.2 Debug options</a></li> + </ul></li> + <li><a name="toc-Credits-1" href="#Credits">8 Credits</a></li> + <li><a name="toc-Copying-1" href="#Copying">9 Copying</a></li> + <li><a name="toc-Index-1" href="#Index">Index</a></li> </ul> +</div> -<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> +<a name="Top"></a> +<div class="header"> +<p> +Next: <a href="#Introduction" accesskey="n" rel="next">Introduction</a>, Up: <a href="dir.html#Top" accesskey="u" rel="up">(dir)</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="dvipng"></a> +<h1 class="top">dvipng</h1> +<p>This manual documents dvipng, a program to translate a DVI (DeVice +Independent) file into PNG (Portable Network Graphics). +</p> +<p>This file documents dvipng version 1.14 +</p> +<p>Corrections or perhaps rewrites of sections are <em>very welcome</em>. +</p> +<p>Jan-Åke Larsson +</p> + +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Introduction" accesskey="1">Introduction</a>:</td><td> </td><td align="left" valign="top">Introduction +</td></tr> +<tr><td align="left" valign="top">• <a href="#Installation" accesskey="2">Installation</a>:</td><td> </td><td align="left" valign="top">How to compile and install dvipng +</td></tr> +<tr><td align="left" valign="top">• <a href="#Basic-usage" accesskey="3">Basic usage</a>:</td><td> </td><td align="left" valign="top">First things first +</td></tr> +<tr><td align="left" valign="top">• <a href="#Command_002dline-options" accesskey="4">Command-line options</a>:</td><td> </td><td align="left" valign="top">Advanced usage +</td></tr> +<tr><td align="left" valign="top">• <a href="#Graphics" accesskey="5">Graphics</a>:</td><td> </td><td align="left" valign="top">Including PostScript and/or bitmaps +</td></tr> +<tr><td align="left" valign="top">• <a href="#Color" accesskey="6">Color</a>:</td><td> </td><td align="left" valign="top">Using color with dvipng +</td></tr> +<tr><td align="left" valign="top">• <a href="#Diagnosing-problems" accesskey="7">Diagnosing problems</a>:</td><td> </td><td align="left" valign="top">Problems? +</td></tr> +<tr><td align="left" valign="top">• <a href="#Credits" accesskey="8">Credits</a>:</td><td> </td><td align="left" valign="top">People who have contributed +</td></tr> +<tr><td align="left" valign="top">• <a href="#Copying" accesskey="9">Copying</a>:</td><td> </td><td align="left" valign="top">GNU Lesser General Public License +</td></tr> +<tr><td align="left" valign="top">• <a href="#Index">Index</a>:</td><td> </td><td align="left" valign="top">General index +</td></tr> +</table> + + + +<hr> +<a name="Introduction"></a> +<div class="header"> +<p> +Next: <a href="#Installation" accesskey="n" rel="next">Installation</a>, Previous: <a href="#Top" accesskey="p" rel="prev">Top</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Introduction-1"></a> <h2 class="chapter">1 Introduction</h2> -<!-- man begin DESCRIPTION --> -<!-- readme.texi --> -<!-- Part of the dvipng distribution --> -<!-- --> -<p>This program makes PNG and/or GIF graphics from DVI files as obtained -from TeX and its relatives. - <p>If GIF support is enabled, GIF output is chosen by using the -‘<samp><span class="samp">dvigif</span></samp>’ binary or with the ‘<samp><span class="samp">--gif</span></samp>’ option. - <p>It is intended to produce anti-aliased screen-resolution images as fast + +<p>This program makes PNG and/or GIF graphics from DVI files as obtained +from TeX and its relatives. +</p> +<p>If GIF support is enabled, GIF output is chosen by using the +‘<samp>dvigif</samp>’ binary or with the ‘<samp>--gif</samp>’ option. +</p> + +<p>It is intended to produce anti-aliased screen-resolution images as fast as is possible. The target audience is people who need to generate and regenerate many images again and again. The primary target is the preview-latex (X)Emacs package, a package to preview formulas from within (X)Emacs. Yes, you get to see your formulas in the (X)Emacs -buffer, see <a href="http://www.gnu.org/software/auctex/preview-latex.html">http://www.gnu.org/software/auctex/preview-latex.html</a>. - - <p>Another example is WeBWorK, an internet-based method for delivering +buffer, see <a href="http://www.gnu.org/software/auctex/preview-latex.html">http://www.gnu.org/software/auctex/preview-latex.html</a>. +</p> +<p>Another example is WeBWorK, an internet-based method for delivering homework problems to students over the internet, giving students instant feedback as to whether or not their answers are correct, see <a href="http://webwork.math.rochester.edu">http://webwork.math.rochester.edu</a>. - - <p>A more recent addition to the dvipng-using applications out there is +</p> +<p>A more recent addition to the dvipng-using applications out there is MediaWiki, the software behind Wikipedia and many other wikis out there. Dvipng is used to render mathematical formulae from version 1.8.0 of MediaWiki, see <a href="http://www.mediawiki.org">http://www.mediawiki.org</a>. - - <p>Other applications may also benefit, like web applications as latex2html +</p> +<p>Other applications may also benefit, like web applications as latex2html and WYSIWYG editors like LyX. +</p> - <p>The benefits of ‘<samp><span class="samp">dvipng</span></samp>’/‘<samp><span class="samp">dvigif</span></samp>’ include - - <ul> -<li>Speed. It is a very fast bitmap-rendering code for DVI files, which +<p>The benefits of ‘<samp>dvipng</samp>’/‘<samp>dvigif</samp>’ include +</p> +<ul> +<li> Speed. It is a very fast bitmap-rendering code for DVI files, which makes it suitable for generating large amounts of images on-the-fly, as needed in preview-latex, WeBWorK and others. - <li>It does not read the postamble, so it can be started before TeX -finishes. There is a ‘<samp><span class="samp">--follow</span></samp>’ switch that makes dvipng wait at +</li><li> It does not read the postamble, so it can be started before TeX +finishes. There is a ‘<samp>--follow</samp>’ switch that makes dvipng wait at end-of-file for further output, unless it finds the POST marker that indicates the end of the DVI. - <li>Interactive query of options. dvipng can read options interactively +</li><li> Interactive query of options. dvipng can read options interactively through stdin, and all options are usable. It is even possible to change the input file through this interface. - <li>Supports PK, VF, PostScript Type1, and TrueType fonts, subfonts (i.e., +</li><li> Supports PK, VF, PostScript Type1, and TrueType fonts, subfonts (i.e., as used in CJK-LaTeX), color specials, and inclusion of PostScript, PNG, JPEG or GIF images. - <li>and more... +</li><li> and more... + +</li></ul> - </ul> -<!-- man end --> -<div class="node"> +<hr> <a name="Installation"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Basic-usage">Basic usage</a>, -Previous: <a rel="previous" accesskey="p" href="#Introduction">Introduction</a>, -Up: <a rel="up" accesskey="u" href="#Top">Top</a> - +<div class="header"> +<p> +Next: <a href="#Basic-usage" accesskey="n" rel="next">Basic usage</a>, Previous: <a href="#Introduction" accesskey="p" rel="prev">Introduction</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Installation-1"></a> <h2 class="chapter">2 Installation</h2> -<p><a name="index-configuration_002c-of-dvipng-1"></a><a name="index-compilation-2"></a><a name="index-installation_002c-of-dvipng-3"></a> - -<!-- install.texi --> -<!-- Part of the dvipng distribution --> -<!-- --> - <p>Installing dvipng should be simple: merely <code>./configure</code>, -<code>make</code>, and <code>make install</code>. - -<ul class="menu"> -<li><a accesskey="1" href="#Prerequisites">Prerequisites</a> -<li><a accesskey="2" href="#Configure">Configure</a> -<li><a accesskey="3" href="#Build_002finstall">Build/install</a> -<li><a accesskey="4" href="#Installation-outside-the-texmf-tree">Installation outside the texmf tree</a> -<li><a accesskey="5" href="#Advice-for-non_002dprivileged-users">Advice for non-privileged users</a> -</ul> - -<div class="node"> +<a name="index-configuration_002c-of-dvipng"></a> +<a name="index-compilation"></a> +<a name="index-installation_002c-of-dvipng"></a> + + + +<p>Installing dvipng should be simple: merely <code>./configure</code>, +<code>make</code>, and <code>make install</code>. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Prerequisites" accesskey="1">Prerequisites</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Configure" accesskey="2">Configure</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Build_002finstall" accesskey="3">Build/install</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Installation-outside-the-texmf-tree" accesskey="4">Installation outside the texmf tree</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Advice-for-non_002dprivileged-users" accesskey="5">Advice for non-privileged users</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + +<hr> <a name="Prerequisites"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Configure">Configure</a>, -Up: <a rel="up" accesskey="u" href="#Installation">Installation</a> - +<div class="header"> +<p> +Next: <a href="#Configure" accesskey="n" rel="next">Configure</a>, Up: <a href="#Installation" accesskey="u" rel="up">Installation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Prerequisites-1"></a> <h3 class="section">2.1 Prerequisites</h3> - <ul> -<li>The GD Graphics Draw library, libgd +<ul> +<li> The GD Graphics Draw library, libgd - <p>The drawing library ‘<samp><span class="samp">libgd</span></samp>’ is necessary, and is downloadable at +<p>The drawing library ‘<samp>libgd</samp>’ is necessary, and is downloadable at <a href="http://www.boutell.com/gd">http://www.boutell.com/gd</a>, and there are binary packages for most operating systems from their respective distributors. In any -case, the latest version of the library installs using ‘<samp><span class="samp">autoconf</span></samp>’ +case, the latest version of the library installs using ‘<samp>autoconf</samp>’ so it should not be difficult for you to install it from source, and then proceed with installing dvipng. +</p> +</li><li> The path-searching library kpathsea - <li>The path-searching library kpathsea - - <p>Kpathsea is most likely included in your LaTeX installation, but it +<p>Kpathsea is most likely included in your LaTeX installation, but it may happen that ./configure does not find it; see below. If you do not -have it, download it from <a href="http://www.ctan.org">http://www.ctan.org</a> and compile it. +have it, download it from <a href="http://www.ctan.org">http://www.ctan.org</a> and compile it. I have no experience with this, so I cannot help much here. +</p> +</li><li> The font-rendering library FreeType 2 - <li>The font-rendering library FreeType 2 - - <p>While not strictly necessary, a recent FreeType 2 is recommended since +<p>While not strictly necessary, a recent FreeType 2 is recommended since dvipng currently will produce better-quality images when this library is available. To take advantage of this, you should have at least FreeType 2.1.9. - - <p>FreeType 2 will enable direct support for PostScript and TrueType fonts, +</p> +<p>FreeType 2 will enable direct support for PostScript and TrueType fonts, so that dvipng will not need to generate bitmapped variants on disk of the TeX fonts since modern TeX distributions include PostScript versions of them. Then, you can render images at different (and unusual) resolutions without cluttering the disk with lots of bitmapped fonts. - - <p>Finally, it will enable subfont support in dvipng. That is, if you want +</p> +<p>Finally, it will enable subfont support in dvipng. That is, if you want to render CJK-LaTeX characters, you must have FreeType 2 installed. +</p> +</li><li> The font-rendering library T1lib - <li>The font-rendering library T1lib - - <p>An alternative to FreeType 2 is T1lib, but this will enable only +<p>An alternative to FreeType 2 is T1lib, but this will enable only PostScript fonts in dvipng and will not include subfont support. Also here, you can render images at different (and unusual) resolutions without cluttering the disk with lots of bitmapped fonts. If both FreeType 2 and T1lib are present, FreeType will be internally preferred by dvipng but T1lib can be chosen at runtime. +</p> +</li><li> libpng and libz - <li>libpng and libz - - <p>To be able to compress and write PNG files to disk, dvipng (or really +<p>To be able to compress and write PNG files to disk, dvipng (or really libgd) uses libpng which in turn uses libz. These should be available on any modern system, if not, download them and install them. +</p> +</li><li> The <code>texinfo</code> package - <li>The <code>texinfo</code> package +<p>This is needed for building the documentation. +</p></li></ul> - <p>This is needed for building the documentation. -</ul> - -<div class="node"> +<hr> <a name="Configure"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Build_002finstall">Build/install</a>, -Previous: <a rel="previous" accesskey="p" href="#Prerequisites">Prerequisites</a>, -Up: <a rel="up" accesskey="u" href="#Installation">Installation</a> - +<div class="header"> +<p> +Next: <a href="#Build_002finstall" accesskey="n" rel="next">Build/install</a>, Previous: <a href="#Prerequisites" accesskey="p" rel="prev">Prerequisites</a>, Up: <a href="#Installation" accesskey="u" rel="up">Installation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Configure-1"></a> <h3 class="section">2.2 Configure</h3> <p>The first step is to configure the source code, telling it where various files will be. To do so, run +</p> +<div class="example"> +<pre class="example">./configure <var>options</var> +</pre></div> -<pre class="example"> ./configure <var>options</var> -</pre> - <p>(Note: if you have fetched dvipng from CVS rather than a regular -release, you will have to first generate <samp><span class="file">./configure</span></samp> by running +<p>(Note: if you have fetched dvipng from CVS rather than a regular +release, you will have to first generate <samp>./configure</samp> by running <code>autoconf</code> 2.53 or later.) - - <p>On many machines, you will not need to specify any options, but if -<code>configure</code> cannot determine something on its own, you'll need to +</p> +<p>On many machines, you will not need to specify any options, but if +<code>configure</code> cannot determine something on its own, you’ll need to help it out. For a list of the options type - -<pre class="example"> ./configure --help -</pre> - <p>On some machines, the libraries will be installed in directories that -are not in the linker's search path. This will generate an error when -running <samp><span class="file">./configure</span></samp>, indicating that it cannot find libgd or +</p> +<div class="example"> +<pre class="example">./configure --help +</pre></div> + +<p>On some machines, the libraries will be installed in directories that +are not in the linker’s search path. This will generate an error when +running <samp>./configure</samp>, indicating that it cannot find libgd or libkpathsea (most likely). You then need to specify the path to the -respective library's object files. They are typically called e.g., -<samp><span class="file">libgd.a</span></samp> or <samp><span class="file">libgd.so</span></samp>. If they are located in e.g., -<samp><span class="file">/sw/local/lib</span></samp>, do - -<pre class="example"> ./configure LDFLAGS=-L/sw/local/lib -</pre> - <p>If the library is available as a shared object file (<samp><span class="file">.so</span></samp>), the +respective library’s object files. They are typically called e.g., +<samp>libgd.a</samp> or <samp>libgd.so</samp>. If they are located in e.g., +<samp>/sw/local/lib</samp>, do +</p> +<div class="example"> +<pre class="example">./configure LDFLAGS=-L/sw/local/lib +</pre></div> + +<p>If the library is available as a shared object file (<samp>.so</samp>), the runtime linker may also need to be told where to find the library, then use +</p> +<div class="example"> +<pre class="example">./configure LDFLAGS='-L/sw/local/lib -R/sw/local/lib' +</pre></div> -<pre class="example"> ./configure LDFLAGS='-L/sw/local/lib -R/sw/local/lib' -</pre> - <p>When either of these is necessary, it is likely that the C header +<p>When either of these is necessary, it is likely that the C header files are also installed in directories that are not in the C -preprocessor's search path. This will also generate an error when -running <samp><span class="file">./configure</span></samp>, indicating that it cannot find e.g., -<samp><span class="file">gd.h</span></samp> or <samp><span class="file">kpathsea.h</span></samp> (most likely). You then need to -specify the path to the respective library's C header files. If they -are located in e.g., <samp><span class="file">/sw/local/include</span></samp>, do - -<pre class="example"> ./configure CPPFLAGS=-I/sw/local/include -</pre> - <p>On my SUN Solaris workstation, I had to combine this into - -<pre class="example"> ./configure CPPFLAGS='-I/sw/local/include -I/sw/tex/teTeX/1.0/include'\ - LDFLAGS='-L/sw/local/lib -R/sw/local/lib -L/sw/tex/teTeX/1.0/lib/' -</pre> - <p class="noindent">where the backslash denotes a continuation of the line. - -<div class="node"> -<a name="Build%2finstall"></a> +preprocessor’s search path. This will also generate an error when +running <samp>./configure</samp>, indicating that it cannot find e.g., +<samp>gd.h</samp> or <samp>kpathsea.h</samp> (most likely). You then need to +specify the path to the respective library’s C header files. If they +are located in e.g., <samp>/sw/local/include</samp>, do +</p> +<div class="example"> +<pre class="example">./configure CPPFLAGS=-I/sw/local/include +</pre></div> + +<p>On my SUN Solaris workstation, I had to combine this into +</p> +<div class="example"> +<pre class="example">./configure CPPFLAGS='-I/sw/local/include -I/sw/tex/teTeX/1.0/include'\ + LDFLAGS='-L/sw/local/lib -R/sw/local/lib -L/sw/tex/teTeX/1.0/lib/' +</pre></div> + +<p>where the backslash denotes a continuation of the line. +</p> +<hr> <a name="Build_002finstall"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Installation-outside-the-texmf-tree">Installation outside the texmf tree</a>, -Previous: <a rel="previous" accesskey="p" href="#Configure">Configure</a>, -Up: <a rel="up" accesskey="u" href="#Installation">Installation</a> - +<div class="header"> +<p> +Next: <a href="#Installation-outside-the-texmf-tree" accesskey="n" rel="next">Installation outside the texmf tree</a>, Previous: <a href="#Configure" accesskey="p" rel="prev">Configure</a>, Up: <a href="#Installation" accesskey="u" rel="up">Installation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Build_002finstall-1"></a> <h3 class="section">2.3 Build/install</h3> -<p>Once <samp><span class="file">configure</span></samp> has been run, simply enter +<p>Once <samp>configure</samp> has been run, simply enter +</p> +<div class="example"> +<pre class="example">make +</pre></div> -<pre class="example"> make -</pre> - <p class="noindent">at the prompt to compile the C code, and build the documentation files. +<p>at the prompt to compile the C code, and build the documentation files. To install the files into the locations chosen earlier, type +</p> +<div class="example"> +<pre class="example">make install +</pre></div> -<pre class="example"> make install -</pre> - <p class="noindent">You may need special privileges to install, e.g., if you are installing +<p>You may need special privileges to install, e.g., if you are installing into system directories. - -<div class="node"> +</p> +<hr> <a name="Installation-outside-the-texmf-tree"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Advice-for-non_002dprivileged-users">Advice for non-privileged users</a>, -Previous: <a rel="previous" accesskey="p" href="#Build_002finstall">Build/install</a>, -Up: <a rel="up" accesskey="u" href="#Installation">Installation</a> - +<div class="header"> +<p> +Next: <a href="#Advice-for-non_002dprivileged-users" accesskey="n" rel="next">Advice for non-privileged users</a>, Previous: <a href="#Build_002finstall" accesskey="p" rel="prev">Build/install</a>, Up: <a href="#Installation" accesskey="u" rel="up">Installation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Installation-outside-the-texmf-tree-1"></a> <h3 class="section">2.4 Installation outside the texmf tree</h3> <p>In some cases, a dvipng binary installed outside the texmf tree will not be able to find virtual fonts, or the PostScript font maps (normally used by dvips). This may be because <em>only</em> $SELFAUTOLOC, $SELFAUTODIR, and $SELFAUTOPARENT are used in the texmf -tree configuration file ‘<samp><span class="samp">texmf.cnf</span></samp>’. If so, give the switch -‘<samp><span class="samp">--enable-selfauto-set</span></samp>’ to ‘<samp><span class="samp">./configure</span></samp>’. This will make +tree configuration file ‘<samp>texmf.cnf</samp>’. If so, give the switch +‘<samp>--enable-selfauto-set</samp>’ to ‘<samp>./configure</samp>’. This will make dvipng adjust these three internally so that kpathsea thinks that dvipng <em>is</em> installed in the texmf tree. - -<div class="node"> -<a name="Advice-for-non-privileged-users"></a> +</p> +<hr> <a name="Advice-for-non_002dprivileged-users"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Installation-outside-the-texmf-tree">Installation outside the texmf tree</a>, -Up: <a rel="up" accesskey="u" href="#Installation">Installation</a> - +<div class="header"> +<p> +Previous: <a href="#Installation-outside-the-texmf-tree" accesskey="p" rel="prev">Installation outside the texmf tree</a>, Up: <a href="#Installation" accesskey="u" rel="up">Installation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Installation-for-non_002dprivileged-users"></a> <h3 class="section">2.5 Installation for non-privileged users</h3> <p>Often people without system administration privileges want to install software for their private use. In that case you need to specify more -options to the <samp><span class="file">configure</span></samp> script, usually this is done by using -the ‘<samp><span class="samp">--prefix</span></samp>’ option to the <samp><span class="file">configure</span></samp> script, and let it +options to the <samp>configure</samp> script, usually this is done by using +the ‘<samp>--prefix</samp>’ option to the <samp>configure</samp> script, and let it point to the personal home directory. In that way, resulting binaries -will be installed under the <samp><span class="file">bin</span></samp> subdirectory of your home -directory, manual pages under <samp><span class="file">man</span></samp> and so on. That way, it is +will be installed under the <samp>bin</samp> subdirectory of your home +directory, manual pages under <samp>man</samp> and so on. That way, it is reasonably easy to maintain a bunch of additional packages, since the -prefix argument is supported by most <samp><span class="file">configure</span></samp> scripts. - - <p>You'll have to add something like <samp><span class="file">/home/myself/bin</span></samp> to your -<code>PATH</code> shell variable, if it isn't there already, and similarly +prefix argument is supported by most <samp>configure</samp> scripts. +</p> +<p>You’ll have to add something like <samp>/home/myself/bin</samp> to your +<code>PATH</code> shell variable, if it isn’t there already, and similarly set the <code>INFOPATH</code> and <code>MANPATH</code> variables to be able to access the documentation. +</p> -<div class="node"> +<hr> <a name="Basic-usage"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Command_002dline-options">Command-line options</a>, -Previous: <a rel="previous" accesskey="p" href="#Installation">Installation</a>, -Up: <a rel="up" accesskey="u" href="#Top">Top</a> - +<div class="header"> +<p> +Next: <a href="#Command_002dline-options" accesskey="n" rel="next">Command-line options</a>, Previous: <a href="#Installation" accesskey="p" rel="prev">Installation</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Basic-usage-of-dvipng"></a> <h2 class="chapter">3 Basic usage of dvipng</h2> -<p><a name="index-invoking-dvipng-4"></a> -To use dvipng at its simplest, simply type +<a name="index-invoking-dvipng"></a> -<pre class="example"> dvipng foo -</pre> - <p class="noindent">where <samp><span class="file">foo.dvi</span></samp> is the output of TeX that you want to convert to -PNG format. If there are four pages in <samp><span class="file">foo.dvi</span></samp>, those pages will -be output as <samp><span class="file">foo1.png</span></samp>, <samp><span class="file">foo2.png</span></samp>, <samp><span class="file">foo3.png</span></samp>, and -<samp><span class="file">foo4.png</span></samp>, respectively. +<p>To use dvipng at its simplest, simply type +</p> +<div class="example"> +<pre class="example">dvipng foo +</pre></div> - <p>If you have enabled the PostScript font support (via FreeType or T1lib), +<p>where <samp>foo.dvi</samp> is the output of TeX that you want to convert to +PNG format. If there are four pages in <samp>foo.dvi</samp>, those pages will +be output as <samp>foo1.png</samp>, <samp>foo2.png</samp>, <samp>foo3.png</samp>, and +<samp>foo4.png</samp>, respectively. +</p> +<p>If you have enabled the PostScript font support (via FreeType or T1lib), fonts will be rendered as they are needed. Otherwise, dvipng will use bitmapped (PK) fonts, and if you use PK fonts that have not been used on your system before, they may be automatically generated; this process can take a few minutes, so progress reports appear by default. The next time the same font is used, it will have been saved on disk, so rendering will go much faster. (If dvipng tries to endlessly generate -the same fonts over and over again, something is wrong. See <a href="kpathsea.html#Unable-to-generate-fonts">Unable to generate fonts</a>.) - - <p>Many options are available (see the next section). For a brief summary +the same fonts over and over again, something is wrong. See <a href="kpathsea.html#Unable-to-generate-fonts">Unable to +generate fonts</a> in <cite>Kpathsea</cite>.) +</p> +<p>Many options are available (see the next section). For a brief summary of available options, just type +</p> +<div class="example"> +<pre class="example">dvipng --help +</pre></div> -<pre class="example"> dvipng --help -</pre> - <div class="node"> -<a name="Command-line-options"></a> +<hr> <a name="Command_002dline-options"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Graphics">Graphics</a>, -Previous: <a rel="previous" accesskey="p" href="#Basic-usage">Basic usage</a>, -Up: <a rel="up" accesskey="u" href="#Top">Top</a> - +<div class="header"> +<p> +Next: <a href="#Graphics" accesskey="n" rel="next">Graphics</a>, Previous: <a href="#Basic-usage" accesskey="p" rel="prev">Basic usage</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Command_002dline-options-1"></a> <h2 class="chapter">4 Command-line options</h2> -<p><a name="index-command_002dline-options-5"></a><a name="index-options_002c-dvipng-6"></a> -dvipng has a plethora of command line options. Reading through this +<a name="index-command_002dline-options"></a> +<a name="index-options_002c-dvipng"></a> + +<p>dvipng has a plethora of command line options. Reading through this section will give a good idea of the capabilities of the driver. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Option-summary" accesskey="1">Option summary</a>:</td><td> </td><td align="left" valign="top">Quick listing, from dvipng –help. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Option-details" accesskey="2">Option details</a>:</td><td> </td><td align="left" valign="top">More information about each option. +</td></tr> +</table> -<ul class="menu"> -<li><a accesskey="1" href="#Option-summary">Option summary</a>: Quick listing, from dvipng --help. -<li><a accesskey="2" href="#Option-details">Option details</a>: More information about each option. -</ul> -<div class="node"> +<hr> <a name="Option-summary"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Option-details">Option details</a>, -Up: <a rel="up" accesskey="u" href="#Command_002dline-options">Command-line options</a> - +<div class="header"> +<p> +Next: <a href="#Option-details" accesskey="n" rel="next">Option details</a>, Up: <a href="#Command_002dline-options" accesskey="u" rel="up">Command-line options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Option-summary-1"></a> <h3 class="section">4.1 Option summary</h3> -<p><a name="index-options_002c-summary-7"></a>Here is a handy summary of the options; it is printed out when you run -dvipng with no arguments or with the standard ‘<samp><span class="samp">--help</span></samp>’ option. - -<pre class="example"> This is ./dvipng 1.14 Copyright 2002-2010 Jan-Ake Larsson - - Usage: ./dvipng [OPTION]... FILENAME[.dvi] - Options are chosen to be similar to dvips' options where possible: - -d # Debug (# is the debug bitmap, 1 if not given) - -D # Output resolution - -l # Last page to be output - -o f Output file, '%d' is pagenumber - -O c Image offset - -p # First page to be output - -pp #,#.. Page list to be output - -q* Quiet operation - -T c Image size (also accepts '-T bbox' and '-T tight') - -v* Verbose operation - - Interactive query of options - - These do not correspond to dvips options: - -bd # Transparent border width in dots - -bd s Transparent border fallback color (TeX-style color) - -bg s Background color (TeX-style color or 'Transparent') - --depth* Output the image depth on stdout - --dvinum* Use TeX page numbers in output filenames - -fg s Foreground color (TeX-style color) - --follow* Wait for data at end-of-file - --freetype* FreeType font rendering (preferred, default on) - --gamma # Control color interpolation - --gif Output GIF images (dvigif default) - --height* Output the image height on stdout - --nogs* Don't use ghostscript for PostScript specials - --nogssafer* Don't use -dSAFER in ghostscript calls - --norawps* Don't convert raw PostScript specials - --palette* Force palette output - --picky When a warning occurs, don't output image - --png Output PNG images (dvipng default) - --strict When a warning occurs, exit - --t1lib* T1lib font rendering (default on) - --truecolor* Truecolor output - -Q # Quality (T1lib and PK subsampling) - --width* Output the image width on stdout - -z # PNG compression level - - # = number f = file s = string * = suffix, '0' to turn off - c = comma-separated dimension pair (e.g., 3.2in,-32.1cm) - -</pre> - <div class="node"> +<a name="index-options_002c-summary"></a> +<p>Here is a handy summary of the options; it is printed out when you run +dvipng with no arguments or with the standard ‘<samp>--help</samp>’ option. +</p> +<div class="example"> +<pre class="example">This is ./dvipng (TeX Live) 1.14 Copyright 2002-2010 Jan-Ake Larsson + +Usage: ./dvipng [OPTION]... FILENAME[.dvi] +Options are chosen to be similar to dvips' options where possible: + -d # Debug (# is the debug bitmap, 1 if not given) + -D # Output resolution + -l # Last page to be output + -o f Output file, '%d' is pagenumber + -O c Image offset + -p # First page to be output + -pp #,#.. Page list to be output + -q* Quiet operation + -T c Image size (also accepts '-T bbox' and '-T tight') + -v* Verbose operation + - Interactive query of options + +These do not correspond to dvips options: + -bd # Transparent border width in dots + -bd s Transparent border fallback color (TeX-style color) + -bg s Background color (TeX-style color or 'Transparent') + --depth* Output the image depth on stdout + --dvinum* Use TeX page numbers in output filenames + -fg s Foreground color (TeX-style color) + --follow* Wait for data at end-of-file + --freetype* FreeType font rendering (preferred, default on) + --gamma # Control color interpolation + --gif Output GIF images (dvigif default) + --height* Output the image height on stdout + --nogs* Don't use ghostscript for PostScript specials + --nogssafer* Don't use -dSAFER in ghostscript calls + --norawps* Don't convert raw PostScript specials + --palette* Force palette output + --picky When a warning occurs, don't output image + --png Output PNG images (dvipng default) + --strict When a warning occurs, exit + --truecolor* Truecolor output + -Q # Quality (T1lib and PK subsampling) + --width* Output the image width on stdout + -z # PNG compression level + + # = number f = file s = string * = suffix, '0' to turn off + c = comma-separated dimension pair (e.g., 3.2in,-32.1cm) + +</pre></div> + + +<hr> <a name="Option-details"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Option-summary">Option summary</a>, -Up: <a rel="up" accesskey="u" href="#Command_002dline-options">Command-line options</a> - +<div class="header"> +<p> +Previous: <a href="#Option-summary" accesskey="p" rel="prev">Option summary</a>, Up: <a href="#Command_002dline-options" accesskey="u" rel="up">Command-line options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Option-details-1"></a> <h3 class="section">4.2 Option details</h3> -<p><a name="index-option_002c-details-of-8"></a><!-- man begin OPTIONS --> - - <p>Many of the parameterless options listed here can be turned off by -suffixing the option with a zero (‘<samp><span class="samp">0</span></samp>’); for instance, to turn off -page reversal, use ‘<samp><span class="samp">-r0</span></samp>’. Such options are marked with a trailing -‘<samp><span class="samp">*</span></samp>’. - - <dl> -<dt>‘<samp><span class="samp">-</span></samp>’<dd><a name="index-options_002c-reading-from-standard-input-9"></a><a name="index-standard-input_002c-reading-options-from-10"></a>Read additional options from standard input after processing the command +<a name="index-option_002c-details-of"></a> + +<p>Many of the parameterless options listed here can be turned off by +suffixing the option with a zero (‘<samp>0</samp>’); for instance, to turn off +page reversal, use ‘<samp>-r0</samp>’. Such options are marked with a trailing +‘<samp>*</samp>’. +</p> +<dl compact="compact"> +<dt>‘<samp>-</samp>’</dt> +<dd><a name="index-options_002c-reading-from-standard-input"></a> +<a name="index-standard-input_002c-reading-options-from"></a> +<p>Read additional options from standard input after processing the command line. - - <br><dt>‘<samp><span class="samp">--help</span></samp>’<dd>Print a usage message and exit. - - <br><dt>‘<samp><span class="samp">--version</span></samp>’<dd>Print the version number and exit. - - <br><dt>‘<samp><span class="samp">-bd </span><var>num</var></samp>’<br><dt>‘<samp><span class="samp">-bd </span><var>color_spec</var></samp>’<br><dt>‘<samp><span class="samp">-bd '</span><var>num</var> <var>color_spec</var><span class="samp">'</span></samp>’<dd><a name="index-transparent-border-width-11"></a><a name="index-transparent-border-fallback-color-12"></a>Set the pixel width of the transparent border (default 0). Using this +</p> +</dd> +<dt>‘<samp>--help</samp>’</dt> +<dd><p>Print a usage message and exit. +</p> +</dd> +<dt>‘<samp>--version</samp>’</dt> +<dd><p>Print the version number and exit. +</p> +</dd> +<dt>‘<samp>-bd <var>num</var></samp>’</dt> +<dt>‘<samp>-bd <var>color_spec</var></samp>’</dt> +<dt>‘<samp>-bd '<var>num</var> <var>color_spec</var>'</samp>’</dt> +<dd><a name="index-transparent-border-width"></a> +<a name="index-transparent-border-fallback-color"></a> +<p>Set the pixel width of the transparent border (default 0). Using this option will make the image edges transparent, but it only affects pixels with the background color. Giving a <var>color_spec</var> will set the fallback color, to be used in viewers that cannot handle transparency (the default is the background color). The color spec should be in -TeX color \special syntax, e.g., 'rgb 1.0 0.0 0.0'. Setting the +TeX color \special syntax, e.g., ’rgb 1.0 0.0 0.0’. Setting the fallback color makes the default border width 1 px. See <a href="#Color">Color</a>. - - <br><dt>‘<samp><span class="samp">--bdpi </span><var>num</var></samp>’<dd><a name="index-base-resolution_002c-setting-13"></a>This option only has an effect when using bitmapped (PK) fonts. The +</p> +</dd> +<dt>‘<samp>--bdpi <var>num</var></samp>’</dt> +<dd><a name="index-base-resolution_002c-setting"></a> +<p>This option only has an effect when using bitmapped (PK) fonts. The option sets the base (Metafont) resolution, both horizontal and vertical, to <var>num</var> dpi (dots per inch). This option is necessary when manually selecting Metafont mode with the –mode option (see below). - - <br><dt>‘<samp><span class="samp">-bg </span><var>color_spec</var></samp>’<dd><a name="index-background-color-_0028option_0029-14"></a>Choose background color for the images. This option will be ignored if +</p> +</dd> +<dt>‘<samp>-bg <var>color_spec</var></samp>’</dt> +<dd><a name="index-background-color-_0028option_0029"></a> +<p>Choose background color for the images. This option will be ignored if there is a background color \special in the DVI. The color spec should -be in TeX color \special syntax, e.g., 'rgb 1.0 0.0 0.0'. You can -also specify 'Transparent' or 'transparent' which will give you a +be in TeX color \special syntax, e.g., ’rgb 1.0 0.0 0.0’. You can +also specify ’Transparent’ or ’transparent’ which will give you a transparent background with the normal background as a fallback color. A -capitalized 'Transparent' will give a full-alpha transparency, while an -all-lowercase 'transparent' will give a simple fully transparent +capitalized ’Transparent’ will give a full-alpha transparency, while an +all-lowercase ’transparent’ will give a simple fully transparent background with non-transparent antialiased pixels. The latter would be suitable for viewers who cannot cope with a true alpha channel. GIF images do not support full alpha transparency, so in case of GIF output, both variants will use the latter behaviour. See <a href="#Color">Color</a>. - - <br><dt>‘<samp><span class="samp">-d </span><var>num</var></samp>’<dd><a name="index-debugging-15"></a>Set the debug flags, showing what dvipng (thinks it) is doing. This will +</p> +</dd> +<dt>‘<samp>-d <var>num</var></samp>’</dt> +<dd><a name="index-debugging"></a> +<p>Set the debug flags, showing what dvipng (thinks it) is doing. This will work unless dvipng has been compiled without the <code>DEBUG</code> option -(not recommended). Set the flags as you need them, use ‘<samp><span class="samp">-d -1</span></samp>’ as -the first option for maximum output. See <a href="#Debug-options">Debug options</a>. - - <br><dt>‘<samp><span class="samp">-D </span><var>num</var></samp>’<dd><a name="index-output-resolution_002c-setting-16"></a>Set the output resolution, both horizontal and vertical, to <var>num</var> -dpi (dots per inch). - - <p>One may want to adjust this to fit a certain text font size (e.g., on +(not recommended). Set the flags as you need them, use ‘<samp>-d -1</samp>’ as +the first option for maximum output. See <a href="#Debug-options">Debug options</a>. +</p> +</dd> +<dt>‘<samp>-D <var>num</var></samp>’</dt> +<dd><a name="index-output-resolution_002c-setting"></a> +<p>Set the output resolution, both horizontal and vertical, to <var>num</var> +dpi (dots per inch). +</p> +<p>One may want to adjust this to fit a certain text font size (e.g., on a web page), and for a text font height of <var>font_px</var> pixels (in Mozilla) the correct formula is - <pre class="example"> <var>dpi</var> = <var>font_px</var> * 72.27 / 10 [px * TeXpt/in / TeXpt] -</pre> - <p>The last division by ten is due to the standard font height 10pt in +</p><div class="example"> +<pre class="example"><var>dpi</var> = <var>font_px</var> * 72.27 / 10 [px * TeXpt/in / TeXpt] +</pre></div> +<p>The last division by ten is due to the standard font height 10pt in your document, if you use 12pt, divide by 12. Unfortunately, some proprietary browsers have font height in pt (points), not pixels. You have to rescale that to pixels, using the screen resolution (default is usually 96 dpi) which means the formula is - <pre class="example"> <var>font_px</var> = <var>font_pt</var> * 96 / 72 [pt * px/in / (pt/in)] -</pre> - <p>On some high-res screens, the value is instead 120 dpi. Good luck! - - <br><dt>‘<samp><span class="samp">--depth*</span></samp>’<dd><a name="index-baseline-reporting-17"></a><a name="index-depth-reporting-18"></a>Report the depth of the image. This only works reliably when the -LaTeX style <samp><span class="file">preview.sty</span></samp> from preview-latex is used with -the ‘<samp><span class="samp">active</span></samp>’ option. It reports the number of pixels from the +</p><div class="example"> +<pre class="example"><var>font_px</var> = <var>font_pt</var> * 96 / 72 [pt * px/in / (pt/in)] +</pre></div> +<p>On some high-res screens, the value is instead 120 dpi. Good luck! +</p> +</dd> +<dt>‘<samp>--depth*</samp>’</dt> +<dd><a name="index-baseline-reporting"></a> +<a name="index-depth-reporting"></a> +<p>Report the depth of the image. This only works reliably when the +LaTeX style <samp>preview.sty</samp> from preview-latex is used with +the ‘<samp>active</samp>’ option. It reports the number of pixels from the bottom of the image to the baseline of the image. This can be used for vertical positioning of the image in, e.g., web documents, where one would use (Cascading StyleSheets 1) - <pre class="example"> <IMG SRC="<var>filename.png</var>" STYLE="vertical-align: -<var>depth</var>px"> -</pre> - <p>The depth is a negative offset in this case, so the minus sign is +</p><div class="example"> +<pre class="example"><IMG SRC="<var>filename.png</var>" STYLE="vertical-align: -<var>depth</var>px"> +</pre></div> +<p>The depth is a negative offset in this case, so the minus sign is necessary, and the unit is pixels (px). - - <br><dt>‘<samp><span class="samp">--dvinum*</span></samp>’<dd>Set this option to make the output page number be the TeX page -numbers rather than the physical page number. See the ‘<samp><span class="samp">-o</span></samp>’ switch. - - <br><dt>‘<samp><span class="samp">-fg </span><var>color_spec</var></samp>’<dd><a name="index-foreground-color-_0028option_0029-19"></a>Choose foreground color for the images. This option will be ignored if +</p> +</dd> +<dt>‘<samp>--dvinum*</samp>’</dt> +<dd><p>Set this option to make the output page number be the TeX page +numbers rather than the physical page number. See the ‘<samp>-o</samp>’ switch. +</p> + +</dd> +<dt>‘<samp>-fg <var>color_spec</var></samp>’</dt> +<dd><a name="index-foreground-color-_0028option_0029"></a> +<p>Choose foreground color for the images. This option will be ignored if there is a foreground color \special in the DVI. The color spec should -be in TeX color \special syntax, e.g., 'rgb 1.0 0.0 0.0'. +be in TeX color \special syntax, e.g., ’rgb 1.0 0.0 0.0’. See <a href="#Color">Color</a>. - - <br><dt>‘<samp><span class="samp">--follow*</span></samp>’<dd><a name="index-follow-mode-20"></a>Wait for data at end-of-file. One of the benefits of dvipng is that it +</p> +</dd> +<dt>‘<samp>--follow*</samp>’</dt> +<dd><a name="index-follow-mode"></a> +<p>Wait for data at end-of-file. One of the benefits of dvipng is that it does not read the postamble, so it can be started before TeX finishes. This switch makes dvipng wait at end-of-file for further output, unless it finds the POST marker that indicates the end of the -DVI. This is similar to ‘<samp><span class="samp">tail -f</span></samp>’ but for DVI-to-PNG conversion. - - <br><dt>‘<samp><span class="samp">--freetype*</span></samp>’<dd><a name="index-FreeType-font-rendering-21"></a>Enable/disable FreeType font rendering (default on). This option is -available if the FreeType2 font library was present at compilation time. +DVI. This is similar to ‘<samp>tail -f</samp>’ but for DVI-to-PNG conversion. +</p> +</dd> +<dt>‘<samp>--freetype*</samp>’</dt> +<dd><a name="index-FreeType-font-rendering"></a> +<p>Enable/disable FreeType font rendering (default on). This option is +available if the FreeType2 font library was present at compilation time. If this is the case, dvipng will have direct support for PostScript -Type1 and TrueType fonts internally, rather than using ‘<samp><span class="samp">gsftopk</span></samp>’ +Type1 and TrueType fonts internally, rather than using ‘<samp>gsftopk</samp>’ for rendering the fonts. If you have PostScript versions of Computer Modern installed, there will be no need to generate bitmapped (PK) variants on disk of these. Then, you can render images at different (and @@ -604,229 +711,322 @@ unusual) resolutions without cluttering the disk with lots of bitmapped fonts. Note that if you have both FreeType and T1lib on your system, FreeType will be preferred by dvipng. If you for some reason would want to use T1lib rendering, use this option. - - <br><dt>‘<samp><span class="samp">--gamma </span><var>num</var></samp>’<dd><a name="index-gamma-22"></a><a name="index-dark-fonts-23"></a><a name="index-light-fonts-24"></a><a name="index-fuzzy-images-25"></a>Control the interpolation of colors in the greyscale anti-aliasing +</p> +</dd> +<dt>‘<samp>--gamma <var>num</var></samp>’</dt> +<dd><a name="index-gamma"></a> +<a name="index-dark-fonts"></a> +<a name="index-light-fonts"></a> +<a name="index-fuzzy-images"></a> +<p>Control the interpolation of colors in the greyscale anti-aliasing color palette. Default value is 1.0. For 0 < <var>num</var> < 1, the fonts will be lighter (more like the background), and for <var>num</var> > 1, the fonts will be darker (more like the foreground). - - <br><dt>‘<samp><span class="samp">--gif*</span></samp>’<dd><a name="index-GIF-image-format-26"></a>The images are output in the GIF format, if GIF support is enabled. -This is the default for the ‘<samp><span class="samp">dvigif</span></samp>’ binary, which only will be +</p> +</dd> +<dt>‘<samp>--gif*</samp>’</dt> +<dd><a name="index-GIF-image-format"></a> +<p>The images are output in the GIF format, if GIF support is enabled. +This is the default for the ‘<samp>dvigif</samp>’ binary, which only will be available when GIF support is enabled. GIF images are palette images -(see the ‘<samp><span class="samp">--palette</span></samp>’ option) and does not support true alpha -channels (see the ‘<samp><span class="samp">--bg</span></samp>’ option). See also the ‘<samp><span class="samp">--png</span></samp>’ +(see the ‘<samp>--palette</samp>’ option) and does not support true alpha +channels (see the ‘<samp>--bg</samp>’ option). See also the ‘<samp>--png</samp>’ option. - - <br><dt>‘<samp><span class="samp">--height*</span></samp>’<dd><a name="index-baseline-reporting-27"></a><a name="index-height-reporting-28"></a>Report the height of the image. This only works reliably when the -LaTeX style <samp><span class="file">preview.sty</span></samp> from preview-latex is used with -the ‘<samp><span class="samp">active</span></samp>’ option. It reports the number of pixels from the top +</p> +</dd> +<dt>‘<samp>--height*</samp>’</dt> +<dd><a name="index-baseline-reporting-1"></a> +<a name="index-height-reporting"></a> +<p>Report the height of the image. This only works reliably when the +LaTeX style <samp>preview.sty</samp> from preview-latex is used with +the ‘<samp>active</samp>’ option. It reports the number of pixels from the top of the image to the baseline of the image. The total height of the image is obtained as the sum of the values reported from -‘<samp><span class="samp">--height</span></samp>’ and ‘<samp><span class="samp">--depth</span></samp>’. - - <br><dt>‘<samp><span class="samp">-l [=]</span><var>num</var></samp>’<dd><a name="index-last-page-printed-29"></a><a name="index-page_002c-last-printed-30"></a><a name="index-physical-page-number_002c-and-_0040samp_007b_002dl_007d-31"></a><a name="index-absolute-page-number_002c-and-_0040samp_007b_002dl_007d-32"></a>The last page printed will be the first one numbered <var>num</var>. Default +‘<samp>--height</samp>’ and ‘<samp>--depth</samp>’. +</p> +</dd> +<dt>‘<samp>-l [=]<var>num</var></samp>’</dt> +<dd><a name="index-last-page-printed"></a> +<a name="index-page_002c-last-printed"></a> +<a name="index-physical-page-number_002c-and-_002dl"></a> +<a name="index-absolute-page-number_002c-and-_002dl"></a> +<p>The last page printed will be the first one numbered <var>num</var>. Default is the last page in the document. If <var>num</var> is prefixed by an equals -sign, then it (and the argument to the ‘<samp><span class="samp">-p</span></samp>’ option, if specified) +sign, then it (and the argument to the ‘<samp>-p</samp>’ option, if specified) is treated as a physical (absolute) page number, rather than a value to -compare with the TeX ‘<samp><span class="samp">\count0</span></samp>’ values stored in the DVI file. -Thus, using ‘<samp><span class="samp">-l =9</span></samp>’ will end with the ninth page of the document, +compare with the TeX ‘<samp>\count0</samp>’ values stored in the DVI file. +Thus, using ‘<samp>-l =9</samp>’ will end with the ninth page of the document, no matter what the pages are actually numbered. - - <br><dt>‘<samp><span class="samp">--mode </span><var>mode</var></samp>’<dd><a name="index-mode-name_002c-specifying-33"></a><a name="index-Metafont-mode_002c-specifying-34"></a>This option only has an effect when using bitmapped (PK) fonts. Use +</p> +</dd> +<dt>‘<samp>--mode <var>mode</var></samp>’</dt> +<dd><a name="index-mode-name_002c-specifying"></a> +<a name="index-Metafont-mode_002c-specifying"></a> +<p>This option only has an effect when using bitmapped (PK) fonts. Use <var>mode</var> as the Metafont device name for the PK fonts (both for path searching and font generation). This needs to be augmented with the base -device resolution, given with the ‘<samp><span class="samp">--bdpi</span></samp>’ option. See the file +device resolution, given with the ‘<samp>--bdpi</samp>’ option. See the file <a href="ftp://ftp.tug.org/tex/modes.mf">ftp://ftp.tug.org/tex/modes.mf</a> for a list of resolutions and mode -names for most devices. See <a href="kpathsea.html#Unable-to-generate-fonts">Unable to generate fonts</a>. - - <br><dt>‘<samp><span class="samp">-M*</span></samp>’<dd><a name="index-font-generation_002c-avoiding-35"></a><a name="index-mktexpk_0040r_007b_002c-avoiding_007d-36"></a><!-- this description repeated in kpathsea.texi --> -This option only has an effect when using bitmapped (PK) fonts. It turns -off automatic PK font generation (<samp><span class="file">mktexpk</span></samp>). - - <br><dt>‘<samp><span class="samp">--nogs*</span></samp>’<dd><a name="index-GhostScript_002c-turning-off-37"></a>This switch prohibits the internal call to GhostScript for displaying -PostScript specials. ‘<samp><span class="samp">--nogs0</span></samp>’ turns the call back on. - - <br><dt>‘<samp><span class="samp">--nogssafer*</span></samp>’<dd><a name="index-GhostScript-and-_002ddSAFER-38"></a><a name="index-g_t_002ddSAFER-39"></a>Normally, if GhostScript is used to render PostScript specials, the -GhostScript interpreter is run with the option ‘<samp><span class="samp">-dSAFER</span></samp>’. The -‘<samp><span class="samp">--nogssafer</span></samp>’ option runs GhostScript without ‘<samp><span class="samp">-dSAFER</span></samp>’. The -‘<samp><span class="samp">-dSAFER</span></samp>’ option in Ghostscript disables PostScript operators such +names for most devices. See <a href="kpathsea.html#Unable-to-generate-fonts">Unable to generate fonts</a> in <cite>Kpathsea</cite>. +</p> +</dd> +<dt>‘<samp>-M*</samp>’</dt> +<dd><a name="index-font-generation_002c-avoiding"></a> +<a name="index-mktexpk_002c-avoiding"></a> +<p>This option only has an effect when using bitmapped (PK) fonts. It turns +off automatic PK font generation (<samp>mktexpk</samp>). +</p> +</dd> +<dt>‘<samp>--nogs*</samp>’</dt> +<dd><a name="index-GhostScript_002c-turning-off"></a> +<p>This switch prohibits the internal call to GhostScript for displaying +PostScript specials. ‘<samp>--nogs0</samp>’ turns the call back on. +</p> +</dd> +<dt>‘<samp>--nogssafer*</samp>’</dt> +<dd><a name="index-GhostScript-and-_002ddSAFER"></a> +<a name="index-_002ddSAFER"></a> +<p>Normally, if GhostScript is used to render PostScript specials, the +GhostScript interpreter is run with the option ‘<samp>-dSAFER</samp>’. The +‘<samp>--nogssafer</samp>’ option runs GhostScript without ‘<samp>-dSAFER</samp>’. The +‘<samp>-dSAFER</samp>’ option in Ghostscript disables PostScript operators such as deletefile, to prevent possibly malicious PostScript programs from having any effect. - - <br><dt>‘<samp><span class="samp">--norawps*</span></samp>’<dd><a name="index-PostScript_002c-turning-off-raw-PostScript-specials-40"></a>Some packages generate raw PostScript specials, even non-rendering such +</p> +</dd> +<dt>‘<samp>--norawps*</samp>’</dt> +<dd><a name="index-PostScript_002c-turning-off-raw-PostScript-specials"></a> +<p>Some packages generate raw PostScript specials, even non-rendering such specials. This switch turns off the internal call to GhostScript -intended to display these raw PostScript specials. ‘<samp><span class="samp">--norawps0</span></samp>’ +intended to display these raw PostScript specials. ‘<samp>--norawps0</samp>’ turns the call back on. - - <br><dt>‘<samp><span class="samp">-o </span><var>name</var></samp>’<dd><a name="index-output_002c-redirecting-41"></a><a name="index-standard-output_002c-output-to-42"></a>Send output to the file <var>name</var>. A single occurrence of ‘<samp><span class="samp">%d</span></samp>’ or -‘<samp><span class="samp">%01d</span></samp>’, <small class="dots">...</small>, ‘<samp><span class="samp">%09d</span></samp>’ will be exchanged for the physical -page number (this can be changed, see the ‘<samp><span class="samp">--dvinum</span></samp>’ switch). The -default output filename is ‘<samp><var>file</var><span class="samp">%d.png</span></samp>’ where the input DVI -file was ‘<samp><var>file</var><span class="samp">.dvi</span></samp>’. - - <br><dt>‘<samp><span class="samp">-O </span><var>x-offset</var><span class="samp">,</span><var>y-offset</var></samp>’<dd><a name="index-offset-pages-43"></a>Move the origin by <var>x-offset</var>,<var>y-offset</var>, a comma-separated -pair of dimensions such as ‘<samp><span class="samp">.1in,-.3cm</span></samp>’. -<!-- (@pxref{papersize special}). --> +</p> +</dd> +<dt>‘<samp>-o <var>name</var></samp>’</dt> +<dd><a name="index-output_002c-redirecting"></a> +<a name="index-standard-output_002c-output-to"></a> +<p>Send output to the file <var>name</var>. A single occurrence of ‘<samp>%d</samp>’ or +‘<samp>%01d</samp>’, …, ‘<samp>%09d</samp>’ will be exchanged for the physical +page number (this can be changed, see the ‘<samp>--dvinum</samp>’ switch). The +default output filename is ‘<samp><var>file</var>%d.png</samp>’ where the input DVI +file was ‘<samp><var>file</var>.dvi</samp>’. +</p> +</dd> +<dt>‘<samp>-O <var>x-offset</var>,<var>y-offset</var></samp>’</dt> +<dd><a name="index-offset-pages"></a> +<p>Move the origin by <var>x-offset</var>,<var>y-offset</var>, a comma-separated +pair of dimensions such as ‘<samp>.1in,-.3cm</samp>’. The origin of the page is shifted from the default position (of one inch down, one inch to the right from the upper left corner of -the paper) by this amount. - - <br><dt>‘<samp><span class="samp">-p [=]</span><var>num</var></samp>’<dd><a name="index-first-page-printed-44"></a><a name="index-page_002c-first-printed-45"></a><a name="index-physical-page-number_002c-and-_0040samp_007b_002dp_007d-46"></a><a name="index-absolute-page-number_002c-and-_0040samp_007b_002dp_007d-47"></a>The first page printed will be the first one numbered <var>num</var>. Default +the paper) by this amount. +</p> +</dd> +<dt>‘<samp>-p [=]<var>num</var></samp>’</dt> +<dd><a name="index-first-page-printed"></a> +<a name="index-page_002c-first-printed"></a> +<a name="index-physical-page-number_002c-and-_002dp"></a> +<a name="index-absolute-page-number_002c-and-_002dp"></a> +<p>The first page printed will be the first one numbered <var>num</var>. Default is the first page in the document. If <var>num</var> is prefixed by an -equals sign, then it (and the argument to the ‘<samp><span class="samp">-l</span></samp>’ option, if +equals sign, then it (and the argument to the ‘<samp>-l</samp>’ option, if specified) is treated as a physical (absolute) page number, rather than -a value to compare with the TeX ‘<samp><span class="samp">\count0</span></samp>’ values stored in the -DVI file. Thus, using ‘<samp><span class="samp">-p =3</span></samp>’ will start with the third page of +a value to compare with the TeX ‘<samp>\count0</samp>’ values stored in the +DVI file. Thus, using ‘<samp>-p =3</samp>’ will start with the third page of the document, no matter what the pages are actually numbered. - - <br><dt>‘<samp><span class="samp">--palette*</span></samp>’<dd><a name="index-forcing-palette-output-48"></a>When an external image is included, ‘<samp><span class="samp">dvipng</span></samp>’ will automatically +</p> +</dd> +<dt>‘<samp>--palette*</samp>’</dt> +<dd><a name="index-forcing-palette-output"></a> +<p>When an external image is included, ‘<samp>dvipng</samp>’ will automatically switch to truecolor mode, to avoid unnecessary delay and quality reduction, and enable the EPS translator to draw on a transparent background and outside of the boundingbox. This switch will force -palette (256-color) output and make ‘<samp><span class="samp">dvipng</span></samp>’ revert to opaque -clipped image inclusion. This will also override the ‘<samp><span class="samp">--truecolor</span></samp>’ +palette (256-color) output and make ‘<samp>dvipng</samp>’ revert to opaque +clipped image inclusion. This will also override the ‘<samp>--truecolor</samp>’ switch if present. - - <br><dt>‘<samp><span class="samp">--picky*</span></samp>’<dd><a name="index-no-erroneous-images-49"></a>No images are output when a warning occurs. Normally, dvipng will +</p> +</dd> +<dt>‘<samp>--picky*</samp>’</dt> +<dd><a name="index-no-erroneous-images"></a> +<p>No images are output when a warning occurs. Normally, dvipng will output an image in spite of a warning, but there may be something missing in this image. One reason to use this option would be if you have a more complete but slower fallback converter. Mainly, this is useful for failed figure inclusion and unknown \special occurrences, but warnings will also occur for missing or unknown color specs and missing PK fonts. - - <br><dt>‘<samp><span class="samp">--png*</span></samp>’<dd><a name="index-PNG-image-format-50"></a>The images are output in the PNG format. This is the default for the -‘<samp><span class="samp">dvipng</span></samp>’ binary. See also the ‘<samp><span class="samp">--gif</span></samp>’ option. - - <br><dt>‘<samp><span class="samp">-pp </span><var>firstpage</var><span class="samp">-</span><var>lastpage</var></samp>’<dd><a name="index-page-range-51"></a>Print pages <var>firstpage</var> through <var>lastpage</var>; but not quite -equivalent to ‘<samp><span class="samp">-p </span><var>firstpage</var><span class="samp"> -l </span><var>lastpage</var></samp>’. For example, +</p> +</dd> +<dt>‘<samp>--png*</samp>’</dt> +<dd><a name="index-PNG-image-format"></a> +<p>The images are output in the PNG format. This is the default for the +‘<samp>dvipng</samp>’ binary. See also the ‘<samp>--gif</samp>’ option. +</p> +</dd> +<dt>‘<samp>-pp <var>firstpage</var>-<var>lastpage</var></samp>’</dt> +<dd><a name="index-page-range"></a> +<p>Print pages <var>firstpage</var> through <var>lastpage</var>; but not quite +equivalent to ‘<samp>-p <var>firstpage</var> -l <var>lastpage</var></samp>’. For example, when rendering a book, there may be several instances of a page in the DVI file (one in <code>\frontmatter</code>, one in <code>\mainmatter</code>, and one -in <code>\backmatter</code>). In case of several pages matching, ‘<samp><span class="samp">-pp -</span><var>firstpage</var><span class="samp">-</span><var>lastpage</var></samp>’ will render <em>all</em> pages that -matches the specified range, while ‘<samp><span class="samp">-p </span><var>firstpage</var><span class="samp"> -l -</span><var>lastpage</var></samp>’ will render the pages from the <em>first</em> occurrence -of <var>firstpage</var> to the <em>first</em> occurrence of <var>lastpage</var>. +in <code>\backmatter</code>). In case of several pages matching, ‘<samp>-pp +<var>firstpage</var>-<var>lastpage</var></samp>’ will render <em>all</em> pages that +matches the specified range, while ‘<samp>-p <var>firstpage</var> -l +<var>lastpage</var></samp>’ will render the pages from the <em>first</em> occurrence +of <var>firstpage</var> to the <em>first</em> occurrence of <var>lastpage</var>. This is the (undocumented) behaviour of dvips. In dvipng you can give both kinds of options, in which case you get all pages that matches the -range in ‘<samp><span class="samp">-pp</span></samp>’ between the pages from ‘<samp><span class="samp">-p</span></samp>’ to ‘<samp><span class="samp">-l</span></samp>’. Also -multiple ‘<samp><span class="samp">-pp</span></samp>’ options accumulate, unlike ‘<samp><span class="samp">-p</span></samp>’ and ‘<samp><span class="samp">-l</span></samp>’. -The ‘<samp><span class="samp">-</span></samp>’ separator can also be ‘<samp><span class="samp">:</span></samp>’. Note that ‘<samp><span class="samp">-pp -1</span></samp>’ -will be interpreted as "all pages up to and including 1", if you want a -page numbered -1 (only the table of contents, say) put ‘<samp><span class="samp">-pp -1--1</span></samp>’, -or more readable, ‘<samp><span class="samp">-pp -1:-1</span></samp>’. - - <br><dt>‘<samp><span class="samp">-q*</span></samp>’<dd><a name="index-quiet-operation-52"></a><a name="index-silent-operation-53"></a><a name="index-warnings_002c-suppressing-54"></a>Run quietly. Don't chatter about pages converted, etc. to standard +range in ‘<samp>-pp</samp>’ between the pages from ‘<samp>-p</samp>’ to ‘<samp>-l</samp>’. Also +multiple ‘<samp>-pp</samp>’ options accumulate, unlike ‘<samp>-p</samp>’ and ‘<samp>-l</samp>’. +The ‘<samp>-</samp>’ separator can also be ‘<samp>:</samp>’. Note that ‘<samp>-pp -1</samp>’ +will be interpreted as "all pages up to and including 1", if you want a +page numbered -1 (only the table of contents, say) put ‘<samp>-pp -1--1</samp>’, +or more readable, ‘<samp>-pp -1:-1</samp>’. +</p> +</dd> +<dt>‘<samp>-q*</samp>’</dt> +<dd><a name="index-quiet-operation"></a> +<a name="index-silent-operation"></a> +<a name="index-warnings_002c-suppressing"></a> +<p>Run quietly. Don’t chatter about pages converted, etc. to standard output; report no warnings (only errors) to standard error. - - <br><dt>‘<samp><span class="samp">-Q </span><var>num</var></samp>’<dd><a name="index-antialiasing-levels_0040r_007b_002c-number-of_007d-55"></a><a name="index-quality-56"></a>Set the quality to <var>num</var>. That is, choose the number of antialiasing +</p> +</dd> +<dt>‘<samp>-Q <var>num</var></samp>’</dt> +<dd><a name="index-antialiasing-levels_002c-number-of"></a> +<a name="index-quality"></a> +<p>Set the quality to <var>num</var>. That is, choose the number of antialiasing levels for bitmapped fonts (PK) and fonts rendered using T1lib, to be <var>num</var>*<var>num</var>+1. The default value is 4 which gives 17 levels of antialiasing for antialiased fonts from these two. If FreeType is available, its rendering is unaffected by this option. - - <br><dt>‘<samp><span class="samp">-r*</span></samp>’<dd><a name="index-reverse-pagination-57"></a>Toggle output of pages in reverse/forward order. By default, the first +</p> +</dd> +<dt>‘<samp>-r*</samp>’</dt> +<dd><a name="index-reverse-pagination"></a> +<p>Toggle output of pages in reverse/forward order. By default, the first page in the DVI is output first. +</p> - <br><dt>‘<samp><span class="samp">--strict*</span></samp>’<dd><a name="index-exit-on-erroneous-images-58"></a>The program exits when a warning occurs. Normally, dvipng will output +</dd> +<dt>‘<samp>--strict*</samp>’</dt> +<dd><a name="index-exit-on-erroneous-images"></a> +<p>The program exits when a warning occurs. Normally, dvipng will output an image in spite of a warning, but there may be something missing in this image. One reason to use this option would be if you have a more -complete but slower fallback converter. See the ‘<samp><span class="samp">--picky</span></samp>’ option +complete but slower fallback converter. See the ‘<samp>--picky</samp>’ option above for a list of when warnings occur. - - <br><dt>‘<samp><span class="samp">-T </span><var>image_size</var></samp>’<dd>Set the image size to <var>image_size</var> which can be either of -‘<samp><span class="samp">bbox</span></samp>’, ‘<samp><span class="samp">tight</span></samp>’, or a comma-separated pair of dimensions -<var>hsize</var>,<var>vsize</var> such as ‘<samp><span class="samp">.1in,.3cm</span></samp>’. The default is -‘<samp><span class="samp">bbox</span></samp>’ which produces a PNG that includes all ink put on the page +</p> +</dd> +<dt>‘<samp>-T <var>image_size</var></samp>’</dt> +<dd><p>Set the image size to <var>image_size</var> which can be either of +‘<samp>bbox</samp>’, ‘<samp>tight</samp>’, or a comma-separated pair of dimensions +<var>hsize</var>,<var>vsize</var> such as ‘<samp>.1in,.3cm</samp>’. The default is +‘<samp>bbox</samp>’ which produces a PNG that includes all ink put on the page and in addition the DVI origin, located 1in from the top and 1in from the left edge of the paper. This usually gives whitespace above and to -the left in the produced image. The value ‘<samp><span class="samp">tight</span></samp>’ will make dvipng -only include all ink put on the page, producing neat images. -<!-- (@pxref{papersize special}). --> -<!-- This option overrides any papersize special in the DVI file. --> - - <br><dt>‘<samp><span class="samp">--t1lib*</span></samp>’<dd><a name="index-T1lib-font-rendering-59"></a>Enable T1lib font rendering (default on). This option is available if +the left in the produced image. The value ‘<samp>tight</samp>’ will make dvipng +only include all ink put on the page, producing neat images. +</p> +</dd> +<dt>‘<samp>--t1lib*</samp>’</dt> +<dd><a name="index-T1lib-font-rendering"></a> +<p>Enable T1lib font rendering (default on). This option is available if the T1lib font library was present at compilation time. If this is the case, dvipng will have direct support for PostScript Type1 fonts -internally, rather than using ‘<samp><span class="samp">gsftopk</span></samp>’ for rendering the fonts. If +internally, rather than using ‘<samp>gsftopk</samp>’ for rendering the fonts. If you have PostScript versions of Computer Modern installed, there will be no need to generate bitmapped variants on disk of these. Then, you can render images at different (and unusual) resolutions without cluttering the disk with lots of bitmapped fonts. Note that if you have both FreeType and T1lib on your system, FreeType will be preferred by dvipng, and if you for some reason rather want to use T1lib, give the option -‘<samp><span class="samp">--freetype0</span></samp>’ (see above). - - <br><dt>‘<samp><span class="samp">--truecolor*</span></samp>’<dd><a name="index-truecolor-output-60"></a>This will make ‘<samp><span class="samp">dvipng</span></samp>’ generate truecolor output. Note that +‘<samp>--freetype0</samp>’ (see above). +</p> +</dd> +<dt>‘<samp>--truecolor*</samp>’</dt> +<dd><a name="index-truecolor-output"></a> +<p>This will make ‘<samp>dvipng</samp>’ generate truecolor output. Note that truecolor output is automatic if you include an external image in your -DVI, e.g., via a PostScript special (i.e., the ‘<samp><span class="samp">graphics</span></samp>’ or -‘<samp><span class="samp">graphicx</span></samp>’ package). This switch is overridden by the -‘<samp><span class="samp">--palette</span></samp>’ switch. - - <br><dt>‘<samp><span class="samp">-v*</span></samp>’<dd>Enable verbose operation. This will currently indicate what fonts is +DVI, e.g., via a PostScript special (i.e., the ‘<samp>graphics</samp>’ or +‘<samp>graphicx</samp>’ package). This switch is overridden by the +‘<samp>--palette</samp>’ switch. +</p> +</dd> +<dt>‘<samp>-v*</samp>’</dt> +<dd><p>Enable verbose operation. This will currently indicate what fonts is used, in addition to the usual output. - - <br><dt>‘<samp><span class="samp">--width*</span></samp>’<dd><a name="index-width-reporting-61"></a>Report the width of the image. See also ‘<samp><span class="samp">--height</span></samp>’ and -‘<samp><span class="samp">--depth</span></samp>’. - - <br><dt>‘<samp><span class="samp">-x </span><var>num</var></samp>’<dd><a name="index-magnification_002c-overriding-DVI-62"></a>This option is deprecated; it should not be used. It is much better to -select the output resolution directly with the ‘<samp><span class="samp">-D</span></samp>’ option. This -option sets the magnification ratio to <var>num</var>/1000 and +</p> +</dd> +<dt>‘<samp>--width*</samp>’</dt> +<dd><a name="index-width-reporting"></a> +<p>Report the width of the image. See also ‘<samp>--height</samp>’ and +‘<samp>--depth</samp>’. +</p> +</dd> +<dt>‘<samp>-x <var>num</var></samp>’</dt> +<dd><a name="index-magnification_002c-overriding-DVI"></a> +<p>This option is deprecated; it should not be used. It is much better to +select the output resolution directly with the ‘<samp>-D</samp>’ option. This +option sets the magnification ratio to <em><var>num</var>/1000</em> and overrides the magnification specified in the DVI file. Must be between 10 and 100000. It is recommended that you use standard magstep values (1095, 1200, 1440, 1728, 2074, 2488, 2986, and so on) to help reduce the total number of PK files generated. <var>num</var> may be a real number, not an integer, for increased precision. - - <br><dt>‘<samp><span class="samp">-z </span><var>num</var></samp>’<dd><a name="index-compression-63"></a>Set the PNG compression level to <var>num</var>. This option is enabled if -your ‘<samp><span class="samp">libgd</span></samp>’ is new enough. The default compression level is 1, +</p> +</dd> +<dt>‘<samp>-z <var>num</var></samp>’</dt> +<dd><a name="index-compression"></a> +<p>Set the PNG compression level to <var>num</var>. This option is enabled if +your ‘<samp>libgd</samp>’ is new enough. The default compression level is 1, which selects maximum speed at the price of slightly larger PNGs. For an -older ‘<samp><span class="samp">libgd</span></samp>’, the hard-soldered value 5 is used. The include file -‘<samp><span class="samp">png.h</span></samp>’ says -<blockquote> -Currently, valid values range from 0 - 9, corresponding directly to the -zlib compression levels 0 - 9 (0 - no compression, 9 - "maximal" +older ‘<samp>libgd</samp>’, the hard-soldered value 5 is used. The include file +‘<samp>png.h</samp>’ says +</p><blockquote> +<p>Currently, valid values range from 0 - 9, corresponding directly to the +zlib compression levels 0 - 9 (0 - no compression, 9 - "maximal" compression). Note that tests have shown that zlib compression levels 3-6 usually perform as well as level 9 for PNG images, and do considerably fewer calculations. In the future, these values may not -correspond directly to the zlib compression levels. -</blockquote> - </dl> - <!-- man end --> +correspond directly to the zlib compression levels. +</p></blockquote> +</dd> +</dl> -<div class="node"> +<hr> <a name="Graphics"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Color">Color</a>, -Previous: <a rel="previous" accesskey="p" href="#Command_002dline-options">Command-line options</a>, -Up: <a rel="up" accesskey="u" href="#Top">Top</a> - +<div class="header"> +<p> +Next: <a href="#Color" accesskey="n" rel="next">Color</a>, Previous: <a href="#Command_002dline-options" accesskey="p" rel="prev">Command-line options</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Graphics-1"></a> <h2 class="chapter">5 Graphics</h2> -<p>‘<samp><span class="samp">dvipng</span></samp>’ attempts to handle graphics as included by the -‘<samp><span class="samp">graphicx</span></samp>’ and ‘<samp><span class="samp">graphics</span></samp>’ packages, without the need of +<p>‘<samp>dvipng</samp>’ attempts to handle graphics as included by the +‘<samp>graphicx</samp>’ and ‘<samp>graphics</samp>’ packages, without the need of specifying a driver to these packages. This means that it recognizes -the encapsulated postscript inclusion meant for ‘<samp><span class="samp">dvips</span></samp>’, but is +the encapsulated postscript inclusion meant for ‘<samp>dvips</samp>’, but is also able (from version 1.8) to include bitmapped graphics. It also tries to handle some of the raw PostScript that is output from various packages. Some of the possibilities and problems are mentioned below. - -<ul class="menu"> -<li><a accesskey="1" href="#Encapsulated-PostScript">Encapsulated PostScript</a>: An internal call to GhostScript -<li><a accesskey="2" href="#Bitmapped-graphics">Bitmapped graphics</a>: PNG, JPEG and GIF -<li><a accesskey="3" href="#Raw-PostScript">Raw PostScript</a>: Ignore or give to GhostScript -</ul> - -<div class="node"> +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Encapsulated-PostScript" accesskey="1">Encapsulated PostScript</a>:</td><td> </td><td align="left" valign="top">An internal call to GhostScript +</td></tr> +<tr><td align="left" valign="top">• <a href="#Bitmapped-graphics" accesskey="2">Bitmapped graphics</a>:</td><td> </td><td align="left" valign="top">PNG, JPEG and GIF +</td></tr> +<tr><td align="left" valign="top">• <a href="#Raw-PostScript" accesskey="3">Raw PostScript</a>:</td><td> </td><td align="left" valign="top">Ignore or give to GhostScript +</td></tr> +</table> + +<hr> <a name="Encapsulated-PostScript"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Bitmapped-graphics">Bitmapped graphics</a>, -Up: <a rel="up" accesskey="u" href="#Graphics">Graphics</a> - +<div class="header"> +<p> +Next: <a href="#Bitmapped-graphics" accesskey="n" rel="next">Bitmapped graphics</a>, Up: <a href="#Graphics" accesskey="u" rel="up">Graphics</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Encapsulated-PostScript-1"></a> <h3 class="section">5.1 Encapsulated PostScript</h3> <p>When an EPS file is included, a call to GhostScript is performed to @@ -836,81 +1036,86 @@ DVI page currently being converted to PNG, and include that as foreground on the PNG. Of course, if the image is to be cropped, that is done. The included image will be a truecolor image, so for maximum performance the output PNG will be in truecolor mode as well. - - <p>This conversion needs the ‘<samp><span class="samp">pngalpha</span></samp>’ output device to be present +</p> +<p>This conversion needs the ‘<samp>pngalpha</samp>’ output device to be present in your copy of GhostScript. If that device is not present, or you use -the ‘<samp><span class="samp">--palette</span></samp>’ switch or request GIF output, the fallback is to -use the ‘<samp><span class="samp">png16m</span></samp>’ device to produce a cropped opaque image for -inclusion. Other relevant switches are ‘<samp><span class="samp">--noghostscript</span></samp>’ and -‘<samp><span class="samp">--nogssafer</span></samp>’. See <a href="#Option-details">Option details</a>. - - <p><a name="index-PostScript-inclusion-problems-64"></a>The most common problem with including graphics is an incorrect +the ‘<samp>--palette</samp>’ switch or request GIF output, the fallback is to +use the ‘<samp>png16m</samp>’ device to produce a cropped opaque image for +inclusion. Other relevant switches are ‘<samp>--noghostscript</samp>’ and +‘<samp>--nogssafer</samp>’. See <a href="#Option-details">Option details</a>. +</p> +<a name="index-PostScript-inclusion-problems"></a> +<p>The most common problem with including graphics is an incorrect bounding box. Complain to whoever wrote the software that generated the file if the bounding box is indeed incorrect. An adjusted -boundingbox can be specified in the ‘<samp><span class="samp">\includegraphics</span></samp>’ call, as -in this example (using ‘<samp><span class="samp">graphicx</span></samp>’): +boundingbox can be specified in the ‘<samp>\includegraphics</samp>’ call, as +in this example (using ‘<samp>graphicx</samp>’): +</p> +<div class="example"> +<pre class="example">\includegraphics[bb=10 20 100 200]{imagename.eps} +</pre></div> -<pre class="example"> \includegraphics[bb=10 20 100 200]{imagename.eps} -</pre> - <div class="node"> -<a name="Bitmapped-graphics"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Raw-PostScript">Raw PostScript</a>, -Previous: <a rel="previous" accesskey="p" href="#Encapsulated-PostScript">Encapsulated PostScript</a>, -Up: <a rel="up" accesskey="u" href="#Graphics">Graphics</a> +<hr> +<a name="Bitmapped-graphics"></a> +<div class="header"> +<p> +Next: <a href="#Raw-PostScript" accesskey="n" rel="next">Raw PostScript</a>, Previous: <a href="#Encapsulated-PostScript" accesskey="p" rel="prev">Encapsulated PostScript</a>, Up: <a href="#Graphics" accesskey="u" rel="up">Graphics</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Bitmapped-graphics-1"></a> <h3 class="section">5.2 Bitmapped graphics</h3> <p>dvipng can include PNG, JPEG and GIF graphics. When including such -images via ‘<samp><span class="samp">\includegraphics</span></samp>’ you need to specify the bounding -box since TeX itself cannot read them from the files in question. -The bounding box size should be given as ‘<samp><span class="samp">0 0 w h</span></samp>’ in pixels, -e.g., if the file ‘<samp><span class="samp">imagename.png</span></samp>’ is 300x400 pixels, the +images via ‘<samp>\includegraphics</samp>’ you need to specify the bounding +box since TeX itself cannot read them from the files in question. +The bounding box size should be given as ‘<samp>0 0 w h</samp>’ in pixels, +e.g., if the file ‘<samp>imagename.png</samp>’ is 300x400 pixels, the inclusion would read +</p> +<div class="example"> +<pre class="example">\includegraphics[bb=0 0 300 400]{imagename.png} +</pre></div> -<pre class="example"> \includegraphics[bb=0 0 300 400]{imagename.png} -</pre> - <p>The default size is the image size in bp (“big points” in TeX -nomenclature or PostScript points as other people have it, 72 per inch). +<p>The default size is the image size in bp (“big points” in TeX +nomenclature or PostScript points as other people have it, 72 per inch). That is, default resolution will be 72 dpi for included bitmaps, which is the default size in the few other bitmap-capable drivers that are known to me (dvipdfm and PDFLaTeX). - - <p>If you want 100 dpi you need to specify the width accordingly. You +</p> +<p>If you want 100 dpi you need to specify the width accordingly. You just divide your image width by 100: a 135 pixel wide image at 100 dpi will take up 1.35 inches. If you want 200 dpi you divide by 200, and so on. Simple, eh? The example above at 200 dpi would be 1.5 inches wide: +</p> +<div class="example"> +<pre class="example">\includegraphics[bb=0 0 300 400,witdh=1.5in]{imagename.png} +</pre></div> -<pre class="example"> \includegraphics[bb=0 0 300 400,witdh=1.5in]{imagename.png} -</pre> - <div class="node"> +<hr> <a name="Raw-PostScript"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Bitmapped-graphics">Bitmapped graphics</a>, -Up: <a rel="up" accesskey="u" href="#Graphics">Graphics</a> - +<div class="header"> +<p> +Previous: <a href="#Bitmapped-graphics" accesskey="p" rel="prev">Bitmapped graphics</a>, Up: <a href="#Graphics" accesskey="u" rel="up">Graphics</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Raw-PostScript-1"></a> <h3 class="section">5.3 Raw PostScript</h3> <p>dvipng attempts to handle raw PostScript. Rendering raw PostScript specials is done on top of the page by including a transparent image -generated by the ‘<samp><span class="samp">pngalpha</span></samp>’ device in GhostScript (automatically -selecting ‘<samp><span class="samp">truecolor</span></samp>’ mode in dvipng). - - <p>Included PostScript headers are respected, and if the header -‘<samp><span class="samp">tex.pro</span></samp>’ is included, dvipng also throws in ‘<samp><span class="samp">color.pro</span></samp>’ and -‘<samp><span class="samp">special.pro</span></samp>’. The package ‘<samp><span class="samp">xcolor</span></samp>’ includes its own headers +generated by the ‘<samp>pngalpha</samp>’ device in GhostScript (automatically +selecting ‘<samp>truecolor</samp>’ mode in dvipng). +</p> +<p>Included PostScript headers are respected, and if the header +‘<samp>tex.pro</samp>’ is included, dvipng also throws in ‘<samp>color.pro</samp>’ and +‘<samp>special.pro</samp>’. The package ‘<samp>xcolor</samp>’ includes its own headers with color names, and this is not only kept as a PostScript header, but is also read and interpreted by dvipng itself. An attempt is also made to respect the PGF header. The non-rendering specials from -‘<samp><span class="samp">hyperref</span></samp>’ are handled via some heuristics and do not give an +‘<samp>hyperref</samp>’ are handled via some heuristics and do not give an error. - - <p>Really rendering and moving things with raw PostScript specials is more +</p> +<p>Really rendering and moving things with raw PostScript specials is more troublesome. The \rotatebox macro serves as a good example. The dvips driver of the graphicx package surrounds DVI glyphs with PostScript code so that after conversion by dvips, the glyphs (now themselves in @@ -919,208 +1124,236 @@ this, at present. An attempt has been made to handle the rendering specials output by PGF (tikz), and also PSTricks. Some things work, but others do not. This is especially clear when mixing PostScript and DVI rendering commands such as glyphs. dvipng cannot at present detect if -PostScript code moves ‘<samp><span class="samp">currentpoint</span></samp>’ or rotates the frame since +PostScript code moves ‘<samp>currentpoint</samp>’ or rotates the frame since GhostScript does not return such information. A recommendation would be to produce images from these packages as EPS files and include them into your document in the standard manner. - - <p>Another way to handle this would be to use a slower fallback (with dvips +</p> +<p>Another way to handle this would be to use a slower fallback (with dvips and gs, for example). If you want to disable raw PostScript handling in -dvipng, use the switch ‘<samp><span class="samp">--norawps</span></samp>’. This switch turns off the +dvipng, use the switch ‘<samp>--norawps</samp>’. This switch turns off the internal call to GhostScript intended to display these raw PostScript specials. Further, when dvipng encounters raw PostScript and the gs call is turned off, it gives a warning. It is now possible to use the switch -‘<samp><span class="samp">--picky</span></samp>’ to disable page rendering of pages with warnings, and use +‘<samp>--picky</samp>’ to disable page rendering of pages with warnings, and use the slower fallback for these pages. - -<div class="node"> +</p> +<hr> <a name="Color"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Diagnosing-problems">Diagnosing problems</a>, -Previous: <a rel="previous" accesskey="p" href="#Graphics">Graphics</a>, -Up: <a rel="up" accesskey="u" href="#Top">Top</a> - +<div class="header"> +<p> +Next: <a href="#Diagnosing-problems" accesskey="n" rel="next">Diagnosing problems</a>, Previous: <a href="#Graphics" accesskey="p" rel="prev">Graphics</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Color-1"></a> <h2 class="chapter">6 Color</h2> <p>To support color, dvipng recognizes a certain set of specials as -generated by the ‘<samp><span class="samp">color</span></samp>’ and ‘<samp><span class="samp">xcolor</span></samp>’ style files. These -specials start with the keyword ‘<samp><span class="samp">color</span></samp>’ or the keyword -‘<samp><span class="samp">background</span></samp>’, followed by a color specification. - -<ul class="menu"> -<li><a accesskey="1" href="#Color-specifications">Color specifications</a> -<li><a accesskey="2" href="#Color-specials">Color specials</a> -</ul> - -<div class="node"> +generated by the ‘<samp>color</samp>’ and ‘<samp>xcolor</samp>’ style files. These +specials start with the keyword ‘<samp>color</samp>’ or the keyword +‘<samp>background</samp>’, followed by a color specification. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Color-specifications" accesskey="1">Color specifications</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Color-specials" accesskey="2">Color specials</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> <a name="Color-specifications"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Color-specials">Color specials</a>, -Up: <a rel="up" accesskey="u" href="#Color">Color</a> - +<div class="header"> +<p> +Next: <a href="#Color-specials" accesskey="n" rel="next">Color specials</a>, Up: <a href="#Color" accesskey="u" rel="up">Color</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Color-specifications-1"></a> <h3 class="section">6.1 Color specifications</h3> -<p><a name="index-color-specifications-65"></a> -The color specification supported by dvipng is by-value or by-name. The -by-value spec starts with the name of a color model (one of ‘<samp><span class="samp">rgb</span></samp>’, -‘<samp><span class="samp">hsb</span></samp>’, ‘<samp><span class="samp">cmy</span></samp>’, ‘<samp><span class="samp">cmyk</span></samp>’, or ‘<samp><span class="samp">gray</span></samp>’) followed by the +<a name="index-color-specifications"></a> + +<p>The color specification supported by dvipng is by-value or by-name. The +by-value spec starts with the name of a color model (one of ‘<samp>rgb</samp>’, +‘<samp>hsb</samp>’, ‘<samp>cmy</samp>’, ‘<samp>cmyk</samp>’, or ‘<samp>gray</samp>’) followed by the appropriate number of parameters. Thus, the color specification -‘<samp><span class="samp">rgb 0.3 0.4 0.5</span></samp>’ would correspond to the color that is ‘<samp><span class="samp">0.3 -0.4 0.5</span></samp>’ in its red, blue and green values. The color model used -internally in dvipng is ‘<samp><span class="samp">RGB</span></samp>’ (discretized to 256 levels), for -details on the formulas used in conversion, see the ‘<samp><span class="samp">xcolor</span></samp>’ +‘<samp>rgb 0.3 0.4 0.5</samp>’ would correspond to the color that is ‘<samp>0.3 +0.4 0.5</samp>’ in its red, blue and green values. The color model used +internally in dvipng is ‘<samp>RGB</samp>’ (discretized to 256 levels), for +details on the formulas used in conversion, see the ‘<samp>xcolor</samp>’ documentation. - - <p>By-name color specifications are single (case-dependent) words and are -compared with color names defined in ‘<samp><span class="samp">dvipsnam.def</span></samp>’ (from the -‘<samp><span class="samp">graphics</span></samp>’ bundle), ‘<samp><span class="samp">svgnam.def</span></samp>’ and ‘<samp><span class="samp">xcolor.sty</span></samp>’ (from -the ‘<samp><span class="samp">xcolor</span></samp>’ bundle). See the ‘<samp><span class="samp">xcolor</span></samp>’ documentation for a +</p> +<p>By-name color specifications are single (case-dependent) words and are +compared with color names defined in ‘<samp>dvipsnam.def</samp>’ (from the +‘<samp>graphics</samp>’ bundle), ‘<samp>svgnam.def</samp>’ and ‘<samp>xcolor.sty</samp>’ (from +the ‘<samp>xcolor</samp>’ bundle). See the ‘<samp>xcolor</samp>’ documentation for a list of names and the corresponding colors. - - <p>On the command-line, the name ‘<samp><span class="samp">Transparent</span></samp>’ can also be used as -an argument to ‘<samp><span class="samp">--bg</span></samp>’ to choose transparent background. +</p> +<p>On the command-line, the name ‘<samp>Transparent</samp>’ can also be used as +an argument to ‘<samp>--bg</samp>’ to choose transparent background. See <a href="#Option-details">Option details</a>. - -<div class="node"> +</p> +<hr> <a name="Color-specials"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Color-specifications">Color specifications</a>, -Up: <a rel="up" accesskey="u" href="#Color">Color</a> - +<div class="header"> +<p> +Previous: <a href="#Color-specifications" accesskey="p" rel="prev">Color specifications</a>, Up: <a href="#Color" accesskey="u" rel="up">Color</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Color-specials-1"></a> <h3 class="section">6.2 Color specials</h3> -<p>We will describe ‘<samp><span class="samp">background</span></samp>’ first, since it is the simplest. The -‘<samp><span class="samp">background</span></samp>’ keyword must be followed by a color specification. +<p>We will describe ‘<samp>background</samp>’ first, since it is the simplest. The +‘<samp>background</samp>’ keyword must be followed by a color specification. That color specification is used as a fill color for the background. The -last ‘<samp><span class="samp">background</span></samp>’ special on a page is the one that gets used, and +last ‘<samp>background</samp>’ special on a page is the one that gets used, and is used for the whole of the page image. (This is possible because the prescan phase of dvipng notices all of the color specials so that the appropriate information can be written out during the second phase.) - - <p>The ‘<samp><span class="samp">color</span></samp>’ special itself has three forms. The first is just -‘<samp><span class="samp">color</span></samp>’ followed by a color specification. In this case, the +</p> +<p>The ‘<samp>color</samp>’ special itself has three forms. The first is just +‘<samp>color</samp>’ followed by a color specification. In this case, the current global color is set to that color; the color stack must be empty when such a command is executed. - - <p>The second form is ‘<samp><span class="samp">color push</span></samp>’ followed by a color specification. +</p> +<p>The second form is ‘<samp>color push</samp>’ followed by a color specification. This saves the current color on the color stack and sets the color to be that given by the color specification. This is the most common way to set a color. - - <p>The final form of the ‘<samp><span class="samp">color</span></samp>’ special is just ‘<samp><span class="samp">color pop</span></samp>’, +</p> +<p>The final form of the ‘<samp>color</samp>’ special is just ‘<samp>color pop</samp>’, with no color specification; this says to pop the color last pushed on the color stack from the color stack and set the current color to be that color. - - <p>dvipng correctly handles these color specials across pages, even when +</p> +<p>dvipng correctly handles these color specials across pages, even when the pages are rendered repeatedly or in reverse order. - -<div class="node"> +</p> +<hr> <a name="Diagnosing-problems"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Credits">Credits</a>, -Previous: <a rel="previous" accesskey="p" href="#Color">Color</a>, -Up: <a rel="up" accesskey="u" href="#Top">Top</a> - +<div class="header"> +<p> +Next: <a href="#Credits" accesskey="n" rel="next">Credits</a>, Previous: <a href="#Color" accesskey="p" rel="prev">Color</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Diagnosing-problems-1"></a> <h2 class="chapter">7 Diagnosing problems</h2> -<p><a name="index-problems-66"></a><a name="index-trouble-67"></a><a name="index-debugging-68"></a> -You've gone through all the trouble of installing dvipng, carefully read -all the instructions in this manual, and still can't get something to +<a name="index-problems"></a> +<a name="index-trouble"></a> +<a name="index-debugging-1"></a> + +<p>You’ve gone through all the trouble of installing dvipng, carefully read +all the instructions in this manual, and still can’t get something to work. The following sections provide some helpful hints if you find yourself in such a situation. - -<ul class="menu"> -<li><a accesskey="1" href="#Contact-information">Contact information</a>: Who to ask. -<li><a accesskey="2" href="#Debug-options">Debug options</a>: Getting diagnostics. -</ul> - -<div class="node"> +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Contact-information" accesskey="1">Contact information</a>:</td><td> </td><td align="left" valign="top">Who to ask. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Debug-options" accesskey="2">Debug options</a>:</td><td> </td><td align="left" valign="top">Getting diagnostics. +</td></tr> +</table> + +<hr> <a name="Contact-information"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Debug-options">Debug options</a>, -Up: <a rel="up" accesskey="u" href="#Diagnosing-problems">Diagnosing problems</a> - +<div class="header"> +<p> +Next: <a href="#Debug-options" accesskey="n" rel="next">Debug options</a>, Up: <a href="#Diagnosing-problems" accesskey="u" rel="up">Diagnosing problems</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Contact-information-1"></a> <h3 class="section">7.1 Contact information</h3> <p>Bug reports should be sent to -<a href="mailto:dvipng@nongnu.org">dvipng@nongnu.org</a>. - - <p>Questions, suggestions for new features, pleas for help, and/or praise +<a href="mailto:dvipng@nongnu.org">dvipng@nongnu.org</a>. +</p> +<p>Questions, suggestions for new features, pleas for help, and/or praise should go to <a href="mailto:dvipng@nongnu.org">dvipng@nongnu.org</a>. For more information on this -mailing list, send a message with just the word `help' as subject or +mailing list, send a message with just the word ‘help’ as subject or body to <a href="mailto:dvipng-request@nongnu.org">dvipng-request@nongnu.org</a> or look at <a href="http://lists.nongnu.org/mailman/listinfo/dvipng">http://lists.nongnu.org/mailman/listinfo/dvipng</a>. - - <p>Offers to support further development will be appreciated. For developer +</p> +<p>Offers to support further development will be appreciated. For developer access, ask on <a href="mailto:dvipng@nongnu.org">dvipng@nongnu.org</a>. +</p> +<p>For details on the TeX path-searching library, and <code>mktexpk</code> +problems, see <a href="kpathsea.html#Common-problems">Common problems</a> in <cite>Kpathsea</cite>. +</p> - <p>For details on the TeX path-searching library, and <code>mktexpk</code> -problems, see <a href="kpathsea.html#Common-problems">Common problems</a>. - -<div class="node"> +<hr> <a name="Debug-options"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Contact-information">Contact information</a>, -Up: <a rel="up" accesskey="u" href="#Diagnosing-problems">Diagnosing problems</a> - +<div class="header"> +<p> +Previous: <a href="#Contact-information" accesskey="p" rel="prev">Contact information</a>, Up: <a href="#Diagnosing-problems" accesskey="u" rel="up">Diagnosing problems</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Debug-options-1"></a> <h3 class="section">7.2 Debug options</h3> -<p>The ‘<samp><span class="samp">-d</span></samp>’ flag to dvipng helps in tracking down certain errors. The +<p>The ‘<samp>-d</samp>’ flag to dvipng helps in tracking down certain errors. The parameter to this flag is an integer that tells what errors are currently being tracked. To track a certain class of debug messages, simply provide the appropriate number given below; if you wish to track multiple classes, sum the numbers of the classes you wish to track. To -track all classes, you can use <code>-1</code>. - - <p>Some of these debugging options are actually provided by Kpathsea -(see <a href="kpathsea.html#Debugging">Debugging</a>). - - <p>The classes are: - <dl> -<dt>1<dd>Normal dvi op-codes -<br><dt>2<dd>Virtual fonts -<br><dt>4<dd>PK fonts -<br><dt>8<dd>TFM files -<br><dt>16<dd>Glyph rendering -<br><dt>32<dd>FreeType calls -<br><dt>64<dd>Encoding loads -<br><dt>128<dd>Color specials -<br><dt>256<dd>GhostScript specials -<br><dt>512<dd>T1lib calls -<br><dt>1024<dd>Kpathsea <code>stat</code> calls -<br><dt>2048<dd>Kpathsea hash table lookups -<br><dt>4096<dd>Kpathsea path element expansion -<br><dt>8192<dd>Kpathsea path searches - - </dl> - -<div class="node"> +track all classes, you can use <code>-1</code>. +</p> +<p>Some of these debugging options are actually provided by Kpathsea +(see <a href="kpathsea.html#Debugging">Debugging</a> in <cite>Kpathsea</cite>). +</p> +<p>The classes are: +</p><dl compact="compact"> +<dt>1</dt> +<dd><p>Normal dvi op-codes +</p></dd> +<dt>2</dt> +<dd><p>Virtual fonts +</p></dd> +<dt>4</dt> +<dd><p>PK fonts +</p></dd> +<dt>8</dt> +<dd><p>TFM files +</p></dd> +<dt>16</dt> +<dd><p>Glyph rendering +</p></dd> +<dt>32</dt> +<dd><p>FreeType calls +</p></dd> +<dt>64</dt> +<dd><p>Encoding loads +</p></dd> +<dt>128</dt> +<dd><p>Color specials +</p></dd> +<dt>256</dt> +<dd><p>GhostScript specials +</p></dd> +<dt>512</dt> +<dd><p>T1lib calls +</p></dd> +<dt>1024</dt> +<dd><p>Kpathsea <code>stat</code> calls +</p></dd> +<dt>2048</dt> +<dd><p>Kpathsea hash table lookups +</p></dd> +<dt>4096</dt> +<dd><p>Kpathsea path element expansion +</p></dd> +<dt>8192</dt> +<dd><p>Kpathsea path searches +</p> +</dd> +</dl> + +<hr> <a name="Credits"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Copying">Copying</a>, -Previous: <a rel="previous" accesskey="p" href="#Diagnosing-problems">Diagnosing problems</a>, -Up: <a rel="up" accesskey="u" href="#Top">Top</a> - +<div class="header"> +<p> +Next: <a href="#Copying" accesskey="n" rel="next">Copying</a>, Previous: <a href="#Diagnosing-problems" accesskey="p" rel="prev">Diagnosing problems</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Credits-1"></a> <h2 class="chapter">8 Credits</h2> <p>A number of persons have contributed, if I forget to mention someone, I apologize. First and foremost we have David Kastrup whose -preview-latex project provided the incentive to write this program. +preview-latex project provided the incentive to write this program. There is also a number of people who have contributed by reporting bugs and suggesting improvements as the thing has evolved. These include but is perhaps not limited to (in semi-random order): Thomas @@ -1135,150 +1368,302 @@ R. Shemanske, Stephen Gibson, Christian Ridderström, Ezra Peisach, William H Wheeler, Thomas Klausner, Harald Koenig, Adrian Bunk, Kevin Smith, Jason Riedy, Wolfram Krause, Reinhard Kotucha, Takeshi Abe, and Waldeck Schutzer. - - <p>Use of the <code>gd</code> library requires inclusion of the following +</p> +<p>Use of the <code>gd</code> library requires inclusion of the following copyright notice, which applies to the <code>gd</code> library: - - <blockquote> -Portions copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 by Cold Spring Harbor Laboratory. Funded under Grant P41-RR02188 by the National Institutes of Health. - - <p>Portions copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 by Boutell.Com, Inc. - - <p>Portions relating to GD2 format copyright 1999, 2000, 2001, 2002, 2003, 2004 Philip Warner. - - <p>Portions relating to PNG copyright 1999, 2000, 2001, 2002, 2003, 2004 Greg Roelofs. - - <p>Portions relating to gdttf.c copyright 1999, 2000, 2001, 2002, 2003, 2004 John Ellson (ellson@graphviz.org). - - <p>Portions relating to gdft.c copyright 2001, 2002, 2003, 2004 John Ellson (ellson@graphviz.org). - - <p>Portions relating to JPEG and to color quantization copyright 2000, 2001, 2002, 2003, 2004, Doug Becker and copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Thomas G. Lane. This software is based in part on the work of the Independent JPEG Group. See the file README-JPEG.TXT for more information. - - <p>Portions relating to GIF compression copyright 1989 by Jef Poskanzer and David Rowley, with modifications for thread safety by Thomas Boutell. - - <p>Portions relating to GIF decompression copyright 1990, 1991, 1993 by David Koblas, with modifications for thread safety by Thomas Boutell. - - <p>Portions relating to WBMP copyright 2000, 2001, 2002, 2003, 2004 Maurice Szmurlo and Johan Van den Brande. - - <p>Portions relating to GIF animations copyright 2004 Jaakko Hyvädtti (jaakko.hyvatti@iki.fi) - - <p>Permission has been granted to copy, distribute and modify gd in any context without fee, including a commercial application, provided that this notice is present in user-accessible supporting documentation. - - <p>This does not affect your ownership of the derived work itself, and the intent is to assure proper credit for the authors of gd, not to interfere with your productive use of gd. If you have questions, ask. "Derived works" includes all programs that utilize the library. Credit must be given in user-accessible documentation. - - <p>This software is provided "AS IS." The copyright holders disclaim all warranties, either express or implied, including but not limited to implied warranties of merchantability and fitness for a particular purpose, with respect to this code and accompanying documentation. - - <p>Although their code does not appear in the current release, the authors also wish to thank Hutchison Avenue Software Corporation for their prior contributions. +</p> +<blockquote> + +<p>Portions copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + 2002 by Cold Spring Harbor Laboratory. Funded under Grant + P41-RR02188 by the National Institutes of Health. +</p> +<p>Portions copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 by + Boutell.Com, Inc. +</p> +<p>Portions relating to GD2 format copyright 1999, 2000, 2001, 2002 + Philip Warner. +</p> +<p>Portions relating to PNG copyright 1999, 2000, 2001, 2002 Greg + Roelofs. +</p> +<p>Portions relating to gdttf.c copyright 1999, 2000, 2001, 2002 John + Ellson (ellson@lucent.com). +</p> +<p>Portions relating to gdft.c copyright 2001, 2002 John Ellson + (ellson@lucent.com). +</p> +<p>Portions copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 + Pierre-Alain Joye (pierre@libgd.org). +</p> +<p>Portions relating to JPEG and to color quantization copyright 2000, + 2001, 2002, Doug Becker and copyright (C) 1994, 1995, 1996, 1997, + 1998, 1999, 2000, 2001, 2002, Thomas G. Lane. This software is + based in part on the work of the Independent JPEG Group. See the + file README-JPEG.TXT for more information. +</p> +<p>Portions relating to WBMP copyright 2000, 2001, 2002 Maurice + Szmurlo and Johan Van den Brande. +</p> +<p>Permission has been granted to copy, distribute and modify gd in + any context without fee, including a commercial application, + provided that this notice is present in user-accessible supporting + documentation. +</p> +<p>This does not affect your ownership of the derived work itself, and + the intent is to assure proper credit for the authors of gd, not to + interfere with your productive use of gd. If you have questions, + ask. "Derived works" includes all programs that utilize the + library. Credit must be given in user-accessible documentation. +</p> +<p>This software is provided "AS IS." The copyright holders disclaim + all warranties, either express or implied, including but not + limited to implied warranties of merchantability and fitness for a + particular purpose, with respect to this code and accompanying + documentation. +</p> +<p>Although their code does not appear in gd, the authors wish to thank + David Koblas, David Rowley, and Hutchison Avenue Software Corporation + for their prior contributions. +</p> </blockquote> -<div class="node"> -<a name="Copying"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Index">Index</a>, -Previous: <a rel="previous" accesskey="p" href="#Credits">Credits</a>, -Up: <a rel="up" accesskey="u" href="#Top">Top</a> +<hr> +<a name="Copying"></a> +<div class="header"> +<p> +Next: <a href="#Index" accesskey="n" rel="next">Index</a>, Previous: <a href="#Credits" accesskey="p" rel="prev">Credits</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Copying-1"></a> <h2 class="chapter">9 Copying</h2> <p>This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - - <p>This program is distributed in the hope that it will be useful, but +</p> +<p>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - - <p>You should have received a copy of the GNU Lesser General Public +</p> +<p>You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. - - <pre class="sp"> - - -</pre> -Copyright © 2002-2010 Jan-Åke Larsson - -<div class="node"> +</p> +<br> +<br> +<p>Copyright © 2002-2010 Jan-Åke Larsson +</p> +<hr> <a name="Index"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Copying">Copying</a>, -Up: <a rel="up" accesskey="u" href="#Top">Top</a> - +<div class="header"> +<p> +Previous: <a href="#Copying" accesskey="p" rel="prev">Copying</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Index-1"></a> <h2 class="unnumbered">Index</h2> -<ul class="index-cp" compact> -<li><a href="#index-g_t_002ddSAFER-39">-dSAFER</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-absolute-page-number_002c-and-_0040samp_007b_002dl_007d-32">absolute page number, and ‘<samp><span class="samp">-l</span></samp>’</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-absolute-page-number_002c-and-_0040samp_007b_002dp_007d-47">absolute page number, and ‘<samp><span class="samp">-p</span></samp>’</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-antialiasing-levels_0040r_007b_002c-number-of_007d-55">antialiasing levels<span class="roman">, number of</span></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-background-color-_0028option_0029-14">background color (option)</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-base-resolution_002c-setting-13">base resolution, setting</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-baseline-reporting-17">baseline reporting</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-color-specifications-65">color specifications</a>: <a href="#Color-specifications">Color specifications</a></li> -<li><a href="#index-command_002dline-options-5">command-line options</a>: <a href="#Command_002dline-options">Command-line options</a></li> -<li><a href="#index-compilation-2">compilation</a>: <a href="#Installation">Installation</a></li> -<li><a href="#index-compression-63">compression</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-configuration_002c-of-dvipng-1">configuration, of dvipng</a>: <a href="#Installation">Installation</a></li> -<li><a href="#index-dark-fonts-23">dark fonts</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-debugging-68">debugging</a>: <a href="#Diagnosing-problems">Diagnosing problems</a></li> -<li><a href="#index-debugging-15">debugging</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-depth-reporting-18">depth reporting</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-exit-on-erroneous-images-58">exit on erroneous images</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-first-page-printed-44">first page printed</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-follow-mode-20">follow mode</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-font-generation_002c-avoiding-35">font generation, avoiding</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-forcing-palette-output-48">forcing palette output</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-foreground-color-_0028option_0029-19">foreground color (option)</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-FreeType-font-rendering-21">FreeType font rendering</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-fuzzy-images-25">fuzzy images</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-gamma-22">gamma</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-GhostScript-and-_002ddSAFER-38">GhostScript and -dSAFER</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-GhostScript_002c-turning-off-37">GhostScript, turning off</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-GIF-image-format-26">GIF image format</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-height-reporting-28">height reporting</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-installation_002c-of-dvipng-3">installation, of dvipng</a>: <a href="#Installation">Installation</a></li> -<li><a href="#index-invoking-dvipng-4">invoking dvipng</a>: <a href="#Basic-usage">Basic usage</a></li> -<li><a href="#index-last-page-printed-29">last page printed</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-light-fonts-24">light fonts</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-magnification_002c-overriding-DVI-62">magnification, overriding DVI</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-Metafont-mode_002c-specifying-34">Metafont mode, specifying</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-mktexpk_0040r_007b_002c-avoiding_007d-36"><code>mktexpk</code><span class="roman">, avoiding</span></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-mode-name_002c-specifying-33">mode name, specifying</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-no-erroneous-images-49">no erroneous images</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-offset-pages-43">offset pages</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-option_002c-details-of-8">option, details of</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-options_002c-dvipng-6">options, dvipng</a>: <a href="#Command_002dline-options">Command-line options</a></li> -<li><a href="#index-options_002c-reading-from-standard-input-9">options, reading from standard input</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-options_002c-summary-7">options, summary</a>: <a href="#Option-summary">Option summary</a></li> -<li><a href="#index-output-resolution_002c-setting-16">output resolution, setting</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-output_002c-redirecting-41">output, redirecting</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-page-range-51">page range</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-page_002c-first-printed-45">page, first printed</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-page_002c-last-printed-30">page, last printed</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-physical-page-number_002c-and-_0040samp_007b_002dl_007d-31">physical page number, and ‘<samp><span class="samp">-l</span></samp>’</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-physical-page-number_002c-and-_0040samp_007b_002dp_007d-46">physical page number, and ‘<samp><span class="samp">-p</span></samp>’</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-PNG-image-format-50">PNG image format</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-PostScript-inclusion-problems-64">PostScript inclusion problems</a>: <a href="#Encapsulated-PostScript">Encapsulated PostScript</a></li> -<li><a href="#index-PostScript_002c-turning-off-raw-PostScript-specials-40">PostScript, turning off raw PostScript specials</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-problems-66">problems</a>: <a href="#Diagnosing-problems">Diagnosing problems</a></li> -<li><a href="#index-quality-56">quality</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-quiet-operation-52">quiet operation</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-reverse-pagination-57">reverse pagination</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-silent-operation-53">silent operation</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-standard-input_002c-reading-options-from-10">standard input, reading options from</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-standard-output_002c-output-to-42">standard output, output to</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-T1lib-font-rendering-59">T1lib font rendering</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-transparent-border-fallback-color-12">transparent border fallback color</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-transparent-border-width-11">transparent border width</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-trouble-67">trouble</a>: <a href="#Diagnosing-problems">Diagnosing problems</a></li> -<li><a href="#index-truecolor-output-60">truecolor output</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-warnings_002c-suppressing-54">warnings, suppressing</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-width-reporting-61">width reporting</a>: <a href="#Option-details">Option details</a></li> - </ul></body></html> - +<table><tr><th valign="top">Jump to: </th><td><a class="summary-letter" href="#Index_cp_symbol-1"><b>-</b></a> + +<br> +<a class="summary-letter" href="#Index_cp_letter-A"><b>A</b></a> + +<a class="summary-letter" href="#Index_cp_letter-B"><b>B</b></a> + +<a class="summary-letter" href="#Index_cp_letter-C"><b>C</b></a> + +<a class="summary-letter" href="#Index_cp_letter-D"><b>D</b></a> + +<a class="summary-letter" href="#Index_cp_letter-E"><b>E</b></a> + +<a class="summary-letter" href="#Index_cp_letter-F"><b>F</b></a> + +<a class="summary-letter" href="#Index_cp_letter-G"><b>G</b></a> + +<a class="summary-letter" href="#Index_cp_letter-H"><b>H</b></a> + +<a class="summary-letter" href="#Index_cp_letter-I"><b>I</b></a> + +<a class="summary-letter" href="#Index_cp_letter-L"><b>L</b></a> + +<a class="summary-letter" href="#Index_cp_letter-M"><b>M</b></a> + +<a class="summary-letter" href="#Index_cp_letter-N"><b>N</b></a> + +<a class="summary-letter" href="#Index_cp_letter-O"><b>O</b></a> + +<a class="summary-letter" href="#Index_cp_letter-P"><b>P</b></a> + +<a class="summary-letter" href="#Index_cp_letter-Q"><b>Q</b></a> + +<a class="summary-letter" href="#Index_cp_letter-R"><b>R</b></a> + +<a class="summary-letter" href="#Index_cp_letter-S"><b>S</b></a> + +<a class="summary-letter" href="#Index_cp_letter-T"><b>T</b></a> + +<a class="summary-letter" href="#Index_cp_letter-W"><b>W</b></a> + +</td></tr></table> +<table class="index-cp" border="0"> +<tr><td></td><th align="left">Index Entry</th><td> </td><th align="left"> Section</th></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-1">-</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002ddSAFER">-dSAFER</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-A">A</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-absolute-page-number_002c-and-_002dl">absolute page number, and ‘<samp>-l</samp>’</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-absolute-page-number_002c-and-_002dp">absolute page number, and ‘<samp>-p</samp>’</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-antialiasing-levels_002c-number-of">antialiasing levels<span class="roman">, number of</span></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-B">B</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-background-color-_0028option_0029">background color (option)</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-base-resolution_002c-setting">base resolution, setting</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-baseline-reporting">baseline reporting</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-baseline-reporting-1">baseline reporting</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-C">C</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-color-specifications">color specifications</a>:</td><td> </td><td valign="top"><a href="#Color-specifications">Color specifications</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-command_002dline-options">command-line options</a>:</td><td> </td><td valign="top"><a href="#Command_002dline-options">Command-line options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-compilation">compilation</a>:</td><td> </td><td valign="top"><a href="#Installation">Installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-compression">compression</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configuration_002c-of-dvipng">configuration, of dvipng</a>:</td><td> </td><td valign="top"><a href="#Installation">Installation</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-D">D</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-dark-fonts">dark fonts</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-debugging">debugging</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-debugging-1">debugging</a>:</td><td> </td><td valign="top"><a href="#Diagnosing-problems">Diagnosing problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-depth-reporting">depth reporting</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-E">E</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-exit-on-erroneous-images">exit on erroneous images</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-F">F</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-first-page-printed">first page printed</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-follow-mode">follow mode</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-font-generation_002c-avoiding">font generation, avoiding</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-forcing-palette-output">forcing palette output</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-foreground-color-_0028option_0029">foreground color (option)</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-FreeType-font-rendering">FreeType font rendering</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fuzzy-images">fuzzy images</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-G">G</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-gamma">gamma</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-GhostScript-and-_002ddSAFER">GhostScript and -dSAFER</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-GhostScript_002c-turning-off">GhostScript, turning off</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-GIF-image-format">GIF image format</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-H">H</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-height-reporting">height reporting</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-I">I</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-installation_002c-of-dvipng">installation, of dvipng</a>:</td><td> </td><td valign="top"><a href="#Installation">Installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-invoking-dvipng">invoking dvipng</a>:</td><td> </td><td valign="top"><a href="#Basic-usage">Basic usage</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-L">L</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-last-page-printed">last page printed</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-light-fonts">light fonts</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-M">M</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-magnification_002c-overriding-DVI">magnification, overriding DVI</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Metafont-mode_002c-specifying">Metafont mode, specifying</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mktexpk_002c-avoiding"><code>mktexpk<span class="roman">, avoiding</span></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mode-name_002c-specifying">mode name, specifying</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-N">N</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-no-erroneous-images">no erroneous images</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-O">O</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-offset-pages">offset pages</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-option_002c-details-of">option, details of</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-options_002c-dvipng">options, dvipng</a>:</td><td> </td><td valign="top"><a href="#Command_002dline-options">Command-line options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-options_002c-reading-from-standard-input">options, reading from standard input</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-options_002c-summary">options, summary</a>:</td><td> </td><td valign="top"><a href="#Option-summary">Option summary</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-output-resolution_002c-setting">output resolution, setting</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-output_002c-redirecting">output, redirecting</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-P">P</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-page-range">page range</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-page_002c-first-printed">page, first printed</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-page_002c-last-printed">page, last printed</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-physical-page-number_002c-and-_002dl">physical page number, and ‘<samp>-l</samp>’</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-physical-page-number_002c-and-_002dp">physical page number, and ‘<samp>-p</samp>’</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PNG-image-format">PNG image format</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PostScript-inclusion-problems">PostScript inclusion problems</a>:</td><td> </td><td valign="top"><a href="#Encapsulated-PostScript">Encapsulated PostScript</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PostScript_002c-turning-off-raw-PostScript-specials">PostScript, turning off raw PostScript specials</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-problems">problems</a>:</td><td> </td><td valign="top"><a href="#Diagnosing-problems">Diagnosing problems</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-Q">Q</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-quality">quality</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-quiet-operation">quiet operation</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-R">R</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-reverse-pagination">reverse pagination</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-S">S</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-silent-operation">silent operation</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-standard-input_002c-reading-options-from">standard input, reading options from</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-standard-output_002c-output-to">standard output, output to</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-T">T</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-T1lib-font-rendering">T1lib font rendering</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-transparent-border-fallback-color">transparent border fallback color</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-transparent-border-width">transparent border width</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-trouble">trouble</a>:</td><td> </td><td valign="top"><a href="#Diagnosing-problems">Diagnosing problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-truecolor-output">truecolor output</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-W">W</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-warnings_002c-suppressing">warnings, suppressing</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-width-reporting">width reporting</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +</table> +<table><tr><th valign="top">Jump to: </th><td><a class="summary-letter" href="#Index_cp_symbol-1"><b>-</b></a> + +<br> +<a class="summary-letter" href="#Index_cp_letter-A"><b>A</b></a> + +<a class="summary-letter" href="#Index_cp_letter-B"><b>B</b></a> + +<a class="summary-letter" href="#Index_cp_letter-C"><b>C</b></a> + +<a class="summary-letter" href="#Index_cp_letter-D"><b>D</b></a> + +<a class="summary-letter" href="#Index_cp_letter-E"><b>E</b></a> + +<a class="summary-letter" href="#Index_cp_letter-F"><b>F</b></a> + +<a class="summary-letter" href="#Index_cp_letter-G"><b>G</b></a> + +<a class="summary-letter" href="#Index_cp_letter-H"><b>H</b></a> + +<a class="summary-letter" href="#Index_cp_letter-I"><b>I</b></a> + +<a class="summary-letter" href="#Index_cp_letter-L"><b>L</b></a> + +<a class="summary-letter" href="#Index_cp_letter-M"><b>M</b></a> + +<a class="summary-letter" href="#Index_cp_letter-N"><b>N</b></a> + +<a class="summary-letter" href="#Index_cp_letter-O"><b>O</b></a> + +<a class="summary-letter" href="#Index_cp_letter-P"><b>P</b></a> + +<a class="summary-letter" href="#Index_cp_letter-Q"><b>Q</b></a> + +<a class="summary-letter" href="#Index_cp_letter-R"><b>R</b></a> + +<a class="summary-letter" href="#Index_cp_letter-S"><b>S</b></a> + +<a class="summary-letter" href="#Index_cp_letter-T"><b>T</b></a> + +<a class="summary-letter" href="#Index_cp_letter-W"><b>W</b></a> + +</td></tr></table> +<hr> + + + +</body> +</html> diff --git a/Master/texmf-dist/doc/dvipng/dvipng.pdf b/Master/texmf-dist/doc/dvipng/dvipng.pdf Binary files differindex ed294dd31cc..8274d5f5b37 100644 --- a/Master/texmf-dist/doc/dvipng/dvipng.pdf +++ b/Master/texmf-dist/doc/dvipng/dvipng.pdf diff --git a/Master/texmf-dist/doc/dvips/dvips.html b/Master/texmf-dist/doc/dvips/dvips.html index 61a451603f1..d76d0e79c8d 100644 --- a/Master/texmf-dist/doc/dvips/dvips.html +++ b/Master/texmf-dist/doc/dvips/dvips.html @@ -1,200 +1,242 @@ -<html lang="en"> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- This manual documents Dvips version 5.994 +(April 2014), a program to translate a DVI file into +PostScript. You may freely use, modify and/or distribute this file. --> +<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ --> <head> <title>Dvips: A DVI-to-PostScript translator</title> -<meta http-equiv="Content-Type" content="text/html"> + <meta name="description" content="Dvips: A DVI-to-PostScript translator"> -<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"> +<meta name="keywords" content="Dvips: A DVI-to-PostScript translator"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<link href="#Top" rel="start" title="Top"> +<link href="#Index" rel="index" title="Index"> +<link href="#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="dir.html#Top" rel="up" title="(dir)"> +<style type="text/css"> <!-- -This manual documents Dvips version 5.992 -(May 2012), a program to translate a DVI file into -PostScript. You may freely use, modify and/or distribute this file.--> -<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> +a.summary-letter {text-decoration: none} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.indentedblock {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smallindentedblock {margin-left: 3.2em; font-size: smaller} +div.smalllisp {margin-left: 3.2em} +kbd {font-style:oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space:nowrap} +span.nolinebreak {white-space:nowrap} +span.roman {font-family:serif; font-weight:normal} +span.sansserif {font-family:sans-serif; font-weight:normal} +ul.no-bullet {list-style: none} +--> +</style> + + </head> -<body> -<h1 class="settitle">Dvips: A DVI-to-PostScript translator</h1> - <div class="shortcontents"> -<h2>Short Contents</h2> -<ul> -<li><a href="#toc_Top">Dvips</a></li> -<li><a href="#toc_Why-Dvips">1 Why use Dvips?</a></li> -<li><a href="#toc_Installation">2 Installation</a></li> -<li><a href="#toc_Invoking-Dvips">3 Invoking Dvips</a></li> -<li><a href="#toc_Paper-size-and-landscape">4 Paper size and landscape orientation</a></li> -<li><a href="#toc_Interaction-with-PostScript">5 Interaction with PostScript</a></li> -<li><a href="#toc_PostScript-fonts">6 PostScript fonts</a></li> -<li><a href="#toc_Color">7 Color</a></li> -<li><a href="#toc_Index">Index</a></li> -</ul> -</div> +<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000"> +<h1 class="settitle" align="center">Dvips: A DVI-to-PostScript translator</h1> - <div class="contents"> -<h2>Table of Contents</h2> -<ul> -<li><a name="toc_Top" href="#Top">Dvips</a> -<li><a name="toc_Why-Dvips" href="#Why-Dvips">1 Why use Dvips?</a> -<li><a name="toc_Installation" href="#Installation">2 Installation</a> -<ul> -<li><a href="#config_002eps-installation">2.1 <samp><span class="file">config.ps</span></samp> installation</a> -<li><a href="#PostScript-font-installation">2.2 PostScript font installation</a> -<li><a href="#Ghostscript-installation">2.3 Ghostscript installation</a> -<li><a href="#Diagnosing-problems">2.4 Diagnosing problems</a> -<ul> -<li><a href="#Debug-options">2.4.1 Debug options</a> -<li><a href="#No-output">2.4.2 No output at all</a> -<li><a href="#Small-or-inverted">2.4.3 Output too small or inverted</a> -<li><a href="#Printer-errors">2.4.4 Error messages from printer</a> -<li><a href="#Long-documents-fail">2.4.5 Long documents fail to print</a> -<li><a href="#Including-graphics-fails">2.4.6 Including graphics fails</a> -</li></ul> -</li></ul> -<li><a name="toc_Invoking-Dvips" href="#Invoking-Dvips">3 Invoking Dvips</a> -<ul> -<li><a href="#Basic-usage">3.1 Basic usage of Dvips</a> -<li><a href="#Command_002dline-options">3.2 Command-line options</a> -<ul> -<li><a href="#Option-summary">3.2.1 Option summary</a> -<li><a href="#Option-details">3.2.2 Option details</a> -</li></ul> -<li><a href="#Environment-variables">3.3 Environment variables</a> -<li><a href="#Config-files">3.4 Dvips configuration files</a> -<ul> -<li><a href="#Configuration-file-searching">3.4.1 Configuration file searching</a> -<li><a href="#Configuration-file-commands">3.4.2 Configuration file commands</a> -</li></ul> -</li></ul> -<li><a name="toc_Paper-size-and-landscape" href="#Paper-size-and-landscape">4 Paper size and landscape orientation</a> -<ul> -<li><a href="#papersize-special">4.1 ‘<samp><span class="samp">papersize</span></samp>’ special</a> -<li><a href="#Config-file-paper-sizes">4.2 Configuration file paper size command</a> -<li><a href="#Paper-trays">4.3 Paper trays</a> -</li></ul> -<li><a name="toc_Interaction-with-PostScript" href="#Interaction-with-PostScript">5 Interaction with PostScript</a> -<ul> -<li><a href="#PostScript-figures">5.1 PostScript figures</a> -<ul> -<li><a href="#Bounding-box">5.1.1 The bounding box comment</a> -<li><a href="#_005cincludegraphics">5.1.2 The \includegraphics macro for LaTeX</a> -<li><a href="#EPSF-macros">5.1.3 Using the EPSF macros</a> -<ul> -<li><a href="#EPSF-scaling">5.1.3.1 EPSF scaling</a> -<li><a href="#EPSF-clipping">5.1.3.2 EPSF clipping</a> -</li></ul> -<li><a href="#psfile-special">5.1.4 ‘<samp><span class="samp">psfile</span></samp>’ special</a> -<li><a href="#Dynamic-creation-of-graphics">5.1.5 Dynamic creation of PostScript graphics files</a> -<li><a href="#Fonts-in-figures">5.1.6 Fonts in figures</a> -</li></ul> -<li><a href="#Header-files">5.2 PostScript header files</a> -<ul> -<li><a href="#Including-headers-from-TeX">5.2.1 Including headers from TeX</a> -<li><a href="#Including-headers-from-the-command-line">5.2.2 Including headers from the command line</a> -<li><a href="#Headers-and-memory-usage">5.2.3 Headers and memory usage</a> -</li></ul> -<li><a href="#Literal-PS">5.3 Literal PostScript</a> -<ul> -<li><a href="#_0022-special">5.3.1 <code>"</code> special: Literal PostScript</a> -<li><a href="#ps-special">5.3.2 ‘<samp><span class="samp">ps</span></samp>’ special</a> -<li><a href="#Literal-headers">5.3.3 Literal headers: ‘<samp><span class="samp">!</span></samp>’ <code>\special</code></a> -<li><a href="#PostScript-hooks">5.3.4 PostScript hooks</a> -<li><a href="#Literal-examples">5.3.5 Literal examples</a> -</li></ul> -<li><a href="#Hypertext">5.4 HyperTeXt</a> -<ul> -<li><a href="#Hypertext-caveats">5.4.1 Hypertext caveats</a> -<li><a href="#Hypertext-specials">5.4.2 Hypertext specials</a> -</li></ul> -</li></ul> -<li><a name="toc_PostScript-fonts" href="#PostScript-fonts">6 PostScript fonts</a> -<ul> -<li><a href="#Font-concepts">6.1 Font concepts</a> -<ul> -<li><a href="#Metric-files">6.1.1 Metric files</a> -<li><a href="#Glyph-files">6.1.2 Glyph files</a> -<li><a href="#Virtual-fonts">6.1.3 Virtual fonts</a> -<li><a href="#Encodings">6.1.4 Encodings</a> -<li><a href="#PostScript-typesetting">6.1.5 How PostScript typesets a character</a> -</li></ul> -<li><a href="#Making-a-font-available">6.2 Making a PostScript font available</a> -<li><a href="#Invoking-afm2tfm">6.3 Invoking Afm2tfm</a> -<ul> -<li><a href="#Changing-font-encodings">6.3.1 Changing font encodings</a> -<ul> -<li><a href="#Changing-TeX-encodings">6.3.1.1 ‘<samp><span class="samp">-t</span></samp>’: Changing TeX encodings</a> -<li><a href="#Changing-PostScript-encodings">6.3.1.2 ‘<samp><span class="samp">-p</span></samp>’: Changing PostScript encodings</a> -<li><a href="#Changing-both-encodings">6.3.1.3 ‘<samp><span class="samp">-T</span></samp>’: Changing both TeX and PostScript encodings</a> -<li><a href="#Reencoding-with-Afm2tfm">6.3.1.4 Reencoding with Afm2tfm</a> -<li><a href="#Encoding-file-format">6.3.1.5 Encoding file format</a> -</li></ul> -<li><a href="#Special-font-effects">6.3.2 Special font effects</a> -<li><a href="#Afm2tfm-options">6.3.3 Afm2tfm options</a> -</li></ul> -<li><a href="#psfonts_002emap">6.4 <samp><span class="file">psfonts.map</span></samp>: PostScript font catalog</a> -</li></ul> -<li><a name="toc_Color" href="#Color">7 Color</a> -<ul> -<li><a href="#Color-macro-files">7.1 Color macro files</a> -<li><a href="#User_002ddefinable-colors">7.2 User-definable colors</a> -<li><a href="#Color-subtleties">7.3 Color subtleties</a> -<li><a href="#Ted-Turner">7.4 Printing in black/white after colorizing</a> -<li><a href="#Color-device-configuration">7.5 Color device configuration</a> -<li><a href="#Color-support-details">7.6 Color support details</a> -<ul> -<li><a href="#Color-specifications">7.6.1 Color specifications</a> -<li><a href="#Color-specials">7.6.2 Color specials</a> -</li></ul> -</li></ul> -<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="#Why-Dvips">Why Dvips</a>, -Up: <a rel="up" accesskey="u" href="#dir">(dir)</a> -</div> -<h2 class="unnumbered">Dvips</h2> -<p>This manual documents Dvips version 5.992 -(May 2012), a program to translate a DVI file into -PostScript. You may freely use, modify and/or distribute this file. -<ul class="menu"> -<li><a accesskey="1" href="#Why-Dvips">Why Dvips</a>: Why use Dvips? -<li><a accesskey="2" href="#Installation">Installation</a>: How to compile and install Dvips. -<li><a accesskey="3" href="#Invoking-Dvips">Invoking Dvips</a>: Command-line options, configuration files, etc. -<li><a accesskey="4" href="#Paper-size-and-landscape">Paper size and landscape</a>: Changing the paper dimensions. -<li><a accesskey="5" href="#Interaction-with-PostScript">Interaction with PostScript</a>: TeX meets Dvips meets PostScript. -<li><a accesskey="6" href="#PostScript-fonts">PostScript fonts</a>: Installing and using PostScript fonts. -<li><a accesskey="7" href="#Color">Color</a>: Using color with Dvips. -<li><a accesskey="8" href="#Index">Index</a>: General index. + +<a name="SEC_Overview"></a> +<h2 class="shortcontents-heading">Short Table of Contents</h2> + +<div class="shortcontents"> +<ul class="no-bullet"> +<li><a name="stoc-Why-use-Dvips_003f" href="#toc-Why-use-Dvips_003f">1 Why use Dvips?</a></li> +<li><a name="stoc-Installation-1" href="#toc-Installation-1">2 Installation</a></li> +<li><a name="stoc-Invoking-Dvips-1" href="#toc-Invoking-Dvips-1">3 Invoking Dvips</a></li> +<li><a name="stoc-Paper-size-and-landscape-orientation" href="#toc-Paper-size-and-landscape-orientation">4 Paper size and landscape orientation</a></li> +<li><a name="stoc-Interaction-with-PostScript-1" href="#toc-Interaction-with-PostScript-1">5 Interaction with PostScript</a></li> +<li><a name="stoc-PostScript-fonts-1" href="#toc-PostScript-fonts-1">6 PostScript fonts</a></li> +<li><a name="stoc-Color-1" href="#toc-Color-1">7 Color</a></li> +<li><a name="stoc-Index-1" href="#toc-Index-1">Index</a></li> </ul> +</div> -<div class="node"> -<a name="Why-Dvips"></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> +<a name="SEC_Contents"></a> +<h2 class="contents-heading">Table of Contents</h2> + +<div class="contents"> + +<ul class="no-bullet"> + <li><a name="toc-Why-use-Dvips_003f" href="#Why-Dvips">1 Why use Dvips?</a></li> + <li><a name="toc-Installation-1" href="#Installation">2 Installation</a> + <ul class="no-bullet"> + <li><a name="toc-config_002eps-installation-1" href="#config_002eps-installation">2.1 <samp>config.ps</samp> installation</a></li> + <li><a name="toc-PostScript-font-installation-1" href="#PostScript-font-installation">2.2 PostScript font installation</a></li> + <li><a name="toc-Ghostscript-installation-1" href="#Ghostscript-installation">2.3 Ghostscript installation</a></li> + <li><a name="toc-Diagnosing-problems-1" href="#Diagnosing-problems">2.4 Diagnosing problems</a> + <ul class="no-bullet"> + <li><a name="toc-Debug-options-1" href="#Debug-options">2.4.1 Debug options</a></li> + <li><a name="toc-No-output-at-all" href="#No-output">2.4.2 No output at all</a></li> + <li><a name="toc-Output-too-small-or-inverted" href="#Small-or-inverted">2.4.3 Output too small or inverted</a></li> + <li><a name="toc-Error-messages-from-printer" href="#Printer-errors">2.4.4 Error messages from printer</a></li> + <li><a name="toc-Long-documents-fail-to-print" href="#Long-documents-fail">2.4.5 Long documents fail to print</a></li> + <li><a name="toc-Including-graphics-fails-1" href="#Including-graphics-fails">2.4.6 Including graphics fails</a></li> + </ul></li> + </ul></li> + <li><a name="toc-Invoking-Dvips-1" href="#Invoking-Dvips">3 Invoking Dvips</a> + <ul class="no-bullet"> + <li><a name="toc-Basic-usage-of-Dvips" href="#Basic-usage">3.1 Basic usage of Dvips</a></li> + <li><a name="toc-Command_002dline-options-1" href="#Command_002dline-options">3.2 Command-line options</a> + <ul class="no-bullet"> + <li><a name="toc-Option-summary-1" href="#Option-summary">3.2.1 Option summary</a></li> + <li><a name="toc-Option-details-1" href="#Option-details">3.2.2 Option details</a></li> + </ul></li> + <li><a name="toc-Environment-variables-1" href="#Environment-variables">3.3 Environment variables</a></li> + <li><a name="toc-Dvips-configuration-files" href="#Config-files">3.4 Dvips configuration files</a> + <ul class="no-bullet"> + <li><a name="toc-Configuration-file-searching-1" href="#Configuration-file-searching">3.4.1 Configuration file searching</a></li> + <li><a name="toc-Configuration-file-commands-1" href="#Configuration-file-commands">3.4.2 Configuration file commands</a></li> + </ul></li> + </ul></li> + <li><a name="toc-Paper-size-and-landscape-orientation" href="#Paper-size-and-landscape">4 Paper size and landscape orientation</a> + <ul class="no-bullet"> + <li><a name="toc-papersize-special-1" href="#papersize-special">4.1 ‘<samp>papersize</samp>’ special</a></li> + <li><a name="toc-Configuration-file-paper-size-command" href="#Config-file-paper-sizes">4.2 Configuration file paper size command</a></li> + <li><a name="toc-Paper-trays-1" href="#Paper-trays">4.3 Paper trays</a></li> + </ul></li> + <li><a name="toc-Interaction-with-PostScript-1" href="#Interaction-with-PostScript">5 Interaction with PostScript</a> + <ul class="no-bullet"> + <li><a name="toc-PostScript-figures-1" href="#PostScript-figures">5.1 PostScript figures</a> + <ul class="no-bullet"> + <li><a name="toc-The-bounding-box-comment" href="#Bounding-box">5.1.1 The bounding box comment</a></li> + <li><a name="toc-The-_005cincludegraphics-macro-for-LaTeX" href="#g_t_005cincludegraphics">5.1.2 The \includegraphics macro for LaTeX</a></li> + <li><a name="toc-Using-the-EPSF-macros" href="#EPSF-macros">5.1.3 Using the EPSF macros</a> + <ul class="no-bullet"> + <li><a name="toc-EPSF-scaling-1" href="#EPSF-scaling">5.1.3.1 EPSF scaling</a></li> + <li><a name="toc-EPSF-clipping-1" href="#EPSF-clipping">5.1.3.2 EPSF clipping</a></li> + </ul></li> + <li><a name="toc-psfile-special-1" href="#psfile-special">5.1.4 ‘<samp>psfile</samp>’ special</a></li> + <li><a name="toc-Dynamic-creation-of-PostScript-graphics-files" href="#Dynamic-creation-of-graphics">5.1.5 Dynamic creation of PostScript graphics files</a></li> + <li><a name="toc-Fonts-in-figures-1" href="#Fonts-in-figures">5.1.6 Fonts in figures</a></li> + </ul></li> + <li><a name="toc-PostScript-header-files" href="#Header-files">5.2 PostScript header files</a> + <ul class="no-bullet"> + <li><a name="toc-Including-headers-from-TeX-1" href="#Including-headers-from-TeX">5.2.1 Including headers from TeX</a></li> + <li><a name="toc-Including-headers-from-the-command-line-1" href="#Including-headers-from-the-command-line">5.2.2 Including headers from the command line</a></li> + <li><a name="toc-Headers-and-memory-usage-1" href="#Headers-and-memory-usage">5.2.3 Headers and memory usage</a></li> + </ul></li> + <li><a name="toc-Literal-PostScript" href="#Literal-PS">5.3 Literal PostScript</a> + <ul class="no-bullet"> + <li><a name="toc-_0022-special_003a-Literal-PostScript" href="#g_t_0022-special">5.3.1 <code>"</code> special: Literal PostScript</a></li> + <li><a name="toc-ps-special-1" href="#ps-special">5.3.2 ‘<samp>ps</samp>’ special</a></li> + <li><a name="toc-Literal-headers_003a-_0021-_005cspecial" href="#Literal-headers">5.3.3 Literal headers: ‘<samp>!</samp>’ <code>\special</code></a></li> + <li><a name="toc-PostScript-hooks-1" href="#PostScript-hooks">5.3.4 PostScript hooks</a></li> + <li><a name="toc-Literal-examples-1" href="#Literal-examples">5.3.5 Literal examples</a></li> + </ul></li> + <li><a name="toc-HyperTeXt" href="#Hypertext">5.4 HyperTeXt</a> + <ul class="no-bullet"> + <li><a name="toc-Hypertext-caveats-1" href="#Hypertext-caveats">5.4.1 Hypertext caveats</a></li> + <li><a name="toc-Hypertext-specials-1" href="#Hypertext-specials">5.4.2 Hypertext specials</a></li> + </ul></li> + </ul></li> + <li><a name="toc-PostScript-fonts-1" href="#PostScript-fonts">6 PostScript fonts</a> + <ul class="no-bullet"> + <li><a name="toc-Font-concepts-1" href="#Font-concepts">6.1 Font concepts</a> + <ul class="no-bullet"> + <li><a name="toc-Metric-files-1" href="#Metric-files">6.1.1 Metric files</a></li> + <li><a name="toc-Glyph-files-1" href="#Glyph-files">6.1.2 Glyph files</a></li> + <li><a name="toc-Virtual-fonts-1" href="#Virtual-fonts">6.1.3 Virtual fonts</a></li> + <li><a name="toc-Encodings-1" href="#Encodings">6.1.4 Encodings</a></li> + <li><a name="toc-How-PostScript-typesets-a-character" href="#PostScript-typesetting">6.1.5 How PostScript typesets a character</a></li> + </ul></li> + <li><a name="toc-Making-a-PostScript-font-available" href="#Making-a-font-available">6.2 Making a PostScript font available</a></li> + <li><a name="toc-Invoking-Afm2tfm" href="#Invoking-afm2tfm">6.3 Invoking Afm2tfm</a> + <ul class="no-bullet"> + <li><a name="toc-Changing-font-encodings-1" href="#Changing-font-encodings">6.3.1 Changing font encodings</a> + <ul class="no-bullet"> + <li><a name="toc-_002dt_003a-Changing-TeX-encodings" href="#Changing-TeX-encodings">6.3.1.1 ‘<samp>-t</samp>’: Changing TeX encodings</a></li> + <li><a name="toc-_002dp_003a-Changing-PostScript-encodings" href="#Changing-PostScript-encodings">6.3.1.2 ‘<samp>-p</samp>’: Changing PostScript encodings</a></li> + <li><a name="toc-_002dT_003a-Changing-both-TeX-and-PostScript-encodings" href="#Changing-both-encodings">6.3.1.3 ‘<samp>-T</samp>’: Changing both TeX and PostScript encodings</a></li> + <li><a name="toc-Reencoding-with-Afm2tfm-1" href="#Reencoding-with-Afm2tfm">6.3.1.4 Reencoding with Afm2tfm</a></li> + <li><a name="toc-Encoding-file-format-1" href="#Encoding-file-format">6.3.1.5 Encoding file format</a></li> + </ul></li> + <li><a name="toc-Special-font-effects-1" href="#Special-font-effects">6.3.2 Special font effects</a></li> + <li><a name="toc-Afm2tfm-options-1" href="#Afm2tfm-options">6.3.3 Afm2tfm options</a></li> + </ul></li> + <li><a name="toc-psfonts_002emap_003a-PostScript-font-catalog" href="#psfonts_002emap">6.4 <samp>psfonts.map</samp>: PostScript font catalog</a></li> + </ul></li> + <li><a name="toc-Color-1" href="#Color">7 Color</a> + <ul class="no-bullet"> + <li><a name="toc-Color-macro-files-1" href="#Color-macro-files">7.1 Color macro files</a></li> + <li><a name="toc-User_002ddefinable-colors-1" href="#User_002ddefinable-colors">7.2 User-definable colors</a></li> + <li><a name="toc-Color-subtleties-1" href="#Color-subtleties">7.3 Color subtleties</a></li> + <li><a name="toc-Printing-in-black_002fwhite-after-colorizing" href="#Ted-Turner">7.4 Printing in black/white after colorizing</a></li> + <li><a name="toc-Color-device-configuration-1" href="#Color-device-configuration">7.5 Color device configuration</a></li> + <li><a name="toc-Color-support-details-1" href="#Color-support-details">7.6 Color support details</a> + <ul class="no-bullet"> + <li><a name="toc-Color-specifications-1" href="#Color-specifications">7.6.1 Color specifications</a></li> + <li><a name="toc-Color-specials-1" href="#Color-specials">7.6.2 Color specials</a></li> + </ul></li> + </ul></li> + <li><a name="toc-Index-1" href="#Index">Index</a></li> +</ul> +</div> + +<a name="Top"></a> +<div class="header"> +<p> +Next: <a href="#Why-Dvips" accesskey="n" rel="next">Why Dvips</a>, Up: <a href="dir.html#Top" accesskey="u" rel="up">(dir)</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Dvips"></a> +<h1 class="top">Dvips</h1> +<p>This manual documents Dvips version 5.994 +(April 2014), a program to translate a DVI file into +PostScript. You may freely use, modify and/or distribute this file. +</p> + +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Why-Dvips" accesskey="1">Why Dvips</a>:</td><td> </td><td align="left" valign="top">Why use Dvips? +</td></tr> +<tr><td align="left" valign="top">• <a href="#Installation" accesskey="2">Installation</a>:</td><td> </td><td align="left" valign="top">How to compile and install Dvips. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Invoking-Dvips" accesskey="3">Invoking Dvips</a>:</td><td> </td><td align="left" valign="top">Command-line options, configuration files, etc. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Paper-size-and-landscape" accesskey="4">Paper size and landscape</a>:</td><td> </td><td align="left" valign="top">Changing the paper dimensions. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Interaction-with-PostScript" accesskey="5">Interaction with PostScript</a>:</td><td> </td><td align="left" valign="top">TeX meets Dvips meets PostScript. +</td></tr> +<tr><td align="left" valign="top">• <a href="#PostScript-fonts" accesskey="6">PostScript fonts</a>:</td><td> </td><td align="left" valign="top">Installing and using PostScript fonts. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Color" accesskey="7">Color</a>:</td><td> </td><td align="left" valign="top">Using color with Dvips. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Index" accesskey="8">Index</a>:</td><td> </td><td align="left" valign="top">General index. +</td></tr> +</table> + + +<hr> +<a name="Why-Dvips"></a> +<div class="header"> +<p> +Next: <a href="#Installation" accesskey="n" rel="next">Installation</a>, Previous: <a href="#Top" accesskey="p" rel="prev">Top</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Why-use-Dvips_003f"></a> <h2 class="chapter">1 Why use Dvips?</h2> <p>The Dvips program has a number of features that set it apart from @@ -202,8 +244,8 @@ other PostScript drivers for TeX. This rather long section describes the advantages of using Dvips, and may be skipped if you are just interested in learning how to use the program. See <a href="#Installation">Installation</a>, for details of compilation and installation. - - <p>The Dvips driver generates excellent, standard PostScript, that +</p> +<p>The Dvips driver generates excellent, standard PostScript, that can be included in other documents as figures or printed through a variety of spoolers. The generated PostScript requires very little printer memory, so very complex documents with a lot of fonts can easily @@ -211,578 +253,632 @@ be printed even on PostScript printers without much memory, such as the original Apple LaserWriter. The PostScript output is also compact, requiring less disk space to store and making it feasible as a transfer format. - - <p>Even those documents that are too complex to print in their entirety on +</p> +<p>Even those documents that are too complex to print in their entirety on a particular printer can be printed, since Dvips will automatically split such documents into pieces, reclaiming the printer memory between each piece. - - <p>The Dvips program supports graphics in a natural way, allowing +</p> +<p>The Dvips program supports graphics in a natural way, allowing PostScript graphics to be included and automatically scaled and positioned in a variety of ways. - - <p>Printers with any resolution are supported, even if they have different +</p> +<p>Printers with any resolution are supported, even if they have different resolutions in the horizontal and vertical directions. High resolution output is supported for typesetters, including an option that compresses -the bitmap fonts so that typesetter virtual memory is not exhausted. +the bitmap fonts so that typesetter virtual memory is not exhausted. This option also significantly reduces the size of the PostScript file and decoding in the printer is very fast. - - <p>Missing fonts can be automatically generated if Metafont exists on +</p> +<p>Missing fonts can be automatically generated if Metafont exists on the system, or fonts can be converted from GF to PK format on demand. If a font cannot be generated, a scaled version of the same font at a different size can be used instead, although Dvips will complain loudly about the poor aesthetics of the resulting output. - - <p>Users will appreciate features such as collated copies and support for -<samp><span class="file">tpic</span></samp>, <samp><span class="file">psfig</span></samp>, <samp><span class="file">emtex</span></samp>, and <samp><span class="file">METAPOST</span></samp>; system +</p> +<p>Users will appreciate features such as collated copies and support for +<samp>tpic</samp>, <samp>psfig</samp>, <samp>emtex</samp>, and <samp>METAPOST</samp>; system administrators will love the support for multiple printers, each with their own configuration file, and the ability to pipe the output -directly to a program such as <samp><span class="file">lpr</span></samp>. Support for MS-DOS, OS/2, and +directly to a program such as <samp>lpr</samp>. Support for MS-DOS, OS/2, and VMS in addition to Unix is provided in the standard distribution, and porting to other systems is easy. - - <p>One of the most important features is the support of virtual fonts, +</p> +<p>One of the most important features is the support of virtual fonts, which add an entirely new level of flexibility to TeX. Virtual fonts are used to give Dvips its excellent PostScript font support, handling all the font remapping in a natural, portable, elegant, and extensible way. Dvips even comes with its own Afm2tfm program that creates the necessary virtual fonts and TeX font metric files automatically from the Adobe font metric files. - - <p>Source is provided and freely distributable, so adding a site-specific feature +</p> +<p>Source is provided and freely distributable, so adding a site-specific feature is possible. Adding such features is made easier by the highly modular structure of the program. - - <p>There is really no reason to use another driver, and the more people use +</p> +<p>There is really no reason to use another driver, and the more people use Dvips, the less time will be spent fighting with PostScript and the -more time will be available to create beautiful documents. -So if you don't use Dvips on your system, get it today. +more time will be available to create beautiful documents. +So if you don’t use Dvips on your system, get it today. +</p> +<a name="index-Rokicki_002c-Tomas"></a> +<p>Tom Rokicki wrote and maintains the original Dvips program. +</p> - <p><a name="index-Rokicki_002c-Tomas-1"></a>Tom Rokicki wrote and maintains the original Dvips program. -<!-- INSTALLONLY --> -<div class="node"> +<hr> <a name="Installation"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Invoking-Dvips">Invoking Dvips</a>, -Previous: <a rel="previous" accesskey="p" href="#Why-Dvips">Why Dvips</a>, -Up: <a rel="up" accesskey="u" href="#Top">Top</a> - +<div class="header"> +<p> +Next: <a href="#Invoking-Dvips" accesskey="n" rel="next">Invoking Dvips</a>, Previous: <a href="#Why-Dvips" accesskey="p" rel="prev">Why Dvips</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Installation-1"></a> <h2 class="chapter">2 Installation</h2> -<p><a name="index-configuration_002c-of-Dvips-2"></a><a name="index-compilation-3"></a><a name="index-installation_002c-of-Dvips-4"></a> -<!-- ifset version --> -<!-- (A copy of this chapter is in the distribution file @file{dvipsk/INSTALL}.) --> -<!-- end ifset --> +<a name="index-configuration_002c-of-Dvips"></a> +<a name="index-compilation"></a> +<a name="index-installation_002c-of-Dvips"></a> - <p>Installing Dvips is mostly the same as installing any Kpathsea-using -program. Therefore, for the basic steps involved, -see <a href="kpathsea.html#Installation">Installation</a>. - <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>). For solutions to Dvips-specific problems, +<p>Installing Dvips is mostly the same as installing any Kpathsea-using +program. Therefore, for the basic steps involved, +see <a href="kpathsea.html#Installation">Installation</a> in <cite>Kpathsea</cite>. +</p> +<p>For solutions to common installation problems and information on how to +report a bug, see the file <samp>kpathsea/BUGS</samp> (see <a href="kpathsea.html#Bugs">Bugs</a> in <cite>Kpathsea</cite>). For solutions to Dvips-specific problems, see <a href="#Debug-options">Debug options</a>. Also see the Dvips home page at <a href="http://www.radicaleye.com/dvips">http://www.radicaleye.com/dvips</a>. - - <p>Dvips does require some additional installation, detailed in the +</p> +<p>Dvips does require some additional installation, detailed in the sections below. Also, to configure color devices, see <a href="#Color-device-configuration">Color device configuration</a>. - -<ul class="menu"> -<li><a accesskey="1" href="#config_002eps-installation">config.ps installation</a>: Printer and site Dvips configuration. -<li><a accesskey="2" href="#PostScript-font-installation">PostScript font installation</a>: Many PostScript fonts are freely available. -<li><a accesskey="3" href="#Ghostscript-installation">Ghostscript installation</a>: A free PostScript interpreter. -<li><a accesskey="4" href="#Diagnosing-problems">Diagnosing problems</a>: Some common runtime difficulties. -</ul> - -<div class="node"> -<a name="config.ps-installation"></a> +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#config_002eps-installation" accesskey="1">config.ps installation</a>:</td><td> </td><td align="left" valign="top">Printer and site Dvips configuration. +</td></tr> +<tr><td align="left" valign="top">• <a href="#PostScript-font-installation" accesskey="2">PostScript font installation</a>:</td><td> </td><td align="left" valign="top">Many PostScript fonts are freely available. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Ghostscript-installation" accesskey="3">Ghostscript installation</a>:</td><td> </td><td align="left" valign="top">A free PostScript interpreter. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Diagnosing-problems" accesskey="4">Diagnosing problems</a>:</td><td> </td><td align="left" valign="top">Some common runtime difficulties. +</td></tr> +</table> + + +<hr> <a name="config_002eps-installation"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#PostScript-font-installation">PostScript font installation</a>, -Up: <a rel="up" accesskey="u" href="#Installation">Installation</a> - +<div class="header"> +<p> +Next: <a href="#PostScript-font-installation" accesskey="n" rel="next">PostScript font installation</a>, Up: <a href="#Installation" accesskey="u" rel="up">Installation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="config_002eps-installation-1"></a> +<h3 class="section">2.1 <samp>config.ps</samp> installation</h3> -<h3 class="section">2.1 <samp><span class="file">config.ps</span></samp> installation</h3> +<a name="index-config_002eps-installation"></a> +<a name="index-installation-of-config_002eps"></a> +<a name="index-printer-configuration"></a> +<a name="index-paper-size_002c-default"></a> +<a name="index-configuration-files_002c-creating"></a> -<p><a name="index-config_002eps-_0040r_007binstallation_007d-5"></a><a name="index-installation-of-_0040file_007bconfig_002eps_007d-6"></a><a name="index-printer-configuration-7"></a><a name="index-paper-size_002c-default-8"></a><a name="index-configuration-files_002c-creating-9"></a> -Dvips has its own configuration files: a file <samp><span class="file">config.ps</span></samp> for -sitewide defaults, and a file <samp><span class="file">config.</span><var>printer</var></samp> for each +<p>Dvips has its own configuration files: a file <samp>config.ps</samp> for +sitewide defaults, and a file <samp>config.<var>printer</var></samp> for each printer (output device). Since these are site-specific, <code>make install</code> does not create them; you must create them yourself. - - <p>(These Dvips configuration files are independent of the Kpathsea -configuration file <samp><span class="file">texmf.cnf</span></samp> (see <a href="kpathsea.html#Config-files">Config files</a>). - - <p><a name="index-config_002eproto-10"></a><a name="index-prototype-printer-configuration-file-11"></a><a name="index-printer-configuration-file_002c-prototype-12"></a><a name="index-configuration-files_002c-prototype-13"></a>Dvips configuration files contents and searching are described fully in +</p> +<p>(These Dvips configuration files are independent of the Kpathsea +configuration file <samp>texmf.cnf</samp> (see <a href="kpathsea.html#Config-files">Config files</a> in <cite>Kpathsea</cite>). +</p> +<a name="index-config_002eproto"></a> +<a name="index-prototype-printer-configuration-file"></a> +<a name="index-printer-configuration-file_002c-prototype"></a> +<a name="index-configuration-files_002c-prototype"></a> +<p>Dvips configuration files contents and searching are described fully in <a href="#Config-files">Config files</a>. The simplest way to create a new configuration file -is to copy and modify the file <samp><span class="file">dvipsk/contrib/config.proto</span></samp>, +is to copy and modify the file <samp>dvipsk/contrib/config.proto</samp>, seasoning with options to your taste from <a href="#Config-files">Config files</a>. Here is -<samp><span class="file">config.proto</span></samp> +<samp>config.proto</samp> for your reading pleasure: -<pre class="example"> % Prototype Dvips configuration file. (Public domain.) - - % How to print, maybe with lp instead lpr, etc. - o |lpr - - % Default resolution of this device, in dots per inch. - D 600 - - % Metafont mode. (This is completely different from the -M command-line - % option, which controls whether MakeTeXPK is invoked.) Get - % <a href="ftp://ftp.tug.org/tex/modes.mf">ftp://ftp.tug.org/tex/modes.mf</a> for a list of mode names. This mode - % and the D number above must agree, or MakeTeXPK will get confused. - M ljfour - - % Memory available. Download the three-line PostScript file: - % %! Hey, we're PostScript - % /Times-Roman findfont 30 scalefont setfont 144 432 moveto - % vmstatus exch sub 40 string cvs show pop showpage - % to determine this number. (It will be the only thing printed.) - m 3500000 - - % Correct printer offset. You can use testpage.tex from the LaTeX - % distribution to find these numbers. Print testpage.dvi more than once. - O 0pt,0pt - - % Partially download Type 1 fonts by default. Only reason not to do - % this is if you encounter bugs. (Please report them to - % <a href="mailto:tex-k@tug.org">tex-k@tug.org</a> if you do.) - j - - % Also look for fonts at these resolutions. - R 300 600 - - % With a high resolution and a RISC cpu, better to compress the bitmaps. - Z - - % Uncomment these if you have and want to use PostScript versions of the - % fonts. - %p +cmfonts.map - %p +lafonts.map - %p +cyrfonts.map - %p +eufonts.map - - % To include another configuration file here. - %c FILENAME - - % You will also want definitions for alternative paper sizes -- A4, - % legal, and such. Examples in <samp><span class="file">contrib/papersize.level2</span></samp> and - % <samp><span class="file">contrib/papersize.simple</span></samp>. -</pre> - <div class="node"> -<a name="PostScript-font-installation"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Ghostscript-installation">Ghostscript installation</a>, -Previous: <a rel="previous" accesskey="p" href="#config_002eps-installation">config.ps installation</a>, -Up: <a rel="up" accesskey="u" href="#Installation">Installation</a> +</p><div class="example"> +<pre class="example">% Prototype Dvips configuration file. (Public domain.) -</div> +% How to print, maybe with lp instead lpr, etc. +o |lpr -<h3 class="section">2.2 PostScript font installation</h3> - -<p><a name="index-installation-of-PostScript-fonts-14"></a><a name="index-fonts_002c-installation-of-PostScript-15"></a><a name="index-PostScript-fonts_002c-installing-16"></a> -To use PostScript fonts with TeX and Dvips, you need both metric -files (<samp><span class="file">.tfm</span></samp> and <samp><span class="file">.vf</span></samp>) and the outlines (<samp><span class="file">.pfa</span></samp> or -<samp><span class="file">.pfb</span></samp>). See <a href="#Font-concepts">Font concepts</a>. - - <p><a name="index-Adobe-fonts-17"></a><a name="index-Bigelow-_0026-Holmes-fonts-18"></a><a name="index-Lucida_002c-installing-19"></a><a name="index-Monotype-fonts-20"></a><a name="index-Softkey-fonts-21"></a>To support the basic PostScript font set, the recommended (and -simplest) approach is to install the files at -<a href="http://www.ctan.org/tex-archive/fonts/psfonts/lw35nfsx.zip">http://www.ctan.org/tex-archive/fonts/psfonts/lw35nfsx.zip</a>. -This archive contains metrics, outlines, and bitmaps (for previewing) -for the 35 de facto standard fonts donated by URW and the additional -high-quality freely available PostScript fonts donated by Adobe, -Bitstream, and URW, including geometrically-created variants such as -oblique and small caps. +% Default resolution of this device, in dots per inch. +D 600 - <p><a name="index-Adobe-fonts_002c-installing-22"></a><a name="index-Bitstream-fonts_002c-installing-23"></a><a name="index-Monotype-fonts_002c-installing-24"></a><a name="index-Softkey-fonts_002c-installing-25"></a><a name="index-Y_0026Y-fonts_002c-installing-26"></a><samp><var>CTAN:</var><span class="file">/fonts/psfonts</span></samp> contains support for many additional -fonts for which you must buy outlines (Adobe, Bigelow & Holmes, -Monotype, Softkey, Y&Y). (For CTAN info, see <a href="kpathsea.html#unixtex_002eftp">unixtex.ftp</a>; a copy is in the top-level file <samp><span class="file">INSTALL</span></samp>.) +% Metafont mode. (This is completely different from the -M command-line +% option, which controls whether MakeTeXPK is invoked.) Get +% <a href="ftp://ftp.tug.org/tex/modes.mf">ftp://ftp.tug.org/tex/modes.mf</a> for a list of mode names. This mode +% and the D number above must agree, or MakeTeXPK will get confused. +M ljfour - <p><a name="index-fonts_002c-system-PostScript-27"></a><a name="index-PostScript-fonts_002c-on-your-system-28"></a><a name="index-psfonts_002emap-29"></a>If you have additional PostScript fonts, you can make them available to -Dvips by (1) giving them with appropriate filenames; and (2) running -Afm2tfm (see <a href="#Making-a-font-available">Making a font available</a>) to make TFM and VF metrics for -TeX and Dvips to use. Also add them to <samp><span class="file">psfonts.map</span></samp> if -necessary (see <a href="#psfonts_002emap">psfonts.map</a>); it contains everything contained in -<samp><span class="file">lw35nfsx.zip</span></samp> and most fonts that come with Unix systems. +% Memory available. Download the three-line PostScript file: +% %! Hey, we're PostScript +% /Times-Roman findfont 30 scalefont setfont 144 432 moveto +% vmstatus exch sub 40 string cvs show pop showpage +% to determine this number. (It will be the only thing printed.) +m 3500000 - <p>Following are locations for vendor-supplied fonts. Please mail -<a href="mailto:tex-k@tug.org">tex-k@tug.org</a> if you find fonts elsewhere on your system. +% Correct printer offset. You can use testpage.tex from the LaTeX +% distribution to find these numbers. Print testpage.dvi more than once. +O 0pt,0pt - <dl> -<dt>DEC Ultrix<dd><tt>/usr/lib/DPS/outline/decwin</tt> +% Partially download Type 1 fonts by default. Only reason not to do +% this is if you encounter bugs. (Please report them to +% <a href="mailto:tex-k@tug.org">tex-k@tug.org</a> if you do.) +j - <br><dt>DEC Digital Unix<dd><tt>/usr/lib/X11/fonts/Type1Adobe</tt> +% Also look for fonts at these resolutions. +R 300 600 - <br><dt>HP HP-UX 9, 10<dd><tt>/usr/lib/X11/fonts/type1.st/typefaces</tt> +% With a high resolution and a RISC cpu, better to compress the bitmaps. +Z - <br><dt>IBM AIX<dd><tt>/usr/lpp/DPS/fonts/outlines</tt><br> -<tt>/usr/lpp/X11/lib/X11/fonts/Type1</tt><br> -<tt>/usr/lpp/X11/lib/X11/fonts/Type1/DPS</tt> +% Uncomment these if you have and want to use PostScript versions of the +% fonts. +%p +cmfonts.map +%p +lafonts.map +%p +cyrfonts.map +%p +eufonts.map - <br><dt>NeXT<dd><tt>/NextLibrary/Fonts/outline</tt> +% To include another configuration file here. +%c FILENAME - <br><dt>SGI IRIX<dd><tt>/usr/lib/DPS/outline/base</tt> -<tt>/usr/lib/X11/fonts/Type1</tt> +% You will also want definitions for alternative paper sizes -- A4, +% legal, and such. Examples in <samp>contrib/papersize.level2</samp> and +% <samp>contrib/papersize.simple</samp>. +</pre></div> - <br><dt>Sun SunOS 4.x<dd>(NeWSprint only)<br> -<tt>newsprint_2.5/SUNWsteNP/reloc/$BASEDIR/</tt><br> -<tt> NeWSprint/small_openwin/lib/fonts</tt><br> -<tt>/usr/openwin/lib/X11/fonts/Type1/outline</tt> - - <br><dt>Sun Solaris 2<dd><tt>/usr/openwin/lib/X11/fonts/Type1/outline</tt> - - <br><dt>VMS<dd><tt>SYS$COMMON:[SYSFONT.XDPS.OUTLINE]</tt> -</dl> -<p class="noindent">The NeXT system supplies more fonts than any others, but -there's a lot of overlap. - - <p><a name="index-HP-printers-and-Type-1-fonts-30"></a>Finally, if you have an Hewlett-Packard printer, you should be able to -get Type 1 font files for the standard 35 fonts from HP, if the freely -available URW Type 1's do not satisfy for whatever reason. The phone -number for HP Printer Drivers is (in the United States) 303-339-7009. -The driver set to ask for is Adobe Type Manager 2.51, and the disk set -number is ‘<samp><span class="samp">MP210en3</span></samp>’. Mentioning anything other than Microsoft -Windows when you ask for the driver set will likely lead to great -confusion on the other end. +<hr> +<a name="PostScript-font-installation"></a> +<div class="header"> +<p> +Next: <a href="#Ghostscript-installation" accesskey="n" rel="next">Ghostscript installation</a>, Previous: <a href="#config_002eps-installation" accesskey="p" rel="prev">config.ps installation</a>, Up: <a href="#Installation" accesskey="u" rel="up">Installation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="PostScript-font-installation-1"></a> +<h3 class="section">2.2 PostScript font installation</h3> -<div class="node"> +<a name="index-installation-of-PostScript-fonts"></a> +<a name="index-fonts_002c-installation-of-PostScript"></a> +<a name="index-PostScript-fonts_002c-installing"></a> + +<p>To use PostScript fonts with TeX and Dvips, you need both metric +files (<samp>.tfm</samp> and <samp>.vf</samp>) and the outlines (<samp>.pfa</samp> or +<samp>.pfb</samp>). See <a href="#Font-concepts">Font concepts</a>. Current TeX systems +come with support for 35 base PostScript fonts and many more. +</p> +<a name="index-fonts_002c-system-PostScript"></a> +<a name="index-PostScript-fonts_002c-on-your-system"></a> +<a name="index-psfonts_002emap"></a> +<p>If you have additional PostScript fonts, you can make them available +to Dvips by (1) giving them appropriate filenames; and +(2) running Afm2tfm (see <a href="#Making-a-font-available">Making a font available</a>) to make TFM +and VF metrics for TeX and Dvips to use. Also add them to +<samp>psfonts.map</samp> (see <a href="#psfonts_002emap">psfonts.map</a>); this file must contain +everything available in the system. The <code>updmap</code> program is +usually used to maintain <samp>psfonts.map</samp>; run ‘<samp>updmap --help</samp>’ +for lots of information about how it works. +</p> + +<hr> <a name="Ghostscript-installation"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Diagnosing-problems">Diagnosing problems</a>, -Previous: <a rel="previous" accesskey="p" href="#PostScript-font-installation">PostScript font installation</a>, -Up: <a rel="up" accesskey="u" href="#Installation">Installation</a> - +<div class="header"> +<p> +Next: <a href="#Diagnosing-problems" accesskey="n" rel="next">Diagnosing problems</a>, Previous: <a href="#PostScript-font-installation" accesskey="p" rel="prev">PostScript font installation</a>, Up: <a href="#Installation" accesskey="u" rel="up">Installation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Ghostscript-installation-1"></a> <h3 class="section">2.3 Ghostscript installation</h3> -<p><a name="index-Ghostscript-installation-31"></a><a name="index-gs-_0040r_007binstallation_007d-32"></a> -<a name="index-Deutsch_002c-Peter-33"></a><a name="index-Epson-printers-34"></a><a name="index-previewing-Dvips-output-35"></a><a name="index-PostScript-previewers-36"></a><a name="index-PDF-files_002c-making-37"></a><a name="index-Aladdin-Ghostscript-38"></a>Ghostscript is a PostScript interpreter freely available to end-users, +<a name="index-Ghostscript-installation"></a> +<a name="index-gs-installation"></a> + +<a name="index-Deutsch_002c-Peter"></a> +<a name="index-Epson-printers"></a> +<a name="index-previewing-Dvips-output"></a> +<a name="index-PostScript-previewers"></a> +<a name="index-PDF-files_002c-making"></a> +<a name="index-Aladdin-Ghostscript"></a> +<p>Ghostscript is a PostScript interpreter freely available to end-users, written by Peter Deutsch. It can read the PostScript produced by Dvips and render it on your monitor, or for another device (e.g., an Epson printer) that does not support PostScript, or in PDF format. The latest version is available via <a href="http://www.cs.wisc.edu/~ghost/index.html">http://www.cs.wisc.edu/~ghost/index.html</a> and <a href="ftp://ftp.cs.wisc.edu/pub/ghost/aladdin/">ftp://ftp.cs.wisc.edu/pub/ghost/aladdin/</a>. - - <p><a name="index-GNU-Ghostscript-39"></a>A somewhat older version of Ghostscript is available under the GNU +</p> +<a name="index-GNU-Ghostscript"></a> +<p>A somewhat older version of Ghostscript is available under the GNU General Public License, free to everyone. You can get that from <a href="ftp://prep.ai.mit.edu/pub/gnu/">ftp://prep.ai.mit.edu/pub/gnu/</a>. - - <p><a name="index-Theisen_002c-Tim-40"></a><a name="index-ghostview-41"></a><a name="index-Ghostview_002c-and-no-_0040samp_007bN_007d-42"></a><a name="index-EPS_002c-and-Ghostview-43"></a><a name="index-standard-PostScript_002c-required-by-Ghostview-44"></a><a name="index-g_t_0025_0025Page_0040r_007b_002c-required-by-Ghostview_007d-45"></a>The program Ghostview, written by Tim Theisen, provides typical -previewing capabilities (next page/previous page, magnification, etc.). +</p> +<a name="index-Theisen_002c-Tim"></a> +<a name="index-ghostview"></a> +<a name="index-Ghostview_002c-and-no-N"></a> +<a name="index-EPS_002c-and-Ghostview"></a> +<a name="index-standard-PostScript_002c-required-by-Ghostview"></a> +<a name="index-_0025_0025Page_002c-required-by-Ghostview"></a> +<p>The program Ghostview, written by Tim Theisen, provides typical +previewing capabilities (next page/previous page, magnification, etc.). It requires Ghostscript to run, and files in structured Postscript, -specifically with ‘<samp><span class="samp">%%Page</span></samp>’ comments (no ‘<samp><span class="samp">N</span></samp>’ in -<samp><span class="file">config.ps</span></samp>). You can get Ghostview from the same places as +specifically with ‘<samp>%%Page</samp>’ comments (no ‘<samp>N</samp>’ in +<samp>config.ps</samp>). You can get Ghostview from the same places as Ghostscript. +</p> -<div class="node"> +<hr> <a name="Diagnosing-problems"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Ghostscript-installation">Ghostscript installation</a>, -Up: <a rel="up" accesskey="u" href="#Installation">Installation</a> - +<div class="header"> +<p> +Previous: <a href="#Ghostscript-installation" accesskey="p" rel="prev">Ghostscript installation</a>, Up: <a href="#Installation" accesskey="u" rel="up">Installation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Diagnosing-problems-1"></a> <h3 class="section">2.4 Diagnosing problems</h3> -<p><a name="index-problems-46"></a><a name="index-trouble-47"></a><a name="index-debugging-48"></a> -You've gone through all the trouble of installing Dvips, carefully read -all the instructions in this manual, and still can't get something to +<a name="index-problems"></a> +<a name="index-trouble"></a> +<a name="index-debugging"></a> + +<p>You’ve gone through all the trouble of installing Dvips, carefully read +all the instructions in this manual, and still can’t get something to work. The following sections provide some helpful hints if you find yourself in such a situation. - - <p>For details on effective bug reporting, common installation problems, -and <code>mktexpk</code> problems, see <a href="kpathsea.html#Bugs">Bugs</a>. - - <p>A good first debugging operation is to set the environment variable -<samp><span class="env">DVIPSDEBUG</span></samp>, which will display any configuration and map files -read by Dvips. This way you can be sure it's finding the files and +</p> +<p>For details on effective bug reporting, common installation problems, +and <code>mktexpk</code> problems, see <a href="kpathsea.html#Bugs">Bugs</a> in <cite>Kpathsea</cite>. +</p> +<p>A good first debugging operation is to set the environment variable +<code>DVIPSDEBUG</code>, which will display any configuration and map files +read by Dvips. This way you can be sure it’s finding the files and settings you expect. - -<ul class="menu"> -<li><a accesskey="1" href="#Debug-options">Debug options</a>: Getting diagnostics. -<li><a accesskey="2" href="#No-output">No output</a>: No output at all. -<li><a accesskey="3" href="#Small-or-inverted">Small or inverted</a>: Output too small or inverted. -<li><a accesskey="4" href="#Printer-errors">Printer errors</a>: The printer sends back errors. -<li><a accesskey="5" href="#Long-documents-fail">Long documents fail</a>: Long documents fail to print. -<li><a accesskey="6" href="#Including-graphics-fails">Including graphics fails</a>: Figures don't work. -</ul> - -<div class="node"> +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Debug-options" accesskey="1">Debug options</a>:</td><td> </td><td align="left" valign="top">Getting diagnostics. +</td></tr> +<tr><td align="left" valign="top">• <a href="#No-output" accesskey="2">No output</a>:</td><td> </td><td align="left" valign="top">No output at all. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Small-or-inverted" accesskey="3">Small or inverted</a>:</td><td> </td><td align="left" valign="top">Output too small or inverted. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Printer-errors" accesskey="4">Printer errors</a>:</td><td> </td><td align="left" valign="top">The printer sends back errors. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Long-documents-fail" accesskey="5">Long documents fail</a>:</td><td> </td><td align="left" valign="top">Long documents fail to print. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Including-graphics-fails" accesskey="6">Including graphics fails</a>:</td><td> </td><td align="left" valign="top">Figures don’t work. +</td></tr> +</table> + + +<hr> <a name="Debug-options"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#No-output">No output</a>, -Up: <a rel="up" accesskey="u" href="#Diagnosing-problems">Diagnosing problems</a> - +<div class="header"> +<p> +Next: <a href="#No-output" accesskey="n" rel="next">No output</a>, Up: <a href="#Diagnosing-problems" accesskey="u" rel="up">Diagnosing problems</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Debug-options-1"></a> <h4 class="subsection">2.4.1 Debug options</h4> -<p><a name="index-debugging-options-49"></a><a name="index-options_002c-debugging-50"></a> -The ‘<samp><span class="samp">-d</span></samp>’ flag to Dvips helps in tracking down certain errors. +<a name="index-debugging-options"></a> +<a name="index-options_002c-debugging"></a> + +<p>The ‘<samp>-d</samp>’ flag to Dvips helps in tracking down certain errors. The parameter to this flag is an integer that tells what errors are currently being tracked. To track a certain class of debug messages, specify the appropriate number given below; if you wish to track -multiple classes, sum the numbers of the classes you wish to track. +multiple classes, sum the numbers of the classes you wish to track. To track all classes, you can use <code>-1</code>. - - <p>You can also set the environment variable <samp><span class="env">KPATHSEA_DEBUG</span></samp> instead -of using ‘<samp><span class="samp">-d</span></samp>’. Some of these debugging options are actually -provided by Kpathsea (see <a href="kpathsea.html#Debugging">Debugging</a>). - - <p>The classes are: - - <dl> -<dt>1<dd>specials -<br><dt>2<dd>paths -<br><dt>4<dd>fonts -<br><dt>8<dd>pages -<br><dt>16<dd>headers -<br><dt>32<dd>font compression -<br><dt>64<dd>files -<br><dt>128<dd>(omitted) -<br><dt>256<dd>config files -<br><dt>512<dd>Kpathsea <code>stat</code> calls -<br><dt>1024<dd>Kpathsea hash table lookups -<br><dt>2048<dd>Kpathsea path element expansion -<br><dt>4096<dd>Kpathsea path searches +</p> +<p>You can also set the environment variable <code>KPATHSEA_DEBUG</code> instead +of using ‘<samp>-d</samp>’. Some of these debugging options are actually +provided by Kpathsea (see <a href="kpathsea.html#Debugging">Debugging</a> in <cite>Kpathsea</cite>). +</p> +<p>The classes are: +</p> +<dl compact="compact"> +<dt>1</dt> +<dd><p>specials +</p></dd> +<dt>2</dt> +<dd><p>paths +</p></dd> +<dt>4</dt> +<dd><p>fonts +</p></dd> +<dt>8</dt> +<dd><p>pages +</p></dd> +<dt>16</dt> +<dd><p>headers +</p></dd> +<dt>32</dt> +<dd><p>font compression +</p></dd> +<dt>64</dt> +<dd><p>files +</p></dd> +<dt>128</dt> +<dd><p>(omitted) +</p></dd> +<dt>256</dt> +<dd><p>config files +</p></dd> +<dt>512</dt> +<dd><p>Kpathsea <code>stat</code> calls +</p></dd> +<dt>1024</dt> +<dd><p>Kpathsea hash table lookups +</p></dd> +<dt>2048</dt> +<dd><p>Kpathsea path element expansion +</p></dd> +<dt>4096</dt> +<dd><p>Kpathsea path searches +</p></dd> </dl> -<div class="node"> -<a name="No-output"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Small-or-inverted">Small or inverted</a>, -Previous: <a rel="previous" accesskey="p" href="#Debug-options">Debug options</a>, -Up: <a rel="up" accesskey="u" href="#Diagnosing-problems">Diagnosing problems</a> +<hr> +<a name="No-output"></a> +<div class="header"> +<p> +Next: <a href="#Small-or-inverted" accesskey="n" rel="next">Small or inverted</a>, Previous: <a href="#Debug-options" accesskey="p" rel="prev">Debug options</a>, Up: <a href="#Diagnosing-problems" accesskey="u" rel="up">Diagnosing problems</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="No-output-at-all"></a> <h4 class="subsection">2.4.2 No output at all</h4> -<p><a name="index-output_002c-none-51"></a><a name="index-no-output-at-all-52"></a><a name="index-failure_002c-to-print-at-all-53"></a> -If you are not getting any output at all, even from the simplest -one-character file (for instance, ‘<samp><span class="samp">\ \bye</span></samp>’), then something is very +<a name="index-output_002c-none"></a> +<a name="index-no-output-at-all"></a> +<a name="index-failure_002c-to-print-at-all"></a> + +<p>If you are not getting any output at all, even from the simplest +one-character file (for instance, ‘<samp>\ \bye</samp>’), then something is very wrong. Practically any file sent to a PostScript laser printer should generate some output, at the very least a page detailing what error occurred, if any. Talk to your system administrator about downloading a PostScript error handler. (Adobe distributes a good one called -‘<samp><span class="samp">ehandler.ps</span></samp>’.) -<a name="index-ehandler_002eps-54"></a> -<a name="index-PowerPage-PostScript-implementation-55"></a><a name="index-Shinko-CHC_002dS446i-printer-56"></a><a name="index-Mitsubishi-Shinko-CHC_002dS446i-printer-57"></a>It is possible, especially if you are using non-Adobe PostScript, that +‘<samp>ehandler.ps</samp>’.) +<a name="index-ehandler_002eps"></a> +</p> +<a name="index-PowerPage-PostScript-implementation"></a> +<a name="index-Shinko-CHC_002dS446i-printer"></a> +<a name="index-Mitsubishi-Shinko-CHC_002dS446i-printer"></a> +<p>It is possible, especially if you are using non-Adobe PostScript, that your PostScript interpreter is broken. Even then it should generate an error message. Dvips tries to work around as many bugs as possible in -common non-Adobe PostScript interpreters, but doubtless it misses a few. +common non-Adobe PostScript interpreters, but doubtless it misses a few. PowerPage Revision 1, Interpreter Version 20001.001, on a Mitsubishi Shinko CHC-S446i color thermal dye sublimation printer is known to be unable to print with any but builtin fonts. - - <p>If Dvips gives any strange error messages, or compilation on your +</p> +<p>If Dvips gives any strange error messages, or compilation on your machine generated a lot of warnings, perhaps the Dvips program itself is broken. Try using the debug options to determine where the error occurred (see <a href="#Debug-options">Debug options</a>). - - <p>It is possible your spooler is broken and is misinterpreting the -structured comments. Try the ‘<samp><span class="samp">-N</span></samp>’ flag to turn off structured +</p> +<p>It is possible your spooler is broken and is misinterpreting the +structured comments. Try the ‘<samp>-N</samp>’ flag to turn off structured comments and see what happens. +</p> -<div class="node"> +<hr> <a name="Small-or-inverted"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Printer-errors">Printer errors</a>, -Previous: <a rel="previous" accesskey="p" href="#No-output">No output</a>, -Up: <a rel="up" accesskey="u" href="#Diagnosing-problems">Diagnosing problems</a> - +<div class="header"> +<p> +Next: <a href="#Printer-errors" accesskey="n" rel="next">Printer errors</a>, Previous: <a href="#No-output" accesskey="p" rel="prev">No output</a>, Up: <a href="#Diagnosing-problems" accesskey="u" rel="up">Diagnosing problems</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Output-too-small-or-inverted"></a> <h4 class="subsection">2.4.3 Output too small or inverted</h4> -<p><a name="index-output_002c-too-small-58"></a><a name="index-output_002c-inverted-59"></a><a name="index-inverted-output-60"></a><a name="index-too_002dsmall-output-61"></a> -<a name="index-save_002frestore_002c-and-inverted-output-62"></a>If some documents come out inverted or too small, probably your spooler +<a name="index-output_002c-too-small"></a> +<a name="index-output_002c-inverted"></a> +<a name="index-inverted-output"></a> +<a name="index-too_002dsmall-output"></a> + +<a name="index-save_002frestore_002c-and-inverted-output"></a> +<p>If some documents come out inverted or too small, probably your spooler is not supplying an end of job indicator at the end of each file. (This -commonly happens on small machines that don't have spoolers.) You can -force Dvips to do this with the ‘<samp><span class="samp">-F</span></samp>’ flag (or ‘<samp><span class="samp">F</span></samp>’ config file +commonly happens on small machines that don’t have spoolers.) You can +force Dvips to do this with the ‘<samp>-F</samp>’ flag (or ‘<samp>F</samp>’ config file option), but this generates files with a terminating binary character -(control-D). You can also try using the ‘<samp><span class="samp">-s</span></samp>’ flag (or ‘<samp><span class="samp">s</span></samp>’ -config file option) to enclose the entire job in a save/restore pair. +(control-D). You can also try using the ‘<samp>-s</samp>’ flag (or ‘<samp>s</samp>’ +config file option) to enclose the entire job in a save/restore pair. See <a href="#Command_002dline-options">Command-line options</a>, and <a href="#Config-files">Config files</a>. +</p> -<div class="node"> +<hr> <a name="Printer-errors"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Long-documents-fail">Long documents fail</a>, -Previous: <a rel="previous" accesskey="p" href="#Small-or-inverted">Small or inverted</a>, -Up: <a rel="up" accesskey="u" href="#Diagnosing-problems">Diagnosing problems</a> - +<div class="header"> +<p> +Next: <a href="#Long-documents-fail" accesskey="n" rel="next">Long documents fail</a>, Previous: <a href="#Small-or-inverted" accesskey="p" rel="prev">Small or inverted</a>, Up: <a href="#Diagnosing-problems" accesskey="u" rel="up">Diagnosing problems</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Error-messages-from-printer"></a> <h4 class="subsection">2.4.4 Error messages from printer</h4> -<p><a name="index-printer-errors-63"></a><a name="index-error-messages-from-printer-64"></a><a name="index-failure_002c-and-printer-errors-65"></a> -<a name="index-g_t_0040t_007bbop-undefined_007d-error-66"></a>If your printer returns error messages, the error message gives very +<a name="index-printer-errors"></a> +<a name="index-error-messages-from-printer"></a> +<a name="index-failure_002c-and-printer-errors"></a> + +<a name="index-bop-undefined-error"></a> +<p>If your printer returns error messages, the error message gives very good information on what might be going wrong. One of the most common -error messages is ‘<samp><span class="samp">bop undefined</span></samp>’. This is caused by old versions +error messages is ‘<samp>bop undefined</samp>’. This is caused by old versions of Transcript and other spoolers that do not properly parse the setup section of the PostScript. To fix this, turn off structured comments -with the ‘<samp><span class="samp">-N</span></samp>’ option, but it'd be best to get your spooling +with the ‘<samp>-N</samp>’ option, but it’d be best to get your spooling software updated. - - <p><a name="index-VM-exhausted-67"></a><a name="index-printer-memory-exhausted-68"></a><a name="index-memory-of-printer-exhausted-69"></a>Another error message is ‘<samp><span class="samp">VM exhausted</span></samp>’. Some printers indicate +</p> +<a name="index-VM-exhausted"></a> +<a name="index-printer-memory-exhausted"></a> +<a name="index-memory-of-printer-exhausted"></a> +<p>Another error message is ‘<samp>VM exhausted</samp>’. Some printers indicate this error by locking up, others quietly reset. This is caused by Dvips thinking that the printer has more memory than it actually does, and then printing a complicated document. To fix this, try lowering the -‘<samp><span class="samp">m</span></samp>’ parameter in the configuration file; use the debug option to +‘<samp>m</samp>’ parameter in the configuration file; use the debug option to make sure you adjust the correct file. - - <p>Other errors may indicate you are trying to include graphics that don't +</p> +<p>Other errors may indicate you are trying to include graphics that don’t nest properly in other PostScript documents, among other things. Try the PostScript file on a QMS PS-810 or other Adobe PostScript printer if you have one, or Ghostscript (see <a href="#Ghostscript-installation">Ghostscript installation</a>); it might be a problem with the printer itself. +</p> -<div class="node"> +<hr> <a name="Long-documents-fail"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Including-graphics-fails">Including graphics fails</a>, -Previous: <a rel="previous" accesskey="p" href="#Printer-errors">Printer errors</a>, -Up: <a rel="up" accesskey="u" href="#Diagnosing-problems">Diagnosing problems</a> - +<div class="header"> +<p> +Next: <a href="#Including-graphics-fails" accesskey="n" rel="next">Including graphics fails</a>, Previous: <a href="#Printer-errors" accesskey="p" rel="prev">Printer errors</a>, Up: <a href="#Diagnosing-problems" accesskey="u" rel="up">Diagnosing problems</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Long-documents-fail-to-print"></a> <h4 class="subsection">2.4.5 Long documents fail to print</h4> -<p><a name="index-long-documents-not-printing-70"></a><a name="index-failure_002c-of-long-documents-71"></a> -This is usually caused by incorrectly specifying the amount of memory +<a name="index-long-documents-not-printing"></a> +<a name="index-failure_002c-of-long-documents"></a> + +<p>This is usually caused by incorrectly specifying the amount of memory the printer has in the configuration file; see the previous section. +</p> -<div class="node"> +<hr> <a name="Including-graphics-fails"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Long-documents-fail">Long documents fail</a>, -Up: <a rel="up" accesskey="u" href="#Diagnosing-problems">Diagnosing problems</a> - +<div class="header"> +<p> +Previous: <a href="#Long-documents-fail" accesskey="p" rel="prev">Long documents fail</a>, Up: <a href="#Diagnosing-problems" accesskey="u" rel="up">Diagnosing problems</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Including-graphics-fails-1"></a> <h4 class="subsection">2.4.6 Including graphics fails</h4> -<p><a name="index-including-graphics-fails-72"></a><a name="index-graphics-inclusion-fails-73"></a><a name="index-failure_002c-to-include-graphics-74"></a> -The most common problem with including graphics is an incorrect bounding +<a name="index-including-graphics-fails"></a> +<a name="index-graphics-inclusion-fails"></a> +<a name="index-failure_002c-to-include-graphics"></a> + +<p>The most common problem with including graphics is an incorrect bounding box (see <a href="#Bounding-box">Bounding box</a>). Complain to whoever wrote the software that generated the file if the bounding box is indeed incorrect. - - <p><a name="index-Illustrator_002c-workaround-for-75"></a>Another possible problem is that the figure you are trying to include +</p> +<a name="index-Illustrator_002c-workaround-for"></a> +<p>Another possible problem is that the figure you are trying to include does not nest properly; there are certain rules PostScript applications must follow when generating files to be included. The Dvips program includes work-arounds for such errors in Adobe Illustrator and other -programs, but there are certainly applications that haven't been tested. - - <p>One possible thing to try is the ‘<samp><span class="samp">-K</span></samp>’ flag which strips the comments +programs, but there are certainly applications that haven’t been tested. +</p> +<p>One possible thing to try is the ‘<samp>-K</samp>’ flag which strips the comments from an included figure. This might be necessary if the PostScript spooling software does not read the structured comments correctly. Use of this flag will break graphics from some applications, though, since some applications read the PostScript file from the input stream, looking for a particular comment. - - <p><a name="index-binary-files_002c-not-supported-76"></a>Any application which generates graphics output containing raw binary +</p> +<a name="index-binary-files_002c-not-supported"></a> +<p>Any application which generates graphics output containing raw binary (not ASCII hex) will probably fail with Dvips. +</p> -<div class="node"> +<hr> <a name="Invoking-Dvips"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Paper-size-and-landscape">Paper size and landscape</a>, -Previous: <a rel="previous" accesskey="p" href="#Installation">Installation</a>, -Up: <a rel="up" accesskey="u" href="#Top">Top</a> - +<div class="header"> +<p> +Next: <a href="#Paper-size-and-landscape" accesskey="n" rel="next">Paper size and landscape</a>, Previous: <a href="#Installation" accesskey="p" rel="prev">Installation</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Invoking-Dvips-1"></a> <h2 class="chapter">3 Invoking Dvips</h2> -<p><a name="index-command_002dline-options-77"></a><a name="index-options_002c-Dvips-78"></a><a name="index-invoking-Dvips-79"></a> -Dvips reads a DVI file as output by (for example) TeX, and converts +<a name="index-command_002dline-options"></a> +<a name="index-options_002c-Dvips"></a> +<a name="index-invoking-Dvips"></a> + +<p>Dvips reads a DVI file as output by (for example) TeX, and converts it to PostScript, taking care of builtin or downloaded PostScript fonts, font reencoding, color, etc. These features are described in other chapters in this document. - - <p>There many ways to control Dvips' behavior: configuration files, +</p> +<p>There many ways to control Dvips’ behavior: configuration files, environment variables, and command-line options. - -<ul class="menu"> -<li><a accesskey="1" href="#Basic-usage">Basic usage</a> -<li><a accesskey="2" href="#Command_002dline-options">Command-line options</a> -<li><a accesskey="3" href="#Environment-variables">Environment variables</a> -<li><a accesskey="4" href="#Config-files">Config files</a> -</ul> - -<div class="node"> +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Basic-usage" accesskey="1">Basic usage</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Command_002dline-options" accesskey="2">Command-line options</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Environment-variables" accesskey="3">Environment variables</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Config-files" accesskey="4">Config files</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> <a name="Basic-usage"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Command_002dline-options">Command-line options</a>, -Up: <a rel="up" accesskey="u" href="#Invoking-Dvips">Invoking Dvips</a> - +<div class="header"> +<p> +Next: <a href="#Command_002dline-options" accesskey="n" rel="next">Command-line options</a>, Up: <a href="#Invoking-Dvips" accesskey="u" rel="up">Invoking Dvips</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Basic-usage-of-Dvips"></a> <h3 class="section">3.1 Basic usage of Dvips</h3> -<p><a name="index-usage_002c-basic-80"></a> -To use Dvips at its simplest, simply type +<a name="index-usage_002c-basic"></a> -<pre class="example"> dvips foo -</pre> - <p class="noindent">where <samp><span class="file">foo.dvi</span></samp> is the output of TeX that you want to print. -The default output is to a corresponding file <samp><span class="file">foo.ps</span></samp>; Dvips may +<p>To use Dvips at its simplest, simply type +</p> +<div class="example"> +<pre class="example">dvips foo +</pre></div> + +<p>where <samp>foo.dvi</samp> is the output of TeX that you want to print. +The default output is to a corresponding file <samp>foo.ps</samp>; Dvips may also have been locally configured to output directly to a printer by default. - - <p>If you use fonts that have not been used on your system before, they may +</p> +<p>If you use fonts that have not been used on your system before, they may be automatically generated; this process can take a few minutes, so progress reports appear by default. The next time that document is printed, these fonts will have been saved in the proper directories, so printing will go much faster. (If Dvips tries to endlessly generate the -same fonts over and over again, it hasn't been installed properly. -See <a href="kpathsea.html#Unable-to-generate-fonts">Unable to generate fonts</a>.) - - <p>Many options are available (see the next section). For a brief summary +same fonts over and over again, it hasn’t been installed properly. +See <a href="kpathsea.html#Unable-to-generate-fonts">Unable to generate fonts</a> in <cite>Kpathsea</cite>.) +</p> +<p>Many options are available (see the next section). For a brief summary of available options, just type +</p> +<div class="example"> +<pre class="example">dvips --help +</pre></div> -<pre class="example"> dvips --help -</pre> - <div class="node"> -<a name="Command-line-options"></a> -<a name="Command_002dline-options"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Environment-variables">Environment variables</a>, -Previous: <a rel="previous" accesskey="p" href="#Basic-usage">Basic usage</a>, -Up: <a rel="up" accesskey="u" href="#Invoking-Dvips">Invoking Dvips</a> +<hr> +<a name="Command_002dline-options"></a> +<div class="header"> +<p> +Next: <a href="#Environment-variables" accesskey="n" rel="next">Environment variables</a>, Previous: <a href="#Basic-usage" accesskey="p" rel="prev">Basic usage</a>, Up: <a href="#Invoking-Dvips" accesskey="u" rel="up">Invoking Dvips</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Command_002dline-options-1"></a> <h3 class="section">3.2 Command-line options</h3> <p>Dvips has a plethora of command line options. Reading through this section will give a good idea of the capabilities of the driver. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Option-summary" accesskey="1">Option summary</a>:</td><td> </td><td align="left" valign="top">Quick listing, from Dvips –help. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Option-details" accesskey="2">Option details</a>:</td><td> </td><td align="left" valign="top">More information about each option. +</td></tr> +</table> -<ul class="menu"> -<li><a accesskey="1" href="#Option-summary">Option summary</a>: Quick listing, from Dvips --help. -<li><a accesskey="2" href="#Option-details">Option details</a>: More information about each option. -</ul> -<div class="node"> +<hr> <a name="Option-summary"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Option-details">Option details</a>, -Up: <a rel="up" accesskey="u" href="#Command_002dline-options">Command-line options</a> - +<div class="header"> +<p> +Next: <a href="#Option-details" accesskey="n" rel="next">Option details</a>, Up: <a href="#Command_002dline-options" accesskey="u" rel="up">Command-line options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Option-summary-1"></a> <h4 class="subsection">3.2.1 Option summary</h4> -<p><a name="index-options_002c-summary-81"></a>Here is a handy summary of the options; it is printed out when you run -Dvips with no arguments or with the standard ‘<samp><span class="samp">--help</span></samp>’ option. -<a name="index-g_t_002d_002dhelp-82"></a> +<a name="index-options_002c-summary"></a> +<p>Here is a handy summary of the options; it is printed out when you run +Dvips with no arguments or with the standard ‘<samp>--help</samp>’ option. +<a name="index-_002d_002dhelp"></a> +</p> <pre class="verbatim">Usage: dvips [OPTION]... FILENAME[.dvi] Convert DVI input files to PostScript. See http://tug.org/dvips/ for the full manual and other information. @@ -824,82 +920,142 @@ Options: Email bug reports to tex-k@mail.tug.org. </pre> -<div class="node"> +<hr> <a name="Option-details"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Option-summary">Option summary</a>, -Up: <a rel="up" accesskey="u" href="#Command_002dline-options">Command-line options</a> - +<div class="header"> +<p> +Previous: <a href="#Option-summary" accesskey="p" rel="prev">Option summary</a>, Up: <a href="#Command_002dline-options" accesskey="u" rel="up">Command-line options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Option-details-1"></a> <h4 class="subsection">3.2.2 Option details</h4> -<p><a name="index-option_002c-details-of-83"></a> -Many of the parameterless options listed here can be turned off by -suffixing the option with a zero (‘<samp><span class="samp">0</span></samp>’); for instance, to turn off -page reversal, use ‘<samp><span class="samp">-r0</span></samp>’. Such options are marked with a trailing -‘<samp><span class="samp">*</span></samp>’. - - <dl> -<dt>‘<samp><span class="samp">-</span></samp>’<dd><a name="index-g_t_002d-84"></a><a name="index-options_002c-reading-from-standard-input-85"></a><a name="index-standard-input_002c-reading-options-from-86"></a>Read additional options from standard input after processing the command +<a name="index-option_002c-details-of"></a> + +<p>Many of the parameterless options listed here can be turned off by +suffixing the option with a zero (‘<samp>0</samp>’); for instance, to turn off +page reversal, use ‘<samp>-r0</samp>’. Such options are marked with a trailing +‘<samp>*</samp>’. +</p> +<dl compact="compact"> +<dt>‘<samp>-</samp>’</dt> +<dd><a name="index-_002d"></a> +<a name="index-options_002c-reading-from-standard-input"></a> +<a name="index-standard-input_002c-reading-options-from"></a> +<p>Read additional options from standard input after processing the command line. - - <br><dt>‘<samp><span class="samp">--help</span></samp>’<dd><a name="index-g_t_002d_002dhelp-87"></a>Print a usage message and exit. - - <br><dt>‘<samp><span class="samp">--version</span></samp>’<dd><a name="index-g_t_002d_002dversion-88"></a>Print the version number and exit. - - <br><dt>‘<samp><span class="samp">-a*</span></samp>’<dd><a name="index-g_t_002da-89"></a><a name="index-memory_002c-conserving-90"></a>Conserve memory by making three passes over the DVI file instead +</p> +</dd> +<dt>‘<samp>--help</samp>’</dt> +<dd><a name="index-_002d_002dhelp-1"></a> +<p>Print a usage message and exit. +</p> +</dd> +<dt>‘<samp>--version</samp>’</dt> +<dd><a name="index-_002d_002dversion"></a> +<p>Print the version number and exit. +</p> +</dd> +<dt>‘<samp>-a*</samp>’</dt> +<dd><a name="index-_002da"></a> +<a name="index-memory_002c-conserving"></a> +<p>Conserve memory by making three passes over the DVI file instead of two and only loading those characters actually used. Generally only useful on machines with a very limited amount of memory, like some PCs. - - <br><dt>‘<samp><span class="samp">-A</span></samp>’<dd><a name="index-g_t_002dA-91"></a><a name="index-odd-pages-only-92"></a>Print only the odd pages. This option uses TeX +</p> +</dd> +<dt>‘<samp>-A</samp>’</dt> +<dd><a name="index-_002dA"></a> +<a name="index-odd-pages-only"></a> +<p>Print only the odd pages. This option uses TeX page numbers, not physical page numbers. - - <br><dt>‘<samp><span class="samp">-b </span><var>num</var></samp>’<dd><a name="index-g_t_002db-_0040var_007bnum_007d-93"></a><a name="index-g_t_002f_0023copies-94"></a><a name="index-copies_002c-duplicated-page-bodies-95"></a><a name="index-color-separations-96"></a>Generate <var>num</var> copies of each page, but duplicating the page body -rather than using the ‘<samp><span class="samp">/#copies</span></samp>’ PostScript variable. This can -be useful in conjunction with a header file setting ‘<samp><span class="samp">bop-hook</span></samp>’ to +</p> +</dd> +<dt>‘<samp>-b <var>num</var></samp>’</dt> +<dd><a name="index-_002db-num"></a> +<a name="index-_002f_0023copies"></a> +<a name="index-copies_002c-duplicated-page-bodies"></a> +<a name="index-color-separations"></a> +<p>Generate <var>num</var> copies of each page, but duplicating the page body +rather than using the ‘<samp>/#copies</samp>’ PostScript variable. This can +be useful in conjunction with a header file setting ‘<samp>bop-hook</samp>’ to do color separations or other neat tricks. - - <br><dt>‘<samp><span class="samp">-B</span></samp>’<dd><a name="index-g_t_002dB-97"></a><a name="index-even-pages-only-98"></a><a name="index-double_002dsided-printing-99"></a>Print only the even pages. This option uses TeX page numbers, not +</p> +</dd> +<dt>‘<samp>-B</samp>’</dt> +<dd><a name="index-_002dB"></a> +<a name="index-even-pages-only"></a> +<a name="index-double_002dsided-printing"></a> +<p>Print only the even pages. This option uses TeX page numbers, not physical page numbers. - - <br><dt>‘<samp><span class="samp">-c </span><var>num</var></samp>’<dd><a name="index-g_t_002dc-_0040var_007bnum_007d-100"></a><a name="index-g_t_002f_0023copies-101"></a><a name="index-copies_002c-uncollated-102"></a><a name="index-uncollated-copies-103"></a>Generate <var>num</var> consecutive copies of every page, i.e., the output is +</p> +</dd> +<dt>‘<samp>-c <var>num</var></samp>’</dt> +<dd><a name="index-_002dc-num"></a> +<a name="index-_002f_0023copies-1"></a> +<a name="index-copies_002c-uncollated"></a> +<a name="index-uncollated-copies"></a> +<p>Generate <var>num</var> consecutive copies of every page, i.e., the output is uncollated. This merely sets the builtin PostScript variable -‘<samp><span class="samp">/#copies</span></samp>’. - - <br><dt>‘<samp><span class="samp">-C </span><var>num</var></samp>’<dd><a name="index-g_t_002dC-_0040var_007bnum_007d-104"></a><a name="index-copies_002c-collated-105"></a><a name="index-collated-copies-106"></a>Generate <var>num</var> copies, but collated (by replicating the data in the -PostScript file). Slower than the ‘<samp><span class="samp">-c</span></samp>’ option, but easier on the +‘<samp>/#copies</samp>’. +</p> +</dd> +<dt>‘<samp>-C <var>num</var></samp>’</dt> +<dd><a name="index-_002dC-num"></a> +<a name="index-copies_002c-collated"></a> +<a name="index-collated-copies"></a> +<p>Generate <var>num</var> copies, but collated (by replicating the data in the +PostScript file). Slower than the ‘<samp>-c</samp>’ option, but easier on the hands, and faster than resubmitting the same PostScript file multiple times. - - <br><dt>‘<samp><span class="samp">-d </span><var>num</var></samp>’<dd><a name="index-g_t_002dd-_0040var_007bnum_007d-107"></a><a name="index-debugging-108"></a>Set the debug flags, showing what Dvips (thinks it) is doing. This will -work unless Dvips has been compiled without the ‘<samp><span class="samp">DEBUG</span></samp>’ option (not +</p> +</dd> +<dt>‘<samp>-d <var>num</var></samp>’</dt> +<dd><a name="index-_002dd-num"></a> +<a name="index-debugging-1"></a> +<p>Set the debug flags, showing what Dvips (thinks it) is doing. This will +work unless Dvips has been compiled without the ‘<samp>DEBUG</samp>’ option (not recommended). See <a href="#Debug-options">Debug options</a>, for the possible values of -<var>num</var>. Use ‘<samp><span class="samp">-d -1</span></samp>’ as the first option for maximum output. - - <br><dt>‘<samp><span class="samp">-D </span><var>num</var></samp>’<dd><a name="index-g_t_002dD-_0040var_007bnum_007d-109"></a><a name="index-resolution_002c-setting-110"></a>Set both the horizontal and vertical resolution to <var>num</var>, given in +<var>num</var>. Use ‘<samp>-d -1</samp>’ as the first option for maximum output. +</p> +</dd> +<dt>‘<samp>-D <var>num</var></samp>’</dt> +<dd><a name="index-_002dD-num"></a> +<a name="index-resolution_002c-setting"></a> +<p>Set both the horizontal and vertical resolution to <var>num</var>, given in dpi (dots per inch). This affects the choice of bitmap fonts that are loaded and also the positioning of letters in resident PostScript fonts. Must be between 10 and 10000. This affects both the horizontal and vertical resolution. If a high resolution (something greater than -400 dpi, say) is selected, the ‘<samp><span class="samp">-Z</span></samp>’ flag should probably also be +400 dpi, say) is selected, the ‘<samp>-Z</samp>’ flag should probably also be used. If you are using fonts made with Metafont, such as Computer -Modern, <samp><span class="file">mktexpk</span></samp> needs to know about the value for <var>num</var> +Modern, <samp>mktexpk</samp> needs to know about the value for <var>num</var> that you use or Metafont will fail. See the file <a href="ftp://ftp.tug.org/tex/modes.mf">ftp://ftp.tug.org/tex/modes.mf</a> for a list of resolutions and mode names for most devices. - - <br><dt>‘<samp><span class="samp">-e </span><var>num</var></samp>’<dd><a name="index-g_t_002de-_0040var_007bnum_007d-111"></a><a name="index-maxdrift-112"></a><a name="index-accuracy-in-positioning-113"></a><a name="index-positioning-accuracy-114"></a>Maximum drift in pixels of each character from its `true' +</p> +</dd> +<dt>‘<samp>-e <var>num</var></samp>’</dt> +<dd><a name="index-_002de-num"></a> +<a name="index-maxdrift"></a> +<a name="index-accuracy-in-positioning"></a> +<a name="index-positioning-accuracy"></a> +<p>Maximum drift in pixels of each character from its ‘true’ resolution-independent position on the page. The default value of this parameter is resolution dependent (it is the number of entries in the list [100, 200, 300, 400, 500, 600, 800, 1000, 1200, 1600, 2000, 2400, -2800, 3200, <small class="dots">...</small>] that are less than or equal to the resolution in -dots per inch). Allowing individual characters to `drift' from their +2800, 3200, …] that are less than or equal to the resolution in +dots per inch). Allowing individual characters to ‘drift’ from their correctly rounded positions by a few pixels, while regaining the true position at the beginning of each new word, improves the spacing of letters in words. - - <br><dt>‘<samp><span class="samp">-E*</span></samp>’<dd><a name="index-g_t_002dE-115"></a><a name="index-EPSF_002c-generating-116"></a><a name="index-tight-bounding-box_002c-finding-117"></a><a name="index-bounding-box_002c-finding-tight-118"></a>Generate an EPSF file with a tight bounding box. This only looks at +</p> +</dd> +<dt>‘<samp>-E*</samp>’</dt> +<dd><a name="index-_002dE"></a> +<a name="index-EPSF_002c-generating"></a> +<a name="index-tight-bounding-box_002c-finding"></a> +<a name="index-bounding-box_002c-finding-tight"></a> +<p>Generate an EPSF file with a tight bounding box. This only looks at marks made by characters and rules, not by any included graphics. In addition, it gets the glyph metrics from the TFM file, so characters that print outside their enclosing TFM box may confuse it. In addition, @@ -909,947 +1065,1430 @@ well enough for creating small EPSF files for equations or tables or the like. (Of course, Dvips output, especially when using bitmap fonts, is resolution-dependent and thus does not make very good EPSF files, especially if the images are to be scaled; use these EPSF files with -care.) For multiple page input files, also specify ‘<samp><span class="samp">-i</span></samp>’ to get +care.) For multiple page input files, also specify ‘<samp>-i</samp>’ to get each page as a separate EPSF file; otherwise, all the pages are overlaid in the single output file. - - <br><dt>‘<samp><span class="samp">-f*</span></samp>’<dd><a name="index-g_t_002df-119"></a><a name="index-filter_002c-running-as-a-120"></a><a name="index-standard-I_002fO-121"></a><a name="index-pipes_002c-not-readable-122"></a><a name="index-PRINTER_0040r_007b_002c-avoided-with-_0040samp_007b_002df_007d_007d-123"></a>Run as a filter. Read the DVI file from standard input and write the +</p> +</dd> +<dt>‘<samp>-f*</samp>’</dt> +<dd><a name="index-_002df"></a> +<a name="index-filter_002c-running-as-a"></a> +<a name="index-standard-I_002fO"></a> +<a name="index-pipes_002c-not-readable"></a> +<a name="index-PRINTER_002c-avoided-with-_002df"></a> +<p>Run as a filter. Read the DVI file from standard input and write the PostScript to standard output. The standard input must be seekable, so it cannot be a pipe. If your input must be a pipe, write a shell script that copies the pipe output to a temporary file and then points Dvips at this file. This option also disables the automatic reading of the -<code>PRINTER</code> environment variable; use ‘<samp><span class="samp">-P$PRINTER</span></samp>’ after the -‘<samp><span class="samp">-f</span></samp>’ to read it anyway. It also turns off the automatic sending of -control-D if it was turned on with the ‘<samp><span class="samp">-F</span></samp>’ option or in the -configuration file; use ‘<samp><span class="samp">-F</span></samp>’ after the ‘<samp><span class="samp">-f</span></samp>’ to send it anyway. - - <br><dt>‘<samp><span class="samp">-F*</span></samp>’<dd><a name="index-g_t_002dF-124"></a><a name="index-EOF-125"></a><a name="index-control_002dD-126"></a><a name="index-printer_002c-driving-directly-127"></a><a name="index-spooler_002c-lacking-128"></a>Write control-D (ASCII code 4) as the very last character of the +<code>PRINTER</code> environment variable; use ‘<samp>-P$PRINTER</samp>’ after the +‘<samp>-f</samp>’ to read it anyway. It also turns off the automatic sending of +control-D if it was turned on with the ‘<samp>-F</samp>’ option or in the +configuration file; use ‘<samp>-F</samp>’ after the ‘<samp>-f</samp>’ to send it anyway. +</p> +</dd> +<dt>‘<samp>-F*</samp>’</dt> +<dd><a name="index-_002dF"></a> +<a name="index-EOF"></a> +<a name="index-control_002dD"></a> +<a name="index-printer_002c-driving-directly"></a> +<a name="index-spooler_002c-lacking"></a> +<p>Write control-D (ASCII code 4) as the very last character of the PostScript file. This is useful when Dvips is driving the printer directly instead of working through a spooler, as is common on personal systems. On systems shared by more than one person, this is not recommended. - - <br><dt>‘<samp><span class="samp">-G*</span></samp>’<dd><a name="index-g_t_002dG-129"></a><a name="index-low-characters_002c-shifting-130"></a><a name="index-non_002dprinting-characters_002c-shifting-131"></a>Shift non-printing characters (ASCII 0-32, 127) to higher-numbered positions. -This was useful to work around bugs in old versions of Adobe's PDF -reader. It's more likely to cause problems nowadays. - - <br><dt>‘<samp><span class="samp">-h </span><var>name</var></samp>’<dd><a name="index-g_t_002dh-_0040var_007bname_007d-132"></a><a name="index-header-file_002c-downloading-133"></a><a name="index-userdict_0040r_007b_002c-used-for-header-files_007d-134"></a>Prepend <var>name</var> as an additional header file, or, if <var>name</var> is -‘<samp><span class="samp">-</span></samp>’, suppress all header files. Any definitions in the header file -get added to the PostScript ‘<samp><span class="samp">userdict</span></samp>’. - - <br><dt>‘<samp><span class="samp">-i*</span></samp>’<dd><a name="index-g_t_002di-135"></a><a name="index-sections-output_002c-in-separate-files-136"></a><a name="index-multiple-output-files-137"></a><a name="index-output-files_002c-multiple-138"></a>Make each section be a separate file; a <dfn>section</dfn> is a part of the +</p> +</dd> +<dt>‘<samp>-G*</samp>’</dt> +<dd><a name="index-_002dG"></a> +<a name="index-low-characters_002c-shifting"></a> +<a name="index-non_002dprinting-characters_002c-shifting"></a> +<p>Shift non-printing characters (ASCII 0-32, 127) to higher-numbered positions. +This was useful to work around bugs in old versions of Adobe’s PDF +reader. It’s more likely to cause problems nowadays. +</p> +</dd> +<dt>‘<samp>-h <var>name</var></samp>’</dt> +<dd><a name="index-_002dh-name"></a> +<a name="index-header-file_002c-downloading"></a> +<a name="index-userdict_002c-used-for-header-files"></a> +<p>Prepend <var>name</var> as an additional header file, or, if <var>name</var> is +‘<samp>-</samp>’, suppress all header files. Any definitions in the header file +get added to the PostScript ‘<samp>userdict</samp>’. +</p> +</dd> +<dt>‘<samp>-i*</samp>’</dt> +<dd><a name="index-_002di"></a> +<a name="index-sections-output_002c-in-separate-files"></a> +<a name="index-multiple-output-files"></a> +<a name="index-output-files_002c-multiple"></a> +<p>Make each section be a separate file; a <em>section</em> is a part of the document processed independently, most often created to avoid memory overflow. The filenames are created replacing the suffix of the supplied output file name by a three-digit sequence number. This option -is most often used in conjunction with the ‘<samp><span class="samp">-S</span></samp>’ option which sets -the maximum section length in pages; if ‘<samp><span class="samp">-i</span></samp>’ is specified and -‘<samp><span class="samp">-S</span></samp>’ is not, each page is output as a separate file. For instance, +is most often used in conjunction with the ‘<samp>-S</samp>’ option which sets +the maximum section length in pages; if ‘<samp>-i</samp>’ is specified and +‘<samp>-S</samp>’ is not, each page is output as a separate file. For instance, some phototypesetters cannot print more than ten or so consecutive pages before running out of steam; these options can be used to automatically split a book into ten-page sections, each to its own file. - - <br><dt>‘<samp><span class="samp">-j*</span></samp>’<dd><a name="index-g_t_002dj-_0040r_007bfor-partial-font-downloading_007d-139"></a>Download only needed characters from Type 1 fonts. This is the +</p> +<p>On the other hand, if your document uses very large fonts or very +large included figures, Dvips might take it upon itself to split the +output into unwanted sections, to try to avoid overflowing printer +memory. See <a href="#Headers-and-memory-usage">Headers and memory usage</a>, for ways to handle this. +</p> +</dd> +<dt>‘<samp>-j*</samp>’</dt> +<dd><a name="index-_002dj-for-partial-font-downloading"></a> +<p>Download only needed characters from Type 1 fonts. This is the default in the current release. Some debugging flags trace this operation (see <a href="#Debug-options">Debug options</a>). You can also control partial downloading on a per-font basis (see <a href="#psfonts_002emap">psfonts.map</a>). - - <br><dt>‘<samp><span class="samp">-k*</span></samp>’<dd><a name="index-g_t_002dk-_0040r_007bfor-cropmarks_007d-140"></a><a name="index-cropmarks-141"></a><a name="index-crop_002epro-142"></a>Print crop marks. This option increases the paper size (which should be -specified, either with a paper size special or with the ‘<samp><span class="samp">-T</span></samp>’ +</p> +</dd> +<dt>‘<samp>-k*</samp>’</dt> +<dd><a name="index-_002dk-for-cropmarks"></a> +<a name="index-cropmarks"></a> +<a name="index-crop_002epro"></a> +<p>Print crop marks. This option increases the paper size (which should be +specified, either with a paper size special or with the ‘<samp>-T</samp>’ option) by a half inch in each dimension. It translates each page by a quarter inch and draws cross-style crop marks. It is mostly useful with typesetters that can set the page size automatically. This works by -downloading <samp><span class="file">crop.pro</span></samp>. - - <br><dt>‘<samp><span class="samp">-K*</span></samp>’<dd><a name="index-g_t_002dK-143"></a><a name="index-comments_002c-removing-included-144"></a><a name="index-g_t_0025_0025Page_0040r_007b_002c-removing_007d-145"></a>Remove comments in included PostScript graphics, font files, and +downloading <samp>crop.pro</samp>. +</p> +</dd> +<dt>‘<samp>-K*</samp>’</dt> +<dd><a name="index-_002dK"></a> +<a name="index-comments_002c-removing-included"></a> +<a name="index-_0025_0025Page_002c-removing"></a> +<p>Remove comments in included PostScript graphics, font files, and headers; only necessary to get around bugs in spoolers or PostScript -post-processing programs. Specifically, the ‘<samp><span class="samp">%%Page</span></samp>’ +post-processing programs. Specifically, the ‘<samp>%%Page</samp>’ comments, when left in, often cause difficulties. Use of this flag can cause other graphics to fail, however, since the PostScript header macros from some software packages read portion the input stream line by line, searching for a particular comment. - - <br><dt>‘<samp><span class="samp">-l [=]</span><var>num</var></samp>’<dd><a name="index-g_t_002dl-_005b_003d_005d_0040var_007bnum_007d-146"></a><a name="index-last-page-printed-147"></a><a name="index-page_002c-last-printed-148"></a><a name="index-physical-page-number_002c-and-_0040samp_007b_002dl_007d-149"></a><a name="index-absolute-page-number_002c-and-_0040samp_007b_002dl_007d-150"></a>The last page printed will be the first one numbered <var>num</var>. Default +</p> +</dd> +<dt>‘<samp>-l [=]<var>num</var></samp>’</dt> +<dd><a name="index-_002dl-_005b_003d_005dnum"></a> +<a name="index-last-page-printed"></a> +<a name="index-page_002c-last-printed"></a> +<a name="index-physical-page-number_002c-and-_002dl"></a> +<a name="index-absolute-page-number_002c-and-_002dl"></a> +<p>The last page printed will be the first one numbered <var>num</var>. Default is the last page in the document. If <var>num</var> is prefixed by an equals -sign, then it (and the argument to the ‘<samp><span class="samp">-p</span></samp>’ option, if specified) +sign, then it (and the argument to the ‘<samp>-p</samp>’ option, if specified) is treated as a physical (absolute) page number, rather than a value to -compare with the TeX ‘<samp><span class="samp">\count0</span></samp>’ values stored in the DVI file. -Thus, using ‘<samp><span class="samp">-l =9</span></samp>’ will end with the ninth page of the document, +compare with the TeX ‘<samp>\count0</samp>’ values stored in the DVI file. +Thus, using ‘<samp>-l =9</samp>’ will end with the ninth page of the document, no matter what the pages are actually numbered. - - <br><dt>‘<samp><span class="samp">-m*</span></samp>’<dd><a name="index-g_t_002dm-151"></a><a name="index-manual-feed-152"></a>Specify manual feed, if supported by the output device. - - <br><dt>‘<samp><span class="samp">-mode </span><var>mode</var></samp>’<dd><a name="index-g_t_002dmode-_0040var_007bmode_007d-153"></a><a name="index-g_t_002dmode-154"></a><a name="index-mode-name_002c-specifying-155"></a><a name="index-Metafont-mode_002c-specifying-156"></a>Use <var>mode</var> as the Metafont device name for path searching and font +</p> +</dd> +<dt>‘<samp>-m*</samp>’</dt> +<dd><a name="index-_002dm"></a> +<a name="index-manual-feed"></a> +<p>Specify manual feed, if supported by the output device. +</p> +</dd> +<dt>‘<samp>-mode <var>mode</var></samp>’</dt> +<dd><a name="index-_002dmode-mode"></a> +<a name="index-_002dmode"></a> +<a name="index-mode-name_002c-specifying"></a> +<a name="index-Metafont-mode_002c-specifying"></a> +<p>Use <var>mode</var> as the Metafont device name for path searching and font generation. This overrides any value from configuration files. With the default paths, explicitly specifying the mode also makes the program -assume the fonts are in a subdirectory named <var>mode</var>. -See <a href="kpathsea.html#TeX-directory-structure">TeX directory structure</a>. If Metafont does not understand the <var>mode</var> name, see -<a href="kpathsea.html#Unable-to-generate-fonts">Unable to generate fonts</a>. - - <br><dt>‘<samp><span class="samp">-M*</span></samp>’<dd><a name="index-g_t_002dM-157"></a><a name="index-font-generation_002c-avoiding-158"></a><a name="index-mktexpk_0040r_007b_002c-avoiding_007d-159"></a><a name="index-missfont_002elog-160"></a><!-- this description repeated in kpathsea.texi --> -Turns off automatic font generation (<samp><span class="file">mktexpk</span></samp>). If +assume the fonts are in a subdirectory named <var>mode</var>. +See <a href="kpathsea.html#TeX-directory-structure">TeX directory structure</a> in <cite>Kpathsea</cite>. If Metafont does not understand the <var>mode</var> name, see +<a href="kpathsea.html#Unable-to-generate-fonts">Unable to generate fonts</a> in <cite>Kpathsea</cite>. +</p> +</dd> +<dt>‘<samp>-M*</samp>’</dt> +<dd><a name="index-_002dM"></a> +<a name="index-font-generation_002c-avoiding"></a> +<a name="index-mktexpk_002c-avoiding"></a> +<a name="index-missfont_002elog"></a> +<p>Turns off automatic font generation (<samp>mktexpk</samp>). If <code>mktexpk</code>, the invocation is appended to a file -<samp><span class="file">missfont.log</span></samp> (by default) in the current directory. You can then +<samp>missfont.log</samp> (by default) in the current directory. You can then execute the log file to create the missing files after fixing the -problem. -<a name="index-TEXMFOUTPUT-161"></a><a name="index-MISSFONT_005fLOG-162"></a>If the current directory is not writable and the environment variable or -configuration file value ‘<samp><span class="samp">TEXMFOUTPUT</span></samp>’ is set, its value is used. -Otherwise, nothing is written. The name ‘<samp><span class="samp">missfont.log</span></samp>’ is -overridden by the ‘<samp><span class="samp">MISSFONT_LOG</span></samp>’ environment variable or +problem. +<a name="index-TEXMFOUTPUT"></a> +<a name="index-MISSFONT_005fLOG"></a> +If the current directory is not writable and the environment variable or +configuration file value ‘<samp>TEXMFOUTPUT</samp>’ is set, its value is used. +Otherwise, nothing is written. The name ‘<samp>missfont.log</samp>’ is +overridden by the ‘<samp>MISSFONT_LOG</samp>’ environment variable or configuration file value. - - <br><dt>‘<samp><span class="samp">-n </span><var>num</var></samp>’<dd><a name="index-g_t_002dn-_0040var_007bnum_007d-163"></a><a name="index-maximum-pages-printed-164"></a><a name="index-pages_002c-maximum-printed-165"></a>Print at most <var>num</var> pages. Default is 100000. - - <br><dt>‘<samp><span class="samp">-N*</span></samp>’<dd><a name="index-g_t_002dN-166"></a><a name="index-structured-comments-167"></a><a name="index-TranScript-168"></a><a name="index-g_t_0025_0025Page_0040r_007b_002c-not-generating_007d-169"></a>Turns off generation of structured comments such as ‘<samp><span class="samp">%%Page</span></samp>’; this +</p> +</dd> +<dt>‘<samp>-n <var>num</var></samp>’</dt> +<dd><a name="index-_002dn-num"></a> +<a name="index-maximum-pages-printed"></a> +<a name="index-pages_002c-maximum-printed"></a> +<p>Print at most <var>num</var> pages. Default is 100000. +</p> +</dd> +<dt>‘<samp>-N*</samp>’</dt> +<dd><a name="index-_002dN"></a> +<a name="index-structured-comments"></a> +<a name="index-TranScript"></a> +<a name="index-_0025_0025Page_002c-not-generating"></a> +<p>Turns off generation of structured comments such as ‘<samp>%%Page</samp>’; this may be necessary on some systems that try to interpret PostScript comments in weird ways, or on some PostScript printers. Old versions of -TranScript in particular cannot handle modern Encapsulated PostScript. +TranScript in particular cannot handle modern Encapsulated PostScript. Beware: This also disables page movement, etc., in PostScript viewers such as Ghostview. - - <br><dt>‘<samp><span class="samp">-noomega</span></samp>’<dd><a name="index-g_t_002dnoomega-170"></a><a name="index-Omega-extensions-171"></a><a name="index-p_0040TeX_007b_007d-extensions-172"></a>Disable the use of Omega extensions when interpreting DVI -files. By default, the additional opcodes ‘<samp><span class="samp">129</span></samp>’ and ‘<samp><span class="samp">134</span></samp>’ +</p> +</dd> +<dt>‘<samp>-noomega</samp>’</dt> +<dd><a name="index-_002dnoomega"></a> +<a name="index-Omega-extensions"></a> +<a name="index-pTeX-extensions"></a> +<p>Disable the use of Omega extensions when interpreting DVI +files. By default, the additional opcodes ‘<samp>129</samp>’ and ‘<samp>134</samp>’ are recognized by Dvips as Omega or pTeX extensions and interpreted as requests to set 2-byte characters. - - <br><dt>‘<samp><span class="samp">-noptex</span></samp>’<dd><a name="index-g_t_002dnoptex-173"></a><a name="index-p_0040TeX_007b_007d-extensions-174"></a>Disable the use of pTeX extensions when interpreting DVI files. By -default, the additional opcodes ‘<samp><span class="samp">130</span></samp>’ and ‘<samp><span class="samp">135</span></samp>’ are +</p> +</dd> +<dt>‘<samp>-noptex</samp>’</dt> +<dd><a name="index-_002dnoptex"></a> +<a name="index-pTeX-extensions-1"></a> +<p>Disable the use of pTeX extensions when interpreting DVI files. By +default, the additional opcodes ‘<samp>130</samp>’ and ‘<samp>135</samp>’ are recognized by Dvips as Omega extensions and interpreted as requests to -set 3-byte characters, and ‘<samp><span class="samp">255</span></samp>’ as request to change the +set 3-byte characters, and ‘<samp>255</samp>’ as request to change the typesetting direction. - - <p>The only drawback is that the virtual font array will (at least +</p> +<p>The only drawback is that the virtual font array will (at least temporarily) require 65536 or more positions instead of the default 256 positions, i.e., the memory requirements of Dvips will be somewhat larger. If you find this unacceptable or encounter another problem with the Omega or pTeX extensions, you can switch off the pTeX -extension by using ‘<samp><span class="samp">-noptex</span></samp>’, or both by using ‘<samp><span class="samp">-noomega</span></samp>’ +extension by using ‘<samp>-noptex</samp>’, or both by using ‘<samp>-noomega</samp>’ (but please do send a bug report if you find such problems, -see <a href="kpathsea.html#Bugs">Bugs</a>). - - <br><dt>‘<samp><span class="samp">-o </span><var>name</var></samp>’<dd><a name="index-g_t_002do-_0040var_007bname_007d-175"></a><a name="index-output_002c-redirecting-176"></a><a name="index-standard-output_002c-output-to-177"></a>Send output to the file <var>name</var>. If ‘<samp><span class="samp">-o</span></samp>’ is specified without +see <a href="kpathsea.html#Bugs">Bugs</a> in <cite>Kpathsea</cite>). +</p> +</dd> +<dt>‘<samp>-o <var>name</var></samp>’</dt> +<dd><a name="index-_002do-name"></a> +<a name="index-output_002c-redirecting"></a> +<a name="index-standard-output_002c-output-to"></a> +<p>Send output to the file <var>name</var>. If ‘<samp>-o</samp>’ is specified without <var>name</var> (i.e., it is the last thing on the command line), the -default is ‘<samp><var>file</var><span class="samp">.ps</span></samp>’ where the input DVI file was -‘<samp><var>file</var><span class="samp">.dvi</span></samp>’. If ‘<samp><span class="samp">-o</span></samp>’ isn't given at all, the +default is ‘<samp><var>file</var>.ps</samp>’ where the input DVI file was +‘<samp><var>file</var>.dvi</samp>’. If ‘<samp>-o</samp>’ isn’t given at all, the configuration file default is used. - - <p><a name="index-popen-_0040r_007bfor-output_007d-178"></a><a name="index-g_t_002d-_0040r_007bas-output-filename_007d-179"></a><a name="index-g_t_0021-_0040r_007bstarting-output-filename_007d-180"></a><a name="index-g_t_007c-_0040r_007bstarting-output-filename_007d-181"></a><a name="index-lpr-spooler_002c-MS_002dDOS-emulation-182"></a><a name="index-spooling-to-lpr-on-MS_002dDOS-183"></a>If <var>name</var> is ‘<samp><span class="samp">-</span></samp>’, output goes to standard output. If the first -character of <var>name</var> is ‘<samp><span class="samp">!</span></samp>’ or ‘<samp><span class="samp">|</span></samp>’, then the remainder will -be used as an argument to <code>popen</code>; thus, specifying ‘<samp><span class="samp">|lpr</span></samp>’ as +</p> +<a name="index-popen-for-output"></a> +<a name="index-_002d-as-output-filename"></a> +<a name="index-_0021-starting-output-filename"></a> +<a name="index-_007c-starting-output-filename"></a> +<a name="index-lpr-spooler_002c-MS_002dDOS-emulation"></a> +<a name="index-spooling-to-lpr-on-MS_002dDOS"></a> +<p>If <var>name</var> is ‘<samp>-</samp>’, output goes to standard output. If the first +character of <var>name</var> is ‘<samp>!</samp>’ or ‘<samp>|</samp>’, then the remainder will +be used as an argument to <code>popen</code>; thus, specifying ‘<samp>|lpr</samp>’ as the output file will automatically queue the file for printing as usual. (The MS-DOS version will print to the local printer device -<samp><span class="file">PRN</span></samp> when <var>name</var> is ‘<samp><span class="samp">|lpr</span></samp>’ and a program by that name +<samp>PRN</samp> when <var>name</var> is ‘<samp>|lpr</samp>’ and a program by that name cannot be found.) - - <p>‘<samp><span class="samp">-o</span></samp>’ disables the automatic reading of the <code>PRINTER</code> -environment variable, and turns off the automatic sending of control-D. -See the ‘<samp><span class="samp">-f</span></samp>’ option for how to override this. - - <br><dt>‘<samp><span class="samp">-O </span><var>x-offset</var><span class="samp">,</span><var>y-offset</var></samp>’<dd><a name="index-g_t_002dO-_0040var_007bx_002doffset_007d_002c_0040var_007by_002doffset_007d-184"></a><a name="index-offset-pages-185"></a><a name="index-printer-offset-186"></a>Move the origin by <var>x-offset</var>,<var>y-offset</var>, a comma-separated -pair of dimensions such as ‘<samp><span class="samp">.1in,-.3cm</span></samp>’ (see <a href="#papersize-special">papersize special</a>). The origin of the page is shifted from the default position +</p> +<p>‘<samp>-o</samp>’ disables the automatic reading of the <code>PRINTER</code> +environment variable, and turns off the automatic sending of control-D. +See the ‘<samp>-f</samp>’ option for how to override this. +</p> +</dd> +<dt>‘<samp>-O <var>x-offset</var>,<var>y-offset</var></samp>’</dt> +<dd><a name="index-_002dO-x_002doffset_002cy_002doffset"></a> +<a name="index-offset-pages"></a> +<a name="index-printer-offset"></a> +<p>Move the origin by <var>x-offset</var>,<var>y-offset</var>, a comma-separated +pair of dimensions such as ‘<samp>.1in,-.3cm</samp>’ (see <a href="#papersize-special">papersize special</a>). The origin of the page is shifted from the default position (of one inch down, one inch to the right from the upper left corner of the paper) by this amount. This is usually best specified in the printer-specific configuration file. - - <p><a name="index-testpage_002etex-187"></a>This is useful for a printer that consistently offsets output pages by a -certain amount. You can use the file <samp><span class="file">testpage.tex</span></samp> to determine +</p> +<a name="index-testpage_002etex"></a> +<p>This is useful for a printer that consistently offsets output pages by a +certain amount. You can use the file <samp>testpage.tex</samp> to determine the correct value for your printer. Be sure to do several runs with the same <code>O</code> value—some printers vary widely from run to run. - - <p><a name="index-bop_002dhook_0040r_007b_002c-and-offset-pages_007d-188"></a>If your printer offsets every other page consistently, instead of every -page, your best recourse is to use ‘<samp><span class="samp">bop-hook</span></samp>’ (see <a href="#PostScript-hooks">PostScript hooks</a>). - - <br><dt>‘<samp><span class="samp">-p [=]</span><var>num</var></samp>’<dd><a name="index-g_t_002dp-_005b_003d_005d_0040var_007bnum_007d-189"></a><a name="index-first-page-printed-190"></a><a name="index-page_002c-first-printed-191"></a><a name="index-physical-page-number_002c-and-_0040samp_007b_002dp_007d-192"></a><a name="index-absolute-page-number_002c-and-_0040samp_007b_002dp_007d-193"></a>The first page printed will be the first one numbered <var>num</var>. Default +</p> +<a name="index-bop_002dhook_002c-and-offset-pages"></a> +<p>If your printer offsets every other page consistently, instead of every +page, your best recourse is to use ‘<samp>bop-hook</samp>’ (see <a href="#PostScript-hooks">PostScript hooks</a>). +</p> +</dd> +<dt>‘<samp>-p [=]<var>num</var></samp>’</dt> +<dd><a name="index-_002dp-_005b_003d_005dnum"></a> +<a name="index-first-page-printed"></a> +<a name="index-page_002c-first-printed"></a> +<a name="index-physical-page-number_002c-and-_002dp"></a> +<a name="index-absolute-page-number_002c-and-_002dp"></a> +<p>The first page printed will be the first one numbered <var>num</var>. Default is the first page in the document. If <var>num</var> is prefixed by an -equals sign, then it (and the argument to the ‘<samp><span class="samp">-l</span></samp>’ option, if +equals sign, then it (and the argument to the ‘<samp>-l</samp>’ option, if specified) is treated as a physical (absolute) page number, rather than -a value to compare with the TeX ‘<samp><span class="samp">\count0</span></samp>’ values stored in the -DVI file. Thus, using ‘<samp><span class="samp">-p =3</span></samp>’ will start with the third page of +a value to compare with the TeX ‘<samp>\count0</samp>’ values stored in the +DVI file. Thus, using ‘<samp>-p =3</samp>’ will start with the third page of the document, no matter what the pages are actually numbered. - - <br><dt>‘<samp><span class="samp">-pp </span><var>first</var><span class="samp">-</span><var>last</var></samp>’<dd><a name="index-g_t_002dpp-_0040var_007bfirst_007d_002d_0040var_007blast_007d-194"></a><a name="index-page-range-195"></a><a name="index-g_t_002dpp-_0040var_007brange_007d-196"></a>Print pages <var>first</var> through <var>last</var>; equivalent to ‘<samp><span class="samp">-p -</span><var>first</var><span class="samp"> -l </span><var>last</var></samp>’, except that multiple ‘<samp><span class="samp">-pp</span></samp>’ options -accumulate, unlike ‘<samp><span class="samp">-p</span></samp>’ and ‘<samp><span class="samp">-l</span></samp>’. The ‘<samp><span class="samp">-</span></samp>’ separator can -also be ‘<samp><span class="samp">:</span></samp>’. - - <br><dt>‘<samp><span class="samp">-P </span><var>printer</var></samp>’<dd><a name="index-g_t_002dP-_0040var_007bprinter_007d-197"></a><a name="index-config_002eps-198"></a>Read the configuration file <samp><span class="file">config.</span><var>printer</var></samp> -(<samp><var>printer</var><span class="file">.cfg</span></samp> on MS-DOS), which can set the output name -(most likely ‘<samp><span class="samp">o |lpr -P</span><var>printer</var></samp>’), resolution, Metafont mode, -and perhaps font paths and other printer-specific defaults. It works -best to put sitewide defaults in the one master ‘<samp><span class="samp">config.ps</span></samp>’ file -and only things that vary printer to printer in the -‘<samp><span class="samp">config.</span><var>printer</var></samp>’ files; ‘<samp><span class="samp">config.ps</span></samp>’ is read before -‘<samp><span class="samp">config.</span><var>printer</var></samp>’. - - <p>A configuration file for creating Adobe PDF files is provided in -‘<samp><span class="samp">config.pdf</span></samp>’ and can be loaded with ‘<samp><span class="samp">-Ppdf</span></samp>’, it will try to -include Type1 outline fonts into the PostScript file -(see <a href="#Hypertext-caveats">Hypertext caveats</a>). - - <p>If no ‘<samp><span class="samp">-P</span></samp>’ or ‘<samp><span class="samp">-o</span></samp>’ is given, the environment variable +</p> +</dd> +<dt>‘<samp>-pp <var>first</var>-<var>last</var></samp>’</dt> +<dd><a name="index-_002dpp-first_002dlast"></a> +<a name="index-page-range"></a> +<a name="index-_002dpp-range"></a> +<p>Print pages <var>first</var> through <var>last</var>; equivalent to ‘<samp>-p +<var>first</var> -l <var>last</var></samp>’, except that multiple ‘<samp>-pp</samp>’ options +accumulate, unlike ‘<samp>-p</samp>’ and ‘<samp>-l</samp>’. The ‘<samp>-</samp>’ separator can +also be ‘<samp>:</samp>’. +</p> +</dd> +<dt>‘<samp>-P <var>printer</var></samp>’</dt> +<dd><a name="index-_002dP-printer"></a> +<a name="index-config_002eps"></a> +<p>Read the configuration file <samp>config.<var>printer</var></samp> +(<samp><var>printer</var>.cfg</samp> on MS-DOS), which typically sets the output +name (most likely ‘<samp>o |lpr -P<var>printer</var></samp>’), resolution, Metafont +mode, and perhaps other printer-specific defaults. It works best to +put sitewide defaults in the one master ‘<samp>config.ps</samp>’ file and only +things that vary from printer to printer in the +‘<samp>config.<var>printer</var></samp>’ files; ‘<samp>config.ps</samp>’ is read before +‘<samp>config.<var>printer</var></samp>’. +</p> +<p>A configuration file for eventual creation of Adobe PDF files is +provided in ‘<samp>config.pdf</samp>’ and thus can be loaded with +‘<samp>-Ppdf</samp>’. It will try to include Type 1 outline fonts into the +PostScript file (see <a href="#Hypertext-caveats">Hypertext caveats</a>). +</p> +<p>If no ‘<samp>-P</samp>’ or ‘<samp>-o</samp>’ is given, the environment variable <code>PRINTER</code> is checked. If that variable exists, and a corresponding -<samp><span class="file">config.</span><var>printer</var></samp> (<samp><var>printer</var><span class="file">.cfg</span></samp> on MS-DOS) file -exists, it is read. +<samp>config.<var>printer</var></samp> (<samp><var>printer</var>.cfg</samp> on MS-DOS) file +exists, it is read. See <a href="#Configuration-file-searching">Configuration file searching</a>. - - <br><dt>‘<samp><span class="samp">-q*</span></samp>’<dd><a name="index-g_t_002dq-199"></a><a name="index-quiet-operation-200"></a><a name="index-silent-operation-201"></a><a name="index-warnings_002c-suppressing-202"></a>Run quietly. Don't chatter about pages converted, etc. to standard +</p> +</dd> +<dt>‘<samp>-q*</samp>’</dt> +<dd><a name="index-_002dq"></a> +<a name="index-quiet-operation"></a> +<a name="index-silent-operation"></a> +<a name="index-warnings_002c-suppressing"></a> +<p>Run quietly. Don’t chatter about pages converted, etc. to standard output; report no warnings (only errors) to standard error. - - <br><dt>‘<samp><span class="samp">-r*</span></samp>’<dd><a name="index-g_t_002dr-203"></a><a name="index-reverse-pagination-204"></a>Output pages in reverse order. By default, page 1 is output first. - - <br><dt>‘<samp><span class="samp">-R</span></samp>’<dd><a name="index-g_t_002dR-205"></a><a name="index-security-206"></a><a name="index-shell-command-execution_002c-disabling-207"></a><a name="index-absolute-filenames_002c-disabling-208"></a><a name="index-g_t_0040file_007b_002e_002e_007d_002drelative-filenames-209"></a>Run securely. ‘<samp><span class="samp">-R2</span></samp>’ disables both shell command execution in -<code>\special</code> (via ‘<samp><span class="samp">`</span></samp>’, see <a href="#Dynamic-creation-of-graphics">Dynamic creation of graphics</a>) -and config files (via the ‘<samp><span class="samp">E</span></samp>’ option, see <a href="#Configuration-file-commands">Configuration file commands</a>) and opening of any absolute or <samp><span class="file">..</span></samp>-relative -filenames. ‘<samp><span class="samp">-R1</span></samp>’, the default, forbids shell escapes but allows -absolute filenames. ‘<samp><span class="samp">-R0</span></samp>’ allows both. - - <br><dt>‘<samp><span class="samp">-s*</span></samp>’<dd><a name="index-g_t_002ds-210"></a><a name="index-save_002frestore_002c-generating-global-211"></a>Enclose the output in a global save/restore pair. This causes the file +</p> +</dd> +<dt>‘<samp>-r*</samp>’</dt> +<dd><a name="index-_002dr"></a> +<a name="index-reverse-pagination"></a> +<p>Output pages in reverse order. By default, page 1 is output first. +</p> +</dd> +<dt>‘<samp>-R</samp>’</dt> +<dd><a name="index-_002dR"></a> +<a name="index-security"></a> +<a name="index-shell-command-execution_002c-disabling"></a> +<a name="index-absolute-filenames_002c-disabling"></a> +<a name="index-_002e_002e_002drelative-filenames"></a> +<p>Run securely. ‘<samp>-R2</samp>’ disables both shell command execution in +<code>\special</code> (via ‘<samp>`</samp>’, see <a href="#Dynamic-creation-of-graphics">Dynamic creation of graphics</a>) +and config files (via the ‘<samp>E</samp>’ option, see <a href="#Configuration-file-commands">Configuration file commands</a>) and opening of any absolute or <samp>..</samp>-relative +filenames. ‘<samp>-R1</samp>’, the default, forbids shell escapes but allows +absolute filenames. ‘<samp>-R0</samp>’ allows both. +</p> +</dd> +<dt>‘<samp>-s*</samp>’</dt> +<dd><a name="index-_002ds"></a> +<a name="index-save_002frestore_002c-generating-global"></a> +<p>Enclose the output in a global save/restore pair. This causes the file to not be truly conformant, and is thus not recommended, but is useful -if you are driving a deficient printer directly and thus don't care too +if you are driving a deficient printer directly and thus don’t care too much about the portability of the output to other environments. - - <br><dt>‘<samp><span class="samp">-S </span><var>num</var></samp>’<dd><a name="index-g_t_002dS-_0040var_007bnum_007d-212"></a>Set the maximum number of pages in each `section'. This option is most -commonly used with the ‘<samp><span class="samp">-i</span></samp>’ option; see its description above for +</p> +</dd> +<dt>‘<samp>-S <var>num</var></samp>’</dt> +<dd><a name="index-_002dS-num"></a> +<p>Set the maximum number of pages in each ‘section’. This option is most +commonly used with the ‘<samp>-i</samp>’ option; see its description above for more information. - - <br><dt>‘<samp><span class="samp">-t </span><var>papertype</var></samp>’<dd><a name="index-g_t_002dt-_0040var_007bpapertype_007d-213"></a><a name="index-paper-type-214"></a><a name="index-media-215"></a><a name="index-letter-papertype-216"></a><a name="index-legal-papertype-217"></a><a name="index-ledger-papertype-218"></a><a name="index-a4-papertype-219"></a><a name="index-a3-papertype-220"></a><a name="index-landscape-papertype-221"></a><a name="index-papersize-special_002c-and-no-_0040samp_007b_002dt_007d-222"></a>Set the paper type to <var>papertype</var>, usually defined in one of the +</p> +</dd> +<dt>‘<samp>-t <var>papertype</var></samp>’</dt> +<dd><a name="index-_002dt-papertype"></a> +<a name="index-paper-type"></a> +<a name="index-media"></a> +<a name="index-letter-papertype"></a> +<a name="index-legal-papertype"></a> +<a name="index-ledger-papertype"></a> +<a name="index-a4-papertype"></a> +<a name="index-a3-papertype"></a> +<a name="index-landscape-papertype"></a> +<a name="index-papersize-special_002c-and-no-_002dt"></a> +<p>Set the paper type to <var>papertype</var>, usually defined in one of the configuration files, along with the appropriate PostScript code to select it (see <a href="#Config-file-paper-sizes">Config file paper sizes</a>). - <ul> -<li>You can also specify a <var>papertype</var> of ‘<samp><span class="samp">landscape</span></samp>’, -which rotates a document by 90 degrees. -<li>To rotate a document whose paper type is not the default, you -can use the ‘<samp><span class="samp">-t</span></samp>’ option twice, once for the paper type, and once -for ‘<samp><span class="samp">landscape</span></samp>’. -<li>In general, you should not use any ‘<samp><span class="samp">-t</span></samp>’ option when -using a ‘<samp><span class="samp">papersize</span></samp>’ special, which some LaTeX packages (e.g., -‘<samp><span class="samp">hyperref</span></samp>’) insert. -<li>One exception is when using a nonstandard paper size that is not -already defined in <samp><span class="file">config.ps</span></samp>; in this case, you need to specify -‘<samp><span class="samp">-t unknown</span></samp>’. -<li>Another exception is when producing multi-page files for further -processing; use ‘<samp><span class="samp">-t nopaper</span></samp>’ to omit any paper size +</p><ul class="no-bullet"> +<li>- You can also specify a <var>papertype</var> of ‘<samp>landscape</samp>’, +which rotates a document by 90 degrees. +</li><li>- To rotate a document whose paper type is not the default, you +can use the ‘<samp>-t</samp>’ option twice, once for the paper type, and once +for ‘<samp>landscape</samp>’. +</li><li>- In general, you should not use any ‘<samp>-t</samp>’ option when +using a ‘<samp>papersize</samp>’ special, which some LaTeX packages (e.g., +‘<samp>hyperref</samp>’) insert. +</li><li>- One exception is when using a nonstandard paper size that is not +already defined in <samp>config.ps</samp>; in this case, you need to specify +‘<samp>-t unknown</samp>’. +</li><li>- Another exception is when producing multi-page files for further +processing; use ‘<samp>-t nopaper</samp>’ to omit any paper size information in the output. (If you just have a single page document, -you can use ‘<samp><span class="samp">-E</span></samp>’ to get pure EPSF output.) -</ul> +you can use ‘<samp>-E</samp>’ to get pure EPSF output.) +</li></ul> - <br><dt>‘<samp><span class="samp">-T </span><var>hsize</var><span class="samp">,</span><var>vsize</var></samp>’<dd><a name="index-g_t_002dT-_0040var_007bhsize_007d_002c_0040var_007bvsize_007d-223"></a>Set the paper size to (<var>hsize</var>,<var>vsize</var>), a comma-separated -pair of dimensions such as ‘<samp><span class="samp">.1in,-.3cm</span></samp>’ (see <a href="#papersize-special">papersize special</a>). It overrides any paper size special in the DVI file. Be +</dd> +<dt>‘<samp>-T <var>hsize</var>,<var>vsize</var></samp>’</dt> +<dd><a name="index-_002dT-hsize_002cvsize"></a> +<p>Set the paper size to (<var>hsize</var>,<var>vsize</var>), a comma-separated +pair of dimensions such as ‘<samp>.1in,-.3cm</samp>’ (see <a href="#papersize-special">papersize special</a>). It overrides any paper size special in the DVI file. Be careful, as the paper size will stick to a predefined size if there is -one close enough. To disable this behavior, use ‘<samp><span class="samp">-tunknown</span></samp>’. - - <br><dt>‘<samp><span class="samp">-u </span><var>psmapfile</var></samp>’<dd><a name="index-g_t_002du-_0040var_007bpsmapfile_007d-224"></a><a name="index-PostScript-font-alias-file-225"></a><a name="index-resident-fonts_002c-different-in-different-printers-226"></a>Set <var>psmapfile</var> to be the file that dvips uses for looking up -PostScript font aliases. If <var>psmapfile</var> begins with a ‘<samp><span class="samp">+</span></samp>’ +one close enough. To disable this behavior, use ‘<samp>-tunknown</samp>’. +</p> +</dd> +<dt>‘<samp>-u <var>psmapfile</var></samp>’</dt> +<dd><a name="index-_002du-psmapfile"></a> +<a name="index-PostScript-font-alias-file"></a> +<a name="index-resident-fonts_002c-different-in-different-printers"></a> +<p>Set <var>psmapfile</var> to be the file that dvips uses for looking up +PostScript font aliases. If <var>psmapfile</var> begins with a ‘<samp>+</samp>’ character, then the rest of the name is used as the name of the map file, and the map file is appended to the list of map files (instead of replacing -the list). In either case, if the name has no extension, then ‘<samp><span class="samp">.map</span></samp>’ +the list). In either case, if the name has no extension, then ‘<samp>.map</samp>’ is added at the end. - - <br><dt>‘<samp><span class="samp">-U*</span></samp>’<dd><a name="index-g_t_002dU-227"></a><a name="index-Xerox-4045-228"></a>Disable a PostScript virtual memory-saving optimization that stores the +</p> +</dd> +<dt>‘<samp>-U*</samp>’</dt> +<dd><a name="index-_002dU"></a> +<a name="index-Xerox-4045"></a> +<p>Disable a PostScript virtual memory-saving optimization that stores the character metric information in the same string that is used to store the bitmap information. This is only necessary when driving the Xerox 4045 PostScript interpreter, which has a bug that puts garbage on the bottom of each character. Not recommended unless you must drive this printer. - - <br><dt>‘<samp><span class="samp">-v</span></samp>’<dd><a name="index-g_t_002dv-229"></a>Print the dvips version number and exit. - - <br><dt>‘<samp><span class="samp">-V*</span></samp>’<dd><a name="index-g_t_002dV-230"></a>Download non-resident PostScript fonts as bitmaps. This requires use -<a name="index-mtpk-231"></a><a name="index-gsftopk-232"></a><a name="index-pstopk-233"></a>of <code>mtpk</code> or <code>gsftopk</code> or <code>pstopk</code> or some combination +</p> +</dd> +<dt>‘<samp>-v</samp>’</dt> +<dd><a name="index-_002dv"></a> +<p>Print the dvips version number and exit. +</p> +</dd> +<dt>‘<samp>-V*</samp>’</dt> +<dd><a name="index-_002dV"></a> +<p>Download non-resident PostScript fonts as bitmaps. This requires use +<a name="index-mtpk"></a> +<a name="index-gsftopk"></a> +<a name="index-pstopk"></a> +of <code>mtpk</code> or <code>gsftopk</code> or <code>pstopk</code> or some combination thereof to generate the required bitmap fonts; these programs are -supplied with Dvips. The bitmap must be put into <samp><span class="file">psfonts.map</span></samp> as +supplied with Dvips. The bitmap must be put into <samp>psfonts.map</samp> as the downloadable file for that font. This is useful only for those fonts for which you do not have real outlines, being downloaded to printers that have no resident fonts, i.e., very rarely. +</p> - <br><dt>‘<samp><span class="samp">-x </span><var>num</var></samp>’<dd><a name="index-g_t_002dx-_0040var_007bnum_007d-234"></a><a name="index-magnification_002c-overriding-DVI-235"></a>Set the magnification ratio to <var>num</var>/1000. Overrides +</dd> +<dt>‘<samp>-x <var>num</var></samp>’</dt> +<dd><a name="index-_002dx-num"></a> +<a name="index-magnification_002c-overriding-DVI"></a> +<p>Set the magnification ratio to <em><var>num</var>/1000</em>. Overrides the magnification specified in the DVI file. Must be between 10 and 100000. It is recommended that you use standard magstep values (1095, 1200, 1440, 1728, 2074, 2488, 2986, and so on) to help reduce the total number of PK files generated. <var>num</var> may be a real number, not an integer, for increased precision. - - <br><dt>‘<samp><span class="samp">-X </span><var>num</var></samp>’<dd><a name="index-g_t_002dX-_0040var_007bnum_007d-236"></a><a name="index-resolution-237"></a>Set the horizontal resolution in dots per inch to <var>num</var>. - - <br><dt>‘<samp><span class="samp">-y </span><var>num</var></samp>’<dd><a name="index-magnification_002c-vertical-238"></a>Set the magnification ratio to <var>num</var>/1000 times the +</p> +</dd> +<dt>‘<samp>-X <var>num</var></samp>’</dt> +<dd><a name="index-_002dX-num"></a> +<a name="index-resolution"></a> +<p>Set the horizontal resolution in dots per inch to <var>num</var>. +</p> +</dd> +<dt>‘<samp>-y <var>num</var></samp>’</dt> +<dd><a name="index-magnification_002c-vertical"></a> +<p>Set the magnification ratio to <em><var>num</var>/1000</em> times the magnification specified in the DVI file. See -‘<samp><span class="samp">-x</span></samp>’ above. - - <br><dt>‘<samp><span class="samp">-Y </span><var>num</var></samp>’<dd><a name="index-g_t_002dY-_0040var_007bnum_007d-239"></a>Set the vertical resolution in dots per inch to <var>num.</var> -<a name="index-resolution-240"></a> -<br><dt>‘<samp><span class="samp">-z*</span></samp>’<dd><a name="index-g_t_002dz-_0040r_007bfor-recognizing-hyperdvi_007d-241"></a><a name="index-hyperdvi-extensions_002c-enabling-242"></a><a name="index-distillation_002c-and-_0040samp_007b_002dz_007d-243"></a><a name="index-PDF-files_002c-option-for-244"></a><a name="index-html-_0040r_007bspecials_002c-and-_0040samp_007b_002dz_007d_007d-245"></a>Pass ‘<samp><span class="samp">html</span></samp>’ hyperdvi specials through to the output for eventual +‘<samp>-x</samp>’ above. +</p> +</dd> +<dt>‘<samp>-Y <var>num</var></samp>’</dt> +<dd><a name="index-_002dY-num"></a> +<p>Set the vertical resolution in dots per inch to <var>num.</var> +<a name="index-resolution-1"></a> +</p> +</dd> +<dt>‘<samp>-z*</samp>’</dt> +<dd><a name="index-_002dz-for-recognizing-hyperdvi"></a> +<a name="index-hyperdvi-extensions_002c-enabling"></a> +<a name="index-distillation_002c-and-_002dz"></a> +<a name="index-PDF-files_002c-option-for"></a> +<a name="index-html-specials_002c-and-_002dz"></a> +<p>Pass ‘<samp>html</samp>’ hyperdvi specials through to the output for eventual distillation into PDF. This is not enabled by default to avoid including the header files unnecessarily, and use of temporary files in creating the output. See <a href="#Hypertext">Hypertext</a>. - - <br><dt>‘<samp><span class="samp">-Z*</span></samp>’<dd><a name="index-g_t_002dZ-_0040r_007bfor-compressing-bitmap-fonts_007d-246"></a><a name="index-compressing-bitmap-fonts-247"></a>Compress bitmap fonts in the output file, thereby reducing the size of +</p> +</dd> +<dt>‘<samp>-Z*</samp>’</dt> +<dd><a name="index-_002dZ-for-compressing-bitmap-fonts"></a> +<a name="index-compressing-bitmap-fonts"></a> +<p>Compress bitmap fonts in the output file, thereby reducing the size of what gets downloaded. Especially useful at high resolutions or when very large fonts are used. May slow down printing, especially on early 68000-based PostScript printers. Generally recommend today, and can be enabled in the configuration file (see <a href="#Configuration-file-commands">Configuration file commands</a>). +</p> +</dd> +</dl> - </dl> -<div class="node"> +<hr> <a name="Environment-variables"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Config-files">Config files</a>, -Previous: <a rel="previous" accesskey="p" href="#Command_002dline-options">Command-line options</a>, -Up: <a rel="up" accesskey="u" href="#Invoking-Dvips">Invoking Dvips</a> - +<div class="header"> +<p> +Next: <a href="#Config-files" accesskey="n" rel="next">Config files</a>, Previous: <a href="#Command_002dline-options" accesskey="p" rel="prev">Command-line options</a>, Up: <a href="#Invoking-Dvips" accesskey="u" rel="up">Invoking Dvips</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Environment-variables-1"></a> <h3 class="section">3.3 Environment variables</h3> -<p><a name="index-environment-variables-248"></a> -Dvips looks for many environment variables, to define search paths and +<a name="index-environment-variables"></a> + +<p>Dvips looks for many environment variables, to define search paths and other things. The path variables are read as needed, after all configuration files are read, so they override values in the configuration files. (Except for <code>TEXCONFIG</code>, which defines where the configuration files themselves are found.) - - <p>See <a href="kpathsea.html#Path-specifications">Path specifications</a>, for details of +</p> +<p>See <a href="kpathsea.html#Path-specifications">Path specifications</a> in <cite>Kpathsea</cite>, for details of interpretation of path and other environment variables common to all Kpathsea-using programs. Only the environment variables specific to Dvips are mentioned here. - - <dl> -<dt><code>DVIPSDEBUG</code><a name="index-DVIPSDEBUG-249"></a><dd><a name="index-KPATHSEA_005fDEBUG-250"></a>Write the absolute path names of any configuration or map files to -standard output, for debugging. This isn't done by default because +</p> +<dl compact="compact"> +<dt><code>DVIPSDEBUG</code> +<a name="index-DVIPSDEBUG"></a> +</dt> +<dd><a name="index-KPATHSEA_005fDEBUG"></a> +<p>Write the absolute path names of any configuration or map files to +standard output, for debugging. This isn’t done by default because these files are read even before the banner is printed. For voluminous additional debugging, set the environment variable -<samp><span class="env">KPATHSEA_DEBUG</span></samp> to ‘<samp><span class="samp">-1</span></samp>’ -(see <a href="kpathsea.html#Debugging">Debugging</a>). (If <samp><span class="env">KPATHSEA_DEBUG</span></samp> is -set to any value, it automatically turns on <samp><span class="env">DVIPSDEBUG</span></samp>.) - - <br><dt><code>DVIPSFONTS</code><a name="index-DVIPSFONTS-251"></a><dd>Default path to search for all fonts. Overrides all the font path -config file options and other environment variables (see <a href="kpathsea.html#Supported-file-formats">Supported file formats</a>). - - <br><dt><code>DVIPSHEADERS</code><a name="index-DVIPSHEADERS-252"></a><dd>Default path to search for PostScript header files. Overrides the ‘<samp><span class="samp">H</span></samp>’ +<code>KPATHSEA_DEBUG</code> to ‘<samp>-1</samp>’ +(see <a href="kpathsea.html#Debugging">Debugging</a> in <cite>Kpathsea</cite>). (If <code>KPATHSEA_DEBUG</code> is +set to any value, it automatically turns on <code>DVIPSDEBUG</code>.) +</p> +</dd> +<dt><code>DVIPSFONTS</code> +<a name="index-DVIPSFONTS"></a> +</dt> +<dd><p>Default path to search for all fonts. Overrides all the font path +config file options and other environment variables (see <a href="kpathsea.html#Supported-file-formats">Supported +file formats</a> in <cite>Kpathsea</cite>). +</p> +</dd> +<dt><code>DVIPSHEADERS</code> +<a name="index-DVIPSHEADERS"></a> +</dt> +<dd><p>Default path to search for PostScript header files. Overrides the ‘<samp>H</samp>’ config file option (see <a href="#Configuration-file-commands">Configuration file commands</a>). - - <br><dt><code>DVIPSMAKEPK</code><a name="index-DVIPSMAKEPK-253"></a><dd><a name="index-mktexpk_0040r_007b_002c-changing-name_007d-254"></a>Overrides ‘<samp><span class="samp">mktexpk</span></samp>’ as the name of the program to invoke to +</p> +</dd> +<dt><code>DVIPSMAKEPK</code> +<a name="index-DVIPSMAKEPK"></a> +</dt> +<dd><a name="index-mktexpk_002c-changing-name"></a> +<p>Overrides ‘<samp>mktexpk</samp>’ as the name of the program to invoke to create missing PK fonts. You can change the arguments passed to the <code>mktexpk</code> program with the <code>MAKETEXPK</code> environment -variable; see <a href="kpathsea.html#MakeTeX-script-arguments">MakeTeX script arguments</a>. - - <br><dt><code>DVIPSRC</code><a name="index-DVIPSRC-255"></a><dd>Specifies the name of the startup file (see <a href="#Configuration-file-searching">Configuration file searching</a>) which is read after <samp><span class="file">config.ps</span></samp> but before any +variable; see <a href="kpathsea.html#MakeTeX-script-arguments">MakeTeX script arguments</a> in <cite>Kpathsea</cite>. +</p> +</dd> +<dt><code>DVIPSRC</code> +<a name="index-DVIPSRC"></a> +</dt> +<dd><p>Specifies the name of the startup file (see <a href="#Configuration-file-searching">Configuration file searching</a>) which is read after <samp>config.ps</samp> but before any printer-specific configuration files. - - <br><dt><code>DVIPSSIZES</code><a name="index-DVIPSSIZES-256"></a><dd><a name="index-last_002dresort-font-scaling_002c-with-_0040code_007bDVIPSSIZES_007d-257"></a>Last-resort sizes for scaling of unfound fonts. Overrides the ‘<samp><span class="samp">R</span></samp>’ +</p> +</dd> +<dt><code>DVIPSSIZES</code> +<a name="index-DVIPSSIZES"></a> +</dt> +<dd><a name="index-last_002dresort-font-scaling_002c-with-DVIPSSIZES"></a> +<p>Last-resort sizes for scaling of unfound fonts. Overrides the ‘<samp>R</samp>’ definition in config files (see <a href="#Configuration-file-commands">Configuration file commands</a>). - - <br><dt><code>PRINTER</code><a name="index-PRINTER-258"></a><dd>Determine the default printer configuration file. (Dvips itself does +</p> +</dd> +<dt><code>PRINTER</code> +<a name="index-PRINTER"></a> +</dt> +<dd><p>Determine the default printer configuration file. (Dvips itself does not use <code>PRINTER</code> to determine the output destination in any way.) - - <br><dt><code>TEXCONFIG</code><a name="index-TEXCONFIG-259"></a><dd><a name="index-configuration-file-path-260"></a>Path to search for Dvips' <samp><span class="file">config.</span><var>printer</var></samp> configuration -files, including the base <samp><span class="file">config.ps</span></samp>. Using this single +</p> +</dd> +<dt><code>TEXCONFIG</code> +<a name="index-TEXCONFIG"></a> +</dt> +<dd><a name="index-configuration-file-path"></a> +<p>Path to search for Dvips’ <samp>config.<var>printer</var></samp> configuration +files, including the base <samp>config.ps</samp>. Using this single environment variable, you can override everything else. (The -printer-specific configuration files are called <samp><var>printer</var><span class="file">.cfg</span></samp> -on MS-DOS, but <samp><span class="file">config.ps</span></samp> is called by that name on all +printer-specific configuration files are called <samp><var>printer</var>.cfg</samp> +on MS-DOS, but <samp>config.ps</samp> is called by that name on all platforms.) - - <br><dt><code>TEXPICTS</code><a name="index-TEXPICTS-261"></a><dd>Path to search for included graphics files. Overrides the ‘<samp><span class="samp">S</span></samp>’ +</p> +</dd> +<dt><code>TEXPICTS</code> +<a name="index-TEXPICTS"></a> +</dt> +<dd><p>Path to search for included graphics files. Overrides the ‘<samp>S</samp>’ config file option (see <a href="#Configuration-file-commands">Configuration file commands</a>). If not set, -<code>TEXINPUTS</code> is looked for. See <a href="kpathsea.html#Supported-file-formats">Supported file formats</a>. +<code>TEXINPUTS</code> is looked for. See <a href="kpathsea.html#Supported-file-formats">Supported file formats</a> in <cite>Kpathsea</cite>. +</p> +</dd> +</dl> - </dl> -<div class="node"> +<hr> <a name="Config-files"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Environment-variables">Environment variables</a>, -Up: <a rel="up" accesskey="u" href="#Invoking-Dvips">Invoking Dvips</a> - +<div class="header"> +<p> +Previous: <a href="#Environment-variables" accesskey="p" rel="prev">Environment variables</a>, Up: <a href="#Invoking-Dvips" accesskey="u" rel="up">Invoking Dvips</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Dvips-configuration-files"></a> <h3 class="section">3.4 Dvips configuration files</h3> -<p><a name="index-configuration-files-262"></a> -This section describes in detail the Dvips-specific <samp><span class="file">config.*</span></samp> -device configuration files (called <samp><span class="file">*.cfg</span></samp> on MS-DOS), which -override the <samp><span class="file">texmf.cnf</span></samp> -configuration files generic to Kpathsea which Dvips also reads -(see <a href="kpathsea.html#Config-files">Config files</a>). +<a name="index-configuration-files"></a> - <p>For information about installing these files, including a prototype file +<p>This section describes in detail the Dvips-specific <samp>config.*</samp> +device configuration files (called <samp>*.cfg</samp> on MS-DOS), which +override the <samp>texmf.cnf</samp> +configuration files generic to Kpathsea which Dvips also reads +(see <a href="kpathsea.html#Config-files">Config files</a> in <cite>Kpathsea</cite>). +</p> +<p>For information about installing these files, including a prototype file you can copy, see <a href="#config_002eps-installation">config.ps installation</a>. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Configuration-file-searching" accesskey="1">Configuration file searching</a>:</td><td> </td><td align="left" valign="top">Where config.* files are searched for. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Configuration-file-commands" accesskey="2">Configuration file commands</a>:</td><td> </td><td align="left" valign="top">What can go in a config.* file. +</td></tr> +</table> -<ul class="menu"> -<li><a accesskey="1" href="#Configuration-file-searching">Configuration file searching</a>: Where config.* files are searched for. -<li><a accesskey="2" href="#Configuration-file-commands">Configuration file commands</a>: What can go in a config.* file. -</ul> -<div class="node"> +<hr> <a name="Configuration-file-searching"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Configuration-file-commands">Configuration file commands</a>, -Up: <a rel="up" accesskey="u" href="#Config-files">Config files</a> - +<div class="header"> +<p> +Next: <a href="#Configuration-file-commands" accesskey="n" rel="next">Configuration file commands</a>, Up: <a href="#Config-files" accesskey="u" rel="up">Config files</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Configuration-file-searching-1"></a> <h4 class="subsection">3.4.1 Configuration file searching</h4> -<p><a name="index-configuration-file-searching-263"></a><a name="index-searching-config-files_002c-order-of-264"></a> -The Dvips program loads many different configuration files, so that +<a name="index-configuration-file-searching"></a> +<a name="index-searching-config-files_002c-order-of"></a> + +<p>The Dvips program loads many different configuration files, so that parameters can be set globally across the system, on a per-device basis, or individually by each user. - - <ol type=1 start=1> -<li><a name="index-config_002eps_0040r_007b_002c-searched-for_007d-265"></a>Dvips first reads (if it exists) <samp><span class="file">config.ps</span></samp>; it is searched for +</p> +<ol> +<li> <a name="index-config_002eps_002c-searched-for"></a> +Dvips first reads (if it exists) <samp>config.ps</samp>; it is searched for along the path for Dvips configuration files, as described in -<a href="kpathsea.html#Supported-file-formats">Supported file formats</a>. +<a href="kpathsea.html#Supported-file-formats">Supported file formats</a> in <cite>Kpathsea</cite>. - <li><a name="index-g_t_002edvipsrc_0040r_007b_002c-searched-for_007d-266"></a>A user-specific startup file is loaded, so individual users can override +</li><li> <a name="index-_002edvipsrc_002c-searched-for"></a> +A user-specific startup file is loaded, so individual users can override any options set in the global file. The environment variable <code>DVIPSRC</code>, if defined, is used as the specification of the startup file. If this variable is undefined, Dvips uses a platform-specific default name. On Unix Dvips looks for the default startup file under -the name <samp><span class="file">$HOME/.dvipsrc</span></samp>, which is in the user's home directory. -On MS-DOS and MS-Windows, where users generally don't have their private -directories, the startup file is called <samp><span class="file">dvips.ini</span></samp> and it is +the name <samp>$HOME/.dvipsrc</samp>, which is in the user’s home directory. +On MS-DOS and MS-Windows, where users generally don’t have their private +directories, the startup file is called <samp>dvips.ini</samp> and it is searched for along the path for Dvips configuration files (as described -in <a href="kpathsea.html#Supported-file-formats">Supported file formats</a>.); users are +in <a href="kpathsea.html#Supported-file-formats">Supported file formats</a> in <cite>Kpathsea</cite>.); users are expected to set this path as they see fit for their taste. - <li><a name="index-g_t_002dP_0040var_007bprinter_007d_0040r_007b_002c-and-config-file-searching_007d-267"></a>The command line is read and parsed: if the ‘<samp><span class="samp">-P</span><var>device</var></samp>’ option -is encountered, at that point <samp><span class="file">config.</span><var>device</var></samp> is loaded. +</li><li> <a name="index-_002dPprinter_002c-and-config-file-searching"></a> +The command line is read and parsed: if the ‘<samp>-P<var>device</var></samp>’ option +is encountered, at that point <samp>config.<var>device</var></samp> is loaded. Thus, the printer configuration file can override anything in the site-wide or user configuration file, and it can also override options -in the command line up to the point that the ‘<samp><span class="samp">-P</span></samp>’ option was +in the command line up to the point that the ‘<samp>-P</samp>’ option was encountered. (On MS-DOS, the printer configuration files are called -<samp><var>device</var><span class="file">.cfg</span></samp>, since DOS doesn't allow more than 3 characters +<samp><var>device</var>.cfg</samp>, since DOS doesn’t allow more than 3 characters after the dot in filenames.) - <li><a name="index-PRINTER_0040r_007b_002c-and-config-file-searching_007d-268"></a>If no ‘<samp><span class="samp">-P</span></samp>’ option was specified, and also the ‘<samp><span class="samp">-o</span></samp>’ and -‘<samp><span class="samp">-f</span></samp>’ command line options were not used, Dvips checks the +</li><li> <a name="index-PRINTER_002c-and-config-file-searching"></a> +If no ‘<samp>-P</samp>’ option was specified, and also the ‘<samp>-o</samp>’ and +‘<samp>-f</samp>’ command line options were not used, Dvips checks the environment variable <code>PRINTER</code>. If it exists, then -<samp><span class="file">config.</span><var>$PRINTER</var></samp> (<samp><var>$PRINTER</var><span class="file">.cfg</span></samp> on MS-DOS) is +<samp>config.<var>$PRINTER</var></samp> (<samp><var>$PRINTER</var>.cfg</samp> on MS-DOS) is loaded (if it exists). - </ol> +</li></ol> - <p>Because the <samp><span class="file">.dvipsrc</span></samp> file is read before the printer-specific +<p>Because the <samp>.dvipsrc</samp> file is read before the printer-specific configuration files, individual users cannot override settings in the latter. On the other hand, the <code>TEXCONFIG</code> path usually includes the current directory, and can in any case be set to anything, so the users can always define their own printer-specific configuration files -to be found before the system's. - - <p>A few command-line options are treated specially, in that they are not +to be found before the system’s. +</p> +<p>A few command-line options are treated specially, in that they are not overridden by configuration files: - - <dl> -<dt>‘<samp><span class="samp">-D</span></samp>’<dd>As well as setting the resolution, this unsets the mode, if the mode was -previously set from a configuration file. If <samp><span class="file">config.$PRINTER</span></samp> is -read, however, any ‘<samp><span class="samp">D</span></samp>’ or ‘<samp><span class="samp">M</span></samp>’ lines from there will take +</p> +<dl compact="compact"> +<dt>‘<samp>-D</samp>’</dt> +<dd><p>As well as setting the resolution, this unsets the mode, if the mode was +previously set from a configuration file. If <samp>config.$PRINTER</samp> is +read, however, any ‘<samp>D</samp>’ or ‘<samp>M</samp>’ lines from there will take effect. +</p> +</dd> +<dt>‘<samp>-mode</samp>’</dt> +<dd><p>This overrides any mode setting (‘<samp>M</samp>’ line) in configuration files. +‘<samp>-mode</samp>’ does not affect the resolution. +</p> +</dd> +<dt>‘<samp>-o</samp>’</dt> +<dd><p>This overrides any output setting (‘<samp>o</samp>’ line) in configuration files. +</p> +</dd> +</dl> - <br><dt>‘<samp><span class="samp">-mode</span></samp>’<dd>This overrides any mode setting (‘<samp><span class="samp">M</span></samp>’ line) in configuration files. -‘<samp><span class="samp">-mode</span></samp>’ does not affect the resolution. - - <br><dt>‘<samp><span class="samp">-o</span></samp>’<dd>This overrides any output setting (‘<samp><span class="samp">o</span></samp>’ line) in configuration files. - - </dl> - - <p>The purpose of these special cases is to (1) minimize the chance of -having a mismatched mode and resolution (which ‘<samp><span class="samp">mktexpk</span></samp>’ cannot +<p>The purpose of these special cases is to (1) minimize the chance of +having a mismatched mode and resolution (which ‘<samp>mktexpk</samp>’ cannot resolve), and (2) let command-line options override config files where possible. +</p> -<div class="node"> +<hr> <a name="Configuration-file-commands"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Configuration-file-searching">Configuration file searching</a>, -Up: <a rel="up" accesskey="u" href="#Config-files">Config files</a> - +<div class="header"> +<p> +Previous: <a href="#Configuration-file-searching" accesskey="p" rel="prev">Configuration file searching</a>, Up: <a href="#Config-files" accesskey="u" rel="up">Config files</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Configuration-file-commands-1"></a> <h4 class="subsection">3.4.2 Configuration file commands</h4> -<p><a name="index-configuration-file-options-269"></a><a name="index-Dvips-configuration-file-options-270"></a> -Most of the configuration file commands are similar to corresponding +<a name="index-configuration-file-options"></a> +<a name="index-Dvips-configuration-file-options"></a> + +<p>Most of the configuration file commands are similar to corresponding command line options, but there are a few exceptions. When they are the same, we omit the description here. - - <p>As with command line options, many may be turned off by suffixing the -letter with a zero (‘<samp><span class="samp">0</span></samp>’). - - <p><a name="index-comments_002c-in-configuration-files-271"></a><a name="index-continuation-lines_002c-not-supported-272"></a>Within a configuration file, empty lines, and lines starting with a -space, asterisk, equal sign, percent sign, or pound sign are ignored. +</p> +<p>As with command line options, many may be turned off by suffixing the +letter with a zero (‘<samp>0</samp>’). +</p> +<a name="index-comments_002c-in-configuration-files"></a> +<a name="index-continuation-lines_002c-not-supported"></a> +<p>Within a configuration file, empty lines, and lines starting with a +space, asterisk, equal sign, percent sign, or pound sign are ignored. There is no provision for continuation lines. - - <dl> -<dt>‘<samp><span class="samp">@ </span><var>name hsize vsize</var></samp>’<dd><a name="index-g_t_0040_0040-_0040r_007bpaper-size-config-command_007d-273"></a>Define paper sizes. See <a href="#Config-file-paper-sizes">Config file paper sizes</a>. - - <br><dt>‘<samp><span class="samp">a*</span></samp>’<dd><a name="index-a-_0040r_007bconfig-command-_0028memory-conservation_0029_007d-274"></a>Memory conservation. Same as ‘<samp><span class="samp">-a</span></samp>’, see <a href="#Option-details">Option details</a>. - - <br><dt>‘<samp><span class="samp">b </span><var>#copies</var></samp>’<dd><a name="index-b-_0040r_007bconfig-command-_0028_0023copies_0029_007d-275"></a>Multiple copies. Same as ‘<samp><span class="samp">-b</span></samp>’, see <a href="#Option-details">Option details</a>. - - <br><dt>‘<samp><span class="samp">c </span><var>filename</var></samp>’<dd><a name="index-c-_0040r_007binclude-additional-config-file_007d-276"></a>Include <var>filename</var> as an additional configuration file, read +</p> +<dl compact="compact"> +<dt>‘<samp>@ <var>name hsize vsize</var></samp>’</dt> +<dd><a name="index-_0040-paper-size-config-command"></a> +<p>Define paper sizes. See <a href="#Config-file-paper-sizes">Config file paper sizes</a>. +</p> +</dd> +<dt>‘<samp>a*</samp>’</dt> +<dd><a name="index-a-config-command-_0028memory-conservation_0029"></a> +<p>Memory conservation. Same as ‘<samp>-a</samp>’, see <a href="#Option-details">Option details</a>. +</p> +</dd> +<dt>‘<samp>b <var>#copies</var></samp>’</dt> +<dd><a name="index-b-config-command-_0028_0023copies_0029"></a> +<p>Multiple copies. Same as ‘<samp>-b</samp>’, see <a href="#Option-details">Option details</a>. +</p> +</dd> +<dt>‘<samp>c <var>filename</var></samp>’</dt> +<dd><a name="index-c-include-additional-config-file"></a> +<p>Include <var>filename</var> as an additional configuration file, read immediately. - - <br><dt>‘<samp><span class="samp">D </span><var>dpi</var></samp>’<dd><a name="index-D-_0040r_007bconfig-command-_0028dpi_0029_007d-277"></a>Output resolution. Same as ‘<samp><span class="samp">-D</span></samp>’, see <a href="#Option-details">Option details</a>. - - <br><dt>‘<samp><span class="samp">e </span><var>num</var></samp>’<dd><a name="index-e-_0040r_007bconfig-command-_0028maxdrift_0029_007d-278"></a>Max drift. Same as ‘<samp><span class="samp">-e</span></samp>’, see <a href="#Option-details">Option details</a>. - - <br><dt>‘<samp><span class="samp">E </span><var>command</var></samp>’<dd><a name="index-E-_0040r_007bconfig-command-_0028shell-escape_0029_007d-279"></a><a name="index-system-_0040r_007bin-config-file_007d-280"></a><a name="index-datestamp_002c-in-output-281"></a><a name="index-shell-escape_002c-in-config-file-282"></a>Executes the command listed with <code>system</code>(3); can be used to get -the current date into a header file for inclusion, for instance. +</p> +</dd> +<dt>‘<samp>D <var>dpi</var></samp>’</dt> +<dd><a name="index-D-config-command-_0028dpi_0029"></a> +<p>Output resolution. Same as ‘<samp>-D</samp>’, see <a href="#Option-details">Option details</a>. +</p> +</dd> +<dt>‘<samp>e <var>num</var></samp>’</dt> +<dd><a name="index-e-config-command-_0028maxdrift_0029"></a> +<p>Max drift. Same as ‘<samp>-e</samp>’, see <a href="#Option-details">Option details</a>. +</p> +</dd> +<dt>‘<samp>E <var>command</var></samp>’</dt> +<dd><a name="index-E-config-command-_0028shell-escape_0029"></a> +<a name="index-system-in-config-file"></a> +<a name="index-datestamp_002c-in-output"></a> +<a name="index-shell-escape_002c-in-config-file"></a> +<p>Executes the command listed with <code>system</code>(3); can be used to get +the current date into a header file for inclusion, for instance. Possibly dangerous; this may be disabled, in which case a warning will be printed if the option is used (and warnings are not suppressed). - - <br><dt>‘<samp><span class="samp">f*</span></samp>’<dt>‘<samp><span class="samp">F</span></samp>’<dd><a name="index-f-_0040r_007bconfig-command-_0028filter_0029_007d-283"></a><a name="index-F-_0040r_007bconfig-command-_0028filter_0029_007d-284"></a>Run as a filter. Same as ‘<samp><span class="samp">-f</span></samp>’, see <a href="#Option-details">Option details</a>. - - <br><dt>‘<samp><span class="samp">G*</span></samp>’<dd><a name="index-G-_0040r_007bcharacter-shifting-config-command_007d-285"></a>Shift low-numbered characters; obsolete. Same as ‘<samp><span class="samp">-G</span></samp>’, +</p> +</dd> +<dt>‘<samp>f*</samp>’</dt> +<dt>‘<samp>F</samp>’</dt> +<dd><a name="index-f-config-command-_0028filter_0029"></a> +<a name="index-F-config-command-_0028filter_0029"></a> +<p>Run as a filter. Same as ‘<samp>-f</samp>’, see <a href="#Option-details">Option details</a>. +</p> +</dd> +<dt>‘<samp>G*</samp>’</dt> +<dd><a name="index-G-character-shifting-config-command"></a> +<p>Shift low-numbered characters; obsolete. Same as ‘<samp>-G</samp>’, see <a href="#Option-details">Option details</a>. - - <br><dt>‘<samp><span class="samp">h </span><var>header</var></samp>’<dd><a name="index-h-_0040r_007bheader-downloading-config-command_007d-286"></a>Prepend <var>header</var> to output. Same as ‘<samp><span class="samp">h-</span></samp>’, see <a href="#Option-details">Option details</a>. - - <br><dt>‘<samp><span class="samp">H </span><var>path</var></samp>’<dd><a name="index-H-_0040r_007bheader-path-config-command_007d-287"></a><a name="index-header-path_002c-defining-288"></a><a name="index-DVIPSHEADERS_0040r_007b_002c-overrides_007d-H-289"></a>Use <var>path</var> to search for PostScript header files. The environment +</p> +</dd> +<dt>‘<samp>h <var>header</var></samp>’</dt> +<dd><a name="index-h-header-downloading-config-command"></a> +<p>Prepend <var>header</var> to output. Same as ‘<samp>h-</samp>’, see <a href="#Option-details">Option details</a>. +</p> +</dd> +<dt>‘<samp>H <var>path</var></samp>’</dt> +<dd><a name="index-H-header-path-config-command"></a> +<a name="index-header-path_002c-defining"></a> +<a name="index-DVIPSHEADERS_002c-overrides-H"></a> +<p>Use <var>path</var> to search for PostScript header files. The environment variable <code>DVIPSHEADERS</code> overrides this. - - <br><dt>‘<samp><span class="samp">i </span><var>n</var></samp>’<dd><a name="index-i-_0040r_007bconfig-command-_0028pages_002fsection_0029_007d-290"></a>Make multiple output files. Same as ‘<samp><span class="samp">-i -S </span><var>n</var></samp>’, see <a href="#Option-details">Option details</a>. - - <br><dt>‘<samp><span class="samp">j*</span></samp>’<dd><a name="index-j-_0040r_007bconfig-command-_0028partial-font-downloading_0029_007d-291"></a>Partially download Type 1 fonts. Same as ‘<samp><span class="samp">-j</span></samp>’, see <a href="#Option-details">Option details</a>. - - <br><dt>‘<samp><span class="samp">K*</span></samp>’<dd><a name="index-K-_0040r_007bconfig-command-_0028comment_002dremoval_0029_007d-292"></a>Remove comments from included PostScript files. Same as ‘<samp><span class="samp">-K</span></samp>’, +</p> +</dd> +<dt>‘<samp>i <var>n</var></samp>’</dt> +<dd><a name="index-i-config-command-_0028pages_002fsection_0029"></a> +<p>Make multiple output files. Same as ‘<samp>-i -S <var>n</var></samp>’, see <a href="#Option-details">Option details</a>. +</p> +</dd> +<dt>‘<samp>j*</samp>’</dt> +<dd><a name="index-j-config-command-_0028partial-font-downloading_0029"></a> +<p>Partially download Type 1 fonts. Same as ‘<samp>-j</samp>’, see <a href="#Option-details">Option details</a>. +</p> +</dd> +<dt>‘<samp>K*</samp>’</dt> +<dd><a name="index-K-config-command-_0028comment_002dremoval_0029"></a> +<p>Remove comments from included PostScript files. Same as ‘<samp>-K</samp>’, see <a href="#Option-details">Option details</a>. - - <br><dt>‘<samp><span class="samp">m </span><var>num</var></samp>’<dd><a name="index-m-_0040r_007bconfig-command-_0028available-memory_0029_007d-293"></a><a name="index-memory-available-294"></a><a name="index-printer-memory-295"></a>Declare <var>num</var> as the memory available for fonts and strings in the -printer. Default is 180000. This value must be accurate if memory -conservation and document splitting is to work correctly. To determine -this value, send the following file to the printer: - - <pre class="example"> %! Hey, we're PostScript - /Times-Roman findfont 30 scalefont setfont 144 432 moveto - vmstatus exch sub 40 string cvs show pop showpage -</pre> - <p class="noindent">The number printed by this file is the total memory free; it is usually +</p> +</dd> +<dt>‘<samp>m <var>num</var></samp>’</dt> +<dd><a name="index-m-config-command-_0028available-memory_0029"></a> +<a name="index-memory-available"></a> +<a name="index-printer-memory"></a> +<p>Declare <var>num</var> as the memory available for fonts and strings in the +printer. The compile-time default is 180000, but this is typically +overridden by <samp>config.ps</samp> or other configuration files. This +value must be accurate if memory conservation and document splitting +is to work correctly. To determine this value, send the following +file to the printer: +</p> +<div class="example"> +<pre class="example">%! Hey, we're PostScript +/Times-Roman findfont 30 scalefont setfont 144 432 moveto +vmstatus exch sub 40 string cvs show pop showpage +</pre></div> + +<p>The number printed by this file is the total memory free; it is usually best to tell Dvips that the printer has slightly less memory, because many programs download permanent macros that can reduce the memory in the printer. Some systems or printers can dynamically increase the memory available to a PostScript interpreter, in which case this file might return a ridiculously low number; for example, the NeXT computer -and Ghostscript. In these cases, a value of one million works fine. - - <br><dt>‘<samp><span class="samp">M </span><var>mode</var></samp>’<dd><a name="index-M-_0040r_007bconfig-command-_0028mf-mode_0029_007d-296"></a>Metafont mode. Same as ‘<samp><span class="samp">-mode</span></samp>’, see <a href="#Option-details">Option details</a>. - - <br><dt>‘<samp><span class="samp">N*</span></samp>’<dd><a name="index-N-_0040r_007bEPS_002ddisabling-config-command_007d-297"></a>Disable structured comments. Beware: This also turns off displaying -page numbers or changing to specific pagenumbers in PostScript viewers. -Same as ‘<samp><span class="samp">-N</span></samp>’, see <a href="#Option-details">Option details</a>. - - <br><dt>‘<samp><span class="samp">o </span><var>name</var></samp>’<dd><a name="index-o-_0040r_007bconfig-command-_0028output-file_0029_007d-298"></a><a name="index-output-file_002c-setting-299"></a>Send output to <var>name</var>. Same as ‘<samp><span class="samp">-o</span></samp>’, see <a href="#Option-details">Option details</a>. -In the file <samp><span class="file">config.foo</span></samp>, a setting like this is probably +and Ghostscript. In these cases, a value of, say, 10 million is +likely fine. +</p> +<p>To go all out: If <var>num</var> is zero or negative, Dvips sets the +available memory to a very large number (the maximum integer value in +C), the idea being that output is not to a printer and thus no +splitting of the output is desirable. The Dvips config file +<samp>config.maxmem</samp> is provided to do this conveniently, namely with +‘<samp>dvips -Pmaxmem</samp>’. +</p> +</dd> +<dt>‘<samp>M <var>mode</var></samp>’</dt> +<dd><a name="index-M-config-command-_0028mf-mode_0029"></a> +<p>Metafont mode. Same as ‘<samp>-mode</samp>’, see <a href="#Option-details">Option details</a>. +</p> +</dd> +<dt>‘<samp>N*</samp>’</dt> +<dd><a name="index-N-EPS_002ddisabling-config-command"></a> +<p>Disable structured comments. Beware: This also turns off displaying +page numbers or changing to specific pagenumbers in PostScript viewers. +Same as ‘<samp>-N</samp>’, see <a href="#Option-details">Option details</a>. +</p> +</dd> +<dt>‘<samp>o <var>name</var></samp>’</dt> +<dd><a name="index-o-config-command-_0028output-file_0029"></a> +<a name="index-output-file_002c-setting"></a> +<p>Send output to <var>name</var>. Same as ‘<samp>-o</samp>’, see <a href="#Option-details">Option details</a>. +In the file <samp>config.foo</samp>, a setting like this is probably appropriate: - <pre class="example"> o |lpr -Pfoo -</pre> - <p>The MS-DOS version will emulate spooling to <code>lpr</code> by printing to -the local printer device <samp><span class="file">PRN</span></samp> if it doesn't find an executable +</p><div class="example"> +<pre class="example">o |lpr -Pfoo +</pre></div> +<p>The MS-DOS version will emulate spooling to <code>lpr</code> by printing to +the local printer device <samp>PRN</samp> if it doesn’t find an executable program by that name in the current directory or along the <code>PATH</code>. - - <br><dt>‘<samp><span class="samp">O </span><var>xoff</var><span class="samp">,</span><var>yoff</var></samp>’<dd><a name="index-O-_0040r_007bconfig-command-_0028offset_0029_007d-300"></a>Origin offset. Same as ‘<samp><span class="samp">-O</span></samp>’, see <a href="#Option-details">Option details</a>. - - <br><dt>‘<samp><span class="samp">p [+]</span><var>name</var></samp>’<dd><a name="index-p-_0040r_007bconfig-command-_0028font-aliases_0029_007d-301"></a><a name="index-PostScript-font-alias-file-302"></a><a name="index-resident-fonts_002c-different-in-different-printers-303"></a><a name="index-g_t_002b_0040var_007bpsmapfile_007d-304"></a>Examine <var>name</var> for PostScript font aliases. Default is -<samp><span class="file">psfonts.map</span></samp>. This option allows you to specify different resident +</p> +</dd> +<dt>‘<samp>O <var>xoff</var>,<var>yoff</var></samp>’</dt> +<dd><a name="index-O-config-command-_0028offset_0029"></a> +<p>Origin offset. Same as ‘<samp>-O</samp>’, see <a href="#Option-details">Option details</a>. +</p> +</dd> +<dt>‘<samp>p <span class="roman">[+]</span><var>name</var></samp>’</dt> +<dd><a name="index-p-config-command-_0028font-aliases_0029"></a> +<a name="index-PostScript-font-alias-file-1"></a> +<a name="index-resident-fonts_002c-different-in-different-printers-1"></a> +<a name="index-_002bpsmapfile"></a> +<p>Examine <var>name</var> for PostScript font aliases. Default is +<samp>psfonts.map</samp>. This option allows you to specify different resident fonts that different printers may have. If <var>name</var> starts with a -‘<samp><span class="samp">+</span></samp>’ character, then the rest of the name (after any leading spaces) +‘<samp>+</samp>’ character, then the rest of the name (after any leading spaces) is used as an additional map file; thus, it is possible to have local map files pointed to by local configuration files that append to the global map file. This can be used for font families. - - <br><dt>‘<samp><span class="samp">P </span><var>path</var></samp>’<dd><a name="index-P-_0040r_007bconfig-command-_0028PK-path_0029_007d-305"></a><a name="index-PKFONTS_0040r_007b_002c-overrides_007d-P-306"></a><a name="index-TEXPKS_0040r_007b_002c-overrides_007d-P-307"></a><a name="index-GLYPHFONTS_0040r_007b_002c-overrides_007d-P-308"></a><a name="index-TEXFONTS_0040r_007b_002c-overrides_007d-P-309"></a>Use <var>path</var> to search for bitmap PK font files is <var>path</var>. The +</p> +</dd> +<dt>‘<samp>P <var>path</var></samp>’</dt> +<dd><a name="index-P-config-command-_0028PK-path_0029"></a> +<a name="index-PKFONTS_002c-overrides-P"></a> +<a name="index-TEXPKS_002c-overrides-P"></a> +<a name="index-GLYPHFONTS_002c-overrides-P"></a> +<a name="index-TEXFONTS_002c-overrides-P"></a> +<p>Use <var>path</var> to search for bitmap PK font files is <var>path</var>. The <code>PKFONTS</code>, <code>TEXPKS</code>, <code>GLYPHFONTS</code>, and <code>TEXFONTS</code> -environment variables override this. See <a href="kpathsea.html#Supported-file-formats">Supported file formats</a>. - - <br><dt>‘<samp><span class="samp">q*</span></samp>’<dt>‘<samp><span class="samp">Q</span></samp>’<dd><a name="index-q-_0040r_007bconfig-command-_0028quiet_0029_007d-310"></a><a name="index-Q-_0040r_007bconfig-command-_0028quiet_0029_007d-311"></a>Run quietly. Same as ‘<samp><span class="samp">-q</span></samp>’, see <a href="#Option-details">Option details</a>. - - <br><dt>‘<samp><span class="samp">r*</span></samp>’<dd><a name="index-r-_0040r_007bconfig-command-_0028page-reversal_0029_007d-312"></a>Page reversal. Same as ‘<samp><span class="samp">-r</span></samp>’, see <a href="#Option-details">Option details</a>. - - <br><dt>‘<samp><span class="samp">R </span><var>num1 num2 <small class="dots">...</small></var></samp>’<dd><a name="index-R-_0040r_007bfallback-resolution-config-command_007d-313"></a><a name="index-fallback-resolutions-314"></a><a name="index-default-resolutions-315"></a><a name="index-last_002dresort-scaling_002c-with-_0040code_007bR_007d-316"></a>Define the list of default resolutions for PK fonts. If a font size +environment variables override this. See <a href="kpathsea.html#Supported-file-formats">Supported file formats</a> in <cite>Kpathsea</cite>. +</p> +</dd> +<dt>‘<samp>q*</samp>’</dt> +<dt>‘<samp>Q</samp>’</dt> +<dd><a name="index-q-config-command-_0028quiet_0029"></a> +<a name="index-Q-config-command-_0028quiet_0029"></a> +<p>Run quietly. Same as ‘<samp>-q</samp>’, see <a href="#Option-details">Option details</a>. +</p> +</dd> +<dt>‘<samp>r*</samp>’</dt> +<dd><a name="index-r-config-command-_0028page-reversal_0029"></a> +<p>Page reversal. Same as ‘<samp>-r</samp>’, see <a href="#Option-details">Option details</a>. +</p> +</dd> +<dt>‘<samp>R <var>num1 num2 …</var></samp>’</dt> +<dd><a name="index-R-fallback-resolution-config-command"></a> +<a name="index-fallback-resolutions"></a> +<a name="index-default-resolutions"></a> +<a name="index-last_002dresort-scaling_002c-with-R"></a> +<p>Define the list of default resolutions for PK fonts. If a font size actually used in a document is not available and cannot be created, Dvips will scale the font found at the closest of these resolutions to the requested size, using PostScript scaling. The resulting output may be ugly, and thus a warning is issued. To turn this last-resort scaling -off, use a line with just the ‘<samp><span class="samp">R</span></samp>’ and no numbers. - - <p>The given numbers must be sorted in increasing order; any number smaller +off, use a line with just the ‘<samp>R</samp>’ and no numbers. +</p> +<p>The given numbers must be sorted in increasing order; any number smaller than the preceding one is ignored. This is because it is better to scale a font up than down; scaling down can obliterate small features in the character shape. - - <p><a name="index-DVIPSSIZES_0040r_007b_002c-overrides_007d-R-317"></a><a name="index-TEXSIZES_0040r_007b_002c-overrides_007d-R-318"></a>The environment and config file values ‘<samp><span class="samp">DVIPSSIZES</span></samp>’ or -‘<samp><span class="samp">TEXSIZES</span></samp>’ override this configuration file setting. - - <p><a name="index-default_005ftexsizes-_0040r_007bMake-variable_007d-319"></a>If no ‘<samp><span class="samp">R</span></samp>’ settings or environment variables are specified, a list +</p> +<a name="index-DVIPSSIZES_002c-overrides-R"></a> +<a name="index-TEXSIZES_002c-overrides-R"></a> +<p>The environment and config file values ‘<samp>DVIPSSIZES</samp>’ or +‘<samp>TEXSIZES</samp>’ override this configuration file setting. +</p> +<a name="index-default_005ftexsizes-Make-variable"></a> +<p>If no ‘<samp>R</samp>’ settings or environment variables are specified, a list compiled in during installation is used. This default list is defined by -the Makefile variable ‘<samp><span class="samp">default_texsizes</span></samp>’, defined in the file -<samp><span class="file">make/paths.make</span></samp>. - - <br><dt>‘<samp><span class="samp">s*</span></samp>’<dd><a name="index-s-_0040r_007bconfig-command-_0028save_002frestore_0029_007d-320"></a>Output global save/restore. Same as ‘<samp><span class="samp">-s</span></samp>’, see <a href="#Option-details">Option details</a>. - - <br><dt>‘<samp><span class="samp">S </span><var>path</var></samp>’<dd><a name="index-S-_0040r_007bconfig-command-_0028pict-path_0029_007d-321"></a><a name="index-TEXPICTS_0040r_007b_002c-overrides_007d-S-322"></a><a name="index-TEXINPUTS_0040r_007b_002c-overrides_007d-S-323"></a>Use <var>path</var> to search for special illustrations (Encapsulated +the Makefile variable ‘<samp>default_texsizes</samp>’, defined in the file +<samp>make/paths.make</samp>. +</p> +</dd> +<dt>‘<samp>s*</samp>’</dt> +<dd><a name="index-s-config-command-_0028save_002frestore_0029"></a> +<p>Output global save/restore. Same as ‘<samp>-s</samp>’, see <a href="#Option-details">Option details</a>. +</p> +</dd> +<dt>‘<samp>S <var>path</var></samp>’</dt> +<dd><a name="index-S-config-command-_0028pict-path_0029"></a> +<a name="index-TEXPICTS_002c-overrides-S"></a> +<a name="index-TEXINPUTS_002c-overrides-S"></a> +<p>Use <var>path</var> to search for special illustrations (Encapsulated PostScript files or psfiles). The <code>TEXPICTS</code> and then <code>TEXINPUTS</code> environment variables override this. - - <br><dt>‘<samp><span class="samp">T </span><var>path</var></samp>’<dd><a name="index-T-_0040r_007bconfig-command-_0028TFM-path_0029_007d-324"></a><a name="index-TFMFONTS_0040r_007b_002c-overrides_007d-T-325"></a><a name="index-TEXFONTS_0040r_007b_002c-overrides_007d-T-326"></a>Use <var>path</var> to search for TFM files. The <code>TFMFONTS</code> and then +</p> +</dd> +<dt>‘<samp>T <var>path</var></samp>’</dt> +<dd><a name="index-T-config-command-_0028TFM-path_0029"></a> +<a name="index-TFMFONTS_002c-overrides-T"></a> +<a name="index-TEXFONTS_002c-overrides-T"></a> +<p>Use <var>path</var> to search for TFM files. The <code>TFMFONTS</code> and then <code>TEXFONTS</code> environment variables overrides this. This path is used -for resident fonts and fonts that can't otherwise be found. - - <br><dt>‘<samp><span class="samp">U*</span></samp>’<dd><a name="index-U-_0040r_007bconfig-command-_0028Xerox-4045_0029_007d-327"></a>Work around bug in Xerox 4045 printer. Same as ‘<samp><span class="samp">-U</span></samp>’, see <a href="#Option-details">Option details</a>. - - <br><dt>‘<samp><span class="samp">V </span><var>path</var></samp>’<dd><a name="index-V-_0040r_007bconfig-command-_0028vf-path_0029_007d-328"></a><a name="index-virtual-font-path-329"></a><a name="index-device-dependency_002c-and-virtual-fonts-330"></a>Use <var>path</var> to search for virtual font files. This may be +for resident fonts and fonts that can’t otherwise be found. +</p> +</dd> +<dt>‘<samp>U*</samp>’</dt> +<dd><a name="index-U-config-command-_0028Xerox-4045_0029"></a> +<p>Work around bug in Xerox 4045 printer. Same as ‘<samp>-U</samp>’, see <a href="#Option-details">Option details</a>. +</p> +</dd> +<dt>‘<samp>V <var>path</var></samp>’</dt> +<dd><a name="index-V-config-command-_0028vf-path_0029"></a> +<a name="index-virtual-font-path"></a> +<a name="index-device-dependency_002c-and-virtual-fonts"></a> +<p>Use <var>path</var> to search for virtual font files. This may be device-dependent if you use virtual fonts to simulate actual fonts on different devices. - - <br><dt>‘<samp><span class="samp">W [</span><var>string</var><span class="roman">]</span></samp>’<dd><a name="index-W-_0040r_007bconfig-command-_0028warning_0029_007d-331"></a><a name="index-warning-messages_002c-defining-332"></a>If <var>string</var> is supplied, write it to standard error after reading +</p> +</dd> +<dt>‘<samp>W <span class="roman">[<var>string</var>]</span></samp>’</dt> +<dd><a name="index-W-config-command-_0028warning_0029"></a> +<a name="index-warning-messages_002c-defining"></a> +<p>If <var>string</var> is supplied, write it to standard error after reading all the configuration files; with no <var>string</var>, cancel any previous -‘<samp><span class="samp">W</span></samp>’ message. This is useful in the default configuration file to +‘<samp>W</samp>’ message. This is useful in the default configuration file to remind users to specify a printer, for instance, or to notify users about special characteristics of a particular printer. - - <br><dt>‘<samp><span class="samp">X </span><var>num</var></samp>’<dd><a name="index-X-_0040r_007bconfig-command-_0028horizontal-resolution_0029_007d-333"></a>Horizontal resolution. Same as ‘<samp><span class="samp">-X</span></samp>’ (see <a href="#Option-details">Option details</a>). - - <br><dt>‘<samp><span class="samp">Y </span><var>num</var></samp>’<dd><a name="index-Y-_0040r_007bconfig-command-_0028vertical-resolution_0029_007d-334"></a>Vertical resolution. Same as ‘<samp><span class="samp">-Y</span></samp>’ (see <a href="#Option-details">Option details</a>). - - <br><dt>‘<samp><span class="samp">Z*</span></samp>’<dd><a name="index-Z-_0040r_007bconfig-command-_0028compression_0029_007d-335"></a>Compress bitmap fonts. Same as ‘<samp><span class="samp">-Z</span></samp>’ (see <a href="#Option-details">Option details</a>). - - <br><dt>‘<samp><span class="samp">z*</span></samp>’<dd><a name="index-z-_0040r_007bconfig-command-_0028secure-mode_0029_007d-336"></a>Disables execution of system commands, like ‘<samp><span class="samp">-R</span></samp>’ -(see <a href="#Option-details">Option details</a>). If ‘<samp><span class="samp">-R</span></samp>’ is specified +</p> +</dd> +<dt>‘<samp>X <var>num</var></samp>’</dt> +<dd><a name="index-X-config-command-_0028horizontal-resolution_0029"></a> +<p>Horizontal resolution. Same as ‘<samp>-X</samp>’ (see <a href="#Option-details">Option details</a>). +</p> +</dd> +<dt>‘<samp>Y <var>num</var></samp>’</dt> +<dd><a name="index-Y-config-command-_0028vertical-resolution_0029"></a> +<p>Vertical resolution. Same as ‘<samp>-Y</samp>’ (see <a href="#Option-details">Option details</a>). +</p> +</dd> +<dt>‘<samp>Z*</samp>’</dt> +<dd><a name="index-Z-config-command-_0028compression_0029"></a> +<p>Compress bitmap fonts. Same as ‘<samp>-Z</samp>’ (see <a href="#Option-details">Option details</a>). +</p> +</dd> +<dt>‘<samp>z*</samp>’</dt> +<dd><a name="index-z-config-command-_0028secure-mode_0029"></a> +<p>Disables execution of system commands, like ‘<samp>-R</samp>’ +(see <a href="#Option-details">Option details</a>). If ‘<samp>-R</samp>’ is specified on the command line, that takes precedence. +</p> +</dd> +</dl> - </dl> -<div class="node"> +<hr> <a name="Paper-size-and-landscape"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Interaction-with-PostScript">Interaction with PostScript</a>, -Previous: <a rel="previous" accesskey="p" href="#Invoking-Dvips">Invoking Dvips</a>, -Up: <a rel="up" accesskey="u" href="#Top">Top</a> - +<div class="header"> +<p> +Next: <a href="#Interaction-with-PostScript" accesskey="n" rel="next">Interaction with PostScript</a>, Previous: <a href="#Invoking-Dvips" accesskey="p" rel="prev">Invoking Dvips</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Paper-size-and-landscape-orientation"></a> <h2 class="chapter">4 Paper size and landscape orientation</h2> -<p><a name="index-paper-size_002c-general-337"></a> -Most TeX documents at a particular site are designed to use the +<a name="index-paper-size_002c-general"></a> + +<p>Most TeX documents at a particular site are designed to use the local standard paper size (letter size in the United States, A4 in Europe). The Dvips program can be customized either sitewide or for a particular printer. - - <p><a name="index-landscape-orientation_002c-defined-338"></a><a name="index-portrait-orientation_002c-defined-339"></a>But many documents are designed for other paper sizes. For instance, +</p> +<a name="index-landscape-orientation_002c-defined"></a> +<a name="index-portrait-orientation_002c-defined"></a> +<p>But many documents are designed for other paper sizes. For instance, you may want to design a document that has the long edge of the paper horizontal. This can be useful when typesetting booklets, brochures, complex tables, or many other documents. This type of paper orientation -is called <dfn>landscape</dfn> orientation (the default orientation is -<dfn>portrait</dfn>). Alternatively, a document might be designed for ledger +is called <em>landscape</em> orientation (the default orientation is +<em>portrait</em>). Alternatively, a document might be designed for ledger or A3 paper. - - <p>Since the intended paper size in these cases is a document design +</p> +<p>Since the intended paper size in these cases is a document design decision, not a printing decision, such information should be given in the TeX file and not on the Dvips command line. For this reason, -Dvips supports a ‘<samp><span class="samp">papersize</span></samp>’ special. It is hoped that this +Dvips supports a ‘<samp>papersize</samp>’ special. It is hoped that this special will become standard over time for TeX previewers and other printer drivers. - - <p>Some LaTeX packages, e.g., ‘<samp><span class="samp">hyperref.sty</span></samp>’, write a -‘<samp><span class="samp">papersize</span></samp>’ special into the DVI file. In this case, you need +</p> +<p>Some LaTeX packages, e.g., ‘<samp>hyperref.sty</samp>’, write a +‘<samp>papersize</samp>’ special into the DVI file. In this case, you need not and should not attempt to override it manually. - -<ul class="menu"> -<li><a accesskey="1" href="#papersize-special">papersize special</a>: Specifying the paper size in TeX. -<li><a accesskey="2" href="#Config-file-paper-sizes">Config file paper sizes</a>: Specifying printer- and site-specific sizes. -<li><a accesskey="3" href="#Paper-trays">Paper trays</a>: Changing paper trays automatically. -</ul> - -<div class="node"> +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#papersize-special" accesskey="1">papersize special</a>:</td><td> </td><td align="left" valign="top">Specifying the paper size in TeX. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Config-file-paper-sizes" accesskey="2">Config file paper sizes</a>:</td><td> </td><td align="left" valign="top">Specifying printer- and site-specific sizes. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Paper-trays" accesskey="3">Paper trays</a>:</td><td> </td><td align="left" valign="top">Changing paper trays automatically. +</td></tr> +</table> + + +<hr> <a name="papersize-special"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Config-file-paper-sizes">Config file paper sizes</a>, -Up: <a rel="up" accesskey="u" href="#Paper-size-and-landscape">Paper size and landscape</a> - +<div class="header"> +<p> +Next: <a href="#Config-file-paper-sizes" accesskey="n" rel="next">Config file paper sizes</a>, Up: <a href="#Paper-size-and-landscape" accesskey="u" rel="up">Paper size and landscape</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="papersize-special-1"></a> +<h3 class="section">4.1 ‘<samp>papersize</samp>’ special</h3> -<h3 class="section">4.1 ‘<samp><span class="samp">papersize</span></samp>’ special</h3> +<a name="index-papersize-special"></a> -<p><a name="index-papersize-_0040r_007bspecial_007d-340"></a> -The format of the ‘<samp><span class="samp">papersize</span></samp>’ special is +<p>The format of the ‘<samp>papersize</samp>’ special is +</p> +<div class="example"> +<pre class="example">\special{papersize=<var>width</var>,<var>height</var>} +</pre></div> -<pre class="example"> \special{papersize=<var>width</var>,<var>height</var>} -</pre> - <p class="noindent"><var>width</var> is the horizontal size of the page, and <var>height</var> is the +<p><var>width</var> is the horizontal size of the page, and <var>height</var> is the vertical size. The dimensions supported are the same as for TeX; namely, in (inches), cm (centimeters), mm (millimeters), pt (points), sp (scaled points), bp (big points, the same as the default PostScript unit), pc (picas), dd (didot points), and cc (ciceros). - - <p><a name="index-landscape_0040r_007b_002c-as-_0040code_007b_005cspecial_007d_007d-341"></a>For a US letter size landscape document, the <code>papersize</code> would be: -<pre class="example"> \special{papersize=11in,8.5in} -</pre> - <p class="noindent">An alternate specification of <code>landscape</code>: -<pre class="example"> \special{landscape} -</pre> - <p class="noindent">This is supported for backward compatibility, but it is hoped that +</p> +<a name="index-landscape_002c-as-_005cspecial"></a> +<p>For a US letter size landscape document, the <code>papersize</code> would be: +</p><div class="example"> +<pre class="example">\special{papersize=11in,8.5in} +</pre></div> + +<p>An alternate specification of <code>landscape</code>: +</p><div class="example"> +<pre class="example">\special{landscape} +</pre></div> + +<p>This is supported for backward compatibility, but it is hoped that reventually the <code>papersize</code> comment will dominate. - - <p>Of course, such a <code>\special</code> only informs Dvips of the desired +</p> +<p>Of course, such a <code>\special</code> only informs Dvips of the desired paper size; you must also adjust <code>\hsize</code> and <code>\vsize</code> in your TeX document typeset to those dimensions. - - <p><a name="index-unknown_0040r_007b_002c-paper-format-for-_0040samp_007b_002dt_007d_007d-342"></a>When using the <code>papersize</code> special, you generally should not also +</p> +<a name="index-unknown_002c-paper-format-for-_002dt"></a> +<p>When using the <code>papersize</code> special, you generally should not also specify <code>-t</code> on the command line (see <a href="#Option-details">Option details</a>). The -exception is when using a nonstandard paper size that isn't +exception is when using a nonstandard paper size that isn’t predefined; in this case, use <code>-t unknown</code>. +</p> +<p>The <code>papersize</code> special must occur somewhere on the first page of +the document. Some packages, notably ‘<samp>hyperref</samp>’, insert this special. +</p> - <p>The <code>papersize</code> special must occur somewhere on the first page of -the document. Some packages, notably ‘<samp><span class="samp">hyperref</span></samp>’, insert this special. - -<div class="node"> +<hr> <a name="Config-file-paper-sizes"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Paper-trays">Paper trays</a>, -Previous: <a rel="previous" accesskey="p" href="#papersize-special">papersize special</a>, -Up: <a rel="up" accesskey="u" href="#Paper-size-and-landscape">Paper size and landscape</a> - +<div class="header"> +<p> +Next: <a href="#Paper-trays" accesskey="n" rel="next">Paper trays</a>, Previous: <a href="#papersize-special" accesskey="p" rel="prev">papersize special</a>, Up: <a href="#Paper-size-and-landscape" accesskey="u" rel="up">Paper size and landscape</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Configuration-file-paper-size-command"></a> <h3 class="section">4.2 Configuration file paper size command</h3> -<p><a name="index-paper-size-configuration-file-command-343"></a><a name="index-configuration-file-paper-size-command-344"></a> -The ‘<samp><span class="samp">@</span></samp>’ command in a configuration file sets the paper size -defaults and options. The first ‘<samp><span class="samp">@</span></samp>’ command defines the default +<a name="index-paper-size-configuration-file-command"></a> +<a name="index-configuration-file-paper-size-command"></a> + +<p>The ‘<samp>@</samp>’ command in a configuration file sets the paper size +defaults and options. The first ‘<samp>@</samp>’ command defines the default paper size. It has three possible parameters: +</p> +<div class="example"> +<pre class="example">@ <span class="roman">[</span><var>name</var> <span class="roman">[</span><var>hsize</var> <var>vsize</var><span class="roman">]]</span> +</pre></div> -<pre class="example"> @ <span class="roman">[</span><var>name</var> <span class="roman">[</span><var>hsize</var> <var>vsize</var><span class="roman">]]</span> -</pre> - <p>If ‘<samp><span class="samp">@</span></samp>’ is specified on a line by itself, with no parameters, it +<p>If ‘<samp>@</samp>’ is specified on a line by itself, with no parameters, it instructs Dvips to discard all previous paper size information (possibly from another configuration file). - - <p>If three parameters are given, with the first parameter being a name and -the second and third being a dimension (as in ‘<samp><span class="samp">8.5in</span></samp>’ or -‘<samp><span class="samp">3.2cc</span></samp>’, just like in the ‘<samp><span class="samp">papersize</span></samp>’ special), then the +</p> +<p>If three parameters are given, with the first parameter being a name and +the second and third being a dimension (as in ‘<samp>8.5in</samp>’ or +‘<samp>3.2cc</samp>’, just like in the ‘<samp>papersize</samp>’ special), then the option is interpreted as starting a new paper size description, where <var>name</var> is the name and <var>hsize</var> and <var>vsize</var> define the horizontal and vertical size of the sheet of paper, respectively. For example: - -<pre class="example"> @ letterSize 8.5in 11in -</pre> - <p>If both <var>hsize</var> and <var>vsize</var> are zero (you must still specify -units!) then any page size will match. If the ‘<samp><span class="samp">@</span></samp>’ character is -immediately followed by a ‘<samp><span class="samp">+</span></samp>’ sign, then the remainder of the line +</p> +<div class="example"> +<pre class="example">@ letterSize 8.5in 11in +</pre></div> + +<p>If both <var>hsize</var> and <var>vsize</var> are zero (you must still specify +units!) then any page size will match. If the ‘<samp>@</samp>’ character is +immediately followed by a ‘<samp>+</samp>’ sign, then the remainder of the line (after skipping any leading blanks) is treated as PostScript code to send to the printer, presumably to select that particular paper size: - -<pre class="example"> @ letter 8.5in 11in - @+ %%BeginPaperSize: Letter - @+ letter - @+ %%EndPaperSize -</pre> - <p>After all that, if the first character of the line is an exclamation +</p> +<div class="example"> +<pre class="example">@ letter 8.5in 11in +@+ %%BeginPaperSize: Letter +@+ letter +@+ %%EndPaperSize +</pre></div> + +<p>After all that, if the first character of the line is an exclamation point, then the line is put in the initial comments section of the final -output file; else, it is put in the setup section of the output file. +output file; else, it is put in the setup section of the output file. For example: - -<pre class="example"> @ legal 8.5in 14in - @+ ! %%DocumentPaperSizes: Legal - @+ %%BeginPaperSize: Legal - @+ legal - @+ %%EndPaperSize -</pre> - <p>When Dvips has a paper format name given on the command line, it looks -for a match by the <var>name</var>; when it has a ‘<samp><span class="samp">papersize</span></samp>’ special, +</p> +<div class="example"> +<pre class="example">@ legal 8.5in 14in +@+ ! %%DocumentPaperSizes: Legal +@+ %%BeginPaperSize: Legal +@+ legal +@+ %%EndPaperSize +</pre></div> + +<p>When Dvips has a paper format name given on the command line, it looks +for a match by the <var>name</var>; when it has a ‘<samp>papersize</samp>’ special, it looks for a match by dimensions. The best match found (from the paper size information in the configuration file) is used. The -dimensions must match within 5bp. - - <p>If nothing matches, a warning is printed and the first paper size with +dimensions must match within 5bp. +</p> +<p>If nothing matches, a warning is printed and the first paper size with zero dimensions is used; this should be the <code>unknown</code> paper size definition mentioned below, resulting in the actual dimensions being used. - - <p>Landscape mode for all paper sizes is automatically supported. - - <p>If your printer has a command to set a special paper size, then give -dimensions of ‘<samp><span class="samp">0in 0in</span></samp>’; the PostScript code that sets the paper -size can refer to the dimensions the user requested as ‘<samp><span class="samp">hsize</span></samp>’ -and ‘<samp><span class="samp">vsize</span></samp>’; these will be macros defined in the PostScript that +</p> +<p>Landscape mode for all paper sizes is automatically supported. +</p> +<p>If your printer has a command to set a special paper size, then give +dimensions of ‘<samp>0in 0in</samp>’; the PostScript code that sets the paper +size can refer to the dimensions the user requested as ‘<samp>hsize</samp>’ +and ‘<samp>vsize</samp>’; these will be macros defined in the PostScript that return the requested size in default PostScript units. Also, some -printers want ‘<samp><span class="samp">BeginPaperSize</span></samp>’ comments and paper size setting -commands; others (such as the NeXT) want ‘<samp><span class="samp">PaperSize</span></samp>’ comments and +printers want ‘<samp>BeginPaperSize</samp>’ comments and paper size setting +commands; others (such as the NeXT) want ‘<samp>PaperSize</samp>’ comments and they will handle setting the paper size. So paper size entries should typically specify both. - - <p><a name="index-unknown_0040r_007b_002c-paper-format-for-_0040samp_007b_002dt_007d_007d-345"></a>When using a paper size that is not already defined in -<samp><span class="file">config.ps</span></samp>, you probably want to say ‘<samp><span class="samp">-t unknown</span></samp>’ on +</p> +<a name="index-unknown_002c-paper-format-for-_002dt-1"></a> +<p>When using a paper size that is not already defined in +<samp>config.ps</samp>, you probably want to say ‘<samp>-t unknown</samp>’ on the command line; the <code>unknown</code> paper size definition in -<samp><span class="file">config.ps</span></samp> has the requisite PostScript incantation to set the +<samp>config.ps</samp> has the requisite PostScript incantation to set the PostScript page size, as just described. - - <p><a name="index-nopaper_0040r_007b_002c-paper-format-for-_0040samp_007b_002dt_007d_007d-346"></a>If you want no paper size information in the output at all, use -‘<samp><span class="samp">-t nopaper</span></samp>’. This is useful with multi-page output that +</p> +<a name="index-nopaper_002c-paper-format-for-_002dt"></a> +<p>If you want no paper size information in the output at all, use +‘<samp>-t nopaper</samp>’. This is useful with multi-page output that will be processed further. If you just have a single page document, -you can use ‘<samp><span class="samp">-E</span></samp>’ to get pure EPSF output. - - <p><a name="index-mkdvipspapers-347"></a>The Perl 5 script <samp><span class="file">contrib/configs/mkdvipspapers</span></samp> in the +you can use ‘<samp>-E</samp>’ to get pure EPSF output. +</p> +<a name="index-mkdvipspapers"></a> +<p>The Perl 5 script <samp>contrib/configs/mkdvipspapers</samp> in the distribution directory may help in determining appropriate paper size definitions. - - <p><a name="index-config_002eps-_0040r_007bpaper-sizes_007d-348"></a><a name="index-letter-_0040r_007bpaper-size_007d-349"></a><a name="index-a4-_0040r_007bpaper-size_007d-350"></a>Notwithstanding the above, the default <code>letter</code> and <code>a4</code> -paper size definitions in <samp><span class="file">config.ps</span></samp> execute the +</p> +<a name="index-config_002eps-paper-sizes"></a> +<a name="index-letter-paper-size"></a> +<a name="index-a4-paper-size"></a> +<p>Notwithstanding the above, the default <code>letter</code> and <code>a4</code> +paper size definitions in <samp>config.ps</samp> execute the <code>setpagedevice</code> operator if it exists (it was defined in -PostScript Level 2), or the ‘<samp><span class="samp">letter</span></samp>’ or ‘<samp><span class="samp">a4</span></samp>’ operator +PostScript Level 2), or the ‘<samp>letter</samp>’ or ‘<samp>a4</samp>’ operator if they exist (they are nonstandard and thus perhaps cause failures on certain (unknown) printers). Not executing any page size definition at all confuses PostScript conversion programs such as -<samp><span class="command">ps2pdf</span></samp>, so we want to execute one if we can. - - <p><a name="index-letterSize-_0040r_007bpaper-size_007d-351"></a><a name="index-A4size-_0040r_007bpaper-size_007d-352"></a>The <code>letterSize</code> and <code>A4Size</code> paper size definitions are now +<code>ps2pdf</code>, so we want to execute one if we can. +</p> +<a name="index-letterSize-paper-size"></a> +<a name="index-A4size-paper-size"></a> +<p>The <code>letterSize</code> and <code>A4Size</code> paper size definitions are now synonyms for <code>letter</code> and <code>a4</code>. +</p> -<div class="node"> +<hr> <a name="Paper-trays"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Config-file-paper-sizes">Config file paper sizes</a>, -Up: <a rel="up" accesskey="u" href="#Paper-size-and-landscape">Paper size and landscape</a> - +<div class="header"> +<p> +Previous: <a href="#Config-file-paper-sizes" accesskey="p" rel="prev">Config file paper sizes</a>, Up: <a href="#Paper-size-and-landscape" accesskey="u" rel="up">Paper size and landscape</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Paper-trays-1"></a> <h3 class="section">4.3 Paper trays</h3> -<p><a name="index-paper-trays-353"></a><a name="index-dual-paper-trays-354"></a><a name="index-multiple-paper-trays-355"></a><a name="index-HP4Si-printer-and-paper-trays-356"></a> -<a name="index-bop_002dhook-357"></a>Some printers, such as the Hewlett-Packard HP4si, have multiple paper +<a name="index-paper-trays"></a> +<a name="index-dual-paper-trays"></a> +<a name="index-multiple-paper-trays"></a> +<a name="index-HP4Si-printer-and-paper-trays"></a> + +<a name="index-bop_002dhook"></a> +<p>Some printers, such as the Hewlett-Packard HP4si, have multiple paper trays. You can set up Dvips to take advantage of this using the <code>bop-hook</code> PostScript variable (see <a href="#PostScript-hooks">PostScript hooks</a>). - - <p><a name="index-letterhead-tray-358"></a>For example, suppose you have an alternate tray stocked with letterhead +</p> +<a name="index-letterhead-tray"></a> +<p>For example, suppose you have an alternate tray stocked with letterhead paper; the usual tray has the usual paper. You have a document where you want the first page printed on letterhead, and the remaining pages on the usual paper. You can create a header file, say -<samp><span class="file">firstletterhead.PS</span></samp>, with the following (PostScript) code +<samp>firstletterhead.PS</samp>, with the following (PostScript) code (<code>bop-hook</code> is passed the current physical page number, which starts at zero): +</p> +<div class="example"> +<pre class="example">/bop-hook { dup 0 eq { <var>alternatetray</var> } { <var>normaltray</var> } ifelse } def +</pre></div> -<pre class="example"> /bop-hook { dup 0 eq { <var>alternatetray</var> } { <var>normaltray</var> } ifelse } def -</pre> - <p class="noindent">where <var>alternatetray</var> and <var>normaltray</var> are the appropriate +<p>where <var>alternatetray</var> and <var>normaltray</var> are the appropriate commands to select the paper trays. On the 4SI, <var>alternatetray</var> is -‘<samp><span class="samp">statusdict begin 1 setpapertray end</span></samp>’ and <var>normaltray</var> is -‘<samp><span class="samp">statusdict begin 0 setpapertray end</span></samp>’. +‘<samp>statusdict begin 1 setpapertray end</samp>’ and <var>normaltray</var> is +‘<samp>statusdict begin 0 setpapertray end</samp>’. +</p> +<p>Then, include the file with either +</p><ul> +<li> the ‘<samp>-h</samp>’ command-line option (see <a href="#Option-details">Option details</a>); or - <p>Then, include the file with either - <ul> -<li>the ‘<samp><span class="samp">-h</span></samp>’ command-line option (see <a href="#Option-details">Option details</a>); or +</li><li> the ‘<samp>h</samp>’ config file option (see <a href="#Configuration-file-commands">Configuration file commands</a>); or - <li>the ‘<samp><span class="samp">h</span></samp>’ config file option (see <a href="#Configuration-file-commands">Configuration file commands</a>); or - - <li>‘<samp><span class="samp">\special{header=</span><var>file</var><span class="samp">}</span></samp>’ in your TeX document +</li><li> ‘<samp>\special{header=<var>file</var>}</samp>’ in your TeX document (see <a href="#Including-headers-from-TeX">Including headers from TeX</a>). - </ul> +</li></ul> + -<div class="node"> +<hr> <a name="Interaction-with-PostScript"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#PostScript-fonts">PostScript fonts</a>, -Previous: <a rel="previous" accesskey="p" href="#Paper-size-and-landscape">Paper size and landscape</a>, -Up: <a rel="up" accesskey="u" href="#Top">Top</a> - +<div class="header"> +<p> +Next: <a href="#PostScript-fonts" accesskey="n" rel="next">PostScript fonts</a>, Previous: <a href="#Paper-size-and-landscape" accesskey="p" rel="prev">Paper size and landscape</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Interaction-with-PostScript-1"></a> <h2 class="chapter">5 Interaction with PostScript</h2> -<p><a name="index-interaction-with-PostScript-359"></a><a name="index-PostScript-interaction-360"></a> -Dvips supports inclusion of PostScript figure files (e.g., Encapsulated +<a name="index-interaction-with-PostScript"></a> +<a name="index-PostScript-interaction"></a> + +<p>Dvips supports inclusion of PostScript figure files (e.g., Encapsulated PostScript), downloading other header files (e.g., fonts), including literal PostScript code, and hypertext. - -<ul class="menu"> -<li><a accesskey="1" href="#PostScript-figures">PostScript figures</a>: Including an Encapsulated PostScript figure. -<li><a accesskey="2" href="#Header-files">Header files</a>: Downloading extra definitions. -<li><a accesskey="3" href="#Literal-PS">Literal PS</a>: Writing literal PostScript code. -<li><a accesskey="4" href="#Hypertext">Hypertext</a>: Producing HyperPostScript to make PDF. -</ul> - -<div class="node"> +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#PostScript-figures" accesskey="1">PostScript figures</a>:</td><td> </td><td align="left" valign="top">Including an Encapsulated PostScript figure. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Header-files" accesskey="2">Header files</a>:</td><td> </td><td align="left" valign="top">Downloading extra definitions. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Literal-PS" accesskey="3">Literal PS</a>:</td><td> </td><td align="left" valign="top">Writing literal PostScript code. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Hypertext" accesskey="4">Hypertext</a>:</td><td> </td><td align="left" valign="top">Producing HyperPostScript to make PDF. +</td></tr> +</table> + + +<hr> <a name="PostScript-figures"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Header-files">Header files</a>, -Up: <a rel="up" accesskey="u" href="#Interaction-with-PostScript">Interaction with PostScript</a> - +<div class="header"> +<p> +Next: <a href="#Header-files" accesskey="n" rel="next">Header files</a>, Up: <a href="#Interaction-with-PostScript" accesskey="u" rel="up">Interaction with PostScript</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="PostScript-figures-1"></a> <h3 class="section">5.1 PostScript figures</h3> <p>Scaling and including PostScript graphics is a breeze—if the PostScript file is correctly formed. Even if it is not, however, the file can usually be accommodated with just a little more work. - -<ul class="menu"> -<li><a accesskey="1" href="#Bounding-box">Bounding box</a>: The %%BoundingBox EPS comment. -<li><a accesskey="2" href="#g_t_005cincludegraphics">\includegraphics</a>: The LaTeX \includegraphics macro. -<li><a accesskey="3" href="#EPSF-macros">EPSF macros</a>: Including the file in TeX. -<li><a accesskey="4" href="#psfile-special">psfile special</a>: The basic special. -<li><a accesskey="5" href="#Dynamic-creation-of-graphics">Dynamic creation of graphics</a>: Handling compressed or generated figures. -<li><a accesskey="6" href="#Fonts-in-figures">Fonts in figures</a>: The %*Font comment. -</ul> - -<div class="node"> +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Bounding-box" accesskey="1">Bounding box</a>:</td><td> </td><td align="left" valign="top">The %%BoundingBox EPS comment. +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_005cincludegraphics" accesskey="2">\includegraphics</a>:</td><td> </td><td align="left" valign="top">The LaTeX \includegraphics macro. +</td></tr> +<tr><td align="left" valign="top">• <a href="#EPSF-macros" accesskey="3">EPSF macros</a>:</td><td> </td><td align="left" valign="top">Including the file in TeX. +</td></tr> +<tr><td align="left" valign="top">• <a href="#psfile-special" accesskey="4">psfile special</a>:</td><td> </td><td align="left" valign="top">The basic special. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Dynamic-creation-of-graphics" accesskey="5">Dynamic creation of graphics</a>:</td><td> </td><td align="left" valign="top">Handling compressed or generated figures. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Fonts-in-figures" accesskey="6">Fonts in figures</a>:</td><td> </td><td align="left" valign="top">The %*Font comment. +</td></tr> +</table> + + +<hr> <a name="Bounding-box"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#g_t_005cincludegraphics">\includegraphics</a>, -Up: <a rel="up" accesskey="u" href="#PostScript-figures">PostScript figures</a> - +<div class="header"> +<p> +Next: <a href="#g_t_005cincludegraphics" accesskey="n" rel="next">\includegraphics</a>, Up: <a href="#PostScript-figures" accesskey="u" rel="up">PostScript figures</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="The-bounding-box-comment"></a> <h4 class="subsection">5.1.1 The bounding box comment</h4> -<p><a name="index-bounding-box_002c-comment-for-361"></a> -The most important feature of a good PostScript file from the standpoint -of including it in another document is an accurate bounding box comment. +<a name="index-bounding-box_002c-comment-for"></a> + +<p>The most important feature of a good PostScript file from the standpoint +of including it in another document is an accurate bounding box comment. Every well-formed PostScript file has a comment describing where on the page the graphic is located, and how big that graphic is. - - <p><a name="index-big-points-362"></a><a name="index-PostScript-units-363"></a><a name="index-bounding-box_002c-defined-364"></a>This information is given as the lower left and upper right corners of +</p> +<a name="index-big-points"></a> +<a name="index-PostScript-units"></a> +<a name="index-bounding-box_002c-defined"></a> +<p>This information is given as the lower left and upper right corners of the box just enclosing the graphic, and is thus referred to as the -<dfn>bounding box</dfn>. These coordinates are given in the default +<em>bounding box</em>. These coordinates are given in the default PostScript units (there are precisely 72 PostScript units to the inch, like TeX big points) with respect to the lower left corner of the sheet of paper. - - <p><a name="index-g_t_0025_0025BoundingBox-365"></a>To see if a PostScript file has a bounding box comment, just look at the +</p> +<a name="index-_0025_0025BoundingBox"></a> +<p>To see if a PostScript file has a bounding box comment, just look at the first few lines of the file. PostScript files are standard ASCII, so you can use any text editor to do this. If within the first few dozen lines there is a line like +</p> +<div class="example"> +<pre class="example">%%BoundingBox: 25 50 400 300 +</pre></div> -<pre class="example"> %%BoundingBox: 25 50 400 300 -</pre> - <p class="noindent">(with any reasonable numbers), chances are very good that the file is +<p>(with any reasonable numbers), chances are very good that the file is Encapsulated PostScript and will work easily with Dvips. If the file contains instead a line like - - <p><a name="index-atend_0040r_007b_002c-bounding-box-specification_007d-366"></a><a name="index-g_t_0028atend_0029_0040r_007b_002c-bounding-box-specification_007d-367"></a> -<pre class="example"> %%BoundingBox: (atend) -</pre> - <p class="noindent">the file is still probably Encapsulated PostScript, but the bounding box +</p> +<a name="index-atend_002c-bounding-box-specification"></a> +<a name="index-_0028atend_0029_002c-bounding-box-specification"></a> +<div class="example"> +<pre class="example">%%BoundingBox: (atend) +</pre></div> + +<p>the file is still probably Encapsulated PostScript, but the bounding box is given at the end of the file. Dvips needs it at the beginning. You can move it with that same text editor, or a simple script. (The bounding box is given in this way when the program that generated the -PostScript couldn't know the size in advance, or was too lazy to compute +PostScript couldn’t know the size in advance, or was too lazy to compute it.) - - <p><a name="index-bbfig-368"></a><a name="index-bounding-box_002c-determining-369"></a>If the document lacks a ‘<samp><span class="samp">%%BoundingBox:</span></samp>’ altogether, you can -determine one in a couple of ways. One is to use the ‘<samp><span class="samp">bbfig</span></samp>’ -program distributed with Dvips in the <samp><span class="file">contrib</span></samp> directory. This can +</p> +<a name="index-bbfig"></a> +<a name="index-bounding-box_002c-determining"></a> +<p>If the document lacks a ‘<samp>%%BoundingBox:</samp>’ altogether, you can +determine one in a couple of ways. One is to use the ‘<samp>bbfig</samp>’ +program distributed with Dvips in the <samp>contrib</samp> directory. This can usually find the correct bounding box automatically; it works best with Ghostscript. - - <p><a name="index-g_t612-792-_0040r_007bbounding-box-size_007d-370"></a>If the comment looks like this: -<pre class="example"> %%BoundingBox: 0 0 612 792 -</pre> - <p class="noindent">the graphic claims to take up an entire sheet of paper. This is +</p> +<a name="index-612-792-bounding-box-size"></a> +<p>If the comment looks like this: +</p><div class="example"> +<pre class="example">%%BoundingBox: 0 0 612 792 +</pre></div> + +<p>the graphic claims to take up an entire sheet of paper. This is usually a symptom of a bug in the program that generated it. - - <p>The other is to do it yourself: print the file. Now, take a ruler, and +</p> +<p>The other is to do it yourself: print the file. Now, take a ruler, and make the following measurements (in PostScript units, so measure in inches and multiply by 72): From the left edge of the paper to the leftmost mark on the paper is <var>llx</var>, the first number. From the @@ -1858,1334 +2497,1683 @@ bottom edge of the paper to the bottommost mark on the paper is rightmost mark on the paper is <var>urx</var>, the third number. The fourth and final number, <var>ury</var>, is the distance from the bottom of the page to the uppermost mark on the paper. - - <p>Once you have the numbers, add a comment of the following form as the +</p> +<p>Once you have the numbers, add a comment of the following form as the second line of the document. (The first line should already be a line -starting with the two characters ‘<samp><span class="samp">%!</span></samp>’; if it is not, the file -probably isn't PostScript.) - -<pre class="example"> %%BoundingBox: <var>llx</var> <var>lly</var> <var>urx</var> <var>ury</var> -</pre> - <p class="noindent">Or, if you don't want to modify the file, you can simply write these +starting with the two characters ‘<samp>%!</samp>’; if it is not, the file +probably isn’t PostScript.) +</p> +<div class="example"> +<pre class="example">%%BoundingBox: <var>llx</var> <var>lly</var> <var>urx</var> <var>ury</var> +</pre></div> + +<p>Or, if you don’t want to modify the file, you can simply write these numbers down in a convenient place and give them in your TeX document when you import the graphic, as described in the next section. - - <p>If the document does not have such a bounding box, or if the bounding +</p> +<p>If the document does not have such a bounding box, or if the bounding box is given at the end of the document, or the bounding box is wrong, please complain to the authors of the software package that generated the file. +</p> -<div class="node"> -<a name="%5cincludegraphics"></a> +<hr> <a name="g_t_005cincludegraphics"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#EPSF-macros">EPSF macros</a>, -Previous: <a rel="previous" accesskey="p" href="#Bounding-box">Bounding box</a>, -Up: <a rel="up" accesskey="u" href="#PostScript-figures">PostScript figures</a> - +<div class="header"> +<p> +Next: <a href="#EPSF-macros" accesskey="n" rel="next">EPSF macros</a>, Previous: <a href="#Bounding-box" accesskey="p" rel="prev">Bounding box</a>, Up: <a href="#PostScript-figures" accesskey="u" rel="up">PostScript figures</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="The-_005cincludegraphics-macro-for-LaTeX"></a> <h4 class="subsection">5.1.2 The \includegraphics macro for LaTeX</h4> -<p><a name="index-g_t_005cincludegraphics-_0040LaTeX_007b_007d-macro-371"></a><a name="index-macros-for-epsf-inclusion-372"></a> -Once the figure file has a bounding box comment (see the previous +<a name="index-_005cincludegraphics-LaTeX-macro"></a> +<a name="index-macros-for-epsf-inclusion"></a> + +<p>Once the figure file has a bounding box comment (see the previous section) you are ready to import the graphic into a LaTeX document. For LaTeX 2e, you can use the epsf, graphics or graphicx packages, but the last is recommended—it has the most flexible syntax, and is briefly described here. Further information can be -found in <samp><span class="file">grfguide</span></samp> or <samp><span class="file">epslatex</span></samp>, which should be included +found in <samp>grfguide</samp> or <samp>epslatex</samp>, which should be included in your LaTeX distribution in DVI, PDF, or other formats. (If you are still using LaTeX 2.09, use epsf.sty). - - <p>Just put the following command into your preamble: - -<pre class="example"> \usepackage[dvips]{graphicx} -</pre> - <p>Depending on your system, a suitable driver setup may already be +</p> +<p>Just put the following command into your preamble: +</p> +<div class="example"> +<pre class="example">\usepackage[dvips]{graphicx} +</pre></div> + +<p>Depending on your system, a suitable driver setup may already be present, so that LaTeX automatically produces DVI files suitable for -Dvips. In this case you can leave out the ‘<samp><span class="samp">[dvips]</span></samp>’ parameter. - - <p>Now, at the point you want to include a file <samp><span class="file">foo.eps</span></samp>, enter a +Dvips. In this case you can leave out the ‘<samp>[dvips]</samp>’ parameter. +</p> +<p>Now, at the point you want to include a file <samp>foo.eps</samp>, enter a line such as: - -<pre class="example"> \includegraphics{foo.eps} -</pre> - <p>However, it is usually best to omit the file extension and only use - -<pre class="example"> \includegraphics{foo} -</pre> - <p class="noindent">because then you can process the same LaTeX file with +</p> +<div class="example"> +<pre class="example">\includegraphics{foo.eps} +</pre></div> + +<p>However, it is usually best to omit the file extension and only use +</p> +<div class="example"> +<pre class="example">\includegraphics{foo} +</pre></div> + +<p>because then you can process the same LaTeX file with different TeX engines or DVI converters if you also provide -suitable graphics files for them, e.g., <samp><span class="file">foo.pdf</span></samp> or -<samp><span class="file">foo.png</span></samp>. - - <p><a name="index-bounding-box_002c-supplying-to-_0040TeX_007b_007d-373"></a>The \includegraphics command has many options, specified in -‘<samp><span class="samp">key=value</span></samp>’ syntax, to allow you to resize, rotate or trim the -included graphic—see <samp><span class="file">grfguide</span></samp> or <samp><span class="file">epslatex</span></samp>. If your +suitable graphics files for them, e.g., <samp>foo.pdf</samp> or +<samp>foo.png</samp>. +</p> +<a name="index-bounding-box_002c-supplying-to-TeX"></a> +<p>The \includegraphics command has many options, specified in +‘<samp>key=value</samp>’ syntax, to allow you to resize, rotate or trim the +included graphic—see <samp>grfguide</samp> or <samp>epslatex</samp>. If your file does not have a bounding box comment, you can supply the numbers as determined in the previous section, in the same order they would have been in a normal bounding box comment: +</p> +<div class="example"> +<pre class="example">\includegraphics[bb=100 100 500 500]{foo.ps} +</pre></div> -<pre class="example"> \includegraphics[bb=100 100 500 500]{foo.ps} -</pre> - <p class="noindent">Now, save your changes and run LaTeX and Dvips; the output should +<p>Now, save your changes and run LaTeX and Dvips; the output should have your graphic positioned at precisely the point you indicated, occupying the proper amount of space. - - <p>PostScript graphics have their origin in the lower left +</p> +<p>PostScript graphics have their origin in the lower left corner. Therefore, in TeX, a graphic will occupy a box that extends -far above the line where it is put in, but has depth zero below it. -Combining ‘<samp><span class="samp">\includegraphics</span></samp>’ with ‘<samp><span class="samp">\parbox</span></samp>’ commands or +far above the line where it is put in, but has depth zero below it. +Combining ‘<samp>\includegraphics</samp>’ with ‘<samp>\parbox</samp>’ commands or minipages can sometimes be confusing when this is not taken into account. +</p> -<div class="node"> +<hr> <a name="EPSF-macros"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#psfile-special">psfile special</a>, -Previous: <a rel="previous" accesskey="p" href="#g_t_005cincludegraphics">\includegraphics</a>, -Up: <a rel="up" accesskey="u" href="#PostScript-figures">PostScript figures</a> - +<div class="header"> +<p> +Next: <a href="#psfile-special" accesskey="n" rel="next">psfile special</a>, Previous: <a href="#g_t_005cincludegraphics" accesskey="p" rel="prev">\includegraphics</a>, Up: <a href="#PostScript-figures" accesskey="u" rel="up">PostScript figures</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Using-the-EPSF-macros"></a> <h4 class="subsection">5.1.3 Using the EPSF macros</h4> -<p><a name="index-EPSF-macros-374"></a><a name="index-macros-for-epsf-inclusion-375"></a> -If you are using LaTeX 2e, use the ‘<samp><span class="samp">graphics</span></samp>’ or ‘<samp><span class="samp">graphicx</span></samp>’ -package. See <a href="#g_t_005cincludegraphics">\includegraphics</a>. +<a name="index-EPSF-macros"></a> +<a name="index-macros-for-epsf-inclusion-1"></a> - <p>If you are using plain TeX or LaTeX 2.09, you need <samp><span class="file">epsf.tex</span></samp> -(for plain TeX) and <samp><span class="file">epsf.sty</span></samp> (for LaTeX). For plain +<p>If you are using LaTeX 2e, use the ‘<samp>graphics</samp>’ or ‘<samp>graphicx</samp>’ +package. See <a href="#g_t_005cincludegraphics">\includegraphics</a>. +</p> +<p>If you are using plain TeX or LaTeX 2.09, you need <samp>epsf.tex</samp> +(for plain TeX) and <samp>epsf.sty</samp> (for LaTeX). For plain TeX, add a line like this near the top of your input file: - - <p><a name="index-epsf_002etex-376"></a> -<pre class="example"> \input epsf -</pre> - <p class="noindent"><a name="index-epsf_002esty-377"></a>If you are using LaTeX 2.09, add the ‘<samp><span class="samp">epsf</span></samp>’ style option, as in: - -<pre class="example"> \documentstyle[12pt,epsf]{article} -</pre> - <p class="noindent">In any case, the above only needs to be done once, no matter how many +</p> +<a name="index-epsf_002etex"></a> +<div class="example"> +<pre class="example">\input epsf +</pre></div> + +<a name="index-epsf_002esty"></a> +<p>If you are using LaTeX 2.09, add the ‘<samp>epsf</samp>’ style option, as in: +</p> +<div class="example"> +<pre class="example">\documentstyle[12pt,epsf]{article} +</pre></div> + +<p>In any case, the above only needs to be done once, no matter how many figures you plan to include. - - <p>Now, at the point you want to include a file, enter a line such as: - -<pre class="example"> \epsffile{foo.eps} -</pre> - <p><a name="index-g_t_005cleavevmode-378"></a><a name="index-bounding-box_002c-supplying-to-_0040TeX_007b_007d-379"></a>If you are using LaTeX, you may need to add <code>\leavevmode</code> +</p> +<p>Now, at the point you want to include a file, enter a line such as: +</p> +<div class="example"> +<pre class="example">\epsffile{foo.eps} +</pre></div> + +<a name="index-_005cleavevmode"></a> +<a name="index-bounding-box_002c-supplying-to-TeX-1"></a> +<p>If you are using LaTeX, you may need to add <code>\leavevmode</code> immediately before the <code>\epsffile</code> command to get certain environments to work correctly. If your file does not have a bounding box comment, you can supply the numbers as determined in the previous section, in the same order they would have been in a normal bounding box comment: +</p> +<div class="example"> +<pre class="example">\epsffile[100 100 500 500]{foo.ps} +</pre></div> -<pre class="example"> \epsffile[100 100 500 500]{foo.ps} -</pre> - <p class="noindent">Now, save your changes and run TeX and Dvips; the output should have +<p>Now, save your changes and run TeX and Dvips; the output should have your graphic positioned at precisely the point you indicated, occupying the proper amount of space. - - <p><a name="index-g_t_005cepsffile-_0040r_007bmacro_007d-380"></a><a name="index-figures_002c-natural-size-381"></a>The <code>\epsffile</code> macro typesets the figure as a TeX <code>\vbox</code> +</p> +<a name="index-_005cepsffile-macro"></a> +<a name="index-figures_002c-natural-size"></a> +<p>The <code>\epsffile</code> macro typesets the figure as a TeX <code>\vbox</code> at the point of the page that the command is executed. By default, the -graphic will have its `natural' width (namely, the width of its bounding +graphic will have its ‘natural’ width (namely, the width of its bounding box). The TeX box will have depth zero and its natural height. By default, the graphic will be scaled by any DVI magnification in effect, just as is everything else in your document. See the next section for more information on scaling. - - <p><a name="index-g_t_005cepsfverbosetrue-382"></a><a name="index-verbose-EPSF-processing-383"></a>If you want TeX to report the size of the figure as a message on your +</p> +<a name="index-_005cepsfverbosetrue"></a> +<a name="index-verbose-EPSF-processing"></a> +<p>If you want TeX to report the size of the figure as a message on your terminal when it processes each figure, give the command: +</p> +<div class="example"> +<pre class="example">\epsfverbosetrue +</pre></div> -<pre class="example"> \epsfverbosetrue -</pre> - <ul class="menu"> -<li><a accesskey="1" href="#EPSF-scaling">EPSF scaling</a> -<li><a accesskey="2" href="#EPSF-clipping">EPSF clipping</a> -</ul> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#EPSF-scaling" accesskey="1">EPSF scaling</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#EPSF-clipping" accesskey="2">EPSF clipping</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> -<div class="node"> -<a name="EPSF-scaling"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#EPSF-clipping">EPSF clipping</a>, -Up: <a rel="up" accesskey="u" href="#EPSF-macros">EPSF macros</a> +<hr> +<a name="EPSF-scaling"></a> +<div class="header"> +<p> +Next: <a href="#EPSF-clipping" accesskey="n" rel="next">EPSF clipping</a>, Up: <a href="#EPSF-macros" accesskey="u" rel="up">EPSF macros</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="EPSF-scaling-1"></a> +<h4 class="subsubsection">5.1.3.1 EPSF scaling</h4> -<h5 class="subsubsection">5.1.3.1 EPSF scaling</h5> +<a name="index-scaling-of-figures"></a> +<a name="index-figures_002c-scaling"></a> -<p><a name="index-scaling-of-figures-384"></a><a name="index-figures_002c-scaling-385"></a> -Usually, you will want to scale an EPSF figure to some size appropriate +<p>Usually, you will want to scale an EPSF figure to some size appropriate for your document, since its natural size is determined by the creator of the EPS file. - - <p>The best way to do this is to assign the desired size to the TeX +</p> +<p>The best way to do this is to assign the desired size to the TeX <code>\epsfxsize</code> or <code>\epsfysize</code> variables, whichever is more convenient for you. That is, put - - <p><a name="index-g_t_005cepsfxsize-386"></a> -<pre class="example"> \epsfxsize=<var>dimen</var> -</pre> - <p class="noindent">right before the call to <code>\epsffile</code>. Then the width of the TeX -box will be <var>dimen</var> and its height will be scaled proportionately. +</p> +<a name="index-_005cepsfxsize"></a> +<div class="example"> +<pre class="example">\epsfxsize=<var>dimen</var> +</pre></div> + +<p>right before the call to <code>\epsffile</code>. Then the width of the TeX +box will be <var>dimen</var> and its height will be scaled proportionately. Similarly, you can set the vertical size with +</p> +<a name="index-_005cepsfysize"></a> +<div class="example"> +<pre class="example">\epsfysize=<var>dimen</var> +</pre></div> - <p><a name="index-g_t_005cepsfysize-387"></a> -<pre class="example"> \epsfysize=<var>dimen</var> -</pre> - <p class="noindent">in which case the height will be set and the width scaled +<p>in which case the height will be set and the width scaled proportionally. - - <p>If you set both, both will be honored, but the aspect ratio of the +</p> +<p>If you set both, both will be honored, but the aspect ratio of the included graphic may necessarily be distorted, i.e., its contents stretched in one direction or the other. - - <p><a name="index-g_t_005cepsfsize-388"></a>You can resize graphics in a more general way by redefining the +</p> +<a name="index-_005cepsfsize"></a> +<p>You can resize graphics in a more general way by redefining the <code>\epsfsize</code> macro. <code>\epsffile</code> calls this with two parameters: the natural horizontal and vertical sizes of the PostScript graphic. <code>\epsfsize</code> must expand to the desired horizontal size, that is, the width of the <code>\vbox</code>. Schematically: - -<pre class="example"> \def\epsfsize#1#2{<var>body</var>} -</pre> - <p>Some useful definitions of <var>body</var>: - - <dl> -<dt>‘<samp><span class="samp">\epsfxsize</span></samp>’<dd>This definition (the default) enables the default features listed above, +</p> +<div class="example"> +<pre class="example">\def\epsfsize#1#2{<var>body</var>} +</pre></div> + +<p>Some useful definitions of <var>body</var>: +</p> +<dl compact="compact"> +<dt>‘<samp>\epsfxsize</samp>’</dt> +<dd><p>This definition (the default) enables the default features listed above, by setting <code>\epsfxsize</code> to the same value it had before the macro was called. - - <br><dt>‘<samp><span class="samp">#1</span></samp>’<dd>Force the natural size by returning the first parameter (the original +</p> +</dd> +<dt>‘<samp>#1</samp>’</dt> +<dd><p>Force the natural size by returning the first parameter (the original width). - - <br><dt>‘<samp><span class="samp">0pt</span></samp>’<dd>A special case, equivalent to ‘<samp><span class="samp">#1</span></samp>’. - - <br><dt>‘<samp><span class="samp">0.5#1</span></samp>’<dd>Scale to half the natural size. - - <br><dt>‘<samp><span class="samp">\hsize</span></samp>’<dd>Scale to the current <code>\hsize</code>. (In LaTeX, use <code>\textwidth</code> +</p> +</dd> +<dt>‘<samp>0pt</samp>’</dt> +<dd><p>A special case, equivalent to ‘<samp>#1</samp>’. +</p> +</dd> +<dt>‘<samp>0.5#1</samp>’</dt> +<dd><p>Scale to half the natural size. +</p> +</dd> +<dt>‘<samp>\hsize</samp>’</dt> +<dd><p>Scale to the current <code>\hsize</code>. (In LaTeX, use <code>\textwidth</code> instead of <code>\hsize</code>.) - - <br><dt>‘<samp><span class="samp">\ifnum#1>\hsize\hsize\else#1\fi</span></samp>’<dd>If the natural width is greater than the current <code>\hsize</code>, scale to +</p> +</dd> +<dt>‘<samp>\ifnum#1>\hsize\hsize\else#1\fi</samp>’</dt> +<dd><p>If the natural width is greater than the current <code>\hsize</code>, scale to <code>\hsize</code>, otherwise use the natural width. +</p> +</dd> +</dl> - </dl> - - <p><a name="index-DVI-magnification-389"></a><a name="index-magnification_002c-DVI-390"></a><a name="index-g_t_005cmagnification-391"></a>For compatibility with other PostScript drivers, it is possible to turn +<a name="index-DVI-magnification"></a> +<a name="index-magnification_002c-DVI"></a> +<a name="index-_005cmagnification"></a> +<p>For compatibility with other PostScript drivers, it is possible to turn off the default scaling of included figures by the DVI magnification with the following TeX command: +</p> +<a name="index-_002fmagscale"></a> +<div class="example"> +<pre class="example">\special{! /magscale false def} +</pre></div> - <p><a name="index-g_t_002fmagscale-392"></a> -<pre class="example"> \special{! /magscale false def} -</pre> - <p class="noindent">Use of this command is not recommended because it will make the +<p>Use of this command is not recommended because it will make the <code>\epsffile</code> graphics the “wrong” size if global magnification is being used, and it will cause any PostScript graphics to appear improperly scaled and out of position if a DVI to DVI program is used to scale or otherwise modify the document. +</p> +<a name="index-bop_002dhook-1"></a> +<p>DVI magnification is not applied to any output from code you write in +‘<samp>bop-hook</samp>’ or its ilk (see <a href="#PostScript-hooks">PostScript hooks</a>), +</p> - <p><a name="index-bop_002dhook-393"></a>DVI magnification is not applied to any output from code you write in -‘<samp><span class="samp">bop-hook</span></samp>’ or its ilk (see <a href="#PostScript-hooks">PostScript hooks</a>), - -<div class="node"> +<hr> <a name="EPSF-clipping"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#EPSF-scaling">EPSF scaling</a>, -Up: <a rel="up" accesskey="u" href="#EPSF-macros">EPSF macros</a> - +<div class="header"> +<p> +Previous: <a href="#EPSF-scaling" accesskey="p" rel="prev">EPSF scaling</a>, Up: <a href="#EPSF-macros" accesskey="u" rel="up">EPSF macros</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="EPSF-clipping-1"></a> +<h4 class="subsubsection">5.1.3.2 EPSF clipping</h4> -<h5 class="subsubsection">5.1.3.2 EPSF clipping</h5> +<a name="index-clipping-of-EPSF"></a> +<a name="index-bounding-box_002c-inaccurate"></a> +<a name="index-text-in-figures_002c-chopped-off"></a> +<a name="index-lines-in-figures_002c-wrong-width"></a> -<p><a name="index-clipping-of-EPSF-394"></a><a name="index-bounding-box_002c-inaccurate-395"></a><a name="index-text-in-figures_002c-chopped-off-396"></a><a name="index-lines-in-figures_002c-wrong-width-397"></a> -By default, clipping is disabled for included EPSF images. This is +<p>By default, clipping is disabled for included EPSF images. This is because clipping to the bounding box dimensions often cuts off a small portion of the figure, due to slightly inaccurate bounding box arguments. The problem might be subtle; lines around the boundary of the image might be half their intended width, or the tops or bottoms of some text annotations might be sliced off. If you want to turn clipping on, just use the command +</p> +<div class="example"> +<pre class="example">\epsfclipon +</pre></div> -<pre class="example"> \epsfclipon -</pre> - <p class="noindent">and to turn clipping back off, use +<p>and to turn clipping back off, use +</p> +<div class="example"> +<pre class="example">\epsfclipoff +</pre></div> -<pre class="example"> \epsfclipoff -</pre> - <div class="node"> -<a name="psfile-special"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Dynamic-creation-of-graphics">Dynamic creation of graphics</a>, -Previous: <a rel="previous" accesskey="p" href="#EPSF-macros">EPSF macros</a>, -Up: <a rel="up" accesskey="u" href="#PostScript-figures">PostScript figures</a> +<hr> +<a name="psfile-special"></a> +<div class="header"> +<p> +Next: <a href="#Dynamic-creation-of-graphics" accesskey="n" rel="next">Dynamic creation of graphics</a>, Previous: <a href="#EPSF-macros" accesskey="p" rel="prev">EPSF macros</a>, Up: <a href="#PostScript-figures" accesskey="u" rel="up">PostScript figures</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="psfile-special-1"></a> +<h4 class="subsection">5.1.4 ‘<samp>psfile</samp>’ special</h4> -<h4 class="subsection">5.1.4 ‘<samp><span class="samp">psfile</span></samp>’ special</h4> +<a name="index-psfile-special"></a> -<p><a name="index-psfile-_0040r_007bspecial_007d-398"></a> -The basic special for file inclusion is as follows: +<p>The basic special for file inclusion is as follows: +</p> +<div class="example"> +<pre class="example">\special{psfile=<var>filename</var>.ps <span class="roman">[</span><var>key</var>=<var>value</var><span class="roman">]</span> … } +</pre></div> -<pre class="example"> \special{psfile=<var>filename</var>.ps <span class="roman">[</span><var>key</var>=<var>value</var><span class="roman">]</span> ... } -</pre> - <p class="noindent">This downloads the PostScript file <samp><var>filename</var><span class="file">.ps</span></samp> such that +<p>This downloads the PostScript file <samp><var>filename</var>.ps</samp> such that the current point will be the origin of the PostScript coordinate system. The optional <var>key</var><tt>=</tt><var>value</var> assignments allow you to specify transformations on the PostScript. - - <p>The possible <var>key</var>s are: - - <dl> -<dt>‘<samp><span class="samp">hoffset</span></samp>’<dd><a name="index-hoffset-_0040r_007b_0028_0040samp_007bpsfile_007d-special-option_0029_007d-399"></a>The horizontal offset (default 0). - - <br><dt>‘<samp><span class="samp">voffset</span></samp>’<dd><a name="index-voffset-_0040r_007b_0028_0040samp_007bpsfile_007d-special-option_0029_007d-400"></a>The vertical offset (default 0). - - <br><dt>‘<samp><span class="samp">hsize</span></samp>’<dd><a name="index-hsize-_0040r_007b_0028_0040samp_007bpsfile_007d-special-option_0029_007d-401"></a>The horizontal clipping size (default 612). - - <br><dt>‘<samp><span class="samp">vsize</span></samp>’<dd><a name="index-vsize-_0040r_007b_0028_0040samp_007bpsfile_007d-special-option_0029_007d-402"></a>The vertical clipping size (default 792). - - <br><dt>‘<samp><span class="samp">hscale</span></samp>’<dd><a name="index-hscale-_0040r_007b_0028_0040samp_007bpsfile_007d-special-option_0029_007d-403"></a>The horizontal scaling factor, as a percentage (default 100). - - <br><dt>‘<samp><span class="samp">vscale</span></samp>’<dd><a name="index-vscale-_0040r_007b_0028_0040samp_007bpsfile_007d-special-option_0029_007d-404"></a>The vertical scaling factor, as a percentage (default 100). - - <br><dt>‘<samp><span class="samp">angle</span></samp>’<dd><a name="index-angle-_0040r_007b_0028_0040samp_007bpsfile_007d-special-option_0029_007d-405"></a>The rotation, in degrees (default 0). - - <br><dt>‘<samp><span class="samp">clip</span></samp>’<dd><a name="index-clip-_0040r_007b_0028_0040samp_007bpsfile_007d-special-option_0029_007d-406"></a>Enable clipping to the bounding box (default disabled). - - <br><dt>‘<samp><span class="samp">llx, lly, urx, ury</span></samp>’<dd><a name="index-llx-_0040r_007b_0028_0040samp_007bpsfile_007d-special-option_0029_007d-407"></a><a name="index-lly-_0040r_007b_0028_0040samp_007bpsfile_007d-special-option_0029_007d-408"></a><a name="index-urx-_0040r_007b_0028_0040samp_007bpsfile_007d-special-option_0029_007d-409"></a><a name="index-ury-_0040r_007b_0028_0040samp_007bpsfile_007d-special-option_0029_007d-410"></a>Bounding box of the included image, just as in a <code>%%BoundingBox</code> +</p> +<p>The possible <var>key</var>s are: +</p> +<dl compact="compact"> +<dt>‘<samp>hoffset</samp>’</dt> +<dd><a name="index-hoffset-_0028psfile-special-option_0029"></a> +<p>The horizontal offset (default 0). +</p> +</dd> +<dt>‘<samp>voffset</samp>’</dt> +<dd><a name="index-voffset-_0028psfile-special-option_0029"></a> +<p>The vertical offset (default 0). +</p> +</dd> +<dt>‘<samp>hsize</samp>’</dt> +<dd><a name="index-hsize-_0028psfile-special-option_0029"></a> +<p>The horizontal clipping size (default 612). +</p> +</dd> +<dt>‘<samp>vsize</samp>’</dt> +<dd><a name="index-vsize-_0028psfile-special-option_0029"></a> +<p>The vertical clipping size (default 792). +</p> +</dd> +<dt>‘<samp>hscale</samp>’</dt> +<dd><a name="index-hscale-_0028psfile-special-option_0029"></a> +<p>The horizontal scaling factor, as a percentage (default 100). +</p> +</dd> +<dt>‘<samp>vscale</samp>’</dt> +<dd><a name="index-vscale-_0028psfile-special-option_0029"></a> +<p>The vertical scaling factor, as a percentage (default 100). +</p> +</dd> +<dt>‘<samp>angle</samp>’</dt> +<dd><a name="index-angle-_0028psfile-special-option_0029"></a> +<p>The rotation, in degrees (default 0). +</p> +</dd> +<dt>‘<samp>clip</samp>’</dt> +<dd><a name="index-clip-_0028psfile-special-option_0029"></a> +<p>Enable clipping to the bounding box (default disabled). +</p> +</dd> +<dt>‘<samp>llx, lly, urx, ury</samp>’</dt> +<dd><a name="index-llx-_0028psfile-special-option_0029"></a> +<a name="index-lly-_0028psfile-special-option_0029"></a> +<a name="index-urx-_0028psfile-special-option_0029"></a> +<a name="index-ury-_0028psfile-special-option_0029"></a> +<p>Bounding box of the included image, just as in a <code>%%BoundingBox</code> comment. Values are in big points, and may be fractional. - - <br><dt>‘<samp><span class="samp">rhi, rwi</span></samp>’<dd><a name="index-rhi-_0040r_007b_0028_0040samp_007bpsfile_007d-special-option_0029_007d-411"></a><a name="index-rwi-_0040r_007b_0028_0040samp_007bpsfile_007d-special-option_0029_007d-412"></a>Desired width and height of the resulting figure in the output, in -tenths of big points (720 to the inch); may be fractional. - - <p>If both <code>rwi</code> and <code>rhi</code> are nonzero, the picture is scaled, +</p> +</dd> +<dt>‘<samp>rhi, rwi</samp>’</dt> +<dd><a name="index-rhi-_0028psfile-special-option_0029"></a> +<a name="index-rwi-_0028psfile-special-option_0029"></a> +<p>Desired width and height of the resulting figure in the output, in +tenths of big points (720 to the inch); may be fractional. +</p> +<p>If both <code>rwi</code> and <code>rhi</code> are nonzero, the picture is scaled, possibly losing aspect ratio. If only one of <code>rwi</code> and <code>rhi</code> is nonzero, the picture is scaled, preserving aspect ratio. +</p> +</dd> +</dl> - </dl> - - <p>The offsets and sizes are given in PostScript units (big points). +<p>The offsets and sizes are given in PostScript units (big points). Thus, for example: +</p> +<div class="example"> +<pre class="example">\special{psfile=foo.ps hoffset=72 hscale=90 vscale=90} +</pre></div> -<pre class="example"> \special{psfile=foo.ps hoffset=72 hscale=90 vscale=90} -</pre> - <p class="noindent">will shift the graphics produced by file <samp><span class="file">foo.ps</span></samp> right by one inch +<p>will shift the graphics produced by file <samp>foo.ps</samp> right by one inch and will draw it at 0.9 times normal size. Offsets are given relative to the point of the special command, and are unaffected by scaling or rotation. Rotation is counterclockwise about the origin. The order of operations is to rotate the figure, scale it, then offset it. - - <p>For compatibility with older PostScript drivers, it is possible to change -the units that ‘<samp><span class="samp">hscale</span></samp>’ and ‘<samp><span class="samp">vscale</span></samp>’ are given in. This can be -done by redefining ‘<samp><span class="samp">@scaleunit</span></samp>’ -<a name="index-scaleunit-413"></a>in ‘<samp><span class="samp">SDict</span></samp>’ -<a name="index-SDict-414"></a>by a TeX command such as - -<pre class="example"> \special{! /@scaleunit 1 def} -</pre> - <p class="noindent">The ‘<samp><span class="samp">@scaleunit</span></samp>’ variable, which is by default 100, is what -‘<samp><span class="samp">hscale</span></samp>’ and ‘<samp><span class="samp">vscale</span></samp>’ are divided by to yield an absolute +</p> +<p>For compatibility with older PostScript drivers, it is possible to change +the units that ‘<samp>hscale</samp>’ and ‘<samp>vscale</samp>’ are given in. This can be +done by redefining ‘<samp>@scaleunit</samp>’ +<a name="index-scaleunit"></a> +in ‘<samp>SDict</samp>’ +<a name="index-SDict"></a> +by a TeX command such as +</p> +<div class="example"> +<pre class="example">\special{! /@scaleunit 1 def} +</pre></div> + +<p>The ‘<samp>@scaleunit</samp>’ variable, which is by default 100, is what +‘<samp>hscale</samp>’ and ‘<samp>vscale</samp>’ are divided by to yield an absolute scale factor. +</p> -<div class="node"> +<hr> <a name="Dynamic-creation-of-graphics"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Fonts-in-figures">Fonts in figures</a>, -Previous: <a rel="previous" accesskey="p" href="#psfile-special">psfile special</a>, -Up: <a rel="up" accesskey="u" href="#PostScript-figures">PostScript figures</a> - +<div class="header"> +<p> +Next: <a href="#Fonts-in-figures" accesskey="n" rel="next">Fonts in figures</a>, Previous: <a href="#psfile-special" accesskey="p" rel="prev">psfile special</a>, Up: <a href="#PostScript-figures" accesskey="u" rel="up">PostScript figures</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Dynamic-creation-of-PostScript-graphics-files"></a> <h4 class="subsection">5.1.5 Dynamic creation of PostScript graphics files</h4> -<p><a name="index-dynamic-creation-of-graphics-415"></a><a name="index-compressed-PostScript-416"></a><a name="index-uncompressing-PostScript-417"></a> -PostScript is an excellent page description language—but it does tend +<a name="index-dynamic-creation-of-graphics"></a> +<a name="index-compressed-PostScript"></a> +<a name="index-uncompressing-PostScript"></a> + +<p>PostScript is an excellent page description language—but it does tend to be rather verbose. Compressing PostScript graphics files can reduce them by factor of five or more. For this reason, if the name of an -included PostScript file ends with <samp><span class="file">.Z</span></samp> or <samp><span class="file">.gz</span></samp>, Dvips -automatically runs ‘<samp><span class="samp">gzip -d</span></samp>’. For example: - -<pre class="example"> \epsffile[72 72 540 720]{foo.ps.gz} -</pre> - <p class="noindent">Since the results of such a command are not accessible to TeX, if you -use this facility with the <samp><span class="file">epsf</span></samp> macros, you need to supply the +included PostScript file ends with <samp>.Z</samp> or <samp>.gz</samp>, Dvips +automatically runs ‘<samp>gzip -d</samp>’. For example: +</p> +<div class="example"> +<pre class="example">\epsffile[72 72 540 720]{foo.ps.gz} +</pre></div> + +<p>Since the results of such a command are not accessible to TeX, if you +use this facility with the <samp>epsf</samp> macros, you need to supply the bounding box parameter yourself, as shown. - - <p>More generally, if the filename parameter to one of the graphics -inclusion techniques starts with a left quote (‘<samp><span class="samp">`</span></samp>’), the parameter +</p> +<p>More generally, if the filename parameter to one of the graphics +inclusion techniques starts with a left quote (‘<samp>`</samp>’), the parameter is instead interpreted as a command to execute that will send the actual file to standard output. For example: +</p> +<div class="example"> +<pre class="example">\special{psfile="`gnuplot foo"} +</pre></div> -<pre class="example"> \special{psfile="`gnuplot foo"} -</pre> - <p class="noindent"><a name="index-gnuplot-418"></a>to include the file <samp><span class="file">foo</span></samp>. Of course, the command to be executed +<a name="index-gnuplot"></a> +<p>to include the file <samp>foo</samp>. Of course, the command to be executed can be anything, including using a file conversion utility such as -<samp><span class="file">tek2ps</span></samp> or whatever is appropriate. This feature can be disabled -with the ‘<samp><span class="samp">-R</span></samp>’ command-line option or ‘<samp><span class="samp">R</span></samp>’ configuration option. +<samp>tek2ps</samp> or whatever is appropriate. This feature can be disabled +with the ‘<samp>-R</samp>’ command-line option or ‘<samp>R</samp>’ configuration option. +</p> -<div class="node"> +<hr> <a name="Fonts-in-figures"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Dynamic-creation-of-graphics">Dynamic creation of graphics</a>, -Up: <a rel="up" accesskey="u" href="#PostScript-figures">PostScript figures</a> - +<div class="header"> +<p> +Previous: <a href="#Dynamic-creation-of-graphics" accesskey="p" rel="prev">Dynamic creation of graphics</a>, Up: <a href="#PostScript-figures" accesskey="u" rel="up">PostScript figures</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Fonts-in-figures-1"></a> <h4 class="subsection">5.1.6 Fonts in figures</h4> -<p><a name="index-figures-and-fonts-419"></a><a name="index-fonts_002c-in-PostScript-figures-420"></a><a name="index-g_t_0025_002aFont-421"></a> -You can use any font available to TeX and Dvips within a graphics +<a name="index-figures-and-fonts"></a> +<a name="index-fonts_002c-in-PostScript-figures"></a> +<a name="index-_0025_002aFont"></a> + +<p>You can use any font available to TeX and Dvips within a graphics file by putting a <code>%*Font:</code> line in the leading commentary of the file. Schematically, this looks like: - -<pre class="example"> %*Font: <var>tfmname</var> <var>scaledbp</var> <var>designbp</var> <var>hex-start</var>:<var>hex-bitstring</var> -</pre> - <p>Here is the meaning of each of these elements: - - <dl> -<dt><var>tfmname</var><dd>The TeX TFM filename, e.g., <samp><span class="file">cmr10</span></samp>. You can give the same -<var>tfmname</var> on more than one ‘<samp><span class="samp">%*Font</span></samp>’ line; this is useful when +</p> +<div class="example"> +<pre class="example">%*Font: <var>tfmname</var> <var>scaledbp</var> <var>designbp</var> <var>hex-start</var>:<var>hex-bitstring</var> +</pre></div> + +<p>Here is the meaning of each of these elements: +</p> +<dl compact="compact"> +<dt><var>tfmname</var></dt> +<dd><p>The TeX TFM filename, e.g., <samp>cmr10</samp>. You can give the same +<var>tfmname</var> on more than one ‘<samp>%*Font</samp>’ line; this is useful when the number of characters from the font used needs a longer <var>hex-bitstring</var> (see item below) than conveniently fits on one line. - - <br><dt><var>scaledbp</var><dd>The size at which you are using the font, in PostScript points (TeX -big points). 72<span class="dmn">bp</span> = 72.27<span class="dmn">pt</span> = 1<span class="dmn">in</span>. - - <br><dt><var>designbp</var><dd>The designsize of the font, again in PostScript points. This should -match the value in the TFM file <var>tfmname</var>. Thus, for <samp><span class="file">cmr10</span></samp>, -it should be ‘<samp><span class="samp">9.96265</span></samp>’. - - <br><dt><var>hex-start</var><dd>The character code of the first character used from the font, specified -as two ASCII hexadecimal characters, e.g., ‘<samp><span class="samp">4b</span></samp>’ or ‘<samp><span class="samp">4B</span></samp>’ for -‘<samp><span class="samp">K</span></samp>’. - - <br><dt><var>hex-bitstring</var><dd>An arbitrary number of ASCII hexadecimal digits specifying which +</p> +</dd> +<dt><var>scaledbp</var></dt> +<dd><p>The size at which you are using the font, in PostScript points (TeX +big points). 72bp = 72.27pt = 1in. +</p> +</dd> +<dt><var>designbp</var></dt> +<dd><p>The designsize of the font, again in PostScript points. This should +match the value in the TFM file <var>tfmname</var>. Thus, for <samp>cmr10</samp>, +it should be ‘<samp>9.96265</samp>’. +</p> +</dd> +<dt><var>hex-start</var></dt> +<dd><p>The character code of the first character used from the font, specified +as two ASCII hexadecimal characters, e.g., ‘<samp>4b</samp>’ or ‘<samp>4B</samp>’ for +‘<samp>K</samp>’. +</p> +</dd> +<dt><var>hex-bitstring</var></dt> +<dd><p>An arbitrary number of ASCII hexadecimal digits specifying which characters following (and including) <var>hex-start</var> are used. This is treated as a bitmap. For example, if your figure used the single letter -‘<samp><span class="samp">K</span></samp>’, you would use ‘<samp><span class="samp">4b:8</span></samp>’ for <var>hex-start</var> and -<var>hex-bitstring</var>. If it used ‘<samp><span class="samp">KLMNP</span></samp>’, you would use -‘<samp><span class="samp">4b:f4</span></samp>’. - - </dl> +‘<samp>K</samp>’, you would use ‘<samp>4b:8</samp>’ for <var>hex-start</var> and +<var>hex-bitstring</var>. If it used ‘<samp>KLMNP</samp>’, you would use +‘<samp>4b:f4</samp>’. +</p> +</dd> +</dl> - <p>MetaPost's output figures contain lines like this for bitmap fonts used -in a MetaPost label (see <a href="web2c.html#MetaPost">MetaPost</a>). +<p>MetaPost’s output figures contain lines like this for bitmap fonts used +in a MetaPost label (see <a href="web2c.html#MetaPost">MetaPost</a> in <cite>Web2c</cite>). +</p> -<div class="node"> +<hr> <a name="Header-files"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Literal-PS">Literal PS</a>, -Previous: <a rel="previous" accesskey="p" href="#PostScript-figures">PostScript figures</a>, -Up: <a rel="up" accesskey="u" href="#Interaction-with-PostScript">Interaction with PostScript</a> - +<div class="header"> +<p> +Next: <a href="#Literal-PS" accesskey="n" rel="next">Literal PS</a>, Previous: <a href="#PostScript-figures" accesskey="p" rel="prev">PostScript figures</a>, Up: <a href="#Interaction-with-PostScript" accesskey="u" rel="up">Interaction with PostScript</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="PostScript-header-files"></a> <h3 class="section">5.2 PostScript header files</h3> -<p><a name="index-header-files_002c-defined-422"></a><a name="index-PostScript-header-files-423"></a> -<dfn>Header files</dfn> are bits of PostScript included in the output file; +<a name="index-header-files_002c-defined"></a> +<a name="index-PostScript-header-files"></a> + +<p><em>Header files</em> are bits of PostScript included in the output file; generally they provide support for special features, rather than producing any printed output themselves. You can explicitly request downloading header files if necessary for some figure, or to achieve some special effect. - - <p><a name="index-psheaderdir-424"></a><a name="index-g_t_002epro-_0040r_007bprologue-files_007d-425"></a><a name="index-g_t_002elpro-_0040r_007blong-prologue-files_007d-426"></a>Dvips includes some headers on its own initiative, to implement features +</p> +<a name="index-psheaderdir"></a> +<a name="index-_002epro-prologue-files"></a> +<a name="index-_002elpro-long-prologue-files"></a> +<p>Dvips includes some headers on its own initiative, to implement features such as PostScript font reencoding, bitmap font downloading, handling of -<code>\special</code>'s, and so on. These standard headers are the -<samp><span class="file">.pro</span></samp> files (for “prologue”) in the installation directory -‘<samp><span class="samp">$(psheaderdir)</span></samp>’; they are created from the <samp><span class="file">.lpro</span></samp> (“long +<code>\special</code>’s, and so on. These standard headers are the +<samp>.pro</samp> files (for “prologue”) in the installation directory +‘<samp>$(psheaderdir)</samp>’; they are created from the <samp>.lpro</samp> (“long prologue”) files in the distribution by stripping comments, squeezing blank lines, etc., for maximum efficiency. If you -want to peruse one of the standard header files, read the <samp><span class="file">.lpro</span></samp> +want to peruse one of the standard header files, read the <samp>.lpro</samp> version. - - <p><a name="index-userdict_0040r_007b_002c-and-dictionary-files_007d-427"></a><a name="index-dictionary_002c-_0040code_007buserdict_007d-428"></a>The PostScript dictionary stack will be at the ‘<samp><span class="samp">userdict</span></samp>’ level +</p> +<a name="index-userdict_002c-and-dictionary-files"></a> +<a name="index-dictionary_002c-userdict"></a> +<p>The PostScript dictionary stack will be at the ‘<samp>userdict</samp>’ level when header files are included. - -<ul class="menu"> -<li><a accesskey="1" href="#Including-headers-from-TeX">Including headers from TeX</a> -<li><a accesskey="2" href="#Including-headers-from-the-command-line">Including headers from the command line</a> -<li><a accesskey="3" href="#Headers-and-memory-usage">Headers and memory usage</a> -</ul> - -<div class="node"> +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Including-headers-from-TeX" accesskey="1">Including headers from TeX</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Including-headers-from-the-command-line" accesskey="2">Including headers from the command line</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Headers-and-memory-usage" accesskey="3">Headers and memory usage</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> <a name="Including-headers-from-TeX"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Including-headers-from-the-command-line">Including headers from the command line</a>, -Up: <a rel="up" accesskey="u" href="#Header-files">Header files</a> - +<div class="header"> +<p> +Next: <a href="#Including-headers-from-the-command-line" accesskey="n" rel="next">Including headers from the command line</a>, Up: <a href="#Header-files" accesskey="u" rel="up">Header files</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Including-headers-from-TeX-1"></a> <h4 class="subsection">5.2.1 Including headers from TeX</h4> -<p><a name="index-including-headers-in-_0040TeX_007b_007d-429"></a><a name="index-header_003d_0040var_007bfile_007d-_005cspecial-430"></a><a name="index-g_t_0040TeX_007b_007d_002c-including-headers-in-431"></a> -<a name="index-headers_002c-including-in-_0040TeX_007b_007d-432"></a>In order to get a particular graphic file to work, a certain font or -header file might need to be sent first. The Dvips program provides -support for this with the ‘<samp><span class="samp">header</span></samp>’ <code>\special</code>. For instance, -to ensure that <samp><span class="file">foo.ps</span></samp> gets downloaded: +<a name="index-including-headers-in-TeX"></a> +<a name="index-header_003dfile-_005cspecial"></a> +<a name="index-TeX_002c-including-headers-in"></a> -<pre class="example"> \special{header=foo.ps} -</pre> - <p><a name="index-fonts_002c-as-header-files-433"></a>As another example, if you have some PostScript code that uses a +<a name="index-headers_002c-including-in-TeX"></a> +<p>In order to get a particular graphic file to work, a certain font or +header file might need to be sent first. The Dvips program provides +support for this with the ‘<samp>header</samp>’ <code>\special</code>. For instance, +to ensure that <samp>foo.ps</samp> gets downloaded: +</p> +<div class="example"> +<pre class="example">\special{header=foo.ps} +</pre></div> + +<a name="index-fonts_002c-as-header-files"></a> +<p>As another example, if you have some PostScript code that uses a PostScript font not built into your printer, you must download it to the -printer. If the font isn't used elsewhere in the document, Dvips can't -know you've used it, so you must include it in the same way, as in: - -<pre class="example"> \special{header=putr.pfa} -</pre> - <p class="noindent">to include the font definition file for Adobe Utopia Roman. - - <p>The <code>header</code> also special allows for specifying some additional +printer. If the font isn’t used elsewhere in the document, Dvips can’t +know you’ve used it, so you must include it in the same way, as in: +</p> +<div class="example"> +<pre class="example">\special{header=putr.pfa} +</pre></div> + +<p>to include the font definition file for Adobe Utopia Roman. +</p> +<p>The <code>header</code> also special allows for specifying some additional code that should be inserted into the PostScript document before and after the file itself, as follows: - -<pre class="example"> \special{header={foo.ps} pre={pre code} post={post code}} -</pre> - <p><a name="index-before-header_002c-inserting-code-434"></a><a name="index-after-header_002c-inserting-code-435"></a><a name="index-pre-_0040r_007bcode-before-headers_007d-436"></a><a name="index-post-_0040r_007bcode-after-headers_007d-437"></a>This will insert <code>pre code</code> just before <samp><span class="file">foo.ps</span></samp> and +</p> +<div class="example"> +<pre class="example">\special{header={foo.ps} pre={pre code} post={post code}} +</pre></div> + +<a name="index-before-header_002c-inserting-code"></a> +<a name="index-after-header_002c-inserting-code"></a> +<a name="index-pre-code-before-headers"></a> +<a name="index-post-code-after-headers"></a> +<p>This will insert <code>pre code</code> just before <samp>foo.ps</samp> and <code>post code</code> just after. It is required to use the (balanced) braces in <em>all</em> of the arguments, including the <code>header</code>, when using this extended syntax. - - <p>This allows, for instance, dynamic headers, where some of the content +</p> +<p>This allows, for instance, dynamic headers, where some of the content depends on settings from the user in (La)TeX. Another application is the inclusion of graphics inside the PostScript header, so that they can be reused throughout the document, as with logs. That avoids including the same graphic several times. This is implemented in the -<samp><span class="file">graphics/graphicx-psmin</span></samp> package. - - <p>This extended syntax has one additional feature. When Dvips finds the -extended syntax, it will also look in the installed <samp><span class="file">tex/</span></samp> -tree(s) for the header file (<samp><span class="file">foo.ps</span></samp> in our example), and not +<samp>graphics/graphicx-psmin</samp> package. +</p> +<p>This extended syntax has one additional feature. When Dvips finds the +extended syntax, it will also look in the installed <samp>tex/</samp> +tree(s) for the header file (<samp>foo.ps</samp> in our example), and not only in the current directory and dvips tree as the original syntax does. This is because common graphics may well come with packages -which are installed in the <samp><span class="file">tex/</span></samp> tree. +which are installed in the <samp>tex/</samp> tree. +</p> -<div class="node"> +<hr> <a name="Including-headers-from-the-command-line"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Headers-and-memory-usage">Headers and memory usage</a>, -Previous: <a rel="previous" accesskey="p" href="#Including-headers-from-TeX">Including headers from TeX</a>, -Up: <a rel="up" accesskey="u" href="#Header-files">Header files</a> - +<div class="header"> +<p> +Next: <a href="#Headers-and-memory-usage" accesskey="n" rel="next">Headers and memory usage</a>, Previous: <a href="#Including-headers-from-TeX" accesskey="p" rel="prev">Including headers from TeX</a>, Up: <a href="#Header-files" accesskey="u" rel="up">Header files</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Including-headers-from-the-command-line-1"></a> <h4 class="subsection">5.2.2 Including headers from the command line</h4> -<p><a name="index-including-headers-from-the-command-line-438"></a><a name="index-command-line_002c-including-headers-from-439"></a><a name="index-headers_002c-including-from-the-command-line-440"></a> -You can include headers when you run Dvips, as well as from your -document (see the previous section). To do this, run Dvips with the -option ‘<samp><span class="samp">-P </span><var>header</var></samp>’; this will read the file -<samp><span class="file">config.</span><var>header</var></samp>, which in turn can specify a header file to -be downloaded with the ‘<samp><span class="samp">h</span></samp>’ option. See <a href="#Configuration-file-commands">Configuration file commands</a>. These files are called <samp><var>header</var><span class="file">.cfg</span></samp> on MS-DOS. +<a name="index-including-headers-from-the-command-line"></a> +<a name="index-command-line_002c-including-headers-from"></a> +<a name="index-headers_002c-including-from-the-command-line"></a> - <p><a name="index-duplex-printers-441"></a><a name="index-simplex-mode-on-duplex-printers-442"></a><a name="index-screen-frequencies_002c-setting-443"></a>You can arrange for the same file to serve as a ‘<samp><span class="samp">-P</span></samp>’ config file +<p>You can include headers when you run Dvips, as well as from your +document (see the previous section). To do this, run Dvips with the +option ‘<samp>-P <var>header</var></samp>’; this will read the file +<samp>config.<var>header</var></samp>, which in turn can specify a header file to +be downloaded with the ‘<samp>h</samp>’ option. See <a href="#Configuration-file-commands">Configuration file commands</a>. These files are called <samp><var>header</var>.cfg</samp> on MS-DOS. +</p> +<a name="index-duplex-printers"></a> +<a name="index-simplex-mode-on-duplex-printers"></a> +<a name="index-screen-frequencies_002c-setting"></a> +<p>You can arrange for the same file to serve as a ‘<samp>-P</samp>’ config file and the downloadable header file, by starting the lines of PostScript -code with a space, leaving only the ‘<samp><span class="samp">h</span></samp>’ line and any comments +code with a space, leaving only the ‘<samp>h</samp>’ line and any comments starting in the first column. As an example, see -<samp><span class="file">contrib/volker/config.*</span></samp> (<samp><span class="file">contrib/volker/*.cfg</span></samp> on MS-DOS). +<samp>contrib/volker/config.*</samp> (<samp>contrib/volker/*.cfg</samp> on MS-DOS). (These files also perform useful functions: controlling duplex/simplex mode on duplex printers, and setting various screen frequencies; -<samp><span class="file">contrib/volker/README</span></samp> explains further.) +<samp>contrib/volker/README</samp> explains further.) +</p> -<div class="node"> +<hr> <a name="Headers-and-memory-usage"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Including-headers-from-the-command-line">Including headers from the command line</a>, -Up: <a rel="up" accesskey="u" href="#Header-files">Header files</a> - +<div class="header"> +<p> +Previous: <a href="#Including-headers-from-the-command-line" accesskey="p" rel="prev">Including headers from the command line</a>, Up: <a href="#Header-files" accesskey="u" rel="up">Header files</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Headers-and-memory-usage-1"></a> <h4 class="subsection">5.2.3 Headers and memory usage</h4> -<p><a name="index-headers-and-memory-usage-444"></a><a name="index-memory-usage_002c-and-headers-445"></a> -<a name="index-sections-of-output-file_002c-and-memory-446"></a><a name="index-output-file_002c-sectioning-of-447"></a>Dvips tries to avoid overflowing the printer's memory by splitting the -output files into “sections” (see the ‘<samp><span class="samp">-i</span></samp>’ option in <a href="#Option-details">Option details</a>). Therefore, for all header files, Dvips debits the printer VM +<a name="index-headers-and-memory-usage"></a> +<a name="index-memory-usage_002c-and-headers"></a> + +<a name="index-sections-of-output-file_002c-and-memory"></a> +<a name="index-output-file_002c-sectioning-of"></a> +<p>Dvips tries to avoid overflowing the printer’s memory by splitting the +output files into “sections” (see the ‘<samp>-i</samp>’ option in <a href="#Option-details">Option details</a>). Therefore, for all header files, Dvips debits the printer VM budget by some value. If the header file has, in its leading commentary a line of the form - - <p><a name="index-VMusage-448"></a><a name="index-g_t_0025_0025VMusage-449"></a> -<pre class="example"> %%VMusage: <var>min</var> <var>max</var> -</pre> - <p class="noindent">then <var>max</var> is used. If there is no <code>%%VMusage</code> line, then +</p> +<a name="index-VMusage"></a> +<a name="index-_0025_0025VMusage"></a> +<div class="example"> +<pre class="example">%%VMusage: <var>min</var> <var>max</var> +</pre></div> + +<p>then <var>max</var> is used. If there is no <code>%%VMusage</code> line, then the size (in bytes) of the header file is used as an approximation. - - <p>Illustrations (figure files) are also checked for <code>%%VMusage</code> line. - -<div class="node"> +If you want a file to be ignored in the sectioning calculations, use +‘<samp>%%VMusage: 0 0</samp>’. +</p> +<p>Illustrations (figure files) are also checked for <code>%%VMusage</code> line. +</p> +<p>Therefore, if your document uses very large fonts or very large +included figures, Dvips might take it upon itself to split the output +into unwanted sections. If this causes problems, the simplest +solution is to use ‘<samp>dvips -Pmaxmem</samp>’, which reads the Dvips file +<samp>config.maxmem</samp>, which sets Dvips’s idea of the memory available +to a very large number. (See the ‘<samp>m</samp>’ item in <a href="#Configuration-file-commands">Configuration file commands</a>.) +</p> + +<hr> <a name="Literal-PS"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Hypertext">Hypertext</a>, -Previous: <a rel="previous" accesskey="p" href="#Header-files">Header files</a>, -Up: <a rel="up" accesskey="u" href="#Interaction-with-PostScript">Interaction with PostScript</a> - +<div class="header"> +<p> +Next: <a href="#Hypertext" accesskey="n" rel="next">Hypertext</a>, Previous: <a href="#Header-files" accesskey="p" rel="prev">Header files</a>, Up: <a href="#Interaction-with-PostScript" accesskey="u" rel="up">Interaction with PostScript</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Literal-PostScript"></a> <h3 class="section">5.3 Literal PostScript</h3> -<p><a name="index-literal-PostScript_002c-using-450"></a><a name="index-PostScript-code_002c-literal-451"></a> -You can include literal PostScript code in your document in several ways. - -<ul class="menu"> -<li><a accesskey="1" href="#g_t_0022-special">" special</a>: To include inline PostScript code. -<li><a accesskey="2" href="#ps-special">ps special</a>: Inline PostScript without save/restore. -<li><a accesskey="3" href="#PostScript-hooks">PostScript hooks</a>: Specifying code to run in the PS interpreter. -<li><a accesskey="4" href="#Literal-headers">Literal headers</a>: Literal PostScript for the whole document. -<li><a accesskey="5" href="#Literal-examples">Literal examples</a>: Neat example. -</ul> - -<div class="node"> -<a name="%22-special"></a> +<a name="index-literal-PostScript_002c-using"></a> +<a name="index-PostScript-code_002c-literal"></a> + +<p>You can include literal PostScript code in your document in several ways. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#g_t_0022-special" accesskey="1">" special</a>:</td><td> </td><td align="left" valign="top">To include inline PostScript code. +</td></tr> +<tr><td align="left" valign="top">• <a href="#ps-special" accesskey="2">ps special</a>:</td><td> </td><td align="left" valign="top">Inline PostScript without save/restore. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Literal-headers" accesskey="3">Literal headers</a>:</td><td> </td><td align="left" valign="top">Literal PostScript for the whole document. +</td></tr> +<tr><td align="left" valign="top">• <a href="#PostScript-hooks" accesskey="4">PostScript hooks</a>:</td><td> </td><td align="left" valign="top">Specifying code to run in the PS interpreter. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Literal-examples" accesskey="5">Literal examples</a>:</td><td> </td><td align="left" valign="top">Neat example. +</td></tr> +</table> + + +<hr> <a name="g_t_0022-special"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#ps-special">ps special</a>, -Up: <a rel="up" accesskey="u" href="#Literal-PS">Literal PS</a> - +<div class="header"> +<p> +Next: <a href="#ps-special" accesskey="n" rel="next">ps special</a>, Up: <a href="#Literal-PS" accesskey="u" rel="up">Literal PS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="g_t_0022-special_003a-Literal-PostScript"></a> +<h4 class="subsection">5.3.1 <code>"</code> special: Literal PostScript</h4> -<h4 class="subsection">5.3.1 <code>"</code> special: Literal PostScript</h4> +<a name="index-_0022-special-_0028literal-PostScript_0029"></a> -<p><a name="index-g_t_0022-_0040r_007bspecial-_0028literal-PostScript_0029_007d-452"></a> -For simple graphics, or just for experimentation, literal PostScript +<p>For simple graphics, or just for experimentation, literal PostScript code can be included. Simply use a <code>\special</code> beginning with a -double quote character ‘<samp><span class="samp">"</span></samp>’; there is no matching closing ‘<samp><span class="samp">"</span></samp>’. - - <p>For instance, the following (simple) graphic: - -<p class="noindent">was created by typing: - -<pre class="example"> \vbox to 100bp{\vss % a bp is the same as a PostScript unit - \special{" newpath 0 0 moveto 100 100 lineto 394 0 lineto - closepath gsave 0.8 setgray fill grestore stroke}} -</pre> - <p>You are responsible for leaving space for such literal graphics, as with +double quote character ‘<samp>"</samp>’; there is no matching closing ‘<samp>"</samp>’. +</p> +<p>For instance, the following (simple) graphic: +</p> + +<p>was created by typing: +</p> +<div class="example"> +<pre class="example">\vbox to 100bp{\vss % a bp is the same as a PostScript unit + \special{" newpath 0 0 moveto 100 100 lineto 394 0 lineto + closepath gsave 0.8 setgray fill grestore stroke}} +</pre></div> + +<p>You are responsible for leaving space for such literal graphics, as with the <code>\vbox</code> above. +</p> -<div class="node"> +<hr> <a name="ps-special"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#PostScript-hooks">PostScript hooks</a>, -Previous: <a rel="previous" accesskey="p" href="#g_t_0022-special">" special</a>, -Up: <a rel="up" accesskey="u" href="#Literal-PS">Literal PS</a> - +<div class="header"> +<p> +Next: <a href="#Literal-headers" accesskey="n" rel="next">Literal headers</a>, Previous: <a href="#g_t_0022-special" accesskey="p" rel="prev">" special</a>, Up: <a href="#Literal-PS" accesskey="u" rel="up">Literal PS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="ps-special-1"></a> +<h4 class="subsection">5.3.2 ‘<samp>ps</samp>’ special</h4> -<h4 class="subsection">5.3.2 ‘<samp><span class="samp">ps</span></samp>’ special</h4> +<a name="index-ps-special"></a> -<p><a name="index-ps-_0040r_007bspecial_007d-453"></a> -<a name="index-save_002frestore_002c-and-specials-454"></a>Generally, Dvips encloses specials in a PostScript save/restore pair, +<a name="index-save_002frestore_002c-and-specials"></a> +<p>Generally, Dvips encloses specials in a PostScript save/restore pair, guaranteeing that the special will have no effect on the rest of the -document. The ‘<samp><span class="samp">ps</span></samp>’ special, however, allows you to insert literal +document. The ‘<samp>ps</samp>’ special, however, allows you to insert literal PostScript instructions without this protective shield; you should -understand what you're doing (and you shouldn't change the PostScript +understand what you’re doing (and you shouldn’t change the PostScript graphics state unless you are willing to take the consequences). This command can take many forms because it has had a torturous history; any of the following will work: - -<pre class="example"> \special{ps:<var>text</var>} - \special{ps::<var>text</var>} - \special{ps::[begin]<var>text</var>} - \special{ps::[end]<var>text</var>} - \special{ps::[nobreak]<var>text</var>} -</pre> - <p class="noindent">(with longer forms taking precedence over shorter forms, when they are -present). ‘<samp><span class="samp">ps::</span></samp>’ and ‘<samp><span class="samp">ps::[end]</span></samp>’ do no positioning, so they -can be used to continue PostScript literals started with ‘<samp><span class="samp">ps:</span></samp>’ or -‘<samp><span class="samp">ps::[begin]</span></samp>’. - - <p>Literal PostScript instructions after ‘<samp><span class="samp">ps::[nobreak]</span></samp>’ are +</p> +<div class="example"> +<pre class="example">\special{ps:<var>text</var>} +\special{ps::<var>text</var>} +\special{ps::[begin]<var>text</var>} +\special{ps::[end]<var>text</var>} +\special{ps::[nobreak]<var>text</var>} +</pre></div> + +<p>(with longer forms taking precedence over shorter forms, when they are +present). ‘<samp>ps::</samp>’ and ‘<samp>ps::[end]</samp>’ do no positioning, so they +can be used to continue PostScript literals started with ‘<samp>ps:</samp>’ or +‘<samp>ps::[begin]</samp>’. +</p> +<p>Literal PostScript instructions after ‘<samp>ps::[nobreak]</samp>’ are <em>not</em> broken into lines. This feature may be used to include PostScript comments, for example. - - <p><a name="index-plotfile_0040r_007b_002c-_0040samp_007bps_007d-subspecial_007d-455"></a>In addition, the variant - -<pre class="example"> \special{ps: plotfile <var>filename</var>} -</pre> - <p class="noindent"><a name="index-rotate_002etex-456"></a>inserts the contents of <var>filename</var> verbatim into the output (except +</p> +<a name="index-plotfile_002c-ps-subspecial"></a> +<p>In addition, the variant +</p> +<div class="example"> +<pre class="example">\special{ps: plotfile <var>filename</var>} +</pre></div> + +<a name="index-rotate_002etex"></a> +<p>inserts the contents of <var>filename</var> verbatim into the output (except for omitting lines that begin with %). An example of the proper use of -literal specials can be found in the file <samp><span class="file">rotate.tex</span></samp>, which makes +literal specials can be found in the file <samp>rotate.tex</samp>, which makes it easy to typeset text turned in multiples of 90 degrees. +</p> -<div class="node"> +<hr> <a name="Literal-headers"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Literal-examples">Literal examples</a>, -Previous: <a rel="previous" accesskey="p" href="#PostScript-hooks">PostScript hooks</a>, -Up: <a rel="up" accesskey="u" href="#Literal-PS">Literal PS</a> - +<div class="header"> +<p> +Next: <a href="#PostScript-hooks" accesskey="n" rel="next">PostScript hooks</a>, Previous: <a href="#ps-special" accesskey="p" rel="prev">ps special</a>, Up: <a href="#Literal-PS" accesskey="u" rel="up">Literal PS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Literal-headers_003a-_0021-_005cspecial"></a> +<h4 class="subsection">5.3.3 Literal headers: ‘<samp>!</samp>’ <code>\special</code></h4> -<h4 class="subsection">5.3.3 Literal headers: ‘<samp><span class="samp">!</span></samp>’ <code>\special</code></h4> +<a name="index-literal-headers"></a> +<a name="index-SDict-dictionary"></a> -<p><a name="index-literal-headers-457"></a><a name="index-SDict-_0040r_007bdictionary_007d-458"></a> -<a name="index-g_t_0021-_0040r_007bspecial-_0028literal-PS-header_0029_007d-459"></a><a name="index-dictionary_002c-_0040code_007bSDict_007d-460"></a>You can download literal PostScript header code in your TeX document, -for use with (for example) literal graphics code that you include later. -The text of a <code>\special</code> beginning with an ‘<samp><span class="samp">!</span></samp>’ is copied into +<a name="index-_0021-special-_0028literal-PS-header_0029"></a> +<a name="index-dictionary_002c-SDict"></a> +<p>You can download literal PostScript header code in your TeX document, +for use with (for example) literal graphics code that you include later. +The text of a <code>\special</code> beginning with an ‘<samp>!</samp>’ is copied into the output file. A dictionary <code>SDict</code> will be current when this code is executed; Dvips arranges for <code>SDict</code> to be first on the dictionary stack when any PostScript graphic is included, whether -literally (the ‘<samp><span class="samp">"</span></samp>’ special) or through macros (e.g., -<samp><span class="file">epsf.tex</span></samp>). +literally (the ‘<samp>"</samp>’ special) or through macros (e.g., +<samp>epsf.tex</samp>). +</p> +<p>For example: +</p> +<div class="example"> +<pre class="example">\special{! /reset { 0 0 moveto} def} +</pre></div> - <p>For example: -<pre class="example"> \special{! /reset { 0 0 moveto} def} -</pre> - <div class="node"> +<hr> <a name="PostScript-hooks"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Literal-headers">Literal headers</a>, -Previous: <a rel="previous" accesskey="p" href="#ps-special">ps special</a>, -Up: <a rel="up" accesskey="u" href="#Literal-PS">Literal PS</a> - +<div class="header"> +<p> +Next: <a href="#Literal-examples" accesskey="n" rel="next">Literal examples</a>, Previous: <a href="#Literal-headers" accesskey="p" rel="prev">Literal headers</a>, Up: <a href="#Literal-PS" accesskey="u" rel="up">Literal PS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="PostScript-hooks-1"></a> <h4 class="subsection">5.3.4 PostScript hooks</h4> -<p><a name="index-PostScript-hooks-461"></a> -Besides including literal PostScript at a particular place in your +<a name="index-PostScript-hooks"></a> + +<p>Besides including literal PostScript at a particular place in your document (as described in the previous section), you can also arrange to execute arbitrary PostScript code at particular times while the PostScript is printing. - - <p><a name="index-bop_002dhook-462"></a><a name="index-eop_002dhook-463"></a><a name="index-start_002dhook-464"></a><a name="index-end_002dhook-465"></a>If any of the PostScript names <code>bop-hook</code>, <code>eop-hook</code>, +</p> +<a name="index-bop_002dhook-2"></a> +<a name="index-eop_002dhook"></a> +<a name="index-start_002dhook"></a> +<a name="index-end_002dhook"></a> +<p>If any of the PostScript names <code>bop-hook</code>, <code>eop-hook</code>, <code>start-hook</code>, or <code>end-hook</code> are defined in <code>userdict</code>, they will be executed at the beginning of a page, end of a page, start of the document, and end of a document, respectively. - - <p><a name="index-draft-copies-466"></a><a name="index-dated-output-467"></a>When these macros are executed, the default PostScript coordinate system +</p> +<a name="index-draft-copies"></a> +<a name="index-dated-output"></a> +<p>When these macros are executed, the default PostScript coordinate system and origin is in effect. Such macros can be defined in headers added by -the ‘<samp><span class="samp">-h</span></samp>’ option or the ‘<samp><span class="samp">header=</span></samp>’ special, and might be useful -for writing, for instance, `DRAFT' across the entire page, or, with the +the ‘<samp>-h</samp>’ option or the ‘<samp>header=</samp>’ special, and might be useful +for writing, for instance, ‘DRAFT’ across the entire page, or, with the aid of a shell script, dating the document. These macros are executed outside of the save/restore context of the individual pages, so it is possible for them to accumulate information, but if a document must be divided into sections because of memory constraints, such added information will be lost across section breaks. - - <p><a name="index-physical-page-number_002c-and-_0040code_007bbop_002dhook_007d-468"></a>The single argument to <code>bop-hook</code> is the physical page number; the +</p> +<a name="index-physical-page-number_002c-and-bop_002dhook"></a> +<p>The single argument to <code>bop-hook</code> is the physical page number; the first page gets zero, the second one, etc. <code>bop-hook</code> must leave this number on the stack. None of the other hooks are passed arguments. - - <p>As an example of what can be done, the following special will write -a light grey `DRAFT' across each page in the document: - -<pre class="example"> \special{!userdict begin /bop-hook{gsave 200 30 translate - 65 rotate /Times-Roman findfont 216 scalefont setfont - 0 0 moveto 0.7 setgray (DRAFT) show grestore}def end} -</pre> - <p><a name="index-g_t_0025_0025Page_0040r_007b_002c-and-multi_002dpage-information_007d-469"></a>Using <code>bop-hook</code> or <code>eop-hook</code> to preserve information across +</p> +<p>As an example of what can be done, the following special will write +a light grey ‘DRAFT’ across each page in the document: +</p> +<div class="example"> +<pre class="example">\special{!userdict begin /bop-hook{gsave 200 30 translate +65 rotate /Times-Roman findfont 216 scalefont setfont +0 0 moveto 0.7 setgray (DRAFT) show grestore}def end} +</pre></div> + +<a name="index-_0025_0025Page_002c-and-multi_002dpage-information"></a> +<p>Using <code>bop-hook</code> or <code>eop-hook</code> to preserve information across pages breaks compliance with the Adobe document structuring conventions, -so if you use any such tricks, you may also want to use the ‘<samp><span class="samp">-N</span></samp>’ -option to turn off structured comments (such as ‘<samp><span class="samp">%%Page</span></samp>’). +so if you use any such tricks, you may also want to use the ‘<samp>-N</samp>’ +option to turn off structured comments (such as ‘<samp>%%Page</samp>’). Otherwise, programs that read your file will assume its pages are independent. +</p> -<div class="node"> +<hr> <a name="Literal-examples"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Literal-headers">Literal headers</a>, -Up: <a rel="up" accesskey="u" href="#Literal-PS">Literal PS</a> - +<div class="header"> +<p> +Previous: <a href="#PostScript-hooks" accesskey="p" rel="prev">PostScript hooks</a>, Up: <a href="#Literal-PS" accesskey="u" rel="up">Literal PS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Literal-examples-1"></a> <h4 class="subsection">5.3.5 Literal examples</h4> -<p><a name="index-literal-PostScript_002c-examples-470"></a><a name="index-examples-of-literal-PostScript-471"></a> -To finish off this section, the following examples of literal PostScript -are presented without explanation: +<a name="index-literal-PostScript_002c-examples"></a> +<a name="index-examples-of-literal-PostScript"></a> -<pre class="example"> \def\rotninety{\special{ps:currentpoint currentpoint translate 90 - rotate neg exch neg exch translate}}\font\huge=cmbx10 at 14.4truept - \setbox0=\hbox to0pt{\huge A\hss}\vskip16truept\centerline{\copy0 - \special{ps:gsave}\rotninety\copy0\rotninety\copy0\rotninety - \box0\special{ps:grestore}}\vskip16truept -</pre> - <pre class="example"> \vbox to 2truein{\special{ps:gsave 0.3 setgray}\hrule height 2in - width\hsize\vskip-2in\special{ps:grestore}\font\big=cminch\big - \vss\special{ps:gsave 1 setgray}\vbox to 0pt{\vskip2pt - \line{\hss\hskip4pt NEAT\hss}\vss}\special{ps:0 setgray}% - \hbox{\raise2pt\line{\hss NEAT\hss}\special{ps:grestore}}\vss} -</pre> - <p><a name="index-g_t_005crotninety-472"></a><a name="index-gsave_0040r_007b_002f_007dgrestore_0040r_007b_002c-and-literal-PS_007d-473"></a><a name="index-save_0040r_007b_002f_007drestore_0040r_007b_002c-and-literal-PS_007d-474"></a>Some caveats are in order, however. Make sure that each <code>gsave</code> is +<p>To finish off this section, the following examples of literal PostScript +are presented without explanation: +</p> +<div class="example"> +<pre class="example">\def\rotninety{\special{ps:currentpoint currentpoint translate 90 +rotate neg exch neg exch translate}}\font\huge=cmbx10 at 14.4truept +\setbox0=\hbox to0pt{\huge A\hss}\vskip16truept\centerline{\copy0 +\special{ps:gsave}\rotninety\copy0\rotninety\copy0\rotninety +\box0\special{ps:grestore}}\vskip16truept +</pre></div> + + + +<div class="example"> +<pre class="example">\vbox to 2truein{\special{ps:gsave 0.3 setgray}\hrule height 2in +width\hsize\vskip-2in\special{ps:grestore}\font\big=cminch\big +\vss\special{ps:gsave 1 setgray}\vbox to 0pt{\vskip2pt +\line{\hss\hskip4pt NEAT\hss}\vss}\special{ps:0 setgray}% +\hbox{\raise2pt\line{\hss NEAT\hss}\special{ps:grestore}}\vss} +</pre></div> + + +<a name="index-_005crotninety"></a> +<a name="index-gsave_002fgrestore_002c-and-literal-PS"></a> +<a name="index-save_002frestore_002c-and-literal-PS"></a> +<p>Some caveats are in order, however. Make sure that each <code>gsave</code> is matched with a <code>grestore</code> on the same page. Do not use <code>save</code> and <code>restore</code>; they can interact with the PostScript generated by Dvips if care is not taken. Try to understand what the above macros are doing before writing your own. The <code>\rotninety</code> macro especially has a useful trick that appears again and again. +</p> -<div class="node"> +<hr> <a name="Hypertext"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Literal-PS">Literal PS</a>, -Up: <a rel="up" accesskey="u" href="#Interaction-with-PostScript">Interaction with PostScript</a> - +<div class="header"> +<p> +Previous: <a href="#Literal-PS" accesskey="p" rel="prev">Literal PS</a>, Up: <a href="#Interaction-with-PostScript" accesskey="u" rel="up">Interaction with PostScript</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="HyperTeXt"></a> <h3 class="section">5.4 HyperTeXt</h3> -<p><a name="index-hypertext-support-475"></a> -<a name="index-g_t_002dz-476"></a><a name="index-html-_0040r_007bspecials_007d-477"></a><a name="index-pdfmark-478"></a>Dvips has support for producing hypertext PostScript documents. If you -specify the ‘<samp><span class="samp">-z</span></samp>’ option, the <samp><span class="file">html:</span></samp> specials described below -will be converted into ‘<samp><span class="samp">pdfmark</span></samp>’ PostScript operators to specify -links. Without ‘<samp><span class="samp">-z</span></samp>’, <samp><span class="file">html:</span></samp> specials are ignored. - - <p><a name="index-distiller_002c-for-PDF-files-479"></a><a name="index-PDF-files_002c-making-480"></a>The resulting PostScript can then be processed by a distiller program to +<a name="index-hypertext-support"></a> + +<a name="index-_002dz"></a> +<a name="index-html-specials"></a> +<a name="index-pdfmark"></a> +<p>Dvips has support for producing hypertext PostScript documents. If you +specify the ‘<samp>-z</samp>’ option, the <samp>html:</samp> specials described below +will be converted into ‘<samp>pdfmark</samp>’ PostScript operators to specify +links. Without ‘<samp>-z</samp>’, <samp>html:</samp> specials are ignored. +</p> +<a name="index-distiller_002c-for-PDF-files"></a> +<a name="index-PDF-files_002c-making-1"></a> +<p>The resulting PostScript can then be processed by a distiller program to make a PDF file. (It can still be handled by ordinary PostScript interpreters as well.) Various versions of both PC and Unix distillers are supported; Ghostscript includes limited distiller support (see <a href="#Ghostscript-installation">Ghostscript installation</a>). - - <p>Macros you can use in your TeX document to insert the specials in the -first place are available from <samp><var>CTAN:</var><span class="file">/support/hypertex</span></samp>. For -CTAN info, see <a href="kpathsea.html#unixtex_002eftp">unixtex.ftp</a>. - - <p><a name="index-g_t_0040code_007bhttp_003a_002f_002fwww_002ewin_002etue_002enl_002f_007edickie_002fidvi_007d-481"></a><a name="index-g_t_0040code_007bhttp_003a_002f_002fxxx_002elanl_002egov_002fhypertex_007d-482"></a><a name="index-Doyle_002c-Mark-483"></a><a name="index-Bhattacharya_002c-Tanmoy-484"></a><a name="index-Java-DVI-reader-485"></a><a name="index-idvi-_0040r_007bJava-DVI-reader_007d-486"></a><a name="index-dvihps_0040r_007b_002c-hyperdvi-to-PostScript_007d-487"></a>This hypertext support (and original form of the documentation) was -written by Mark Doyle and Tanmoy Bhattacharya as the ‘<samp><span class="samp">dvihps</span></samp>’ +</p> +<p>Macros you can use in your TeX document to insert the specials in the +first place are available from <samp><var>CTAN:</var>/support/hypertex</samp>. For +CTAN info, see <a href="kpathsea.html#unixtex_002eftp">unixtex.ftp</a> in <cite>Kpathsea</cite>. +</p> +<a name="index-http_003a_002f_002fwww_002ewin_002etue_002enl_002f_007edickie_002fidvi"></a> +<a name="index-http_003a_002f_002fxxx_002elanl_002egov_002fhypertex"></a> +<a name="index-Doyle_002c-Mark"></a> +<a name="index-Bhattacharya_002c-Tanmoy"></a> +<a name="index-Java-DVI-reader"></a> +<a name="index-idvi-Java-DVI-reader"></a> +<a name="index-dvihps_002c-hyperdvi-to-PostScript"></a> +<p>This hypertext support (and original form of the documentation) was +written by Mark Doyle and Tanmoy Bhattacharya as the ‘<samp>dvihps</samp>’ program. You can retrieve their software and additional documentation via the CTAN reference above. You may also be interested in the Java previewer IDVI, available at <a href="http://www.win.tue.nl/~dickie/idvi">http://www.win.tue.nl/~dickie/idvi</a>, and/or in <a href="http://www.emrg.com/texpdf.html">http://www.emrg.com/texpdf.html</a>, which describes the process of making PDF files from TeX files in more detail. - - <p>Mail archives for the original project are at +</p> +<p>Mail archives for the original project are at <a href="http://math.albany.edu:8800/hm/ht/">http://math.albany.edu:8800/hm/ht/</a>. +</p> -<ul class="menu"> -<li><a accesskey="1" href="#Hypertext-caveats">Hypertext caveats</a>: Font quality, missing character psi. -<li><a accesskey="2" href="#Hypertext-specials">Hypertext specials</a>: The details on the specials. -</ul> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Hypertext-caveats" accesskey="1">Hypertext caveats</a>:</td><td> </td><td align="left" valign="top">Font quality, missing character psi. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Hypertext-specials" accesskey="2">Hypertext specials</a>:</td><td> </td><td align="left" valign="top">The details on the specials. +</td></tr> +</table> -<div class="node"> -<a name="Hypertext-caveats"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Hypertext-specials">Hypertext specials</a>, -Up: <a rel="up" accesskey="u" href="#Hypertext">Hypertext</a> +<hr> +<a name="Hypertext-caveats"></a> +<div class="header"> +<p> +Next: <a href="#Hypertext-specials" accesskey="n" rel="next">Hypertext specials</a>, Up: <a href="#Hypertext" accesskey="u" rel="up">Hypertext</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Hypertext-caveats-1"></a> <h4 class="subsection">5.4.1 Hypertext caveats</h4> -<p><a name="index-hypertext-caveats-488"></a> -<a name="index-Computer-Modern-in-PostScript-489"></a><a name="index-hypertext-and-bitmap-fonts-490"></a><a name="index-hypertext-caveats-491"></a><a name="index-embedding-Type-1-fonts-492"></a><a name="index-PDF-files_002c-font-quality-493"></a>If you intend to go all the way to PDF, you may want to use the standard +<a name="index-hypertext-caveats"></a> + +<a name="index-Computer-Modern-in-PostScript"></a> +<a name="index-hypertext-and-bitmap-fonts"></a> +<a name="index-hypertext-caveats-1"></a> +<a name="index-embedding-Type-1-fonts"></a> +<a name="index-PDF-files_002c-font-quality"></a> +<p>If you intend to go all the way to PDF, you may want to use the standard 35 PostScript fonts exclusively, since other fonts are embedded as bitmaps by default. The Adobe PDF readers are extremely slow when -dealing with bitmap fonts and the results look terrible on the screen. +dealing with bitmap fonts and the results look terrible on the screen. Printouts will probably look fine, but may not take full advantage of a high-resolution printer. Alternatively, you can have your fonts embedded as Type 1 scalable outlines. The resulting PostScript files -may be larger, but can be effectively rasterized at any resolution. +may be larger, but can be effectively rasterized at any resolution. They can also be converted to PDF files that can be used effectively at any screen or printer resolution. - - <p>To get the TeX fonts embedded in the PostScript file as Type 1 fonts, -add ‘<samp><span class="samp">-Ppdf</span></samp>’ to the dvips command line switches. The printout +</p> +<p>To get the TeX fonts embedded in the PostScript file as Type 1 fonts, +add ‘<samp>-Ppdf</samp>’ to the dvips command line switches. The printout for a run should look something like this: - -<pre class="smallexample"> dvips report -Ppdf -o report.ps - This is dvips(k) 5.86 Copyright 1999 Radical Eye Software (www.radicaleye.com) - ' TeX output 2001.06.15:0837' -> report.ps - <tex.pro><alt-rule.pro><texc.pro><texps.pro><special.pro>. - <cmbx9.pfb><cmsy6.pfb><cmsy7.pfb><cmr5.pfb><cmex10.pfb><cmr9.pfb> - <cmmi7.pfb><cmsy10.pfb><cmmib10.pfb><cmmi10.pfb><cmti10.pfb> - <cmr7.pfb><cmbx10.pfb><cmr10.pfb><cmti9.pfb><cmr12.pfb><cmbx12.pfb> - [1] [2<mean1.ps>] [3<bounce1-00.ps>] [4] -</pre> - <p>An entry like "<cmr10.pfb>" indicates success: dvips found the Computer +</p> +<div class="smallexample"> +<pre class="smallexample"> dvips report -Ppdf -o report.ps + This is dvips(k) 5.86 Copyright 1999 Radical Eye Software (www.radicaleye.com) + ' TeX output 2001.06.15:0837' -> report.ps + <tex.pro><alt-rule.pro><texc.pro><texps.pro><special.pro>. + <cmbx9.pfb><cmsy6.pfb><cmsy7.pfb><cmr5.pfb><cmex10.pfb><cmr9.pfb> + <cmmi7.pfb><cmsy10.pfb><cmmib10.pfb><cmmi10.pfb><cmti10.pfb> + <cmr7.pfb><cmbx10.pfb><cmr10.pfb><cmti9.pfb><cmr12.pfb><cmbx12.pfb> + [1] [2<mean1.ps>] [3<bounce1-00.ps>] [4] +</pre></div> + +<p>An entry like "<cmr10.pfb>" indicates success: dvips found the Computer Modern Roman 10 point font in a PostScript Font Binary file, translated it to an ASCII encoding, and embedded it. You can confirm this by examining the PostScript output file, looking for the section starting <code>%%BeginFont: CMR10</code> followed by an entry <code>/FontType 1 def</code>. - - <p>The ‘<samp><span class="samp">-Ppdf</span></samp>’ option requires that the relevant outline -(<samp><span class="file">.pfa</span></samp> or <samp><span class="file">.pfb</span></samp>) files be installed (see <a href="#Font-concepts">Font concepts</a>). For example, the <samp><span class="file">cmr10</span></samp> file might be in -<samp><span class="file">/usr/share/texmf/fonts/type1/bluesky/cm/cmr10.pfb</span></samp>. Your TeX +</p> +<p>The ‘<samp>-Ppdf</samp>’ option requires that the relevant outline +(<samp>.pfa</samp> or <samp>.pfb</samp>) files be installed (see <a href="#Font-concepts">Font concepts</a>). For example, the <samp>cmr10</samp> file might be in +<samp>/usr/share/texmf/fonts/type1/bluesky/cm/cmr10.pfb</samp>. Your TeX distribution may make those fonts available in a separate optional package (e.g., <code>tetex-extra</code> in Debian). Failing that, commercial versions of the Computer Modern fonts are available from Blue Sky; public domain versions - in particular, the lm fonts, and the cm-super fonts, are available from CTAN sites (for CTAN info, -see <a href="kpathsea.html#unixtex_002eftp">unixtex.ftp</a>). - - <p>You can convert a PostScript file to PDF using <code>distill</code>, which +see <a href="kpathsea.html#unixtex_002eftp">unixtex.ftp</a> in <cite>Kpathsea</cite>). +</p> +<p>You can convert a PostScript file to PDF using <code>distill</code>, which comes with Adobe Acrobat, or <code>ps2pdf</code>, which comes with Ghostscript. The <code>ps2pdf</code> that comes with <code>Ghostscript</code> version 6.0 or earlier will not embed Type 1 fonts. Current -recommendations are GNU Ghostscript 6.51 or Aladdin Ghostscript 7.0. +recommendations are GNU Ghostscript 6.51 or Aladdin Ghostscript 7.0. You can check the fonts in a PDF file with Acrobat Reader by selecting -the menu entries ‘<samp><span class="samp">File|Document Info|Fonts</span></samp>’. - - <p><a name="index-psi-character-missing-494"></a><a name="index-trailing-spaces_002c-dropped-495"></a><a name="index-spaces_002c-dropped-trailing-496"></a>Also, the Adobe distillers prior to 2.1 drop trailing space characters +the menu entries ‘<samp>File|Document Info|Fonts</samp>’. +</p> +<a name="index-psi-character-missing"></a> +<a name="index-trailing-spaces_002c-dropped"></a> +<a name="index-spaces_002c-dropped-trailing"></a> +<p>Also, the Adobe distillers prior to 2.1 drop trailing space characters (character code 32) from strings. Unfortunately, the PostScript fonts use this character code for characters other than space (notably the Greek letter psi in the <code>Symbol</code> font), and so these characters are dropped. This bug is fixed in version 2.1. - - <p>If you can't upgrade, One workaround is to change all the trailing -blanks in strings to a character code that isn't in the font. This works +</p> +<p>If you can’t upgrade, One workaround is to change all the trailing +blanks in strings to a character code that isn’t in the font. This works because the default behavior is to substitute a blank for a missing character, i.e., the distiller is fooled into substituting the right character. For instance, with the Blue Sky fonts, you can globally -replace ‘<samp><span class="samp"> )</span></samp>’ with ‘<samp><span class="samp">\200)</span></samp>’ (with <code>sed</code>, for example) and +replace ‘<samp> )</samp>’ with ‘<samp>\200)</samp>’ (with <code>sed</code>, for example) and get the desired result. With the public domain fonts, you will probably have to use a character code in the range 128 to 191 since these fonts duplicate the first 32 characters starting at 192 to avoid MS-DOS problems. - - <p>For more information on the use of TeX to produce PDF files, see the +</p> +<p>For more information on the use of TeX to produce PDF files, see the article “Creating quality Adobe PDF files from TeX with DVIPS” by Kendall Whitehouse of Adobe. Adobe seems not to offer the article any more, but copies are available elsewhere: -<pre class="display"> <a href="http://www.math.hawaii.edu/~ralph/MathOnWeb/TeXPDF.html">http://www.math.hawaii.edu/~ralph/MathOnWeb/TeXPDF.html</a> - <a href="http://www.utdallas.edu/~cantrell/online/543e.html">http://www.utdallas.edu/~cantrell/online/543e.html</a> -</pre> - <p>You may also want to check “Notes on converting (La)TeX documents -to robust PDF using Rokicki's dvips and Acrobat Distiller” by Timothy +</p><div class="display"> +<pre class="display"><a href="http://www.math.hawaii.edu/~ralph/MathOnWeb/TeXPDF.html">http://www.math.hawaii.edu/~ralph/MathOnWeb/TeXPDF.html</a> +<a href="http://www.utdallas.edu/~cantrell/online/543e.html">http://www.utdallas.edu/~cantrell/online/543e.html</a> +</pre></div> + +<p>You may also want to check “Notes on converting (La)TeX documents +to robust PDF using Rokicki’s dvips and Acrobat Distiller” by Timothy P. Van Zandt:<br> <a href="http://www.emrg.com/texpdf.htmlhttp://zandtwerk.insead.fr/tex2pdf.html">http://www.emrg.com/texpdf.htmlhttp://zandtwerk.insead.fr/tex2pdf.html</a>. +</p> -<div class="node"> +<hr> <a name="Hypertext-specials"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Hypertext-caveats">Hypertext caveats</a>, -Up: <a rel="up" accesskey="u" href="#Hypertext">Hypertext</a> - +<div class="header"> +<p> +Previous: <a href="#Hypertext-caveats" accesskey="p" rel="prev">Hypertext caveats</a>, Up: <a href="#Hypertext" accesskey="u" rel="up">Hypertext</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Hypertext-specials-1"></a> <h4 class="subsection">5.4.2 Hypertext specials</h4> -<p><a name="index-hypertext-specials-497"></a><a name="index-specials_002c-hypertext-498"></a> -<a name="index-Smith_002c-Arthur-499"></a>Current support for the World Wide Web in the TeX system does not +<a name="index-hypertext-specials"></a> +<a name="index-specials_002c-hypertext"></a> + +<a name="index-Smith_002c-Arthur"></a> +<p>Current support for the World Wide Web in the TeX system does not involve modifying TeX itself. We need only define some specials; Arthur Smith (<a href="mailto:apsmith@aps.org">apsmith@aps.org</a>), Tanmoy Bhattacharya, and Paul Ginsparg originally proposed and implemented the following: -<pre class="example"> html:<a href="<var>xurl</var>"> - html:<a name="<var>name</var>"> - html:</a> - html:<img src="<var>xurl</var>"> - html:<base href="<var>xurl</var>"> -</pre> - <p>Like all TeX <code>\special</code>'s, these produce no visible output, and +</p><div class="example"> +<pre class="example">html:<a href="<var>xurl</var>"> +html:<a name="<var>name</var>"> +html:</a> +html:<img src="<var>xurl</var>"> +html:<base href="<var>xurl</var>"> +</pre></div> + +<p>Like all TeX <code>\special</code>’s, these produce no visible output, and are uninterpreted by TeX itself. They are instructions to DVI processors only. - - <p><a name="index-uniform-resource-locator-500"></a><a name="index-extended-URL-501"></a><a name="index-URL_002c-extended-for-_0040TeX_007b_007d-502"></a><a name="index-Murphy_002c-Tim-503"></a>Here, <var>xurl</var> is a standard WWW uniform resource locator (URL), -possibly extended with a ‘<samp><span class="samp">#</span><var>type</var><span class="samp">.</span><var>string</var></samp>’ construct, -where <var>type</var> is ‘<samp><span class="samp">page</span></samp>’, ‘<samp><span class="samp">section</span></samp>’, ‘<samp><span class="samp">equation</span></samp>’, -‘<samp><span class="samp">reference</span></samp>’ (for bibliographic references), ‘<samp><span class="samp">figure</span></samp>’, -‘<samp><span class="samp">table</span></samp>’, etc. For example, -<pre class="smallexample"> \special{html:<a href="http://www.maths.tcd.ie/~tim/ch1.dvi#equation.1.1">} -</pre> - <p class="noindent">is a link to equation (1.1) in an example document by Tim Murphy. - - <p><a name="index-URL_002c-definition-504"></a>See the URL <a href="http://www.w3.org/hypertext/WWW/Addressing/Addressing.html">http://www.w3.org/hypertext/WWW/Addressing/Addressing.html</a> -for a precise description of base URL's. - - <p>Descriptions of the <code>\special</code>'s: - <dl> -<dt>‘<samp><span class="samp">href</span></samp>’<a name="index-href-505"></a><dd><a name="index-links_002c-hypertext-506"></a>Creates links in your TeX document. For example: - <pre class="example"> \special{html:<a href="http://www.tug.org/">}\TeX\ Users - Group\special{html:</a>} -</pre> - <p class="noindent">The user will be able to click on the text `TeX Users -Group' while running Xdvi and get to the TUG home page. (By the way, +</p> +<a name="index-uniform-resource-locator"></a> +<a name="index-extended-URL"></a> +<a name="index-URL_002c-extended-for-TeX"></a> +<a name="index-Murphy_002c-Tim"></a> +<p>Here, <var>xurl</var> is a standard WWW uniform resource locator (URL), +possibly extended with a ‘<samp>#<var>type</var>.<var>string</var></samp>’ construct, +where <var>type</var> is ‘<samp>page</samp>’, ‘<samp>section</samp>’, ‘<samp>equation</samp>’, +‘<samp>reference</samp>’ (for bibliographic references), ‘<samp>figure</samp>’, +‘<samp>table</samp>’, etc. For example, +</p><div class="smallexample"> +<pre class="smallexample">\special{html:<a href="http://www.maths.tcd.ie/~tim/ch1.dvi#equation.1.1">} +</pre></div> +<p>is a link to equation (1.1) in an example document by Tim Murphy. +</p> +<a name="index-URL_002c-definition"></a> +<p>See the URL <a href="http://www.w3.org/hypertext/WWW/Addressing/Addressing.html">http://www.w3.org/hypertext/WWW/Addressing/Addressing.html</a> +for a precise description of base URL’s. +</p> +<p>Descriptions of the <code>\special</code>’s: +</p><dl compact="compact"> +<dt>‘<samp>href</samp>’ +<a name="index-href"></a> +</dt> +<dd><a name="index-links_002c-hypertext"></a> +<p>Creates links in your TeX document. For example: +</p><div class="example"> +<pre class="example">\special{html:<a href="http://www.tug.org/">}\TeX\ Users +Group\special{html:</a>} +</pre></div> +<p>The user will be able to click on the text ‘TeX Users +Group’ while running Xdvi and get to the TUG home page. (By the way, this is for illustration. In practice, you most likely want to use macros to insert the <code>\special</code> commands; reference above.) - - <br><dt>‘<samp><span class="samp">name</span></samp>’<a name="index-name-507"></a><dd><a name="index-Anderson_002c-Laurie-508"></a>Defines URL targets in your TeX documents, so links can be +</p> +</dd> +<dt>‘<samp>name</samp>’ +<a name="index-name"></a> +</dt> +<dd><a name="index-Anderson_002c-Laurie"></a> +<p>Defines URL targets in your TeX documents, so links can be resolved. For example: - <pre class="example"> \special{html:<a name="paradise">}Paradise\special{html:</a>} - is exactly where you are right now. -</pre> - <p>This will resolve an ‘<samp><span class="samp">href="#paradise"</span></samp>’. You'll also have to -change the catcode of ‘<samp><span class="samp">#</span></samp>’, etc. It's usually easiest to use +</p><div class="example"> +<pre class="example">\special{html:<a name="paradise">}Paradise\special{html:</a>} +is exactly where you are right now. +</pre></div> +<p>This will resolve an ‘<samp>href="#paradise"</samp>’. You’ll also have to +change the catcode of ‘<samp>#</samp>’, etc. It’s usually easiest to use existing macro packages which take care of all the details, such as -<samp><span class="file">hyperref</span></samp> for LaTeX. The <a href="http://arxiv.org/hypertex/">HyperTeX FAQ</a> has more information. - - <br><dt>‘<samp><span class="samp">img</span></samp>’<a name="index-img-509"></a><dd><a name="index-mailcap-_0040r_007band-hypertext_007d-510"></a>Links to an arbitrary external file. Interactively, a viewer is spawned -to read the file according to the file extension and your <samp><span class="file">mailcap</span></samp> +<samp>hyperref</samp> for LaTeX. The <a href="http://arxiv.org/hypertex/">HyperTeX FAQ</a> has more information. +</p> +</dd> +<dt>‘<samp>img</samp>’ +<a name="index-img"></a> +</dt> +<dd><a name="index-mailcap-and-hypertext"></a> +<p>Links to an arbitrary external file. Interactively, a viewer is spawned +to read the file according to the file extension and your <samp>mailcap</samp> file (see the Xdvi documentation). - - <br><dt>‘<samp><span class="samp">base</span></samp>’<a name="index-base-511"></a><dd>Defines a base URL that is prepended to all the <code>name</code> targets. +</p> +</dd> +<dt>‘<samp>base</samp>’ +<a name="index-base"></a> +</dt> +<dd><p>Defines a base URL that is prepended to all the <code>name</code> targets. Typically unnecessary, as the name of the DVI file being read is used by -default. +default. +</p></dd> </dl> - <p>The ‘<samp><span class="samp">img</span></samp>’ and ‘<samp><span class="samp">base</span></samp>’ tags are not yet implemented in Dvips or +<p>The ‘<samp>img</samp>’ and ‘<samp>base</samp>’ tags are not yet implemented in Dvips or the NeXTSTEP DVI viewer. +</p> -<div class="node"> +<hr> <a name="PostScript-fonts"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Color">Color</a>, -Previous: <a rel="previous" accesskey="p" href="#Interaction-with-PostScript">Interaction with PostScript</a>, -Up: <a rel="up" accesskey="u" href="#Top">Top</a> - +<div class="header"> +<p> +Next: <a href="#Color" accesskey="n" rel="next">Color</a>, Previous: <a href="#Interaction-with-PostScript" accesskey="p" rel="prev">Interaction with PostScript</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="PostScript-fonts-1"></a> <h2 class="chapter">6 PostScript fonts</h2> -<p><a name="index-PostScript-fonts-512"></a> -Dvips supports the use of PostScript fonts in TeX documents. To use +<a name="index-PostScript-fonts"></a> + +<p>Dvips supports the use of PostScript fonts in TeX documents. To use a PostScript font conveniently, you need to prepare a corresponding virtual font; the program Afm2tfm, supplied with Dvips, helps with that. - - <p>All the necessary support for the standard 35 PostScript fonts -(‘<samp><span class="samp">AvantGarde-Book</span></samp>’ through ‘<samp><span class="samp">ZapfDingbats</span></samp>’), plus other freely -or commonly available PostScript fonts is available along with Dvips. +</p> +<p>All the necessary support for the standard 35 PostScript fonts +(‘<samp>AvantGarde-Book</samp>’ through ‘<samp>ZapfDingbats</samp>’), plus other freely +or commonly available PostScript fonts is available along with Dvips. To use these fonts, you need do nothing beyond what is mentioned in the installation procedure (see <a href="#Installation">Installation</a>). This chapter is therefore relevant only if you are installing new PostScript fonts not -supplied with Dvips. (Or if you're curious.) - -<ul class="menu"> -<li><a accesskey="1" href="#Font-concepts">Font concepts</a>: Metrics, glyphs, virtual fonts, and encodings. -<li><a accesskey="2" href="#Making-a-font-available">Making a font available</a>: Installing and using a PostScript font. -<li><a accesskey="3" href="#Invoking-afm2tfm">Invoking afm2tfm</a>: Creating TFM and AFM files for a virtual font. -<li><a accesskey="4" href="#psfonts_002emap">psfonts.map</a>: Defining available PostScript fonts. -</ul> - -<div class="node"> +supplied with Dvips. (Or if you’re curious.) +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Font-concepts" accesskey="1">Font concepts</a>:</td><td> </td><td align="left" valign="top">Metrics, glyphs, virtual fonts, and encodings. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Making-a-font-available" accesskey="2">Making a font available</a>:</td><td> </td><td align="left" valign="top">Installing and using a PostScript font. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Invoking-afm2tfm" accesskey="3">Invoking afm2tfm</a>:</td><td> </td><td align="left" valign="top">Creating TFM and AFM files for a virtual font. +</td></tr> +<tr><td align="left" valign="top">• <a href="#psfonts_002emap" accesskey="4">psfonts.map</a>:</td><td> </td><td align="left" valign="top">Defining available PostScript fonts. +</td></tr> +</table> + + +<hr> <a name="Font-concepts"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Making-a-font-available">Making a font available</a>, -Up: <a rel="up" accesskey="u" href="#PostScript-fonts">PostScript fonts</a> - +<div class="header"> +<p> +Next: <a href="#Making-a-font-available" accesskey="n" rel="next">Making a font available</a>, Up: <a href="#PostScript-fonts" accesskey="u" rel="up">PostScript fonts</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Font-concepts-1"></a> <h3 class="section">6.1 Font concepts</h3> -<p><a name="index-font-concepts-513"></a> -The information needed to typeset using a particular font is contained -in two files: a <dfn>metric file</dfn> that contains shape-independent -information and a <dfn>glyph file</dfn> that contains the actual shapes of -the font's characters. A <dfn>virtual font</dfn> is an optional additional +<a name="index-font-concepts"></a> + +<p>The information needed to typeset using a particular font is contained +in two files: a <em>metric file</em> that contains shape-independent +information and a <em>glyph file</em> that contains the actual shapes of +the font’s characters. A <em>virtual font</em> is an optional additional file that can specify special ways to construct the characters. TeX itself (or LaTeX) look only at the metric file, but DVI drivers such as Dvips look at all three of these files. - - <p>An <dfn>encoding file</dfn> defines the correspondence between the code +</p> +<p>An <em>encoding file</em> defines the correspondence between the code numbers of the characters in a font and their descriptive names. Two encoding files used together can describe a reencoding that rearranges, i.e., renumbers, the characters of a font. - -<ul class="menu"> -<li><a accesskey="1" href="#Metric-files">Metric files</a>: Shape-independent font information. -<li><a accesskey="2" href="#Glyph-files">Glyph files</a>: Character shapes. -<li><a accesskey="3" href="#Virtual-fonts">Virtual fonts</a>: Constructing one font from others. -<li><a accesskey="4" href="#Encodings">Encodings</a>: Character codes and character names. -<li><a accesskey="5" href="#PostScript-typesetting">PostScript typesetting</a>: How PostScript typesets a character. -</ul> - -<div class="node"> +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Metric-files" accesskey="1">Metric files</a>:</td><td> </td><td align="left" valign="top">Shape-independent font information. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Glyph-files" accesskey="2">Glyph files</a>:</td><td> </td><td align="left" valign="top">Character shapes. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Virtual-fonts" accesskey="3">Virtual fonts</a>:</td><td> </td><td align="left" valign="top">Constructing one font from others. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Encodings" accesskey="4">Encodings</a>:</td><td> </td><td align="left" valign="top">Character codes and character names. +</td></tr> +<tr><td align="left" valign="top">• <a href="#PostScript-typesetting" accesskey="5">PostScript typesetting</a>:</td><td> </td><td align="left" valign="top">How PostScript typesets a character. +</td></tr> +</table> + + +<hr> <a name="Metric-files"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Glyph-files">Glyph files</a>, -Up: <a rel="up" accesskey="u" href="#Font-concepts">Font concepts</a> - +<div class="header"> +<p> +Next: <a href="#Glyph-files" accesskey="n" rel="next">Glyph files</a>, Up: <a href="#Font-concepts" accesskey="u" rel="up">Font concepts</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Metric-files-1"></a> <h4 class="subsection">6.1.1 Metric files</h4> -<p><a name="index-metric-files-514"></a> -A <dfn>metric file</dfn> describes properties of the font that are +<a name="index-metric-files"></a> + +<p>A <em>metric file</em> describes properties of the font that are independent of what the characters actually look like. Aside from general information about the font itself, a metric file has two kinds of information: information about individual characters, organized by character code, and information about sequences of characters. - - <p>The per-character information specifies the width, height, depth, and +</p> +<p>The per-character information specifies the width, height, depth, and italic correction of each character in the font. Any might be zero. - - <p><a name="index-kerning_002c-defined-515"></a><a name="index-ligature_002c-defined-516"></a>In addition to information on individual characters, the metric file -specifies <dfn>kerning</dfn>, i.e., adding or removing space between -particular character pairs. It further specifies <dfn>ligature</dfn> +</p> +<a name="index-kerning_002c-defined"></a> +<a name="index-ligature_002c-defined"></a> +<p>In addition to information on individual characters, the metric file +specifies <em>kerning</em>, i.e., adding or removing space between +particular character pairs. It further specifies <em>ligature</em> information: when a sequence of input characters should be typeset as a -single (presumably different) “ligature” character. For example, it's -traditional for the input ‘<samp><span class="samp">fi</span></samp>’ to be typeset as `fi', not as -`<span class="roman">f</span><span class="roman">i</span>' (with the dot of the `i' colliding with `f'). (In English, +single (presumably different) “ligature” character. For example, it’s +traditional for the input ‘<samp>fi</samp>’ to be typeset as ‘fi’, not as +‘<span class="roman">f</span><span class="roman">i</span>’ (with the dot of the ‘i’ colliding with ‘f’). (In English, the only common ligatures are fi, fl, ff, ffi, and ffl.) - - <p>Different typesetting systems use different metric file formats: - - <ul> -<li><a name="index-afm-files-517"></a><a name="index-g_t_002eafm-_0040r_007bAdobe-metric-files_007d-518"></a>Each Postscript font has an <dfn>Adobe font metrics</dfn> (‘<samp><span class="samp">.afm</span></samp>’) +</p> +<p>Different typesetting systems use different metric file formats: +</p> +<ul> +<li> <a name="index-afm-files"></a> +<a name="index-_002eafm-Adobe-metric-files"></a> +Each Postscript font has an <em>Adobe font metrics</em> (‘<samp>.afm</samp>’) file. These files are plain text, so you can inspect them easily. You -can get AFM files for Adobe's fonts from +can get AFM files for Adobe’s fonts from <a href="ftp://ftp.adobe.com/pub/adobe/Fonts/AFMs">ftp://ftp.adobe.com/pub/adobe/Fonts/AFMs</a>. - <li><a name="index-tfm-files-519"></a><a name="index-g_t_002etfm-_0040r_007b_0040TeX_007b_007d-font-metric-files_007d-520"></a>TeX uses <dfn>TeX font metrics</dfn> (‘<samp><span class="samp">.tfm</span></samp>’) files. When you say -‘<samp><span class="samp">\font = </span><var>font</var></samp>’ in your TeX document, TeX reads a file -named ‘<samp><var>font</var><span class="samp">.tfm</span></samp>’. (Well, except for the <samp><span class="file">texfonts.map</span></samp> -feature; see <a href="kpathsea.html#Fontmap">Fontmap</a>). TeX can then +</li><li> <a name="index-tfm-files"></a> +<a name="index-_002etfm-TeX-font-metric-files"></a> +TeX uses <em>TeX font metrics</em> (‘<samp>.tfm</samp>’) files. When you say +‘<samp>\font = <var>font</var></samp>’ in your TeX document, TeX reads a file +named ‘<samp><var>font</var>.tfm</samp>’. (Well, except for the <samp>texfonts.map</samp> +feature; see <a href="kpathsea.html#Fontmap">Fontmap</a> in <cite>Kpathsea</cite>). TeX can then calculate the space occupied by characters from the font when typesetting. In addition, the DVI drivers you use to print or view the DVI file produced by TeX may need to look at the TFM file. - <p><a name="index-property-list-files-521"></a><a name="index-tftopl-522"></a><a name="index-pltotf-523"></a><a name="index-g_t_002epl-_0040r_007bproperty-list-files_007d-524"></a>TFM files are binary (and hence are typically much smaller than AFM -files). You can use the <code>tftopl</code> program (see <a href="web2c.html#tftopl-invocation">tftopl invocation</a>) that comes with TeX to transform a TFM -file into a human-readable “property list” (‘<samp><span class="samp">.pl</span></samp>’) file. You can +<a name="index-property-list-files"></a> +<a name="index-tftopl"></a> +<a name="index-pltotf"></a> +<a name="index-_002epl-property-list-files"></a> +<p>TFM files are binary (and hence are typically much smaller than AFM +files). You can use the <code>tftopl</code> program (see <a href="web2c.html#tftopl-invocation">tftopl +invocation</a> in <cite>Web2c</cite>) that comes with TeX to transform a TFM +file into a human-readable “property list” (‘<samp>.pl</samp>’) file. You can also edit a PL file and transform it back to a TeX-readable TFM with -the companion program <code>pltotf</code> (see <a href="web2c.html#pltotf-invocation">pltotf invocation</a>). Editing metrics by hand is not something you're likely to want +the companion program <code>pltotf</code> (see <a href="web2c.html#pltotf-invocation">pltotf invocation</a> in <cite>Web2c</cite>). Editing metrics by hand is not something you’re likely to want to do often, but the capability is there. - - <li><a name="index-pfm-files-525"></a><a name="index-g_t_002epfm-_0040r_007bprinter-font-metric-files_007d-526"></a>ATM and other typesetting systems use <dfn>printer font metric</dfn> -(‘<samp><span class="samp">.pfm</span></samp>’) files. These are binary files. They are irrelevant in the +</p> +</li><li> <a name="index-pfm-files"></a> +<a name="index-_002epfm-printer-font-metric-files"></a> +ATM and other typesetting systems use <em>printer font metric</em> +(‘<samp>.pfm</samp>’) files. These are binary files. They are irrelevant in the TeX world, and not freely available, so we will not discuss them further. - </ul> +</li></ul> - <p>The Afm2tfm program distributed with Dvips converts an AFM file -to a TFM file and performs other useful transformations as well. +<p>The Afm2tfm program distributed with Dvips converts an AFM file +to a TFM file and performs other useful transformations as well. See <a href="#Invoking-afm2tfm">Invoking afm2tfm</a>. +</p> -<div class="node"> +<hr> <a name="Glyph-files"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Virtual-fonts">Virtual fonts</a>, -Previous: <a rel="previous" accesskey="p" href="#Metric-files">Metric files</a>, -Up: <a rel="up" accesskey="u" href="#Font-concepts">Font concepts</a> - +<div class="header"> +<p> +Next: <a href="#Virtual-fonts" accesskey="n" rel="next">Virtual fonts</a>, Previous: <a href="#Metric-files" accesskey="p" rel="prev">Metric files</a>, Up: <a href="#Font-concepts" accesskey="u" rel="up">Font concepts</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Glyph-files-1"></a> <h4 class="subsection">6.1.2 Glyph files</h4> -<p><a name="index-glyph-files-527"></a> -Although a metric file (see the previous section) contains information +<a name="index-glyph-files"></a> + +<p>Although a metric file (see the previous section) contains information about the spatial and other properties of the character at position 75, say, it contains nothing about what the character at position 75 actually looks like. The glyphs—the actual shapes of the letterforms -in a font—are defined by other files, which we call glyph files. +in a font—are defined by other files, which we call glyph files. TeX itself only reads the TFM file for a font; it does not need to know character shapes. - - <p>A <dfn>glyph file</dfn> is a file that defines the shapes of the characters +</p> +<p>A <em>glyph file</em> is a file that defines the shapes of the characters in a font. The shapes can be defined either by outlines or by bitmaps. - - <p><a name="index-outline-fonts-528"></a><a name="index-arcs-529"></a><a name="index-splines-530"></a>PostScript fonts are defined as <dfn>outline fonts</dfn>: Each character in +</p> +<a name="index-outline-fonts"></a> +<a name="index-arcs"></a> +<a name="index-splines"></a> +<p>PostScript fonts are defined as <em>outline fonts</em>: Each character in the font is defined by giving the mathematical curves (lines, arcs, and splines) that define its contours. Different sizes of a character are generated by linearly scaling a single shape. For example, a 10-point -`A' is simply half the size of a 20-point `A'. Nowadays, outline fonts -usually also contain <dfn>hints</dfn>—additional information to improve the +‘A’ is simply half the size of a 20-point ‘A’. Nowadays, outline fonts +usually also contain <em>hints</em>—additional information to improve the appearance of the font at small sizes or low resolutions. - - <p><a name="index-Type-1-fonts-531"></a><a name="index-pfa-files-532"></a><a name="index-pfb-files-533"></a><a name="index-g_t_002epfa-_0040r_007bprinter-font-ascii-files_007d-534"></a><a name="index-g_t_002epfb-_0040r_007bprinter-font-binary-files_007d-535"></a>Although various kinds of PostScript outline fonts exist, by far the -most common, and the only one we will consider, is called <dfn>Type 1</dfn>. +</p> +<a name="index-Type-1-fonts"></a> +<a name="index-pfa-files"></a> +<a name="index-pfb-files"></a> +<a name="index-_002epfa-printer-font-ascii-files"></a> +<a name="index-_002epfb-printer-font-binary-files"></a> +<p>Although various kinds of PostScript outline fonts exist, by far the +most common, and the only one we will consider, is called <em>Type 1</em>. The glyph files for Postscript Type 1 fonts typically have names ending -in ‘<samp><span class="samp">.pfa</span></samp>’ (“printer font ASCII”) or ‘<samp><span class="samp">.pfb</span></samp>’ (“printer font +in ‘<samp>.pfa</samp>’ (“printer font ASCII”) or ‘<samp>.pfb</samp>’ (“printer font binary”). - - <p><a name="index-bitmap-fonts-536"></a><a name="index-g_t_002emf-_0040r_007bMetafont-source-files_007d-537"></a><a name="index-Metafont-source-files-538"></a>In contrast, glyph files for Computer Modern and the other standard -TeX fonts are <dfn>bitmap fonts</dfn>, generated from Metafont -(‘<samp><span class="samp">.mf</span></samp>’) descriptions. The Metafont program distributed with TeX +</p> +<a name="index-bitmap-fonts"></a> +<a name="index-_002emf-Metafont-source-files"></a> +<a name="index-Metafont-source-files"></a> +<p>In contrast, glyph files for Computer Modern and the other standard +TeX fonts are <em>bitmap fonts</em>, generated from Metafont +(‘<samp>.mf</samp>’) descriptions. The Metafont program distributed with TeX generates bitmaps from these descriptions. - - <p><a name="index-pk-files-539"></a><a name="index-g_t_002e_0040var_007bnnn_007dpk-_0040r_007bpacked-font-bitmaps_007d-540"></a>The glyph files for TeX bitmap fonts are usually stored in -<dfn>packed font</dfn> (PK) files. The names of these files end in -‘<samp><span class="samp">.</span><var>nnn</var><span class="samp">pk</span></samp>’, where <var>nnn</var> is the resolution of the font in -dots per inch. For example, <samp><span class="file">cmr10.600pk</span></samp> contains the bitmaps for -the ‘<samp><span class="samp">cmr10</span></samp>’ font at a resolution of 600<span class="dmn">dpi</span>. (On DOS -filesystems, it's more likely <samp><span class="file">dpi600\cmr10.pk</span></samp>.) - - <p><a name="index-gf-files-541"></a><a name="index-gftopk-542"></a>Metafont actually outputs <dfn>generic font</dfn> (GF) files, e.g., -<samp><span class="file">cmr10.600gf</span></samp>, but the GF files are usually converted immediately +</p> +<a name="index-pk-files"></a> +<a name="index-_002ennnpk-packed-font-bitmaps"></a> +<p>The glyph files for TeX bitmap fonts are usually stored in +<em>packed font</em> (PK) files. The names of these files end in +‘<samp>.<var>nnn</var>pk</samp>’, where <var>nnn</var> is the resolution of the font in +dots per inch. For example, <samp>cmr10.600pk</samp> contains the bitmaps for +the ‘<samp>cmr10</samp>’ font at a resolution of 600dpi. (On DOS +filesystems, it’s more likely <samp>dpi600\cmr10.pk</samp>.) +</p> +<a name="index-gf-files"></a> +<a name="index-gftopk"></a> +<p>Metafont actually outputs <em>generic font</em> (GF) files, e.g., +<samp>cmr10.600gf</samp>, but the GF files are usually converted immediately to PK format (using the <code>gftopk</code> utility that comes with TeX) since PK files are smaller and contain the same information. (The GF format is a historical artifact.) +</p> -<div class="node"> +<hr> <a name="Virtual-fonts"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Encodings">Encodings</a>, -Previous: <a rel="previous" accesskey="p" href="#Glyph-files">Glyph files</a>, -Up: <a rel="up" accesskey="u" href="#Font-concepts">Font concepts</a> - +<div class="header"> +<p> +Next: <a href="#Encodings" accesskey="n" rel="next">Encodings</a>, Previous: <a href="#Glyph-files" accesskey="p" rel="prev">Glyph files</a>, Up: <a href="#Font-concepts" accesskey="u" rel="up">Font concepts</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Virtual-fonts-1"></a> <h4 class="subsection">6.1.3 Virtual fonts</h4> -<p><a name="index-virtual-fonts-543"></a> -A <dfn>virtual font</dfn> is constructed by extracting characters from one or +<a name="index-virtual-fonts"></a> + +<p>A <em>virtual font</em> is constructed by extracting characters from one or more existing fonts and rearranging them, or synthesizing new characters in various ways. The explanation in this manual is intended to suffice for understanding enough about virtual fonts to use them with Dvips. It -isn't a reference manual on virtual fonts. For more information: The +isn’t a reference manual on virtual fonts. For more information: The primary document on virtual fonts is Donald E. Knuth, <cite>TUGboat</cite> 11(1), Apr. 1990, pp. 13–23, “Virtual Fonts: More Fun for Grand -Wizards” (<samp><var>CTAN:</var><span class="file">/info/virtual-fonts.knuth</span></samp>; for CTAN info, -see <a href="kpathsea.html#unixtex_002eftp">unixtex.ftp</a>). (Don't be intimidated by +Wizards” (<samp><var>CTAN:</var>/info/virtual-fonts.knuth</samp>; for CTAN info, +see <a href="kpathsea.html#unixtex_002eftp">unixtex.ftp</a> in <cite>Kpathsea</cite>). (Don’t be intimidated by the subtitle.) - - <p><a name="index-vf-files-544"></a><a name="index-vpl-files-545"></a>A virtual font (‘<samp><span class="samp">.vf</span></samp>’) file specifies, for each character in the +</p> +<a name="index-vf-files"></a> +<a name="index-vpl-files"></a> +<p>A virtual font (‘<samp>.vf</samp>’) file specifies, for each character in the virtual font, a recipe for typesetting that character. A VF file, like a TFM file, is in a compressed binary format. The <code>vftovp</code> and <code>vptovf</code> programs convert a VF file to a human-readable VPL -(virtual property list) format and back again. See <a href="web2c.html#vftovp-invocation">vftovp invocation</a>, and <a href="web2c.html#vptovf-invocation">vptovf invocation</a>. - - <p><a name="index-base-fonts-546"></a>In the case of a PostScript font <var>f</var> being used in a straightforward +(virtual property list) format and back again. See <a href="web2c.html#vftovp-invocation">vftovp +invocation</a> in <cite>Web2c</cite>, and <a href="web2c.html#vptovf-invocation">vptovf invocation</a> in <cite>Web2c</cite>. +</p> +<a name="index-base-fonts"></a> +<p>In the case of a PostScript font <var>f</var> being used in a straightforward way, the recipe says: character <var>i</var> in the VF font is character -<var>j</var> in font <var>f</var>. The font <var>f</var> is called a <dfn>base font</dfn>. +<var>j</var> in font <var>f</var>. The font <var>f</var> is called a <em>base font</em>. For example, the VF file could remap the characters of the PostScript -font to the positions where TeX expects to find them. +font to the positions where TeX expects to find them. See <a href="#Encodings">Encodings</a>. - - <p>Since TeX reads only TFM files, not VF's, each VF must have a +</p> +<p>Since TeX reads only TFM files, not VF’s, each VF must have a corresponding TFM for use with TeX. This corresponding TFM is created when you run <code>vptovf</code>. - - <p><a name="index-expansion_002c-of-virtual-fonts-547"></a><a name="index-virtual-font-expansion-548"></a>You can <dfn>expand</dfn> virtual fonts into their base fonts with DVIcopy -(see <a href="web2c.html#dvicopy-invocation">dvicopy invocation</a>). This is useful if you are -using a DVI translator that doesn't understand vf's itself. - -<div class="node"> +</p> +<a name="index-expansion_002c-of-virtual-fonts"></a> +<a name="index-virtual-font-expansion"></a> +<p>You can <em>expand</em> virtual fonts into their base fonts with DVIcopy +(see <a href="web2c.html#dvicopy-invocation">dvicopy invocation</a> in <cite>Web2c</cite>). This is useful if you are +using a DVI translator that doesn’t understand vf’s itself. +</p> + +<hr> <a name="Encodings"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#PostScript-typesetting">PostScript typesetting</a>, -Previous: <a rel="previous" accesskey="p" href="#Virtual-fonts">Virtual fonts</a>, -Up: <a rel="up" accesskey="u" href="#Font-concepts">Font concepts</a> - +<div class="header"> +<p> +Next: <a href="#PostScript-typesetting" accesskey="n" rel="next">PostScript typesetting</a>, Previous: <a href="#Virtual-fonts" accesskey="p" rel="prev">Virtual fonts</a>, Up: <a href="#Font-concepts" accesskey="u" rel="up">Font concepts</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Encodings-1"></a> <h4 class="subsection">6.1.4 Encodings</h4> -<p><a name="index-encodings-549"></a> -Every font, whatever its type, has an <dfn>encoding</dfn>, that specifies the +<a name="index-encodings"></a> + +<p>Every font, whatever its type, has an <em>encoding</em>, that specifies the correspondence between “logical” characters and character codes. For example, the ASCII encoding specifies that the character numbered 65 -(decimal) is an uppercase `A'. The encoding does not specify what the +(decimal) is an uppercase ‘A’. The encoding does not specify what the character at that position looks like; there are lots of ways to draw an -`A', and a glyph file (see <a href="#Glyph-files">Glyph files</a>) tells how. Nor does it +‘A’, and a glyph file (see <a href="#Glyph-files">Glyph files</a>) tells how. Nor does it specify how much space that character occupies; that information is in a metric file (see <a href="#Metric-files">Metric files</a>). - - <p><a name="index-Computer-Modern_002c-encoding-of-550"></a>TeX implicitly assumes a particular encoding for the fonts you use +</p> +<a name="index-Computer-Modern_002c-encoding-of"></a> +<p>TeX implicitly assumes a particular encoding for the fonts you use with it. For example, the plain TeX macro <code>\'</code>, which typesets an acute accent over the following letter, assumes the acute accent is at position 19 (decimal). This happens to be true of standard TeX fonts such as Computer Modern, as you might expect, but it is not true of normal PostScript fonts. - - <p>It's possible but painful to change all the macros that assume +</p> +<p>It’s possible but painful to change all the macros that assume particular character positions. A better solution is to create a new font with the information for the acute accent at position 19, where TeX expects it to be. See <a href="#Making-a-font-available">Making a font available</a>. +</p> +<a name="index-PostScript-encoding"></a> +<a name="index-encoding-files"></a> +<a name="index-encoding-vectors_002c-defined"></a> - <p><a name="index-PostScript-encoding-551"></a><a name="index-encoding-files-552"></a><a name="index-encoding-vectors_002c-defined-553"></a> -PostScript represents encodings as a sequence of 256 character names -called an <dfn>encoding vector</dfn>. An <dfn>encoding file</dfn> (‘<samp><span class="samp">.enc</span></samp>’) +<p>PostScript represents encodings as a sequence of 256 character names +called an <em>encoding vector</em>. An <em>encoding file</em> (‘<samp>.enc</samp>’) gives such a vector, together with ligature and kerning information (with which we are not concerned at the moment). These encoding files are used by the Afm2tfm program. Encoding files are also downloaded to the PostScript interpreter in your printer if you use one of them in place of the default encoding vector for a particular PostScript font. - - <p><a name="index-dvips_002eenc-554"></a><a name="index-g_t8r_002eenc-555"></a><a name="index-texmext_002eenc-556"></a><a name="index-texmital_002eenc-557"></a><a name="index-texmsym_002eenc-558"></a><a name="index-reencode_002f_002a_002eenc-559"></a>Examples of encodings: the <samp><span class="file">dvips.enc</span></samp> encoding file that comes +</p> +<a name="index-dvips_002eenc"></a> +<a name="index-8r_002eenc"></a> +<a name="index-texmext_002eenc"></a> +<a name="index-texmital_002eenc"></a> +<a name="index-texmsym_002eenc"></a> +<a name="index-reencode_002f_002a_002eenc"></a> +<p>Examples of encodings: the <samp>dvips.enc</samp> encoding file that comes with the Fontname distribution (<a href="http://tug.org/fontname">http://tug.org/fontname</a>) is a good (but not perfect) approximation to the TeX encoding for -TeX's Computer Modern text fonts. This is the encoding of the -fonts that originated with Dvips, such as <samp><span class="file">ptmr.tfm</span></samp>. The +TeX’s Computer Modern text fonts. This is the encoding of the +fonts that originated with Dvips, such as <samp>ptmr.tfm</samp>. The distribution includes many other encoding files; for example, -<samp><span class="file">8r.enc</span></samp>, which is the base font for the current PostScript font +<samp>8r.enc</samp>, which is the base font for the current PostScript font distribution, and three corresponding to the TeX mathematics fonts: -<samp><span class="file">texmext.enc</span></samp> for math extensions, <samp><span class="file">texmital.enc</span></samp> for math -italics, and <samp><span class="file">texmsym.enc</span></samp> for math symbols. +<samp>texmext.enc</samp> for math extensions, <samp>texmital.enc</samp> for math +italics, and <samp>texmsym.enc</samp> for math symbols. +</p> -<div class="node"> +<hr> <a name="PostScript-typesetting"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Encodings">Encodings</a>, -Up: <a rel="up" accesskey="u" href="#Font-concepts">Font concepts</a> - +<div class="header"> +<p> +Previous: <a href="#Encodings" accesskey="p" rel="prev">Encodings</a>, Up: <a href="#Font-concepts" accesskey="u" rel="up">Font concepts</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="How-PostScript-typesets-a-character"></a> <h4 class="subsection">6.1.5 How PostScript typesets a character</h4> -<p><a name="index-typesetting-in-PostScript-560"></a><a name="index-character-lookup-procedure-in-PostScript-561"></a> -The output of Dvips is a program in the PostScript language that +<a name="index-typesetting-in-PostScript"></a> +<a name="index-character-lookup-procedure-in-PostScript"></a> + +<p>The output of Dvips is a program in the PostScript language that instructs your (presumably PostScript-capable) printer how to typeset your document by transforming it into toner on paper. Your printer, in turn, contains a PostScript interpreter that carries out the instructions in this typesetting program. - - <p>The program must include the definition of any PostScript fonts that you +</p> +<p>The program must include the definition of any PostScript fonts that you use in your document. Fonts built into your printer (probably the -standard 35: ‘<samp><span class="samp">Times-Roman</span></samp>’, ‘<samp><span class="samp">ZapfDingbats</span></samp>’, <small class="dots">...</small>) are +standard 35: ‘<samp>Times-Roman</samp>’, ‘<samp>ZapfDingbats</samp>’, …) are defined within the interpreter itself. Other fonts must be downloaded as pfa or pfb files (see <a href="#Glyph-files">Glyph files</a>) from your host (the computer -on which you're running Dvips). - - <p>You may be wondering exactly how a PostScript interpreter figures out +on which you’re running Dvips). +</p> +<p>You may be wondering exactly how a PostScript interpreter figures out what character to typeset, with this mass of metrics, glyphs, encodings, -and other information. (If you're not wondering, skip this section -<small class="dots">...</small>) - - <p><a name="index-show-_0040r_007bPostScript-operator_007d-562"></a>The basic PostScript operator for imaging characters is -<code>show</code>. Suppose you've asked TeX to typeset an `S'. This will +and other information. (If you’re not wondering, skip this section +…) +</p> +<a name="index-show-PostScript-operator"></a> +<p>The basic PostScript operator for imaging characters is +<code>show</code>. Suppose you’ve asked TeX to typeset an ‘S’. This will eventually wind up in the Dvips output as the equivalent of this PostScript operation: - -<pre class="example"> (S) show -</pre> - <p class="noindent">Here is how PostScript typesets the `S': - - <ol type=1 start=1> -<li><a name="index-ASCII-character-codes_002c-used-by-PostScript-563"></a>PostScript interpreters use ASCII; therefore `S' is represented as the +</p> +<div class="example"> +<pre class="example">(S) show +</pre></div> + +<p>Here is how PostScript typesets the ‘S’: +</p> +<ol> +<li> <a name="index-ASCII-character-codes_002c-used-by-PostScript"></a> +PostScript interpreters use ASCII; therefore ‘S’ is represented as the integer 83. (Any of the 256 possible characters representable in a standard 8-bit byte can be typeset.) - <li><a name="index-current-font_002c-in-PostScript-564"></a><a name="index-dictionary_002c-PostScript-language-565"></a>A PostScript <dfn>dictionary</dfn> is a mapping of names to arbitrary values. +</li><li> <a name="index-current-font_002c-in-PostScript"></a> +<a name="index-dictionary_002c-PostScript-language"></a> +A PostScript <em>dictionary</em> is a mapping of names to arbitrary values. A font, to the interpreter, is a dictionary which contains entries for certain names. (If these entries are missing, the interpreter refuses to do anything with that font.) - <p>PostScript has a notion of “the current font”—whatever font is +<p>PostScript has a notion of “the current font”—whatever font is currently being typeset in. - - <li><a name="index-encoding-vectors_002c-in-Type-1-fonts-566"></a><a name="index-Encoding-_0040r_007bType-1-dictionary_007d-567"></a>One of the mandatory entries in a font dictionary is ‘<samp><span class="samp">Encoding</span></samp>’, -which defines the encoding vector (see <a href="#Encodings">Encodings</a>) for that font. +</p> +</li><li> <a name="index-encoding-vectors_002c-in-Type-1-fonts"></a> +<a name="index-Encoding-Type-1-dictionary"></a> +One of the mandatory entries in a font dictionary is ‘<samp>Encoding</samp>’, +which defines the encoding vector (see <a href="#Encodings">Encodings</a>) for that font. This vector of 256 names maps each possible input character to a name. - <li>The interpreter retrieves the entry at position 83 of the encoding +</li><li> The interpreter retrieves the entry at position 83 of the encoding vector. This value is a PostScript name: <code>/S</code>. - <li><a name="index-CharStrings-_0040r_007bType-1-dictionary_007d-568"></a><a name="index-dictionary_002c-_0040code_007bCharStrings_007d-569"></a>For Type 1 fonts (we're not going to discuss anything else), the +</li><li> <a name="index-CharStrings-Type-1-dictionary"></a> +<a name="index-dictionary_002c-CharStrings"></a> +For Type 1 fonts (we’re not going to discuss anything else), the interpreter now looks up <code>/S</code> as a key in a dictionary named <code>CharStrings</code>, another mandatory entry in a font dictionary. - <li><a name="index-hints-570"></a><a name="index-character-definitions-in-PostScript-571"></a>The value of <code>S</code> in <code>CharStrings</code> is the equivalent of a -series of standard PostScript commands like ‘<samp><span class="samp">curveto</span></samp>’, -‘<samp><span class="samp">lineto</span></samp>’, ‘<samp><span class="samp">fill</span></samp>’, and so on. These commands are executed to -draw the character. There can also be <dfn>hint information</dfn> that helps -adapt the character to low-resolution rasters. (See <a href="#Glyph-files">Glyph files</a>.) +</li><li> <a name="index-hints"></a> +<a name="index-character-definitions-in-PostScript"></a> +The value of <code>S</code> in <code>CharStrings</code> is the equivalent of a +series of standard PostScript commands like ‘<samp>curveto</samp>’, +‘<samp>lineto</samp>’, ‘<samp>fill</samp>’, and so on. These commands are executed to +draw the character. There can also be <em>hint information</em> that helps +adapt the character to low-resolution rasters. (See <a href="#Glyph-files">Glyph files</a>.) The commands are actually represented in a more compact way than standard PostScript source; see the Type 1 book for details. - </ol> +</li></ol> - <p>This method for typesetting characters is used in both Level 1 and Level +<p>This method for typesetting characters is used in both Level 1 and Level 2 PostScript. See the PostScript reference manuals for more information. +</p> -<div class="node"> +<hr> <a name="Making-a-font-available"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Invoking-afm2tfm">Invoking afm2tfm</a>, -Previous: <a rel="previous" accesskey="p" href="#Font-concepts">Font concepts</a>, -Up: <a rel="up" accesskey="u" href="#PostScript-fonts">PostScript fonts</a> - +<div class="header"> +<p> +Next: <a href="#Invoking-afm2tfm" accesskey="n" rel="next">Invoking afm2tfm</a>, Previous: <a href="#Font-concepts" accesskey="p" rel="prev">Font concepts</a>, Up: <a href="#PostScript-fonts" accesskey="u" rel="up">PostScript fonts</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Making-a-PostScript-font-available"></a> <h3 class="section">6.2 Making a PostScript font available</h3> -<p><a name="index-installing-fonts-572"></a><a name="index-fonts_002c-installing-573"></a> -To make a PostScript font available in a TeX document, you need to -install the font on your system and then define it within the document. +<a name="index-installing-fonts"></a> +<a name="index-fonts_002c-installing"></a> + +<p>To make a PostScript font available in a TeX document, you need to +install the font on your system and then define it within the document. Once you have installed the font, of course, it is available for any -document thereafter and you don't need to reinstall it. You must have +document thereafter and you don’t need to reinstall it. You must have an AFM file for any font you install. Unless the font is built into your printer, you must also have a PFA or PFB file. - - <p>In the following examples, we use the font ‘<samp><span class="samp">Times-Roman</span></samp>’ to +</p> +<p>In the following examples, we use the font ‘<samp>Times-Roman</samp>’ to illustrate the process. But you should use the prebuilt fonts for Times and the other standard fonts, rather than rebuilding them. The prebuilt fonts are made using a more complicated process than that described @@ -3193,504 +4181,619 @@ here, to make them work as well as possible with TeX. So following the steps in this manual will not generate files identical to the distributed ones. See <a href="#PostScript-font-installation">PostScript font installation</a>, for pointers to the prebuilt fonts. - - <p>Installation of a PostScript font proceeds in three steps. See <a href="#Font-concepts">Font concepts</a>, for descriptions of the various files involved. - - <ol type=1 start=1> -<li>Run <code>afm2tfm</code> to create a TFM file for the original font, +</p> +<p>Installation of a PostScript font proceeds in three steps. See <a href="#Font-concepts">Font concepts</a>, for descriptions of the various files involved. +</p> +<ol> +<li> Run <code>afm2tfm</code> to create a TFM file for the original font, and the VPL form of the virtual font: - <pre class="example"> afm2tfm Times-Roman -v ptmr rptmr -</pre> - <li>Run <code>vptovf</code> to generate a VF and TFM file for the virtual font -from the VPL file: - <pre class="example"> vptovf ptmr.vpl ptmr.vf ptmr.tfm -</pre> - <li>Insert an entry for the font in <samp><span class="file">psfonts.map</span></samp> (see <a href="#psfonts_002emap">psfonts.map</a>): - <pre class="example"> rptmr Times-Roman <ptmr8a.pfa -</pre> - <li>Install the files in the standard locations, as in: - <pre class="example"> cp ptmr.vf <var>fontdir</var>/vf/... - cp *ptmr.tfm <var>fontdir</var>/tfm/... - cp ptmr.afm <var>fontdir</var>/afm/... - cp ptmr.pf? <var>fontdir</var>/type1/... -</pre> - </ol> +<div class="example"> +<pre class="example">afm2tfm Times-Roman -v ptmr rptmr +</pre></div> - <p>The simplest invocation of Afm2tfm to make virtual fonts goes something +</li><li> Run <code>vptovf</code> to generate a VF and TFM file for the virtual font +from the VPL file: +<div class="example"> +<pre class="example">vptovf ptmr.vpl ptmr.vf ptmr.tfm +</pre></div> + +</li><li> Insert an entry for the font in <samp>psfonts.map</samp> (see <a href="#psfonts_002emap">psfonts.map</a>): +<div class="example"> +<pre class="example">rptmr Times-Roman <ptmr8a.pfa +</pre></div> + +</li><li> Install the files in the standard locations, as in: +<div class="example"> +<pre class="example">cp ptmr.vf <var>fontdir</var>/vf/… +cp *ptmr.tfm <var>fontdir</var>/tfm/… +cp ptmr.afm <var>fontdir</var>/afm/… +cp ptmr.pf? <var>fontdir</var>/type1/… +</pre></div> +</li></ol> + +<p>The simplest invocation of Afm2tfm to make virtual fonts goes something like this: - - <p><a name="index-afm2tfm-574"></a> -<pre class="example"> afm2tfm Times-Roman -v ptmr rptmr -</pre> - <p class="noindent">This reads the file <samp><span class="file">Times-Roman.afm</span></samp>, and produces two files as -output, namely the virtual property list'file <samp><span class="file">ptmr.vpl</span></samp>, and the -“raw” font metric file <samp><span class="file">rptmr.tfm</span></samp>. To use the font in TeX, +</p> +<a name="index-afm2tfm"></a> +<div class="example"> +<pre class="example">afm2tfm Times-Roman -v ptmr rptmr +</pre></div> + +<p>This reads the file <samp>Times-Roman.afm</samp>, and produces two files as +output, namely the virtual property list’file <samp>ptmr.vpl</samp>, and the +“raw” font metric file <samp>rptmr.tfm</samp>. To use the font in TeX, you first run - - <p><a name="index-vptovf-575"></a> -<pre class="example"> vptovf ptmr.vpl ptmr.vf ptmr.tfm -</pre> - <p class="noindent">You should then install the virtual font file <samp><span class="file">ptmr.vf</span></samp> where Dvips -will see it and install <samp><span class="file">ptmr.tfm</span></samp> and <samp><span class="file">rptmr.tfm</span></samp> where +</p> +<a name="index-vptovf"></a> +<div class="example"> +<pre class="example">vptovf ptmr.vpl ptmr.vf ptmr.tfm +</pre></div> + +<p>You should then install the virtual font file <samp>ptmr.vf</samp> where Dvips +will see it and install <samp>ptmr.tfm</samp> and <samp>rptmr.tfm</samp> where TeX and Dvips will see them. - - <p>Using these raw fonts is not recommended; there are no raw fonts in the +</p> +<p>Using these raw fonts is not recommended; there are no raw fonts in the prebuilt PostScript fonts distributed along with Dvips. But -nevertheless, that's how Afm2tfm presently operates, so that's what we -document here. The ‘<samp><span class="samp">r</span></samp>’ prefix convention is likewise historical +nevertheless, that’s how Afm2tfm presently operates, so that’s what we +document here. The ‘<samp>r</samp>’ prefix convention is likewise historical accident. - - <p>You can also make more complex virtual fonts by editing <samp><span class="file">ptmr.vpl</span></samp> -before running ‘<samp><span class="samp">vptovf</span></samp>’; such editing might add the uppercase Greek +</p> +<p>You can also make more complex virtual fonts by editing <samp>ptmr.vpl</samp> +before running ‘<samp>vptovf</samp>’; such editing might add the uppercase Greek characters in the standard TeX positions, for instance. (This has already been done for the prebuilt fonts.) - - <p>Once the files have been installed, you're all set. You can now do +</p> +<p>Once the files have been installed, you’re all set. You can now do things like this in TeX: -<pre class="example"> \font\myfont = ptmr at 12pt - \myfont Hello, I am being typeset in 12-point Times-Roman. -</pre> - <p>Thus, we have two fonts, one actual (‘<samp><span class="samp">rptmr</span></samp>’, which is analogous to -the font in the printer) and one virtual (‘<samp><span class="samp">ptmr</span></samp>’, which has been +</p><div class="example"> +<pre class="example">\font\myfont = ptmr at 12pt +\myfont Hello, I am being typeset in 12-point Times-Roman. +</pre></div> + +<p>Thus, we have two fonts, one actual (‘<samp>rptmr</samp>’, which is analogous to +the font in the printer) and one virtual (‘<samp>ptmr</samp>’, which has been remapped to the standard TeX encoding (almost)), and has typesetting know-how added. You could also say +</p> +<div class="example"> +<pre class="example">\font\raw = rptmr at 10pt +</pre></div> -<pre class="example"> \font\raw = rptmr at 10pt -</pre> - <p class="noindent">and typeset directly with that, but then you would have no ligatures or +<p>and typeset directly with that, but then you would have no ligatures or kerning, and you would have to use Adobe character positions for special letters like -The virtual font ‘<samp><span class="samp">ptmr</span></samp>’ not only has ligatures and kerning, and +The virtual font ‘<samp>ptmr</samp>’ not only has ligatures and kerning, and most of the standard accent conventions of TeX, it also has a few additional features not present in the Computer Modern fonts. For example, it includes all the Adobe characters (such as the Polish ogonek and the French guillemots). The only things you lose from ordinary -TeX text fonts are the dotless `j' (which can be hacked into the VPL +TeX text fonts are the dotless ‘j’ (which can be hacked into the VPL file with literal PostScript specials if you have the patience) and -uppercase Greek letters (which just don't exist unless you buy them +uppercase Greek letters (which just don’t exist unless you buy them separately). See <a href="#Reencoding-with-Afm2tfm">Reencoding with Afm2tfm</a>. - - <p>As a final step you need to record information about both the virtual +</p> +<p>As a final step you need to record information about both the virtual font and the original font (if you ever might want to use it) in the -<samp><span class="file">psfonts.map</span></samp> file (see <a href="#psfonts_002emap">psfonts.map</a>). For our example, you'd -insert the following into <samp><span class="file">psfonts.map</span></samp>: -<pre class="example"> rptmr Times-Roman <ptmr8a.pfa -</pre> - <p class="noindent">Of course, <code>Times-Roman</code> is already built in to most every -printer, so there's no need to download any Type 1 file for it. But if +<samp>psfonts.map</samp> file (see <a href="#psfonts_002emap">psfonts.map</a>). For our example, you’d +insert the following into <samp>psfonts.map</samp>: +</p><div class="example"> +<pre class="example">rptmr Times-Roman <ptmr8a.pfa +</pre></div> + +<p>Of course, <code>Times-Roman</code> is already built in to most every +printer, so there’s no need to download any Type 1 file for it. But if you are actually following these instructions for new fonts, most likely they are not built in to the printer. - - <p><a name="index-memory_002c-used-by-PostScript-fonts-576"></a><a name="index-efficiency_002c-and-fonts-577"></a>These PostScript fonts can be scaled to any size. Go wild! Using -PostScript fonts, however, does use up a great deal of the printer's +</p> +<a name="index-memory_002c-used-by-PostScript-fonts"></a> +<a name="index-efficiency_002c-and-fonts"></a> +<p>These PostScript fonts can be scaled to any size. Go wild! Using +PostScript fonts, however, does use up a great deal of the printer’s memory and it does take time. You may find downloading bitmap fonts -(possibly compressed, with the ‘<samp><span class="samp">Z</span></samp>’ option) to be faster than using +(possibly compressed, with the ‘<samp>Z</samp>’ option) to be faster than using the built-in PostScript fonts. +</p> -<div class="node"> +<hr> <a name="Invoking-afm2tfm"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#psfonts_002emap">psfonts.map</a>, -Previous: <a rel="previous" accesskey="p" href="#Making-a-font-available">Making a font available</a>, -Up: <a rel="up" accesskey="u" href="#PostScript-fonts">PostScript fonts</a> - +<div class="header"> +<p> +Next: <a href="#psfonts_002emap" accesskey="n" rel="next">psfonts.map</a>, Previous: <a href="#Making-a-font-available" accesskey="p" rel="prev">Making a font available</a>, Up: <a href="#PostScript-fonts" accesskey="u" rel="up">PostScript fonts</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Invoking-Afm2tfm"></a> <h3 class="section">6.3 Invoking Afm2tfm</h3> -<p><a name="index-afm2tfm-578"></a> -The Afm2tfm program converts an AFM file for a PostScript font to a TFM +<a name="index-afm2tfm-1"></a> + +<p>The Afm2tfm program converts an AFM file for a PostScript font to a TFM file and a VPL file for a corresponding virtual font (or, in its simplest form, to a TFM file for the PostScript font itself). The results of the conversion are affected by the command-line options and especially by the reencodings you can specify with those options. You can also obtain special effects such as an oblique font. - - <p><a name="index-fontinst-579"></a><a name="index-virtual-fonts_002c-creating-580"></a><a name="index-Jeffrey_002c-Alan-581"></a>An alternative to Afm2tfm for creating virtual fonts is Alan Jeffrey's +</p> +<a name="index-fontinst"></a> +<a name="index-virtual-fonts_002c-creating"></a> +<a name="index-Jeffrey_002c-Alan"></a> +<p>An alternative to Afm2tfm for creating virtual fonts is Alan Jeffrey’s <code>fontinst</code> program, available from -<samp><var>CTAN:</var><span class="file">fonts/utilities/fontinst</span></samp> (for CTAN info, -see <a href="kpathsea.html#unixtex_002eftp">unixtex.ftp</a>). - -<ul class="menu"> -<li><a accesskey="1" href="#Changing-font-encodings">Changing font encodings</a>: Reencoding with -t, -p, -T. -<li><a accesskey="2" href="#Special-font-effects">Special font effects</a>: Oblique fonts, small caps, and such. -<li><a accesskey="3" href="#Afm2tfm-options">Afm2tfm options</a>: afm2tfm command-line options. -</ul> - -<div class="node"> +<samp><var>CTAN:</var>fonts/utilities/fontinst</samp> (for CTAN info, +see <a href="kpathsea.html#unixtex_002eftp">unixtex.ftp</a> in <cite>Kpathsea</cite>). +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Changing-font-encodings" accesskey="1">Changing font encodings</a>:</td><td> </td><td align="left" valign="top">Reencoding with -t, -p, -T. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Special-font-effects" accesskey="2">Special font effects</a>:</td><td> </td><td align="left" valign="top">Oblique fonts, small caps, and such. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Afm2tfm-options" accesskey="3">Afm2tfm options</a>:</td><td> </td><td align="left" valign="top">afm2tfm command-line options. +</td></tr> +</table> + + +<hr> <a name="Changing-font-encodings"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Special-font-effects">Special font effects</a>, -Up: <a rel="up" accesskey="u" href="#Invoking-afm2tfm">Invoking afm2tfm</a> - +<div class="header"> +<p> +Next: <a href="#Special-font-effects" accesskey="n" rel="next">Special font effects</a>, Up: <a href="#Invoking-afm2tfm" accesskey="u" rel="up">Invoking afm2tfm</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Changing-font-encodings-1"></a> <h4 class="subsection">6.3.1 Changing font encodings</h4> -<p><a name="index-encoding-changes-582"></a><a name="index-fonts_002c-changing-encoding-of-583"></a> -Afm2tfm allows you to specify a different encoding for a PostScript font -(for a general introduction to encodings, see <a href="#Encodings">Encodings</a>). The -‘<samp><span class="samp">-t</span></samp>’ option changes the TeX encoding, ‘<samp><span class="samp">-p</span></samp>’ changes the -PostScript encoding, and ‘<samp><span class="samp">-T</span></samp>’ changes both simultaneously, as -detailed in the sections below. - -<ul class="menu"> -<li><a accesskey="1" href="#Changing-TeX-encodings">Changing TeX encodings</a>: Where TeX finds a character. -<li><a accesskey="2" href="#Changing-PostScript-encodings">Changing PostScript encodings</a>: Where PostScript finds a character. -<li><a accesskey="3" href="#Changing-both-encodings">Changing both encodings</a>: One and the same, simultaneously. -<li><a accesskey="4" href="#Reencoding-with-Afm2tfm">Reencoding with Afm2tfm</a>: Problems with the default encoding. -<li><a accesskey="5" href="#Encoding-file-format">Encoding file format</a>: Syntax of an encoding file. -</ul> +<a name="index-encoding-changes"></a> +<a name="index-fonts_002c-changing-encoding-of"></a> -<div class="node"> +<p>Afm2tfm allows you to specify a different encoding for a PostScript font +(for a general introduction to encodings, see <a href="#Encodings">Encodings</a>). The +‘<samp>-t</samp>’ option changes the TeX encoding, ‘<samp>-p</samp>’ changes the +PostScript encoding, and ‘<samp>-T</samp>’ changes both simultaneously, as +detailed in the sections below. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Changing-TeX-encodings" accesskey="1">Changing TeX encodings</a>:</td><td> </td><td align="left" valign="top">Where TeX finds a character. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Changing-PostScript-encodings" accesskey="2">Changing PostScript encodings</a>:</td><td> </td><td align="left" valign="top">Where PostScript finds a character. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Changing-both-encodings" accesskey="3">Changing both encodings</a>:</td><td> </td><td align="left" valign="top">One and the same, simultaneously. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Reencoding-with-Afm2tfm" accesskey="4">Reencoding with Afm2tfm</a>:</td><td> </td><td align="left" valign="top">Problems with the default encoding. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Encoding-file-format" accesskey="5">Encoding file format</a>:</td><td> </td><td align="left" valign="top">Syntax of an encoding file. +</td></tr> +</table> + + +<hr> <a name="Changing-TeX-encodings"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Changing-PostScript-encodings">Changing PostScript encodings</a>, -Up: <a rel="up" accesskey="u" href="#Changing-font-encodings">Changing font encodings</a> - +<div class="header"> +<p> +Next: <a href="#Changing-PostScript-encodings" accesskey="n" rel="next">Changing PostScript encodings</a>, Up: <a href="#Changing-font-encodings" accesskey="u" rel="up">Changing font encodings</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="g_t_002dt_003a-Changing-TeX-encodings"></a> +<h4 class="subsubsection">6.3.1.1 ‘<samp>-t</samp>’: Changing TeX encodings</h4> -<h5 class="subsubsection">6.3.1.1 ‘<samp><span class="samp">-t</span></samp>’: Changing TeX encodings</h5> +<a name="index-changing-TeX-encodings"></a> +<a name="index-TeX-encoding_002c-changing"></a> -<p><a name="index-changing-_0040TeX_007b_007d-encodings-584"></a><a name="index-g_t_0040TeX_007b_007d-encoding_002c-changing-585"></a> -<a name="index-g_t_002dt-_0040var_007btex_002denc_007d-586"></a>To build a virtual font with Afm2tfm, you specify the ‘<samp><span class="samp">-v</span></samp>’ or -‘<samp><span class="samp">-V</span></samp>’ option. You can then specify an encoding for that virtual font -with ‘<samp><span class="samp">-t </span><var>tex-enc</var></samp>’. (‘<samp><span class="samp">-t</span></samp>’ is ignored if neither -‘<samp><span class="samp">-v</span></samp>’ nor ‘<samp><span class="samp">-V</span></samp>’ is present.) Any ligature and kerning +<a name="index-_002dt-tex_002denc"></a> +<p>To build a virtual font with Afm2tfm, you specify the ‘<samp>-v</samp>’ or +‘<samp>-V</samp>’ option. You can then specify an encoding for that virtual font +with ‘<samp>-t <var>tex-enc</var></samp>’. (‘<samp>-t</samp>’ is ignored if neither +‘<samp>-v</samp>’ nor ‘<samp>-V</samp>’ is present.) Any ligature and kerning information you specify in <var>tex-enc</var> will be used in the VPL, in addition to the ligature and kerning information from the AFM file. - - <p>If the AFM file has no entry for a character specified in <var>tex-enc</var>, +</p> +<p>If the AFM file has no entry for a character specified in <var>tex-enc</var>, that character will be omitted from the output VPL. - - <p><a name="index-texmsym_002eenc-587"></a>The ‘<samp><span class="samp">-t</span></samp>’ option is likely to be needed when you have a PostScript +</p> +<a name="index-texmsym_002eenc-1"></a> +<p>The ‘<samp>-t</samp>’ option is likely to be needed when you have a PostScript font corresponding to a TeX font other than a normal text font such as Computer Modern. For instance, if you have a PostScript font that -contains math symbols, you'd probably want to use the encoding in the -<samp><span class="file">texmsym.enc</span></samp> file supplied with Dvips. (For a start; to actually +contains math symbols, you’d probably want to use the encoding in the +<samp>texmsym.enc</samp> file supplied with Dvips. (For a start; to actually get usable math fonts, you have to define much more than just an encoding.) +</p> -<div class="node"> +<hr> <a name="Changing-PostScript-encodings"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Changing-both-encodings">Changing both encodings</a>, -Previous: <a rel="previous" accesskey="p" href="#Changing-TeX-encodings">Changing TeX encodings</a>, -Up: <a rel="up" accesskey="u" href="#Changing-font-encodings">Changing font encodings</a> - +<div class="header"> +<p> +Next: <a href="#Changing-both-encodings" accesskey="n" rel="next">Changing both encodings</a>, Previous: <a href="#Changing-TeX-encodings" accesskey="p" rel="prev">Changing TeX encodings</a>, Up: <a href="#Changing-font-encodings" accesskey="u" rel="up">Changing font encodings</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="g_t_002dp_003a-Changing-PostScript-encodings"></a> +<h4 class="subsubsection">6.3.1.2 ‘<samp>-p</samp>’: Changing PostScript encodings</h4> -<h5 class="subsubsection">6.3.1.2 ‘<samp><span class="samp">-p</span></samp>’: Changing PostScript encodings</h5> +<a name="index-changing-PostScript-encodings"></a> +<a name="index-PostScript-encoding_002c-changing"></a> +<a name="index-_002dp-ps_002denc"></a> -<p><a name="index-changing-PostScript-encodings-588"></a><a name="index-PostScript-encoding_002c-changing-589"></a><a name="index-g_t_002dp-_0040var_007bps_002denc_007d-590"></a> -By default, Afm2tfm uses the encoding it finds in the AFM file. You can -specify a different PostScript encoding with ‘<samp><span class="samp">-p </span><var>ps-enc</var></samp>’. +<p>By default, Afm2tfm uses the encoding it finds in the AFM file. You can +specify a different PostScript encoding with ‘<samp>-p <var>ps-enc</var></samp>’. This makes the raw TFM file (the one output by Afm2tfm) have the encoding specified in the encoding file <var>ps-enc</var>. Any ligature or kern information specified in <var>ps-enc</var> is ignored by Afm2tfm, since ligkern info is always omitted from the raw TFM. - - <p>If you use this option, you must also arrange to download <var>ps-enc</var> +</p> +<p>If you use this option, you must also arrange to download <var>ps-enc</var> as part of any document that uses this font. You do this by adding a -line like the following one to <samp><span class="file">psfonts.map</span></samp> (see <a href="#psfonts_002emap">psfonts.map</a>): -<pre class="example"> zpopr Optima "MyEncoding ReEncodeFont" <myenc.enc -</pre> - <p><a name="index-trademark-_0040r_007bcharacter_002c-accessing_007d-591"></a><a name="index-registered-_0040r_007bcharacter_002c-accessing_007d-592"></a><a name="index-extra-characters_002c-accessing-593"></a>Using ‘<samp><span class="samp">-p</span></samp>’ is the only way to access characters in a PostScript +line like the following one to <samp>psfonts.map</samp> (see <a href="#psfonts_002emap">psfonts.map</a>): +</p><div class="example"> +<pre class="example">zpopr Optima "MyEncoding ReEncodeFont" <myenc.enc +</pre></div> + +<a name="index-trademark-character_002c-accessing"></a> +<a name="index-registered-character_002c-accessing"></a> +<a name="index-extra-characters_002c-accessing"></a> +<p>Using ‘<samp>-p</samp>’ is the only way to access characters in a PostScript font that are neither encoded in the AFM file nor constructed from other -characters. For instance, Adobe's ‘<samp><span class="samp">Times-Roman</span></samp>’ font contains the -extra characters ‘<samp><span class="samp">trademark</span></samp>’ and ‘<samp><span class="samp">registered</span></samp>’ (among others); +characters. For instance, Adobe’s ‘<samp>Times-Roman</samp>’ font contains the +extra characters ‘<samp>trademark</samp>’ and ‘<samp>registered</samp>’ (among others); these can only be accessed through such a PostScript reencoding. - - <p><a name="index-g_t8r-_0040r_007bencoding_002c-and-extra-characters_007d-594"></a>The `8r' base encoding used for the current PostScript font +</p> +<a name="index-8r-encoding_002c-and-extra-characters"></a> +<p>The ‘8r’ base encoding used for the current PostScript font distribution does do this reencoding, for precisely this reason. +</p> -<div class="node"> +<hr> <a name="Changing-both-encodings"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Reencoding-with-Afm2tfm">Reencoding with Afm2tfm</a>, -Previous: <a rel="previous" accesskey="p" href="#Changing-PostScript-encodings">Changing PostScript encodings</a>, -Up: <a rel="up" accesskey="u" href="#Changing-font-encodings">Changing font encodings</a> - +<div class="header"> +<p> +Next: <a href="#Reencoding-with-Afm2tfm" accesskey="n" rel="next">Reencoding with Afm2tfm</a>, Previous: <a href="#Changing-PostScript-encodings" accesskey="p" rel="prev">Changing PostScript encodings</a>, Up: <a href="#Changing-font-encodings" accesskey="u" rel="up">Changing font encodings</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="g_t_002dT_003a-Changing-both-TeX-and-PostScript-encodings"></a> +<h4 class="subsubsection">6.3.1.3 ‘<samp>-T</samp>’: Changing both TeX and PostScript encodings</h4> -<h5 class="subsubsection">6.3.1.3 ‘<samp><span class="samp">-T</span></samp>’: Changing both TeX and PostScript encodings</h5> +<a name="index-_002dT-enc_002dfile"></a> -<p><a name="index-g_t_002dT-_0040var_007benc_002dfile_007d-595"></a> -The option ‘<samp><span class="samp">-T </span><var>enc-file</var></samp>’ is equivalent to ‘<samp><span class="samp">-p -</span><var>enc-file</var><span class="samp"> -t </span><var>enc-file</var></samp>’. If you make regular use of a private -non-standard reencoding ‘<samp><span class="samp">-T</span></samp>’ is usually a better idea than the +<p>The option ‘<samp>-T <var>enc-file</var></samp>’ is equivalent to ‘<samp>-p +<var>enc-file</var> -t <var>enc-file</var></samp>’. If you make regular use of a private +non-standard reencoding ‘<samp>-T</samp>’ is usually a better idea than the individual options, to avoid unexpected inconsistencies in mapping otherwise. An example of when you might use this option is a dingbats font: when you have a TeX encoding that is designed to be used with a particular PostScript font. +</p> -<div class="node"> +<hr> <a name="Reencoding-with-Afm2tfm"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Encoding-file-format">Encoding file format</a>, -Previous: <a rel="previous" accesskey="p" href="#Changing-both-encodings">Changing both encodings</a>, -Up: <a rel="up" accesskey="u" href="#Changing-font-encodings">Changing font encodings</a> - +<div class="header"> +<p> +Next: <a href="#Encoding-file-format" accesskey="n" rel="next">Encoding file format</a>, Previous: <a href="#Changing-both-encodings" accesskey="p" rel="prev">Changing both encodings</a>, Up: <a href="#Changing-font-encodings" accesskey="u" rel="up">Changing font encodings</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Reencoding-with-Afm2tfm-1"></a> +<h4 class="subsubsection">6.3.1.4 Reencoding with Afm2tfm</h4> -<h5 class="subsubsection">6.3.1.4 Reencoding with Afm2tfm</h5> +<a name="index-reencoding"></a> +<a name="index-remapping"></a> -<p><a name="index-reencoding-596"></a><a name="index-remapping-597"></a> -The Afm2tfm program creates the TFM and VF files for the virtual font -corresponding to a PostScript font by <dfn>reencoding</dfn> the PostScript +<p>The Afm2tfm program creates the TFM and VF files for the virtual font +corresponding to a PostScript font by <em>reencoding</em> the PostScript font. Afm2tfm generates these files from two encodings: one for TeX and one for PostScript. The TeX encoding is used to map character numbers to character names while the PostScript encoding is used to map each character name to a possibly different number. In combination, you can get access to any character of a PostScript font at any position for TeX typesetting. - - <p>In the default case, when you specify none of the <code>-t</code>, <code>-p</code>, +</p> +<p>In the default case, when you specify none of the <code>-t</code>, <code>-p</code>, or <code>-T</code> options, Afm2tfm uses a default TeX encoding (which mostly corresponds to the Computer Modern text fonts) and the PostScript encoding found in the AFM file being read. The reencoding is also -sometimes called a <dfn>remapping</dfn>. - - <p>For example, the default encodings reencode the acute accent in two +sometimes called a <em>remapping</em>. +</p> +<p>For example, the default encodings reencode the acute accent in two steps: first the default TeX encoding maps the number 19 to the -character name ‘<samp><span class="samp">acute</span></samp>’; then the default PostScript encoding, as +character name ‘<samp>acute</samp>’; then the default PostScript encoding, as found in the AFM file for an ordinary PostScript font, maps the -character name ‘<samp><span class="samp">acute</span></samp>’ to the number 194. (The PostScript encoding +character name ‘<samp>acute</samp>’ to the number 194. (The PostScript encoding works in reverse, by looking in the encoding vector for the name and then yielding the corresponding number.) The combined mapping of 19 to 194 shows up explicitly in the VF file and also implicitly in the fact that the properties of PostScript character 194 appear in position 19 of the TFM file for the virtual font. - - <p><a name="index-accents_002c-in-wrong-position-598"></a><a name="index-Hungarian-umlaut-599"></a><a name="index-dot-accent-600"></a><a name="index-Scandinavian-A-ring-601"></a><a name="index-A-ring_002c-Scandinavian-letter-602"></a>The default encoding of the distributed fonts (e.g., <samp><span class="file">ptmr.tfm</span></samp>) +</p> +<a name="index-accents_002c-in-wrong-position"></a> +<a name="index-Hungarian-umlaut"></a> +<a name="index-dot-accent"></a> +<a name="index-Scandinavian-A-ring"></a> +<a name="index-A-ring_002c-Scandinavian-letter"></a> +<p>The default encoding of the distributed fonts (e.g., <samp>ptmr.tfm</samp>) mostly follows plain TeX conventions for accents. The exceptions: -the Hungarian umlaut (which is at position <code>0x7D</code> in ‘<samp><span class="samp">cmr10</span></samp>’, -but position <code>0xCD</code> in ‘<samp><span class="samp">ptmr</span></samp>’); the dot accent (at positions +the Hungarian umlaut (which is at position <code>0x7D</code> in ‘<samp>cmr10</samp>’, +but position <code>0xCD</code> in ‘<samp>ptmr</samp>’); the dot accent (at positions <code>0x5F</code> and <code>0xC7</code>, respectively); and the Scandinavian A ring <code>\AA</code>, whose definition needs different tweaking. In order to use these accents with PostScript fonts or in math mode when <code>\textfont0</code> is a PostScript font, you will need to use the following definitions. These definitions will not work with the Computer Modern fonts for the relevant accents. They are already part -of the distributed <samp><span class="file">psfonts.sty</span></samp> for use with LaTeX. - - <p><a name="index-g_t_005cH-603"></a><a name="index-g_t_005c_002e-604"></a><a name="index-g_t_005cdot-605"></a><a name="index-g_t_005cAA-606"></a> -<pre class="example"> \def\H#1{{\accent"CD #1}} - \def\.#1{{\accent"C7 #1}} - \def\dot{\mathaccent"70C7 } - \newdimen\aadimen - \def\AA{\leavevmode\setbox0\hbox{h}\aadimen\ht0 - \advance\aadimen-1ex\setbox0\hbox{A}\rlap{\raise.67\aadimen - \hbox to \wd0{\hss\char'27\hss}}A} -</pre> - <p><a name="index-CODINGSCHEME-607"></a>As a kind of summary, here are the ‘<samp><span class="samp">CODINGSCHEME</span></samp>’s that result from +of the distributed <samp>psfonts.sty</samp> for use with LaTeX. +</p> +<a name="index-_005cH"></a> +<a name="index-_005c_002e"></a> +<a name="index-_005cdot"></a> +<a name="index-_005cAA"></a> +<div class="example"> +<pre class="example">\def\H#1{{\accent"CD #1}} +\def\.#1{{\accent"C7 #1}} +\def\dot{\mathaccent"70C7 } +\newdimen\aadimen +\def\AA{\leavevmode\setbox0\hbox{h}\aadimen\ht0 + \advance\aadimen-1ex\setbox0\hbox{A}\rlap{\raise.67\aadimen + \hbox to \wd0{\hss\char'27\hss}}A} +</pre></div> + +<a name="index-CODINGSCHEME"></a> +<p>As a kind of summary, here are the ‘<samp>CODINGSCHEME</samp>’s that result from the various possible choices for reencoding. +</p> +<dl compact="compact"> +<dt>default encoding</dt> +<dd><div class="example"> +<pre class="example">(CODINGSCHEME TeX text + AdobeStandardEncoding) +</pre></div> + +</dd> +<dt>‘<samp>-p dc.enc</samp>’</dt> +<dd><div class="example"> +<pre class="example">(CODINGSCHEME TeX text + DCEncoding) +</pre></div> + +</dd> +<dt>‘<samp>-t dc.enc</samp>’</dt> +<dd><div class="example"> +<pre class="example">(CODINGSCHEME DCEncoding + AdobeStandardEncoding) +</pre></div> + +</dd> +<dt>‘<samp>-T dc.enc</samp>’</dt> +<dd><div class="example"> +<pre class="example">(CODINGSCHEME DCEncoding + DCEncoding) +</pre></div> + +</dd> +</dl> - <dl> -<dt>default encoding<dd> - <pre class="example"> (CODINGSCHEME TeX text + AdobeStandardEncoding) -</pre> - <br><dt>‘<samp><span class="samp">-p dc.enc</span></samp>’<dd> - <pre class="example"> (CODINGSCHEME TeX text + DCEncoding) -</pre> - <br><dt>‘<samp><span class="samp">-t dc.enc</span></samp>’<dd> - <pre class="example"> (CODINGSCHEME DCEncoding + AdobeStandardEncoding) -</pre> - <br><dt>‘<samp><span class="samp">-T dc.enc</span></samp>’<dd> - <pre class="example"> (CODINGSCHEME DCEncoding + DCEncoding) -</pre> - </dl> - -<p class="noindent">The ‘<samp><span class="samp">CODINGSCHEME</span></samp>’ line appears in the VPL file but is +<p>The ‘<samp>CODINGSCHEME</samp>’ line appears in the VPL file but is ignored by Dvips. +</p> -<div class="node"> +<hr> <a name="Encoding-file-format"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Reencoding-with-Afm2tfm">Reencoding with Afm2tfm</a>, -Up: <a rel="up" accesskey="u" href="#Changing-font-encodings">Changing font encodings</a> - +<div class="header"> +<p> +Previous: <a href="#Reencoding-with-Afm2tfm" accesskey="p" rel="prev">Reencoding with Afm2tfm</a>, Up: <a href="#Changing-font-encodings" accesskey="u" rel="up">Changing font encodings</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Encoding-file-format-1"></a> +<h4 class="subsubsection">6.3.1.5 Encoding file format</h4> -<h5 class="subsubsection">6.3.1.5 Encoding file format</h5> +<a name="index-encoding-file-format"></a> -<p><a name="index-encoding-file-format-608"></a> -Afm2tfm's encoding files have the same format as an encoding vector in a +<p>Afm2tfm’s encoding files have the same format as an encoding vector in a PostScript font. Here is a skeletal example: - -<pre class="example"> % <span class="roman">Comments are ignored, unless the first word after the percent sign</span> - % <span class="roman">is ‘</span><samp><span class="samp">LIGKERN</span></samp><span class="roman">’; see below.</span> - /MyEncoding [ % <span class="roman">exactly 256 entries follow, each with a leading ‘</span><samp><span class="samp">/</span></samp><span class="roman">’</span> - /Alpha /Beta /Gamma /Delta ... - /A /B ... /Z - ... /.notdef /xfooaccent /yfooaccent /zfooaccent - ] def -</pre> - <p>These encoding files are downloaded as part of changing the encoding at +</p> +<div class="example"> +<pre class="example">% <span class="roman">Comments are ignored, unless the first word after the percent sign</span> +% <span class="roman">is ‘<samp>LIGKERN</samp>’; see below.</span> +/MyEncoding [ % <span class="roman">exactly 256 entries follow, each with a leading ‘<samp>/</samp>’</span> + /Alpha /Beta /Gamma /Delta … + /A /B … /Z + … /.notdef /xfooaccent /yfooaccent /zfooaccent +] def +</pre></div> + +<p>These encoding files are downloaded as part of changing the encoding at the PostScript level (see the previous section). - - <p><a name="index-comments_002c-in-encoding-files-609"></a>Comments, which start with a percent sign and continue until the end -of the line, are ignored unless they start with ‘<samp><span class="samp">LIGKERN</span></samp>’ (see below). - - <p>The first non-comment word of the file must start with a forward slash -‘<samp><span class="samp">/</span></samp>’ (i.e., a PostScript literal name) and defines the name of the -encoding. The next word must be an left bracket ‘<samp><span class="samp">[</span></samp>’. Following -that must be precisely 256 character names; use ‘<samp><span class="samp">/.notdef</span></samp>’ for any +</p> +<a name="index-comments_002c-in-encoding-files"></a> +<p>Comments, which start with a percent sign and continue until the end +of the line, are ignored unless they start with ‘<samp>LIGKERN</samp>’ (see below). +</p> +<p>The first non-comment word of the file must start with a forward slash +‘<samp>/</samp>’ (i.e., a PostScript literal name) and defines the name of the +encoding. The next word must be an left bracket ‘<samp>[</samp>’. Following +that must be precisely 256 character names; use ‘<samp>/.notdef</samp>’ for any that you want to leave undefined. Then there must be a matching right -bracket <code>]</code>. A final ‘<samp><span class="samp">def</span></samp>’ token is optional. All names are +bracket <code>]</code>. A final ‘<samp>def</samp>’ token is optional. All names are case-sensitive. - - <p>Any ligature or kern information is given as a comment. If the first -word after the ‘<samp><span class="samp">%</span></samp>’ is ‘<samp><span class="samp">LIGKERN</span></samp>’, then the entire rest of the +</p> +<p>Any ligature or kern information is given as a comment. If the first +word after the ‘<samp>%</samp>’ is ‘<samp>LIGKERN</samp>’, then the entire rest of the line is parsed for ligature and kern information. This ligature and kern information is given in groups of words: each group is terminated by a space and a semicolon and (unless the semicolon is at the end of a line) another space. - - <p><a name="index-LIGKERN-_0040r_007bencoding-file-command_007d-610"></a>In these <code>LIGKERN</code> statements, three types of information may be +</p> +<a name="index-LIGKERN-encoding-file-command"></a> +<p>In these <code>LIGKERN</code> statements, three types of information may be specified. These three types are ligature pairs, kerns to ignore, and -the character value of this font's boundary character. - - <p><a name="index-boundary-character-611"></a>Throughout a <code>LIGKERN</code> statement, the boundary character is -specified as ‘<samp><span class="samp">||</span></samp>’. To set the font's boundary character value for +the character value of this font’s boundary character. +</p> +<a name="index-boundary-character"></a> +<p>Throughout a <code>LIGKERN</code> statement, the boundary character is +specified as ‘<samp>||</samp>’. To set the font’s boundary character value for TeX: - -<pre class="example"> % LIGKERN || = 39 ; -</pre> - <p>To indicate a kern to remove, give the names of the two characters -(without the leading slash) separated by ‘<samp><span class="samp">{}</span></samp>’, as in ‘<samp><span class="samp">one -{} one ;</span></samp>’. This is intended to be reminiscent of the way you might -use ‘<samp><span class="samp">{}</span></samp>’ in a TeX file to turn off ligatures or kerns at a +</p> +<div class="example"> +<pre class="example">% LIGKERN || = 39 ; +</pre></div> + +<p>To indicate a kern to remove, give the names of the two characters +(without the leading slash) separated by ‘<samp>{}</samp>’, as in ‘<samp>one +{} one ;</samp>’. This is intended to be reminiscent of the way you might +use ‘<samp>{}</samp>’ in a TeX file to turn off ligatures or kerns at a particular location. Either or both of the character names can be given -as ‘<samp><span class="samp">*</span></samp>’, which is a wild card matching any character; thus, all -kerns can be removed with ‘<samp><span class="samp">* {} * ;</span></samp>’. - - <p><a name="index-ligature-operations-612"></a><a name="index-Metafont-ligature-operations-613"></a>To specify a ligature, specify the names of the pair of characters, +as ‘<samp>*</samp>’, which is a wild card matching any character; thus, all +kerns can be removed with ‘<samp>* {} * ;</samp>’. +</p> +<a name="index-ligature-operations"></a> +<a name="index-Metafont-ligature-operations"></a> +<p>To specify a ligature, specify the names of the pair of characters, followed by the ligature operation (as in Metafont), followed by the replacing character name. Either (but not both) of the first two -characters can be ‘<samp><span class="samp">||</span></samp>’ to indicate a word boundary. - - <p><a name="index-g_t_003d_003a-_0040r_007bligature-operation_007d-614"></a>The most common operation is ‘<samp><span class="samp">=:</span></samp>’ meaning that both characters are -removed and replaced by the third character, but by adding the ‘<samp><span class="samp">|</span></samp>’ -character on either side of the ‘<samp><span class="samp">=:</span></samp>’, you can retain either or both +characters can be ‘<samp>||</samp>’ to indicate a word boundary. +</p> +<a name="index-_003d_003a-ligature-operation"></a> +<p>The most common operation is ‘<samp>=:</samp>’ meaning that both characters are +removed and replaced by the third character, but by adding the ‘<samp>|</samp>’ +character on either side of the ‘<samp>=:</samp>’, you can retain either or both of the two leading characters. In addition, by suffixing the ligature -operation with one or two ‘<samp><span class="samp">></span></samp>’ signs, you can make the ligature +operation with one or two ‘<samp>></samp>’ signs, you can make the ligature scanning operation skip that many resulting characters before -proceeding. This works just like in Metafont. For example, the `fi' -ligature is specified with ‘<samp><span class="samp">f i =: fi ;</span></samp>’<!-- /@w -->. A more convoluted -ligature is ‘<samp><span class="samp">one one |=:|>> exclam ;</span></samp>’ which separates a pair of -adjacent <code>1</code>'s with an exclamation point, and then skips over two +proceeding. This works just like in Metafont. For example, the ‘fi’ +ligature is specified with ‘<samp>f i =: fi ;</samp>’<!-- /@w -->. A more convoluted +ligature is ‘<samp>one one |=:|>> exclam ;</samp>’ which separates a pair of +adjacent <code>1</code>’s with an exclamation point, and then skips over two of the resulting characters before continuing searching for ligatures -and kerns. You cannot give more <tt>></tt>'s than <tt>|</tt>'s in an ligature +and kerns. You cannot give more <tt>></tt>’s than <tt>|</tt>’s in an ligature operation, so there are a total of eight possibilities: - -<pre class="example"> =: |=: |=:> =:| =:|> |=:| |=:|> |=:|>> -</pre> - <p>The default set of ligatures and kerns built in to Afm2tfm is: - -<pre class="example"> % LIGKERN question quoteleft =: questiondown ; - % LIGKERN exclam quoteleft =: exclamdown ; - % LIGKERN hyphen hyphen =: endash ; endash hyphen =: emdash ; - % LIGKERN quoteleft quoteleft =: quotedblleft ; - % LIGKERN quoteright quoteright =: quotedblright ; - % LIGKERN space {} * ; * {} space ; 0 {} * ; * {} 0 ; - % LIGKERN 1 {} * ; * {} 1 ; 2 {} * ; * {} 2 ; 3 {} * ; * {} 3 ; - % LIGKERN 4 {} * ; * {} 4 ; 5 {} * ; * {} 5 ; 6 {} * ; * {} 6 ; - % LIGKERN 7 {} * ; * {} 7 ; 8 {} * ; * {} 8 ; 9 {} * ; * {} 9 ; -</pre> - <div class="node"> +</p> +<div class="example"> +<pre class="example">=: |=: |=:> =:| =:|> |=:| |=:|> |=:|>> +</pre></div> + +<p>The default set of ligatures and kerns built in to Afm2tfm is: +</p> +<div class="example"> +<pre class="example">% LIGKERN question quoteleft =: questiondown ; +% LIGKERN exclam quoteleft =: exclamdown ; +% LIGKERN hyphen hyphen =: endash ; endash hyphen =: emdash ; +% LIGKERN quoteleft quoteleft =: quotedblleft ; +% LIGKERN quoteright quoteright =: quotedblright ; +% LIGKERN space {} * ; * {} space ; 0 {} * ; * {} 0 ; +% LIGKERN 1 {} * ; * {} 1 ; 2 {} * ; * {} 2 ; 3 {} * ; * {} 3 ; +% LIGKERN 4 {} * ; * {} 4 ; 5 {} * ; * {} 5 ; 6 {} * ; * {} 6 ; +% LIGKERN 7 {} * ; * {} 7 ; 8 {} * ; * {} 8 ; 9 {} * ; * {} 9 ; +</pre></div> + + +<hr> <a name="Special-font-effects"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Afm2tfm-options">Afm2tfm options</a>, -Previous: <a rel="previous" accesskey="p" href="#Changing-font-encodings">Changing font encodings</a>, -Up: <a rel="up" accesskey="u" href="#Invoking-afm2tfm">Invoking afm2tfm</a> - +<div class="header"> +<p> +Next: <a href="#Afm2tfm-options" accesskey="n" rel="next">Afm2tfm options</a>, Previous: <a href="#Changing-font-encodings" accesskey="p" rel="prev">Changing font encodings</a>, Up: <a href="#Invoking-afm2tfm" accesskey="u" rel="up">Invoking afm2tfm</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Special-font-effects-1"></a> <h4 class="subsection">6.3.2 Special font effects</h4> -<p><a name="index-oblique-fonts-615"></a><a name="index-slanted-fonts-616"></a><a name="index-fonts_002c-slanted-617"></a>Besides the reencodings described in the previous section, Afm2tfm can -do other manipulations. (Again, it's best to use the prebuilt fonts +<a name="index-oblique-fonts"></a> +<a name="index-slanted-fonts"></a> +<a name="index-fonts_002c-slanted"></a> +<p>Besides the reencodings described in the previous section, Afm2tfm can +do other manipulations. (Again, it’s best to use the prebuilt fonts rather than attempting to remake them.) - - <p>‘<samp><span class="samp">-s </span><var>slant</var></samp>’ makes an obliqued variant, as in: - -<pre class="example"> afm2tfm Times-Roman -s .167 -v ptmro rptmro -</pre> - <p class="noindent">This creates <samp><span class="file">ptmro.vpl</span></samp> and <samp><span class="file">rptmro.tfm</span></samp>. To use this font, +</p> +<p>‘<samp>-s <var>slant</var></samp>’ makes an obliqued variant, as in: +</p> +<div class="example"> +<pre class="example">afm2tfm Times-Roman -s .167 -v ptmro rptmro +</pre></div> + +<p>This creates <samp>ptmro.vpl</samp> and <samp>rptmro.tfm</samp>. To use this font, put the line - - <p><a name="index-SlantFont-618"></a> -<pre class="example"> rptmro Times-Roman ".167 SlantFont" -</pre> - <p class="noindent"><a name="index-psfonts_002emap-619"></a>into <samp><span class="file">psfonts.map</span></samp>. Then ‘<samp><span class="samp">rptmro</span></samp>’ (our name for the obliqued +</p> +<a name="index-SlantFont"></a> +<div class="example"> +<pre class="example">rptmro Times-Roman ".167 SlantFont" +</pre></div> + +<a name="index-psfonts_002emap-1"></a> +<p>into <samp>psfonts.map</samp>. Then ‘<samp>rptmro</samp>’ (our name for the obliqued Times) will act as if it were a resident font, although it is actually constructed from Times-Roman via the PostScript routine <code>SlantFont</code> (which will slant everything 1/6 to the right, in this case). - - <p><a name="index-expanded-fonts-620"></a><a name="index-fonts_002c-expanded-621"></a>Similarly, you can get an expanded font with - -<pre class="example"> afm2tfm Times-Roman -e 1.2 -v ptmrre rptmrre -</pre> - <p class="noindent">and by recording the pseudo-resident font -<a name="index-ExtendFont-622"></a> -<pre class="example"> rptmrre Times-Roman "1.2 ExtendFont" -</pre> - <p class="noindent">in <samp><span class="file">psfonts.map</span></samp>. - - <p>You can also create a small caps font with a command such as -<a name="index-small-caps-fonts-623"></a><a name="index-fonts_002c-small-caps-624"></a> -<pre class="example"> afm2tfm Times-Roman -V ptmrc rptmrc -</pre> - <p class="noindent">This will generate a set of pseudo-small caps mapped into the usual +</p> +<a name="index-expanded-fonts"></a> +<a name="index-fonts_002c-expanded"></a> +<p>Similarly, you can get an expanded font with +</p> +<div class="example"> +<pre class="example">afm2tfm Times-Roman -e 1.2 -v ptmrre rptmrre +</pre></div> + +<p>and by recording the pseudo-resident font +<a name="index-ExtendFont"></a> +</p> +<div class="example"> +<pre class="example">rptmrre Times-Roman "1.2 ExtendFont" +</pre></div> + +<p>in <samp>psfonts.map</samp>. +</p> +<p>You can also create a small caps font with a command such as +<a name="index-small-caps-fonts"></a> +<a name="index-fonts_002c-small-caps"></a> +</p> +<div class="example"> +<pre class="example">afm2tfm Times-Roman -V ptmrc rptmrc +</pre></div> + +<p>This will generate a set of pseudo-small caps mapped into the usual lowercase positions and scaled down to 0.8 of the normal cap dimensions. You can also specify the scaling as something other than the default 0.8: +</p> +<div class="example"> +<pre class="example">afm2tfm Times-Roman -c 0.7 -V ptmrc rptmrc +</pre></div> -<pre class="example"> afm2tfm Times-Roman -c 0.7 -V ptmrc rptmrc -</pre> - <p>It is unfortunately not possible to increase the width of the small caps +<p>It is unfortunately not possible to increase the width of the small caps independently of the rest of the font. If you want a really professional looking set of small caps, you need to acquire a small caps font. - - <p><a name="index-PaintType-625"></a><a name="index-outline-fonts-626"></a><a name="index-fonts_002c-outlined-627"></a>To change the <code>PaintType</code> in a font from filled (0) to outlined -(2), you can add <code>"/PaintType 2 store"</code> to <samp><span class="file">psfonts.map</span></samp>, as +</p> +<a name="index-PaintType"></a> +<a name="index-outline-fonts-1"></a> +<a name="index-fonts_002c-outlined"></a> +<p>To change the <code>PaintType</code> in a font from filled (0) to outlined +(2), you can add <code>"/PaintType 2 store"</code> to <samp>psfonts.map</samp>, as in the following: +</p> +<div class="example"> +<pre class="example">rphvrl Helvetica "/PaintType 2 store" +</pre></div> -<pre class="example"> rphvrl Helvetica "/PaintType 2 store" -</pre> - <p>Afm2tfm writes to standard output the line you need to add to -<samp><span class="file">psfonts.map</span></samp> to use that font, assuming the font is resident in +<p>Afm2tfm writes to standard output the line you need to add to +<samp>psfonts.map</samp> to use that font, assuming the font is resident in the printer; if the font is not resident, you must add the -‘<samp><span class="samp"><</span><var>filename</var></samp>’ command to download the font. Each identical -line only needs to be specified once in the ‘<samp><span class="samp">psfonts.map</span></samp>’ file, +‘<samp><<var>filename</var></samp>’ command to download the font. Each identical +line only needs to be specified once in the ‘<samp>psfonts.map</samp>’ file, even though many different fonts (small caps variants, or ones with different output encodings) may be based on it. +</p> -<div class="node"> +<hr> <a name="Afm2tfm-options"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Special-font-effects">Special font effects</a>, -Up: <a rel="up" accesskey="u" href="#Invoking-afm2tfm">Invoking afm2tfm</a> - +<div class="header"> +<p> +Previous: <a href="#Special-font-effects" accesskey="p" rel="prev">Special font effects</a>, Up: <a href="#Invoking-afm2tfm" accesskey="u" rel="up">Invoking afm2tfm</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Afm2tfm-options-1"></a> <h4 class="subsection">6.3.3 Afm2tfm options</h4> -<p><a name="index-options_002c-to-Afm2tfm-628"></a><a name="index-afm2tfm-options-629"></a> -Synopsis: -<pre class="example"> afm2tfm [<var>option</var>]... <var>afmfile</var>[.afm] [<var>tfmfile</var>[.tfm]] -</pre> - <p>Afm2tfm reads <var>afmfile</var> and writes a corresponding (but raw) TFM -file. If <var>tfmfile</var> is not supplied, the base name of the AFM file is -extended with ‘<samp><span class="samp">.tfm</span></samp>’ to get the output filename. +<a name="index-options_002c-to-Afm2tfm"></a> +<a name="index-afm2tfm-options"></a> - <p>The simplest example: +<p>Synopsis: +</p><div class="example"> +<pre class="example">afm2tfm [<var>option</var>]… <var>afmfile</var>[.afm] [<var>tfmfile</var>[.tfm]] +</pre></div> -<pre class="example"> afm2tfm Times-Roman rptmr -</pre> - <p><a name="index-accents_002c-wrong-630"></a>The TFM file thus created is <dfn>raw</dfn> because it omits ligature and +<p>Afm2tfm reads <var>afmfile</var> and writes a corresponding (but raw) TFM +file. If <var>tfmfile</var> is not supplied, the base name of the AFM file is +extended with ‘<samp>.tfm</samp>’ to get the output filename. +</p> +<p>The simplest example: +</p> +<div class="example"> +<pre class="example">afm2tfm Times-Roman rptmr +</pre></div> + +<a name="index-accents_002c-wrong"></a> +<p>The TFM file thus created is <em>raw</em> because it omits ligature and kern information, and does no character remapping; it simply contains the character information in the AFM file in TFM form, which is the form that TeX understands. The characters have the same code in the TFM @@ -3699,292 +4802,385 @@ characters will work ok, but little else, because standard PostScript fonts have a different encoding scheme than the one that plain TeX expects (see <a href="#Encodings">Encodings</a>). Although both schemes agree for the printable ASCII characters, other characters such as ligatures and -accents vary. Thus, in practice, it's almost always desirable to create -a virtual font as well with the ‘<samp><span class="samp">-v</span></samp>’ or ‘<samp><span class="samp">-V</span></samp>’ option. +accents vary. Thus, in practice, it’s almost always desirable to create +a virtual font as well with the ‘<samp>-v</samp>’ or ‘<samp>-V</samp>’ option. See <a href="#Making-a-font-available">Making a font available</a>. - - <p>The command line options to Afm2tfm: - - <dl> -<dt>‘<samp><span class="samp">-c </span><var>ratio</var></samp>’<dd><a name="index-g_t_002dc-_0040var_007bratio_007d-631"></a><a name="index-scaling-small-caps-632"></a>See ‘<samp><span class="samp">-V</span></samp>’; overrides the default ratio of 0.8 for the +</p> +<p>The command line options to Afm2tfm: +</p> +<dl compact="compact"> +<dt>‘<samp>-c <var>ratio</var></samp>’</dt> +<dd><a name="index-_002dc-ratio"></a> +<a name="index-scaling-small-caps"></a> +<p>See ‘<samp>-V</samp>’; overrides the default ratio of 0.8 for the scaling of small caps. - - <br><dt>‘<samp><span class="samp">-e </span><var>ratio</var></samp>’<dd><a name="index-g_t_002de-_0040var_007bratio_007d-633"></a><a name="index-expanded-fonts-634"></a><a name="index-condensed-fonts-635"></a>Stretch characters horizontally by <var>ratio</var>; if less than 1.0, you +</p> +</dd> +<dt>‘<samp>-e <var>ratio</var></samp>’</dt> +<dd><a name="index-_002de-ratio"></a> +<a name="index-expanded-fonts-1"></a> +<a name="index-condensed-fonts"></a> +<p>Stretch characters horizontally by <var>ratio</var>; if less than 1.0, you get a condensed font. - - <br><dt>‘<samp><span class="samp">-O</span></samp>’<dd><a name="index-g_t_002dO-636"></a><a name="index-octal-character-codes-637"></a>Output all character codes in the ‘<samp><span class="samp">vpl</span></samp>’ file as octal numbers, not +</p> +</dd> +<dt>‘<samp>-O</samp>’</dt> +<dd><a name="index-_002dO"></a> +<a name="index-octal-character-codes"></a> +<p>Output all character codes in the ‘<samp>vpl</samp>’ file as octal numbers, not names; this is useful for symbol or other special-purpose fonts where -character names such as ‘<samp><span class="samp">A</span></samp>’ have no meaning. - - <br><dt>‘<samp><span class="samp">-p </span><var>ps-enc</var></samp>’<dd><a name="index-g_t_002dp-_0040var_007bps_002denc_007d-638"></a>Use <var>ps-enc</var> for the destination (PostScript) encoding of the font; +character names such as ‘<samp>A</samp>’ have no meaning. +</p> +</dd> +<dt>‘<samp>-p <var>ps-enc</var></samp>’</dt> +<dd><a name="index-_002dp-ps_002denc-1"></a> +<p>Use <var>ps-enc</var> for the destination (PostScript) encoding of the font; <var>ps-enc</var> must be mentioned as a header file for the font in -‘<samp><span class="samp">psfonts.map</span></samp>’. +‘<samp>psfonts.map</samp>’. See <a href="#Changing-PostScript-encodings">Changing PostScript encodings</a>. - - <br><dt>‘<samp><span class="samp">-s </span><var>slant</var></samp>’<dd><a name="index-g_t_002ds-_0040var_007bslant_007d-639"></a><a name="index-slanted-fonts_002c-making-640"></a>Slant characters to the right by <var>slant</var>. If <var>slant</var> is +</p> +</dd> +<dt>‘<samp>-s <var>slant</var></samp>’</dt> +<dd><a name="index-_002ds-slant"></a> +<a name="index-slanted-fonts_002c-making"></a> +<p>Slant characters to the right by <var>slant</var>. If <var>slant</var> is negative, the letters slope to the left (or they might be upright if you start with an italic font). - - <br><dt>‘<samp><span class="samp">-t </span><var>tex-enc</var></samp>’<dd><a name="index-g_t_002dt-_0040var_007btex_002denc_007d-641"></a>Use <var>tex-enc</var> for the target (TeX) encoding of the font. -Ligature and kern information may also be specified in <var>file</var>. -<var>file</var> is not mentioned in <samp><span class="file">psfonts.map</span></samp>. - - <br><dt>‘<samp><span class="samp">-T </span><var>ps-tex-enc</var></samp>’<dd><a name="index-g_t_002dT-_0040var_007bps_002dtex_002denc_007d-642"></a>Use <var>ps-tex-enc</var> for both the PostScript and target TeX encodings -of the font. Equivalent to ‘<samp><span class="samp">-p </span><var>file</var><span class="samp"> -t </span><var>file</var></samp>’. - - <br><dt>‘<samp><span class="samp">-u</span></samp>’<dd><a name="index-g_t_002du-643"></a>Use only those characters specified in the TeX encoding, and no +</p> +</dd> +<dt>‘<samp>-t <var>tex-enc</var></samp>’</dt> +<dd><a name="index-_002dt-tex_002denc-1"></a> +<p>Use <var>tex-enc</var> for the target (TeX) encoding of the font. +Ligature and kern information may also be specified in <var>file</var>. +<var>file</var> is not mentioned in <samp>psfonts.map</samp>. +</p> +</dd> +<dt>‘<samp>-T <var>ps-tex-enc</var></samp>’</dt> +<dd><a name="index-_002dT-ps_002dtex_002denc"></a> +<p>Use <var>ps-tex-enc</var> for both the PostScript and target TeX encodings +of the font. Equivalent to ‘<samp>-p <var>file</var> -t <var>file</var></samp>’. +</p> +</dd> +<dt>‘<samp>-u</samp>’</dt> +<dd><a name="index-_002du"></a> +<p>Use only those characters specified in the TeX encoding, and no others. By default, Afm2tfm tries to include all characters in the input font, even those not present in the TeX encoding (it puts them into otherwise-unused positions, arbitrarily). - - <br><dt>‘<samp><span class="samp">-v </span><var>vpl-file</var></samp>’<dd><a name="index-g_t_002dv-_0040var_007bvpl_002dfile_007d-644"></a>Output a VPL (virtual property list) file, as well as a TFM file. - - <br><dt>‘<samp><span class="samp">-V </span><var>vpl-file</var></samp>’<dd><a name="index-g_t_002dV-_0040var_007bvpl_002dfile_007d-645"></a>Same as ‘<samp><span class="samp">-v</span></samp>’, but the virtual font generated is a pseudo small caps +</p> +</dd> +<dt>‘<samp>-v <var>vpl-file</var></samp>’</dt> +<dd><a name="index-_002dv-vpl_002dfile"></a> +<p>Output a VPL (virtual property list) file, as well as a TFM file. +</p> +</dd> +<dt>‘<samp>-V <var>vpl-file</var></samp>’</dt> +<dd><a name="index-_002dV-vpl_002dfile"></a> +<p>Same as ‘<samp>-v</samp>’, but the virtual font generated is a pseudo small caps font obtained by scaling uppercase letters by 0.8 to typeset lowercase. This font handles accented letters and retains proper -kerning. +kerning. +</p></dd> </dl> -<div class="node"> -<a name="psfonts.map"></a> -<a name="psfonts_002emap"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Invoking-afm2tfm">Invoking afm2tfm</a>, -Up: <a rel="up" accesskey="u" href="#PostScript-fonts">PostScript fonts</a> +<hr> +<a name="psfonts_002emap"></a> +<div class="header"> +<p> +Previous: <a href="#Invoking-afm2tfm" accesskey="p" rel="prev">Invoking afm2tfm</a>, Up: <a href="#PostScript-fonts" accesskey="u" rel="up">PostScript fonts</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="psfonts_002emap_003a-PostScript-font-catalog"></a> +<h3 class="section">6.4 <samp>psfonts.map</samp>: PostScript font catalog</h3> -<h3 class="section">6.4 <samp><span class="file">psfonts.map</span></samp>: PostScript font catalog</h3> +<a name="index-psfonts_002emap-2"></a> +<a name="index-non_002dresident-fonts"></a> +<a name="index-downloading-PostScript-fonts"></a> +<a name="index-fonts_002c-downloading"></a> -<p><a name="index-psfonts_002emap-646"></a><a name="index-non_002dresident-fonts-647"></a><a name="index-downloading-PostScript-fonts-648"></a><a name="index-fonts_002c-downloading-649"></a> -The <samp><span class="file">psfonts.map</span></samp> file associates a PostScript font with related +<p>The <samp>psfonts.map</samp> file associates a PostScript font with related files and constructs. Each line has the format: - -<pre class="example"> <var>filename</var> <var>PostScript-name</var> <var>options</var> -</pre> - <p><a name="index-g_t_003c-_0040r_007bfont-downloading_007d-650"></a>For example, the line -<pre class="example"> rpstrn StoneInformal <StoneInformal.pfb -</pre> - <p class="noindent">causes Dvips to download <samp><span class="file">StoneInformal.pfb</span></samp> (just as if it were +</p> +<div class="example"> +<pre class="example"><var>filename</var> <var>PostScript-name</var> <var>options</var> +</pre></div> + +<a name="index-_003c-font-downloading"></a> +<p>For example, the line +</p><div class="example"> +<pre class="example">rpstrn StoneInformal <StoneInformal.pfb +</pre></div> +<p>causes Dvips to download <samp>StoneInformal.pfb</samp> (just as if it were a header file, see <a href="#Header-files">Header files</a>) if the DVI file (or a virtual -font, see <a href="#Virtual-fonts">Virtual fonts</a>) references the TFM file ‘<samp><span class="samp">rpstrn</span></samp>’. -The PostScript <code>/FontName</code> of the font defined inside the ‘<samp><span class="samp">pfb</span></samp>’ +font, see <a href="#Virtual-fonts">Virtual fonts</a>) references the TFM file ‘<samp>rpstrn</samp>’. +The PostScript <code>/FontName</code> of the font defined inside the ‘<samp>pfb</samp>’ file should be <code>StoneInformal</code>. - - <p><a name="index-transforming-downloaded-fonts-651"></a><a name="index-expanded-fonts-652"></a><a name="index-wide-fonts-653"></a><a name="index-narrow-fonts-654"></a>You can generate transformed fonts with a line like this: -<pre class="example"> rpstrc StoneInformal <StoneInformal.pfb ".8 ExtendFont" -</pre> - <p class="noindent">See <a href="#Special-font-effects">Special font effects</a>, for a +</p> +<a name="index-transforming-downloaded-fonts"></a> +<a name="index-expanded-fonts-2"></a> +<a name="index-wide-fonts"></a> +<a name="index-narrow-fonts"></a> +<p>You can generate transformed fonts with a line like this: +</p><div class="example"> +<pre class="example">rpstrc StoneInformal <StoneInformal.pfb ".8 ExtendFont" +</pre></div> + +<p>See <a href="#Special-font-effects">Special font effects</a>, for a complete list of font effects. - - <p><a name="index-reencoding-PostScript-fonts-655"></a>You can change the encoding of the Type 1 font at the PostScript -level with a ‘<samp><span class="samp">ReEncodeFont</span></samp>’ instruction, plus the name of the +</p> +<a name="index-reencoding-PostScript-fonts"></a> +<p>You can change the encoding of the Type 1 font at the PostScript +level with a ‘<samp>ReEncodeFont</samp>’ instruction, plus the name of the encoding file. This allows you access to characters that may be present in the Type 1 font file, but not encoded by default—most of the preaccented characters, for example. An example: -<pre class="smallexample"> pstrn8r StoneInformal "TeXBase1Encoding ReEncodeFont" <8r.enc <pstrn8a.pfb -</pre> - <p><a name="index-g_t8r-font-encoding-656"></a><a name="index-base-encoding_002c-recommended-657"></a>The ‘<samp><span class="samp">8r</span></samp>’ encoding mentioned here has been designed to serve as a +</p><div class="smallexample"> +<pre class="smallexample">pstrn8r StoneInformal "TeXBase1Encoding ReEncodeFont" <8r.enc <pstrn8a.pfb +</pre></div> + +<a name="index-8r-font-encoding"></a> +<a name="index-base-encoding_002c-recommended"></a> +<p>The ‘<samp>8r</samp>’ encoding mentioned here has been designed to serve as a base for all downloadable fonts; it allows access to all the characters commonly present in a Type 1 font. For more details, see the -<samp><span class="file">8r.enc</span></samp> source file that comes with (and is installed with) Dvips. - - <p><a name="index-g_t_003c_005b-_0040r_007bencoding-vector-downloading_007d-658"></a>You may notice that the same syntax is used for downloading encoding +<samp>8r.enc</samp> source file that comes with (and is installed with) Dvips. +</p> +<a name="index-_003c_005b-encoding-vector-downloading"></a> +<p>You may notice that the same syntax is used for downloading encoding vectors and Type 1 font files. To make your intentions clear, you can -also use ‘<samp><span class="samp"><[</span></samp>’ to explicitly indicate you are downloading an +also use ‘<samp><[</samp>’ to explicitly indicate you are downloading an encoding vector, as in: -<pre class="smallexample"> pstrn8r StoneInformal "TeXBase1Encoding ReEncodeFont" <[8r.enc <pstrn8a.pfb -</pre> - <p><a name="index-g_t_002eenc-_0040r_007bextension-for-encoding-vectors_007d-659"></a>If the filename of your encoding vector does not end in ‘<samp><span class="samp">.enc</span></samp>’, and -you are using partial font downloading, you must use the ‘<samp><span class="samp"><[</span></samp>’ -syntax, or Dvips will not download the font properly. - - <p><a name="index-g_t_002epfa-_0040r_007bextension-required-for-partial-downloading_007d-660"></a><a name="index-g_t_002epfb-_0040r_007bextension-required-for-partial-downloading_007d-661"></a>Similarly, the name of the Type 1 font file itself must have extension -<samp><span class="file">.pfa</span></samp> or <samp><span class="file">.pfb</span></samp> for partial downloading to work properly. +</p><div class="smallexample"> +<pre class="smallexample">pstrn8r StoneInformal "TeXBase1Encoding ReEncodeFont" <[8r.enc <pstrn8a.pfb +</pre></div> - <p><a name="index-pfb-files_002c-automatically-unpacked-662"></a>When using PFB files, Dvips is smart enough to unpack the binary PFB +<a name="index-_002eenc-extension-for-encoding-vectors"></a> +<p>If the filename of your encoding vector does not end in ‘<samp>.enc</samp>’, and +you are using partial font downloading, you must use the ‘<samp><[</samp>’ +syntax, or Dvips will not download the font properly. +</p> +<a name="index-_002epfa-extension-required-for-partial-downloading"></a> +<a name="index-_002epfb-extension-required-for-partial-downloading"></a> +<p>Similarly, the name of the Type 1 font file itself must have extension +<samp>.pfa</samp> or <samp>.pfb</samp> for partial downloading to work properly. +</p> +<a name="index-pfb-files_002c-automatically-unpacked"></a> +<p>When using PFB files, Dvips is smart enough to unpack the binary PFB format into printable ASCII so there is no need to perform this conversion yourself. In addition, Dvips scans the font to determine its memory usage, just as it does for other header files (see <a href="#Header-files">Header files</a>). - - <p><a name="index-partial-font-downloading-663"></a><a name="index-downloading-fonts-partially-664"></a>If the ‘<samp><span class="samp">j</span></samp>’ config file or command-line option is enabled (as it -is by default), <samp><span class="file">StoneInformal.pfb</span></samp> will be <dfn>partially -downloaded</dfn>—only those characters your document actually uses will -be extracted and downloaded, and the remainder discarded. +</p> +<a name="index-partial-font-downloading"></a> +<a name="index-downloading-fonts-partially"></a> +<p>If the ‘<samp>j</samp>’ config file or command-line option is enabled (as it +is by default), <samp>StoneInformal.pfb</samp> will be <em>partially +downloaded</em>—only those characters your document actually uses will +be extracted and downloaded, and the remainder discarded. See <a href="#Option-details">Option details</a>. - - <p><a name="index-whole-font-downloading-665"></a><a name="index-multiple-master-fonts-666"></a><a name="index-Minion-typeface-family-667"></a><a name="index-g_t_003c_003c-_0040r_007bwhole-font-downloading_007d-668"></a>Adobe Multiple Master fonts, such as Minion, cannot be partially +</p> +<a name="index-whole-font-downloading"></a> +<a name="index-multiple-master-fonts"></a> +<a name="index-Minion-typeface-family"></a> +<a name="index-_003c_003c-whole-font-downloading"></a> +<p>Adobe Multiple Master fonts, such as Minion, cannot be partially downloaded. To partially download in general, but avoid partial -downloading for individual fonts, use ‘<samp><span class="samp"><<</span></samp>’ instead ‘<samp><span class="samp"><</span></samp>’: -<pre class="example"> pmnr8r Minion <<Minion.pfb -</pre> - <p>Here is a brief summary of how <samp><span class="file">psfonts.map</span></samp> is read: - - <ol type=1 start=1> -<li>If a line is empty or begins with a space, percent, asterisk, +downloading for individual fonts, use ‘<samp><<</samp>’ instead ‘<samp><</samp>’: +</p><div class="example"> +<pre class="example">pmnr8r Minion <<Minion.pfb +</pre></div> + +<p>Here is a brief summary of how <samp>psfonts.map</samp> is read: +</p> +<ol> +<li> If a line is empty or begins with a space, percent, asterisk, semicolon, or hash mark, it is ignored. - <li>Otherwise, the line is separated into words, where words are +</li><li> Otherwise, the line is separated into words, where words are separated by spaces or tabs, except that if a word begins with a double quote, it extends until the next double quote or the end of the line. - <li>If a word starts with ‘<samp><span class="samp"><<</span></samp>’, it is taken as a font file to be +</li><li> If a word starts with ‘<samp><<</samp>’, it is taken as a font file to be wholly downloaded. Use this to avoid partial downloading, as described above. - <li>If a word starts with ‘<samp><span class="samp"><[</span></samp>’, it is taken as an encoding file +</li><li> If a word starts with ‘<samp><[</samp>’, it is taken as an encoding file to be downloaded. Use this if the name of the encoding file does end in -‘<samp><span class="samp">.enc</span></samp>’, also as described above. +‘<samp>.enc</samp>’, also as described above. - <li>If a word starts with a ‘<samp><span class="samp"><</span></samp>’ character, it is +</li><li> If a word starts with a ‘<samp><</samp>’ character, it is treated as a header file that needs to be downloaded. If the name ends -in ‘<samp><span class="samp">.pfa</span></samp>’ or ‘<samp><span class="samp">.pfb</span></samp>’, it is taken as Type 1 font file that will -be partially downloaded if the ‘<samp><span class="samp">j</span></samp>’ option is in effect. There can -be more than one such header for a given font. If a ‘<samp><span class="samp"><</span></samp>’ is a word +in ‘<samp>.pfa</samp>’ or ‘<samp>.pfb</samp>’, it is taken as Type 1 font file that will +be partially downloaded if the ‘<samp>j</samp>’ option is in effect. There can +be more than one such header for a given font. If a ‘<samp><</samp>’ is a word by itself, the next word is taken as the name of the header file. - <li>If a word starts with a ‘<samp><span class="samp">"</span></samp>’ character, it is taken as PostScript +</li><li> If a word starts with a ‘<samp>"</samp>’ character, it is taken as PostScript code used in generating that font, and is inserted into the output verbatim at the appropriate point. (And the double quotes beginning and ending the word are removed.) - <li>Otherwise the word is a name. The first such name is the TFM +</li><li> Otherwise the word is a name. The first such name is the TFM file, that either a DVI file or a virtual font file can refer to. If there is a second name, it is used as the PostScript name and should match what is defined in the downloaded file; if there is only one name, it is used for both the TeX name and the PostScript name. - </ol> +</li></ol> -<div class="node"> -<a name="Color"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Index">Index</a>, -Previous: <a rel="previous" accesskey="p" href="#PostScript-fonts">PostScript fonts</a>, -Up: <a rel="up" accesskey="u" href="#Top">Top</a> +<hr> +<a name="Color"></a> +<div class="header"> +<p> +Next: <a href="#Index" accesskey="n" rel="next">Index</a>, Previous: <a href="#PostScript-fonts" accesskey="p" rel="prev">PostScript fonts</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Color-1"></a> <h2 class="chapter">7 Color</h2> -<p><a name="index-color-669"></a> -<a name="index-Hafner_002c-Jim-670"></a>Dvips supports one-pass multi-color printing of TeX documents on any +<a name="index-color"></a> + +<a name="index-Hafner_002c-Jim"></a> +<p>Dvips supports one-pass multi-color printing of TeX documents on any color PostScript device. Initially added by Jim Hafner, IBM Research, <a href="mailto:hafner@almaden.ibm.com">hafner@almaden.ibm.com</a>, the color support has gone through many changes by Tomas Rokicki. Besides the source code support itself, there -are additional TeX macro files: ‘<samp><span class="samp">colordvi.tex</span></samp>’ and -‘<samp><span class="samp">blackdvi.tex</span></samp>’, and corresponding ‘<samp><span class="samp">.sty</span></samp>’ versions for use with +are additional TeX macro files: ‘<samp>colordvi.tex</samp>’ and +‘<samp>blackdvi.tex</samp>’, and corresponding ‘<samp>.sty</samp>’ versions for use with LaTeX. - - <p>In this section we describe the use of color from the document -preparer's point of view and then add some instructions on installation +</p> +<p>In this section we describe the use of color from the document +preparer’s point of view and then add some instructions on installation for the TeX administrator. - -<ul class="menu"> -<li><a accesskey="1" href="#Color-macro-files">Color macro files</a>: TeX macro definitions. -<li><a accesskey="2" href="#User_002ddefinable-colors">User-definable colors</a>: Adding your own colors. -<li><a accesskey="3" href="#Color-subtleties">Color subtleties</a>: Subtleties in using color. -<li><a accesskey="4" href="#Ted-Turner">Ted Turner</a>: Printing in black/white after colorizing. -<li><a accesskey="5" href="#Color-device-configuration">Color device configuration</a>: Configuring Dvips for color devices. -<li><a accesskey="6" href="#Color-support-details">Color support details</a>: Color support details -</ul> - -<div class="node"> +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Color-macro-files" accesskey="1">Color macro files</a>:</td><td> </td><td align="left" valign="top">TeX macro definitions. +</td></tr> +<tr><td align="left" valign="top">• <a href="#User_002ddefinable-colors" accesskey="2">User-definable colors</a>:</td><td> </td><td align="left" valign="top">Adding your own colors. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Color-subtleties" accesskey="3">Color subtleties</a>:</td><td> </td><td align="left" valign="top">Subtleties in using color. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Ted-Turner" accesskey="4">Ted Turner</a>:</td><td> </td><td align="left" valign="top">Printing in black/white after colorizing. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Color-device-configuration" accesskey="5">Color device configuration</a>:</td><td> </td><td align="left" valign="top">Configuring Dvips for color devices. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Color-support-details" accesskey="6">Color support details</a>:</td><td> </td><td align="left" valign="top">Color support details +</td></tr> +</table> + + +<hr> <a name="Color-macro-files"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#User_002ddefinable-colors">User-definable colors</a>, -Up: <a rel="up" accesskey="u" href="#Color">Color</a> - +<div class="header"> +<p> +Next: <a href="#User_002ddefinable-colors" accesskey="n" rel="next">User-definable colors</a>, Up: <a href="#Color" accesskey="u" rel="up">Color</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Color-macro-files-1"></a> <h3 class="section">7.1 Color macro files</h3> -<p><a name="index-macros-for-color-671"></a><a name="index-color-macros-672"></a> -All the color macro commands are defined in ‘<samp><span class="samp">colordvi.tex</span></samp>’ (or -‘<samp><span class="samp">colordvi.sty</span></samp>’). To access these macros simply add to the top of +<a name="index-macros-for-color"></a> +<a name="index-color-macros"></a> + +<p>All the color macro commands are defined in ‘<samp>colordvi.tex</samp>’ (or +‘<samp>colordvi.sty</samp>’). To access these macros simply add to the top of your plain TeX file the command: -<pre class="example"> \input colordvi -</pre> - <p class="noindent">For (the obsolete) LaTeX 2.09, add the ‘<samp><span class="samp">colordvi</span></samp>’ style option as in: -<pre class="example"> \documentstyle[12pt,colordvi]{article} -</pre> - <p class="noindent">For LaTeX 2e, these examples are not applicable. Instead, please see +</p><div class="example"> +<pre class="example">\input colordvi +</pre></div> +<p>For (the obsolete) LaTeX 2.09, add the ‘<samp>colordvi</samp>’ style option as in: +</p><div class="example"> +<pre class="example">\documentstyle[12pt,colordvi]{article} +</pre></div> +<p>For LaTeX 2e, these examples are not applicable. Instead, please see the documentation for the graphics package, available from -<samp><var>CTAN</var><span class="file">:doc/latex/graphics/</span></samp>. See also -<samp><var>CTAN</var><span class="file">:doc/epslatex.ps</span></samp>. - - <p><a name="index-Crayola-crayon-box-673"></a><a name="index-Pantone-colors-674"></a><a name="index-color-names_002c-mixed-case-675"></a>These macros provide two basic kinds of color macros: ones for local +<samp><var>CTAN</var>:doc/latex/graphics/</samp>. See also +<samp><var>CTAN</var>:doc/epslatex.ps</samp>. +</p> +<a name="index-Crayola-crayon-box"></a> +<a name="index-Pantone-colors"></a> +<a name="index-color-names_002c-mixed-case"></a> +<p>These macros provide two basic kinds of color macros: ones for local color changes (a few words, a single symbol) and one for global color changes (the whole document). All the color names use a mixed case scheme to avoid conflicts with other macros. There are 68 predefined colors, with names taken primarily from the Crayola crayon box of 64 colors, and one pair of macros for the user to set his own color pattern (see <a href="#User_002ddefinable-colors">User-definable colors</a>). You can browse the file -‘<samp><span class="samp">colordvi.tex</span></samp>’ for a list of the predefined colors. The comments +‘<samp>colordvi.tex</samp>’ for a list of the predefined colors. The comments in this file also show a rough correspondence between the crayon names and Pantones. - - <p>A local color command has the form - -<pre class="example"> \<var>ColorName</var>{this is the color <var>ColorName</var>} -</pre> - <p><a name="index-g_t_005c_0040var_007bColorName_007d-676"></a>where <var>ColorName</var> is the name of a predefined color, e.g., -‘<samp><span class="samp">Blue</span></samp>’. As shown, these macros take one argument, the text to +</p> +<p>A local color command has the form +</p> +<div class="example"> +<pre class="example">\<var>ColorName</var>{this is the color <var>ColorName</var>} +</pre></div> + +<a name="index-_005cColorName"></a> +<p>where <var>ColorName</var> is the name of a predefined color, e.g., +‘<samp>Blue</samp>’. As shown, these macros take one argument, the text to print in the specified color. This can be used for nested color changes since it restores the original color state when it completes. For example: - -<pre class="example"> This text is normal but here we are \Red{switching to red, - \Blue{nesting blue}, recovering the red} and back to original. -</pre> - <p class="noindent"><a name="index-color-nesting-level-677"></a>The color nesting level has no hard limit, but it is not advisable to +</p> +<div class="example"> +<pre class="example">This text is normal but here we are \Red{switching to red, +\Blue{nesting blue}, recovering the red} and back to original. +</pre></div> + +<a name="index-color-nesting-level"></a> +<p>The color nesting level has no hard limit, but it is not advisable to nest too deeply lest you and the reader lose track of the color history. - - <p>The global color command has the form - -<pre class="example"> \text<var>ColorName</var> -</pre> - <p class="noindent"><a name="index-g_t_005ctext_0040var_007bColorName_007d-678"></a>These macros take no arguments and changes the default color from that +</p> +<p>The global color command has the form +</p> +<div class="example"> +<pre class="example">\text<var>ColorName</var> +</pre></div> + +<a name="index-_005ctextColorName"></a> +<p>These macros take no arguments and changes the default color from that point on to <var>ColorName</var>. This of course can be overridden globally by another such command or locally by local color commands. For example, expanding on the example above, we might have - -<pre class="example"> \textGreen - This text is green but here we are \Red{switching to red, - \Blue{nesting blue}, recovering the red} and back to - original green. - \textCyan - The text from here on will be cyan until - \Yellow{locally changed to yellow}. Now we are back to cyan. -</pre> - <p>The color commands will even work in math mode and across math mode +</p> +<div class="example"> +<pre class="example">\textGreen +This text is green but here we are \Red{switching to red, +\Blue{nesting blue}, recovering the red} and back to +original green. +\textCyan +The text from here on will be cyan until +\Yellow{locally changed to yellow}. Now we are back to cyan. +</pre></div> + +<p>The color commands will even work in math mode and across math mode boundaries. This means that if you have a color before going into math mode, the mathematics will be set in that color as well. In alignment -environments like <code>\halign</code>, ‘<samp><span class="samp">tabular</span></samp>’ or ‘<samp><span class="samp">eqnarray</span></samp>’, +environments like <code>\halign</code>, ‘<samp>tabular</samp>’ or ‘<samp>eqnarray</samp>’, local color commands cannot extend beyond the alignment characters. - - <p>Because local color commands respect only some environment and +</p> +<p>Because local color commands respect only some environment and delimiter changes besides their own, care must be taken in setting their scope. It is best not to have them stretch too far. - - <p>At the present time there are no macros for color environments in LaTeX +</p> +<p>At the present time there are no macros for color environments in LaTeX which might have a larger range. This is primarily to keep the TeX and LaTeX use compatible. +</p> -<div class="node"> -<a name="User-definable-colors"></a> +<hr> <a name="User_002ddefinable-colors"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Color-subtleties">Color subtleties</a>, -Previous: <a rel="previous" accesskey="p" href="#Color-macro-files">Color macro files</a>, -Up: <a rel="up" accesskey="u" href="#Color">Color</a> - +<div class="header"> +<p> +Next: <a href="#Color-subtleties" accesskey="n" rel="next">Color subtleties</a>, Previous: <a href="#Color-macro-files" accesskey="p" rel="prev">Color macro files</a>, Up: <a href="#Color" accesskey="u" rel="up">Color</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="User_002ddefinable-colors-1"></a> <h3 class="section">7.2 User-definable colors</h3> + +<a name="index-user_002ddefinable-colors"></a> +<a name="index-colors_002c-user_002ddefinable"></a> -<p><a name="index-user_002ddefinable-colors-679"></a><a name="index-colors_002c-user_002ddefinable-680"></a> -There are two ways for the user to specify colors not already defined. +<p>There are two ways for the user to specify colors not already defined. For local changes, there is the command <code>\Color</code> which takes two arguments. The first argument is four numbers between zero and one and specifies the intensity of cyan, magenta, yellow and black (CMYK) in @@ -3992,37 +5188,41 @@ that order. The second argument is the text that should appear in the given color. For example, suppose you want the words “this color is pretty” to appear in a color which is 50% cyan, 85% magenta, 40% yellow and 20% black. You would use the command +</p> +<div class="example"> +<pre class="example">\Color{.5 .85 .4 .2}{this color is pretty} +</pre></div> -<pre class="example"> \Color{.5 .85 .4 .2}{this color is pretty} -</pre> - <p>For global color changes, there is a command <code>\textColor</code> which -takes one argument, the CMYK quadruple of relative color intensities. +<p>For global color changes, there is a command <code>\textColor</code> which +takes one argument, the CMYK quadruple of relative color intensities. For example, if you want the default color to be as above, then the command - -<pre class="example"> \textColor{.5 .85 .4 .2} - The text from now on will be this pretty color -</pre> - <p class="noindent">will do the trick. - - <p>Making a global color change in the midst of nested local colors is +</p> +<div class="example"> +<pre class="example">\textColor{.5 .85 .4 .2} +The text from now on will be this pretty color +</pre></div> + +<p>will do the trick. +</p> +<p>Making a global color change in the midst of nested local colors is highly discouraged. Consequently, Dvips will give you warning message and do its best to recover by discarding the current color history. +</p> -<div class="node"> +<hr> <a name="Color-subtleties"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Ted-Turner">Ted Turner</a>, -Previous: <a rel="previous" accesskey="p" href="#User_002ddefinable-colors">User-definable colors</a>, -Up: <a rel="up" accesskey="u" href="#Color">Color</a> - +<div class="header"> +<p> +Next: <a href="#Ted-Turner" accesskey="n" rel="next">Ted Turner</a>, Previous: <a href="#User_002ddefinable-colors" accesskey="p" rel="prev">User-definable colors</a>, Up: <a href="#Color" accesskey="u" rel="up">Color</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Color-subtleties-1"></a> <h3 class="section">7.3 Color subtleties</h3> -<p><a name="index-color-subtleties-681"></a> -Color macros are defined via <code>\special</code> keywords. As such, they -are put in the ‘<samp><span class="samp">.dvi</span></samp>’ file only as explicit message strings to the +<a name="index-color-subtleties"></a> + +<p>Color macros are defined via <code>\special</code> keywords. As such, they +are put in the ‘<samp>.dvi</samp>’ file only as explicit message strings to the driver. The (unpleasant) result is that certain unprotected regions of the text can have unwanted color side effects. For example, if a color region is split by TeX across a page boundary, then the footers of @@ -4031,34 +5231,35 @@ page can inherit that color. To avoid this effect globally, users should make sure that these special regions of the text are defined with their own local color commands. For example, to protect the header and footer in plain TeX, use - -<pre class="example"> \headline{\Black{My Header}} - \footline{\Black{\hss\tenrm\folio\hss}} -</pre> - <p>This warning also applies to figures and other insertions, so be careful! - - <p>Of course, in LaTeX, this is much more difficult to do because of the +</p> +<div class="example"> +<pre class="example">\headline{\Black{My Header}} +\footline{\Black{\hss\tenrm\folio\hss}} +</pre></div> + +<p>This warning also applies to figures and other insertions, so be careful! +</p> +<p>Of course, in LaTeX, this is much more difficult to do because of the complexity of the macros that control these regions. This is unfortunate but inevitable, because TeX and LaTeX were not written with color in mind. - - <p>Even when writing your own macros, much care must be taken. The macros -that `colorize' a portion of the text work prefix the text work by +</p> +<p>Even when writing your own macros, much care must be taken. The macros +that ‘colorize’ a portion of the text work prefix the text work by outputting one <code>\special</code> command to turn the color on before the text, and outputting another <code>\special</code> command afterwards to restore the original color. It is often useful to ensure that TeX is in horizontal mode before the first special command is issued; this can be done by prefixing the color command with <code>\leavevmode</code>. +</p> -<div class="node"> +<hr> <a name="Ted-Turner"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Color-device-configuration">Color device configuration</a>, -Previous: <a rel="previous" accesskey="p" href="#Color-subtleties">Color subtleties</a>, -Up: <a rel="up" accesskey="u" href="#Color">Color</a> - +<div class="header"> +<p> +Next: <a href="#Color-device-configuration" accesskey="n" rel="next">Color device configuration</a>, Previous: <a href="#Color-subtleties" accesskey="p" rel="prev">Color subtleties</a>, Up: <a href="#Color" accesskey="u" rel="up">Color</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Printing-in-black_002fwhite-after-colorizing"></a> <h3 class="section">7.4 Printing in black/white after colorizing</h3> <p>If you have a TeX or LaTeX document written with color macros and @@ -4066,871 +5267,1132 @@ you want to print it in black and white there are two options. On all (good) PostScript devices, printing a color file will print in corresponding gray levels. This is useful to get a rough idea of the colors without using expensive color printing devices. The second -option is to replace the call to input <samp><span class="file">colordvi.tex</span></samp> with -‘<samp><span class="samp">blackdvi.tex</span></samp>’ (and similarly for the ‘<samp><span class="samp">.sty</span></samp>’ files). So in -the above example, replacing the word ‘<samp><span class="samp">colordvi</span></samp>’ with -‘<samp><span class="samp">blackdvi</span></samp>’ suffices. <samp><span class="file">blackdvi.tex</span></samp> defines the color macros +option is to replace the call to input <samp>colordvi.tex</samp> with +‘<samp>blackdvi.tex</samp>’ (and similarly for the ‘<samp>.sty</samp>’ files). So in +the above example, replacing the word ‘<samp>colordvi</samp>’ with +‘<samp>blackdvi</samp>’ suffices. <samp>blackdvi.tex</samp> defines the color macros as no-ops, and so will produce normal black/white printing. By this simple mechanism, the user can switch to all black/white printing without having to ferret out the color commands. Also, some device drivers, particularly non-PostScript ones like screen previewers, will -simply ignore the color commands and so print in black/white. +simply ignore the color commands and so print in black/white. Hopefully, in the future screen previewers for color displays will be compatible with some form of color support. +</p> -<div class="node"> +<hr> <a name="Color-device-configuration"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Color-support-details">Color support details</a>, -Previous: <a rel="previous" accesskey="p" href="#Ted-Turner">Ted Turner</a>, -Up: <a rel="up" accesskey="u" href="#Color">Color</a> - +<div class="header"> +<p> +Next: <a href="#Color-support-details" accesskey="n" rel="next">Color support details</a>, Previous: <a href="#Ted-Turner" accesskey="p" rel="prev">Ted Turner</a>, Up: <a href="#Color" accesskey="u" rel="up">Color</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Color-device-configuration-1"></a> <h3 class="section">7.5 Color device configuration</h3> -<p><a name="index-color-configuration-682"></a><a name="index-configuration_002c-of-color-devices-683"></a> -To configure Dvips for a particular color device you need to fine tune -the color parameters to match your device's color rendition. To do this, +<a name="index-color-configuration"></a> +<a name="index-configuration_002c-of-color-devices"></a> + +<p>To configure Dvips for a particular color device you need to fine tune +the color parameters to match your device’s color rendition. To do this, you will need a Pantone chart for your device. The header file -‘<samp><span class="samp">color.lpro</span></samp>’ shows a (rough) correspondence between the Crayola +‘<samp>color.lpro</samp>’ shows a (rough) correspondence between the Crayola crayon names and the Pantone numbers and also defines default CMYK values for each of the colors. Note that these colors must be defined in CMYK terms and not RGB, as Dvips outputs PostScript color commands in CMYK. This header file also defines (if they are not known to the -interpreter) the PostScript commands ‘<samp><span class="samp">setcmykcolor</span></samp>’ and -‘<samp><span class="samp">currentcmykcolor</span></samp>’ in terms of a RGB equivalent so if your device +interpreter) the PostScript commands ‘<samp>setcmykcolor</samp>’ and +‘<samp>currentcmykcolor</samp>’ in terms of a RGB equivalent so if your device only understands RGB, there should be no problem. - - <p><a name="index-Phaser-printer_002c-used-for-color-calibration-684"></a><a name="index-Tektronix-Phaser-printer_002c-used-for-color-calibration-685"></a>The parameters set in this file were determined by comparing the Pantone -chart of a Tektronix Phaser printer with the actual Crayola Crayons. +</p> +<a name="index-Phaser-printer_002c-used-for-color-calibration"></a> +<a name="index-Tektronix-Phaser-printer_002c-used-for-color-calibration"></a> +<p>The parameters set in this file were determined by comparing the Pantone +chart of a Tektronix Phaser printer with the actual Crayola Crayons. Because these were defined for a particular device, the actual color rendition on your device may be very different. There are two ways to adjust this. One is to use the PAntone chart for your device to rewrite -‘<samp><span class="samp">color.lpro</span></samp>’ prior to compilation and installation. A better +‘<samp>color.lpro</samp>’ prior to compilation and installation. A better alternative, which supports multiple devices, is to add a header file option in the configuration file (see <a href="#Configuration-file-commands">Configuration file commands</a>) -for each device that defines, in ‘<samp><span class="samp">userdict</span></samp>’, the color parameters +for each device that defines, in ‘<samp>userdict</samp>’, the color parameters for those colors that need redefining. - - <p>For example, if you need to change the parameters defining -‘<samp><span class="samp">Goldenrod</span></samp>’ (approximately Pantone 109 on the Phaser) for your -device ‘<samp><span class="samp">mycolordev</span></samp>’, do the following. In the Pantone chart for -your device, find the CMYK values for Pantone 109. Let's say they are -‘<samp><span class="samp">{\ 0 0.10 0.75 0.03 }</span></samp>’. Then create a header file named -‘<samp><span class="samp">mycolordev.pro</span></samp>’ with the commands - -<pre class="example"> userdict begin - /Goldenrod { 0 0.10 0.75 0.03 setcmykcolor} bind def -</pre> - <p class="noindent">Finally, in ‘<samp><span class="samp">config.mycolordev</span></samp>’ add the line - -<pre class="example"> h mycolordev.pro -</pre> - <p class="noindent">This will then define ‘<samp><span class="samp">Goldenrod</span></samp>’ in your device's CMYK values in -<samp><span class="file">userdict</span></samp> which is checked before defining it in <samp><span class="file">TeXdict</span></samp> by -<samp><span class="file">color.pro</span></samp>. (On MS-DOS, you will have to call this file -<samp><span class="file">mycolordev.cfg</span></samp>.) - - <p>This mechanism, together with additions to <samp><span class="file">colordvi.tex</span></samp> and -<samp><span class="file">blackdvi.tex</span></samp> (and the ‘<samp><span class="samp">.sty</span></samp>’ files), can also be used to +</p> +<p>For example, if you need to change the parameters defining +‘<samp>Goldenrod</samp>’ (approximately Pantone 109 on the Phaser) for your +device ‘<samp>mycolordev</samp>’, do the following. In the Pantone chart for +your device, find the CMYK values for Pantone 109. Let’s say they are +‘<samp>{\ 0 0.10 0.75 0.03 }</samp>’. Then create a header file named +‘<samp>mycolordev.pro</samp>’ with the commands +</p> +<div class="example"> +<pre class="example">userdict begin +/Goldenrod { 0 0.10 0.75 0.03 setcmykcolor} bind def +</pre></div> + +<p>Finally, in ‘<samp>config.mycolordev</samp>’ add the line +</p> +<div class="example"> +<pre class="example">h mycolordev.pro +</pre></div> + +<p>This will then define ‘<samp>Goldenrod</samp>’ in your device’s CMYK values in +<samp>userdict</samp> which is checked before defining it in <samp>TeXdict</samp> by +<samp>color.pro</samp>. (On MS-DOS, you will have to call this file +<samp>mycolordev.cfg</samp>.) +</p> +<p>This mechanism, together with additions to <samp>colordvi.tex</samp> and +<samp>blackdvi.tex</samp> (and the ‘<samp>.sty</samp>’ files), can also be used to predefine other colors for your users. +</p> -<div class="node"> +<hr> <a name="Color-support-details"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Color-device-configuration">Color device configuration</a>, -Up: <a rel="up" accesskey="u" href="#Color">Color</a> - +<div class="header"> +<p> +Previous: <a href="#Color-device-configuration" accesskey="p" rel="prev">Color device configuration</a>, Up: <a href="#Color" accesskey="u" rel="up">Color</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Color-support-details-1"></a> <h3 class="section">7.6 Color support details</h3> <p>To support color, Dvips recognizes a certain set of specials. These -specials start with the keyword ‘<samp><span class="samp">color</span></samp>’ or the keyword -‘<samp><span class="samp">background</span></samp>’, followed by a color specification. - -<ul class="menu"> -<li><a accesskey="1" href="#Color-specifications">Color specifications</a> -<li><a accesskey="2" href="#Color-specials">Color specials</a> -</ul> - -<div class="node"> +specials start with the keyword ‘<samp>color</samp>’ or the keyword +‘<samp>background</samp>’, followed by a color specification. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Color-specifications" accesskey="1">Color specifications</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Color-specials" accesskey="2">Color specials</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> <a name="Color-specifications"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Color-specials">Color specials</a>, -Up: <a rel="up" accesskey="u" href="#Color-support-details">Color support details</a> - +<div class="header"> +<p> +Next: <a href="#Color-specials" accesskey="n" rel="next">Color specials</a>, Up: <a href="#Color-support-details" accesskey="u" rel="up">Color support details</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Color-specifications-1"></a> <h4 class="subsection">7.6.1 Color specifications</h4> -<p><a name="index-color-specifications-686"></a> -What is a color specification? One of three things. First, it might be +<a name="index-color-specifications"></a> + +<p>What is a color specification? One of three things. First, it might be a PostScript procedure as defined in a PostScript header file. The -<samp><span class="file">color.pro</span></samp> file defines 64 of these, including ‘<samp><span class="samp">Maroon</span></samp>’. +<samp>color.pro</samp> file defines 64 of these, including ‘<samp>Maroon</samp>’. This PostScript procedure must set the current color to be some value; -in this case, ‘<samp><span class="samp">Maroon</span></samp>’ is defined as ‘<samp><span class="samp">0 0.87 0.68 0.32 -setcmykcolor</span></samp>’. - - <p>The second possibility is the name of a color model (initially, one of -‘<samp><span class="samp">rgb</span></samp>’, ‘<samp><span class="samp">hsb</span></samp>’, ‘<samp><span class="samp">cmyk</span></samp>’, or ‘<samp><span class="samp">gray</span></samp>’) followed by the +in this case, ‘<samp>Maroon</samp>’ is defined as ‘<samp>0 0.87 0.68 0.32 +setcmykcolor</samp>’. +</p> +<p>The second possibility is the name of a color model (initially, one of +‘<samp>rgb</samp>’, ‘<samp>hsb</samp>’, ‘<samp>cmyk</samp>’, or ‘<samp>gray</samp>’) followed by the appropriate number of parameters. When Dvips encounters such a macro, it sends out the parameters first, followed by the string created by -prefixing ‘<samp><span class="samp">TeXcolor</span></samp>’ to the color model. Thus, the color -specification ‘<samp><span class="samp">rgb 0.3 0.4 0.5</span></samp>’ would generate the PostScript code -‘<samp><span class="samp">0.3 0.4 0.5 TeXrgbcolor</span></samp>’. Note that the case of zero arguments is +prefixing ‘<samp>TeXcolor</samp>’ to the color model. Thus, the color +specification ‘<samp>rgb 0.3 0.4 0.5</samp>’ would generate the PostScript code +‘<samp>0.3 0.4 0.5 TeXrgbcolor</samp>’. Note that the case of zero arguments is disallowed, as that is handled by the single keyword case -(‘<samp><span class="samp">Maroon</span></samp>’) above, where no changes to the name are made before it +(‘<samp>Maroon</samp>’) above, where no changes to the name are made before it is sent to the PostScript file. - - <p>The third and final type of color specification is a double quote +</p> +<p>The third and final type of color specification is a double quote followed by any sequence of PostScript. The double quote is stripped from the output. For instance, the color specification -‘<samp><span class="samp">"AggiePattern setpattern</span></samp>’ will set the `color' to the Aggie logo +‘<samp>"AggiePattern setpattern</samp>’ will set the ‘color’ to the Aggie logo pattern (assuming such exists.) +</p> -<div class="node"> +<hr> <a name="Color-specials"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Color-specifications">Color specifications</a>, -Up: <a rel="up" accesskey="u" href="#Color-support-details">Color support details</a> - +<div class="header"> +<p> +Previous: <a href="#Color-specifications" accesskey="p" rel="prev">Color specifications</a>, Up: <a href="#Color-support-details" accesskey="u" rel="up">Color support details</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Color-specials-1"></a> <h4 class="subsection">7.6.2 Color specials</h4> -<p>We will describe ‘<samp><span class="samp">background</span></samp>’ first, since it is the simplest. The -‘<samp><span class="samp">background</span></samp>’ keyword must be followed by a color specification. -That color specification is used as a fill color for the background. -The last ‘<samp><span class="samp">background</span></samp>’ special on a page is the one that gets +<p>We will describe ‘<samp>background</samp>’ first, since it is the simplest. The +‘<samp>background</samp>’ keyword must be followed by a color specification. +That color specification is used as a fill color for the background. +The last ‘<samp>background</samp>’ special on a page is the one that gets issued, and it gets issued at the very beginning of the page, before any text or specials are sent. (This is possible because the prescan phase of Dvips notices all of the color specials so that the appropriate information can be written out during the second phase.) - - <p>The ‘<samp><span class="samp">color</span></samp>’ special itself has three forms. -The first is just ‘<samp><span class="samp">color</span></samp>’ followed by a color specification. In +</p> +<p>The ‘<samp>color</samp>’ special itself has three forms. +The first is just ‘<samp>color</samp>’ followed by a color specification. In this case, the current global color is set to that color; the color stack must be empty when such a command is executed. - - <p>The second form is ‘<samp><span class="samp">color push</span></samp>’ followed by a color specification. +</p> +<p>The second form is ‘<samp>color push</samp>’ followed by a color specification. This saves the current color on the color stack and sets the color to be that given by the color specification. This is the most common way to set a color. - - <p>The final version of the ‘<samp><span class="samp">color</span></samp>’ special is just ‘<samp><span class="samp">color pop</span></samp>’, +</p> +<p>The final version of the ‘<samp>color</samp>’ special is just ‘<samp>color pop</samp>’, with no color specification; this says to pop the color last pushed on the color stack from the color stack and set the current color to be that color. - - <p>Dvips correctly handles these color specials across pages, even when the +</p> +<p>Dvips correctly handles these color specials across pages, even when the pages are repeated or reversed. - - <p>These color specials can be used for things such as patterns or screens +</p> +<p>These color specials can be used for things such as patterns or screens as well as simple colors. However, note that in the PostScript, only one color specification can be active at a time. For instance, at the beginning of a page, only the bottommost entry on the color stack is sent; also, when a color is popped, all that is done is that the color -specification from the previous stack entry is sent. No ‘<samp><span class="samp">gsave</span></samp>’ or -‘<samp><span class="samp">grestore</span></samp>’ is used. This means that you cannot easily mix usage of -the ‘<samp><span class="samp">color</span></samp>’ specials for screens and colors, just one or the other. +specification from the previous stack entry is sent. No ‘<samp>gsave</samp>’ or +‘<samp>grestore</samp>’ is used. This means that you cannot easily mix usage of +the ‘<samp>color</samp>’ specials for screens and colors, just one or the other. This may be addressed in the future by adding support for different categories of color-like state. +</p> -<div class="node"> +<hr> <a name="Index"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Color">Color</a>, -Up: <a rel="up" accesskey="u" href="#Top">Top</a> - +<div class="header"> +<p> +Previous: <a href="#Color" accesskey="p" rel="prev">Color</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Index-1"></a> <h2 class="unnumbered">Index</h2> -<ul class="index-cp" compact> -<li><a href="#index-g_t_0021-_0040r_007bspecial-_0028literal-PS-header_0029_007d-459"><code>! </code><span class="roman">special (literal PS header)</span></a>: <a href="#Literal-headers">Literal headers</a></li> -<li><a href="#index-g_t_0021-_0040r_007bstarting-output-filename_007d-180"><code>! </code><span class="roman">starting output filename</span></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_0022-_0040r_007bspecial-_0028literal-PostScript_0029_007d-452"><code>" </code><span class="roman">special (literal PostScript)</span></a>: <a href="#g_t_0022-special">" special</a></li> -<li><a href="#index-g_t_0025_0025BoundingBox-365"><code>%%BoundingBox</code></a>: <a href="#Bounding-box">Bounding box</a></li> -<li><a href="#index-g_t_0025_0025Page_0040r_007b_002c-and-multi_002dpage-information_007d-469"><code>%%Page</code><span class="roman">, and multi-page information</span></a>: <a href="#PostScript-hooks">PostScript hooks</a></li> -<li><a href="#index-g_t_0025_0025Page_0040r_007b_002c-not-generating_007d-169"><code>%%Page</code><span class="roman">, not generating</span></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_0025_0025Page_0040r_007b_002c-removing_007d-145"><code>%%Page</code><span class="roman">, removing</span></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_0025_0025Page_0040r_007b_002c-required-by-Ghostview_007d-45"><code>%%Page</code><span class="roman">, required by Ghostview</span></a>: <a href="#Ghostscript-installation">Ghostscript installation</a></li> -<li><a href="#index-g_t_0025_0025VMusage-449"><code>%%VMusage</code></a>: <a href="#Headers-and-memory-usage">Headers and memory usage</a></li> -<li><a href="#index-g_t_0025_002aFont-421"><code>%*Font</code></a>: <a href="#Fonts-in-figures">Fonts in figures</a></li> -<li><a href="#index-g_t_0028atend_0029_0040r_007b_002c-bounding-box-specification_007d-367"><code>(atend)</code><span class="roman">, bounding box specification</span></a>: <a href="#Bounding-box">Bounding box</a></li> -<li><a href="#index-g_t_002b_0040var_007bpsmapfile_007d-304"><code>+</code><var>psmapfile</var></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-g_t_002d-84"><code>-</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002d-_0040r_007bas-output-filename_007d-179"><code>- </code><span class="roman">as output filename</span></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002d_002dhelp-87"><code>--help</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002d_002dhelp-82"><code>--help</code></a>: <a href="#Option-summary">Option summary</a></li> -<li><a href="#index-g_t_002d_002dversion-88"><code>--version</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dA-91"><code>-A</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002da-89"><code>-a</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dB-97"><code>-B</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002db-_0040var_007bnum_007d-93"><code>-b </code><var>num</var></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dC-_0040var_007bnum_007d-104"><code>-C </code><var>num</var></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dc-_0040var_007bnum_007d-100"><code>-c </code><var>num</var></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dc-_0040var_007bratio_007d-631"><code>-c </code><var>ratio</var></a>: <a href="#Afm2tfm-options">Afm2tfm options</a></li> -<li><a href="#index-g_t_002dD-_0040var_007bnum_007d-109"><code>-D </code><var>num</var></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dd-_0040var_007bnum_007d-107"><code>-d </code><var>num</var></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dE-115"><code>-E</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002de-_0040var_007bnum_007d-111"><code>-e </code><var>num</var></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002de-_0040var_007bratio_007d-633"><code>-e </code><var>ratio</var></a>: <a href="#Afm2tfm-options">Afm2tfm options</a></li> -<li><a href="#index-g_t_002dF-124"><code>-F</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002df-119"><code>-f</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dG-129"><code>-G</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dh-_0040var_007bname_007d-132"><code>-h </code><var>name</var></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002di-135"><code>-i</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dj-_0040r_007bfor-partial-font-downloading_007d-139"><code>-j </code><span class="roman">for partial font downloading</span></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dK-143"><code>-K</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dk-_0040r_007bfor-cropmarks_007d-140"><code>-k </code><span class="roman">for cropmarks</span></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dl-_005b_003d_005d_0040var_007bnum_007d-146"><code>-l [=]</code><var>num</var></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dM-157"><code>-M</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dm-151"><code>-m</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dmode-154"><code>-mode</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dmode-_0040var_007bmode_007d-153"><code>-mode </code><var>mode</var></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dN-166"><code>-N</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dn-_0040var_007bnum_007d-163"><code>-n </code><var>num</var></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dnoomega-170"><code>-noomega</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dnoptex-173"><code>-noptex</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dO-636"><code>-O</code></a>: <a href="#Afm2tfm-options">Afm2tfm options</a></li> -<li><a href="#index-g_t_002do-_0040var_007bname_007d-175"><code>-o </code><var>name</var></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dO-_0040var_007bx_002doffset_007d_002c_0040var_007by_002doffset_007d-184"><code>-O </code><var>x-offset</var><code>,</code><var>y-offset</var></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dp-_005b_003d_005d_0040var_007bnum_007d-189"><code>-p [=]</code><var>num</var></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dP-_0040var_007bprinter_007d-197"><code>-P </code><var>printer</var></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dp-_0040var_007bps_002denc_007d-638"><code>-p </code><var>ps-enc</var></a>: <a href="#Afm2tfm-options">Afm2tfm options</a></li> -<li><a href="#index-g_t_002dp-_0040var_007bps_002denc_007d-590"><code>-p </code><var>ps-enc</var></a>: <a href="#Changing-PostScript-encodings">Changing PostScript encodings</a></li> -<li><a href="#index-g_t_002dpp-_0040var_007bfirst_007d_002d_0040var_007blast_007d-194"><code>-pp </code><var>first</var><code>-</code><var>last</var></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dpp-_0040var_007brange_007d-196"><code>-pp </code><var>range</var></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dP_0040var_007bprinter_007d_0040r_007b_002c-and-config-file-searching_007d-267"><code>-P</code><var>printer</var><span class="roman">, and config file searching</span></a>: <a href="#Configuration-file-searching">Configuration file searching</a></li> -<li><a href="#index-g_t_002dq-199"><code>-q</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dR-205"><code>-R</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dr-203"><code>-r</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002ds-210"><code>-s</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dS-_0040var_007bnum_007d-212"><code>-S </code><var>num</var></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002ds-_0040var_007bslant_007d-639"><code>-s </code><var>slant</var></a>: <a href="#Afm2tfm-options">Afm2tfm options</a></li> -<li><a href="#index-g_t_002dT-_0040var_007benc_002dfile_007d-595"><code>-T </code><var>enc-file</var></a>: <a href="#Changing-both-encodings">Changing both encodings</a></li> -<li><a href="#index-g_t_002dT-_0040var_007bhsize_007d_002c_0040var_007bvsize_007d-223"><code>-T </code><var>hsize</var><code>,</code><var>vsize</var></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dt-_0040var_007bpapertype_007d-213"><code>-t </code><var>papertype</var></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dT-_0040var_007bps_002dtex_002denc_007d-642"><code>-T </code><var>ps-tex-enc</var></a>: <a href="#Afm2tfm-options">Afm2tfm options</a></li> -<li><a href="#index-g_t_002dt-_0040var_007btex_002denc_007d-641"><code>-t </code><var>tex-enc</var></a>: <a href="#Afm2tfm-options">Afm2tfm options</a></li> -<li><a href="#index-g_t_002dt-_0040var_007btex_002denc_007d-586"><code>-t </code><var>tex-enc</var></a>: <a href="#Changing-TeX-encodings">Changing TeX encodings</a></li> -<li><a href="#index-g_t_002du-643"><code>-u</code></a>: <a href="#Afm2tfm-options">Afm2tfm options</a></li> -<li><a href="#index-g_t_002dU-227"><code>-U</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002du-_0040var_007bpsmapfile_007d-224"><code>-u </code><var>psmapfile</var></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dV-230"><code>-V</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dv-229"><code>-v</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dV-_0040var_007bvpl_002dfile_007d-645"><code>-V </code><var>vpl-file</var></a>: <a href="#Afm2tfm-options">Afm2tfm options</a></li> -<li><a href="#index-g_t_002dv-_0040var_007bvpl_002dfile_007d-644"><code>-v </code><var>vpl-file</var></a>: <a href="#Afm2tfm-options">Afm2tfm options</a></li> -<li><a href="#index-g_t_002dX-_0040var_007bnum_007d-236"><code>-X </code><var>num</var></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dx-_0040var_007bnum_007d-234"><code>-x </code><var>num</var></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dY-_0040var_007bnum_007d-239"><code>-Y </code><var>num</var></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dz-476"><code>-z</code></a>: <a href="#Hypertext">Hypertext</a></li> -<li><a href="#index-g_t_002dZ-_0040r_007bfor-compressing-bitmap-fonts_007d-246"><code>-Z </code><span class="roman">for compressing bitmap fonts</span></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002dz-_0040r_007bfor-recognizing-hyperdvi_007d-241"><code>-z </code><span class="roman">for recognizing hyperdvi</span></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_0040file_007b_002e_002e_007d_002drelative-filenames-209"><samp><span class="file">..</span></samp>-relative filenames</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002eafm-_0040r_007bAdobe-metric-files_007d-518"><code>.afm </code><span class="roman">Adobe metric files</span></a>: <a href="#Metric-files">Metric files</a></li> -<li><a href="#index-g_t_002edvipsrc_0040r_007b_002c-searched-for_007d-266"><code>.dvipsrc</code><span class="roman">, searched for</span></a>: <a href="#Configuration-file-searching">Configuration file searching</a></li> -<li><a href="#index-g_t_002eenc-_0040r_007bextension-for-encoding-vectors_007d-659"><code>.enc </code><span class="roman">extension for encoding vectors</span></a>: <a href="#psfonts_002emap">psfonts.map</a></li> -<li><a href="#index-g_t_002elpro-_0040r_007blong-prologue-files_007d-426"><code>.lpro </code><span class="roman">long prologue files</span></a>: <a href="#Header-files">Header files</a></li> -<li><a href="#index-g_t_002emf-_0040r_007bMetafont-source-files_007d-537"><code>.mf </code><span class="roman">Metafont source files</span></a>: <a href="#Glyph-files">Glyph files</a></li> -<li><a href="#index-g_t_002e_0040var_007bnnn_007dpk-_0040r_007bpacked-font-bitmaps_007d-540"><code>.</code><var>nnn</var><code>pk </code><span class="roman">packed font bitmaps</span></a>: <a href="#Glyph-files">Glyph files</a></li> -<li><a href="#index-g_t_002epfa-_0040r_007bextension-required-for-partial-downloading_007d-660"><code>.pfa </code><span class="roman">extension required for partial downloading</span></a>: <a href="#psfonts_002emap">psfonts.map</a></li> -<li><a href="#index-g_t_002epfa-_0040r_007bprinter-font-ascii-files_007d-534"><code>.pfa </code><span class="roman">printer font ascii files</span></a>: <a href="#Glyph-files">Glyph files</a></li> -<li><a href="#index-g_t_002epfb-_0040r_007bextension-required-for-partial-downloading_007d-661"><code>.pfb </code><span class="roman">extension required for partial downloading</span></a>: <a href="#psfonts_002emap">psfonts.map</a></li> -<li><a href="#index-g_t_002epfb-_0040r_007bprinter-font-binary-files_007d-535"><code>.pfb </code><span class="roman">printer font binary files</span></a>: <a href="#Glyph-files">Glyph files</a></li> -<li><a href="#index-g_t_002epfm-_0040r_007bprinter-font-metric-files_007d-526"><code>.pfm </code><span class="roman">printer font metric files</span></a>: <a href="#Metric-files">Metric files</a></li> -<li><a href="#index-g_t_002epl-_0040r_007bproperty-list-files_007d-524"><code>.pl </code><span class="roman">property list files</span></a>: <a href="#Metric-files">Metric files</a></li> -<li><a href="#index-g_t_002epro-_0040r_007bprologue-files_007d-425"><code>.pro </code><span class="roman">prologue files</span></a>: <a href="#Header-files">Header files</a></li> -<li><a href="#index-g_t_002etfm-_0040r_007b_0040TeX_007b_007d-font-metric-files_007d-520"><code>.tfm </code><span class="roman">TeX font metric files</span></a>: <a href="#Metric-files">Metric files</a></li> -<li><a href="#index-g_t_002f_0023copies-94"><code>/#copies</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_002fmagscale-392"><code>/magscale</code></a>: <a href="#EPSF-scaling">EPSF scaling</a></li> -<li><a href="#index-g_t612-792-_0040r_007bbounding-box-size_007d-370"><code>612 792 </code><span class="roman">bounding box size</span></a>: <a href="#Bounding-box">Bounding box</a></li> -<li><a href="#index-g_t8r-_0040r_007bencoding_002c-and-extra-characters_007d-594"><code>8r </code><span class="roman">encoding, and extra characters</span></a>: <a href="#Changing-PostScript-encodings">Changing PostScript encodings</a></li> -<li><a href="#index-g_t8r-font-encoding-656">8r font encoding</a>: <a href="#psfonts_002emap">psfonts.map</a></li> -<li><a href="#index-g_t8r_002eenc-555"><code>8r.enc</code></a>: <a href="#Encodings">Encodings</a></li> -<li><a href="#index-g_t_003c-_0040r_007bfont-downloading_007d-650"><code>< </code><span class="roman">font downloading</span></a>: <a href="#psfonts_002emap">psfonts.map</a></li> -<li><a href="#index-g_t_003c_003c-_0040r_007bwhole-font-downloading_007d-668"><code><< </code><span class="roman">whole font downloading</span></a>: <a href="#psfonts_002emap">psfonts.map</a></li> -<li><a href="#index-g_t_003c_005b-_0040r_007bencoding-vector-downloading_007d-658"><code><[ </code><span class="roman">encoding vector downloading</span></a>: <a href="#psfonts_002emap">psfonts.map</a></li> -<li><a href="#index-g_t_003d_003a-_0040r_007bligature-operation_007d-614"><code>=: </code><span class="roman">ligature operation</span></a>: <a href="#Encoding-file-format">Encoding file format</a></li> -<li><a href="#index-g_t_0040_0040-_0040r_007bpaper-size-config-command_007d-273"><code>@ </code><span class="roman">paper size config command</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-g_t_005c_002e-604"><code>\.</code></a>: <a href="#Reencoding-with-Afm2tfm">Reencoding with Afm2tfm</a></li> -<li><a href="#index-g_t_005cAA-606"><code>\AA</code></a>: <a href="#Reencoding-with-Afm2tfm">Reencoding with Afm2tfm</a></li> -<li><a href="#index-g_t_005c_0040var_007bColorName_007d-676"><code>\</code><var>ColorName</var></a>: <a href="#Color-macro-files">Color macro files</a></li> -<li><a href="#index-g_t_005cdot-605"><code>\dot</code></a>: <a href="#Reencoding-with-Afm2tfm">Reencoding with Afm2tfm</a></li> -<li><a href="#index-g_t_005cepsffile-_0040r_007bmacro_007d-380"><code>\epsffile </code><span class="roman">macro</span></a>: <a href="#EPSF-macros">EPSF macros</a></li> -<li><a href="#index-g_t_005cepsfsize-388"><code>\epsfsize</code></a>: <a href="#EPSF-scaling">EPSF scaling</a></li> -<li><a href="#index-g_t_005cepsfverbosetrue-382"><code>\epsfverbosetrue</code></a>: <a href="#EPSF-macros">EPSF macros</a></li> -<li><a href="#index-g_t_005cepsfxsize-386"><code>\epsfxsize</code></a>: <a href="#EPSF-scaling">EPSF scaling</a></li> -<li><a href="#index-g_t_005cepsfysize-387"><code>\epsfysize</code></a>: <a href="#EPSF-scaling">EPSF scaling</a></li> -<li><a href="#index-g_t_005cH-603"><code>\H</code></a>: <a href="#Reencoding-with-Afm2tfm">Reencoding with Afm2tfm</a></li> -<li><a href="#index-g_t_005cincludegraphics-_0040LaTeX_007b_007d-macro-371">\includegraphics LaTeX macro</a>: <a href="#g_t_005cincludegraphics">\includegraphics</a></li> -<li><a href="#index-g_t_005cleavevmode-378"><code>\leavevmode</code></a>: <a href="#EPSF-macros">EPSF macros</a></li> -<li><a href="#index-g_t_005cmagnification-391"><code>\magnification</code></a>: <a href="#EPSF-scaling">EPSF scaling</a></li> -<li><a href="#index-g_t_005crotninety-472"><code>\rotninety</code></a>: <a href="#Literal-examples">Literal examples</a></li> -<li><a href="#index-g_t_005ctext_0040var_007bColorName_007d-678"><code>\text</code><var>ColorName</var></a>: <a href="#Color-macro-files">Color macro files</a></li> -<li><a href="#index-a-_0040r_007bconfig-command-_0028memory-conservation_0029_007d-274"><code>a </code><span class="roman">config command (memory conservation)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-A-ring_002c-Scandinavian-letter-602">A ring, Scandinavian letter</a>: <a href="#Reencoding-with-Afm2tfm">Reencoding with Afm2tfm</a></li> -<li><a href="#index-a3-papertype-220">a3 papertype</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-a4-_0040r_007bpaper-size_007d-350"><code>a4 </code><span class="roman">paper size</span></a>: <a href="#Config-file-paper-sizes">Config file paper sizes</a></li> -<li><a href="#index-a4-papertype-219">a4 papertype</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-A4size-_0040r_007bpaper-size_007d-352"><code>A4size </code><span class="roman">paper size</span></a>: <a href="#Config-file-paper-sizes">Config file paper sizes</a></li> -<li><a href="#index-absolute-filenames_002c-disabling-208">absolute filenames, disabling</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-absolute-page-number_002c-and-_0040samp_007b_002dl_007d-150">absolute page number, and ‘<samp><span class="samp">-l</span></samp>’</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-absolute-page-number_002c-and-_0040samp_007b_002dp_007d-193">absolute page number, and ‘<samp><span class="samp">-p</span></samp>’</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-accents_002c-in-wrong-position-598">accents, in wrong position</a>: <a href="#Reencoding-with-Afm2tfm">Reencoding with Afm2tfm</a></li> -<li><a href="#index-accents_002c-wrong-630">accents, wrong</a>: <a href="#Afm2tfm-options">Afm2tfm options</a></li> -<li><a href="#index-accuracy-in-positioning-113">accuracy in positioning</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-Adobe-fonts-17">Adobe fonts</a>: <a href="#PostScript-font-installation">PostScript font installation</a></li> -<li><a href="#index-Adobe-fonts_002c-installing-22">Adobe fonts, installing</a>: <a href="#PostScript-font-installation">PostScript font installation</a></li> -<li><a href="#index-afm-files-517">afm files</a>: <a href="#Metric-files">Metric files</a></li> -<li><a href="#index-afm2tfm-578"><code>afm2tfm</code></a>: <a href="#Invoking-afm2tfm">Invoking afm2tfm</a></li> -<li><a href="#index-afm2tfm-574"><code>afm2tfm</code></a>: <a href="#Making-a-font-available">Making a font available</a></li> -<li><a href="#index-afm2tfm-options-629">afm2tfm options</a>: <a href="#Afm2tfm-options">Afm2tfm options</a></li> -<li><a href="#index-after-header_002c-inserting-code-435">after header, inserting code</a>: <a href="#Including-headers-from-TeX">Including headers from TeX</a></li> -<li><a href="#index-Aladdin-Ghostscript-38">Aladdin Ghostscript</a>: <a href="#Ghostscript-installation">Ghostscript installation</a></li> -<li><a href="#index-Anderson_002c-Laurie-508">Anderson, Laurie</a>: <a href="#Hypertext-specials">Hypertext specials</a></li> -<li><a href="#index-angle-_0040r_007b_0028_0040samp_007bpsfile_007d-special-option_0029_007d-405"><code>angle </code><span class="roman">(‘</span><samp><span class="samp">psfile</span></samp><span class="roman">’ special option)</span></a>: <a href="#psfile-special">psfile special</a></li> -<li><a href="#index-arcs-529">arcs</a>: <a href="#Glyph-files">Glyph files</a></li> -<li><a href="#index-ASCII-character-codes_002c-used-by-PostScript-563">ASCII character codes, used by PostScript</a>: <a href="#PostScript-typesetting">PostScript typesetting</a></li> -<li><a href="#index-atend_0040r_007b_002c-bounding-box-specification_007d-366"><code>atend</code><span class="roman">, bounding box specification</span></a>: <a href="#Bounding-box">Bounding box</a></li> -<li><a href="#index-b-_0040r_007bconfig-command-_0028_0023copies_0029_007d-275"><code>b </code><span class="roman">config command (#copies)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-base-511"><code>base</code></a>: <a href="#Hypertext-specials">Hypertext specials</a></li> -<li><a href="#index-base-encoding_002c-recommended-657">base encoding, recommended</a>: <a href="#psfonts_002emap">psfonts.map</a></li> -<li><a href="#index-base-fonts-546">base fonts</a>: <a href="#Virtual-fonts">Virtual fonts</a></li> -<li><a href="#index-bbfig-368"><code>bbfig</code></a>: <a href="#Bounding-box">Bounding box</a></li> -<li><a href="#index-before-header_002c-inserting-code-434">before header, inserting code</a>: <a href="#Including-headers-from-TeX">Including headers from TeX</a></li> -<li><a href="#index-Bhattacharya_002c-Tanmoy-484">Bhattacharya, Tanmoy</a>: <a href="#Hypertext">Hypertext</a></li> -<li><a href="#index-big-points-362">big points</a>: <a href="#Bounding-box">Bounding box</a></li> -<li><a href="#index-Bigelow-_0026-Holmes-fonts-18">Bigelow & Holmes fonts</a>: <a href="#PostScript-font-installation">PostScript font installation</a></li> -<li><a href="#index-binary-files_002c-not-supported-76">binary files, not supported</a>: <a href="#Including-graphics-fails">Including graphics fails</a></li> -<li><a href="#index-bitmap-fonts-536">bitmap fonts</a>: <a href="#Glyph-files">Glyph files</a></li> -<li><a href="#index-Bitstream-fonts_002c-installing-23">Bitstream fonts, installing</a>: <a href="#PostScript-font-installation">PostScript font installation</a></li> -<li><a href="#index-g_t_0040t_007bbop-undefined_007d-error-66"><tt>bop undefined</tt> error</a>: <a href="#Printer-errors">Printer errors</a></li> -<li><a href="#index-bop_002dhook-462"><code>bop-hook</code></a>: <a href="#PostScript-hooks">PostScript hooks</a></li> -<li><a href="#index-bop_002dhook-393"><code>bop-hook</code></a>: <a href="#EPSF-scaling">EPSF scaling</a></li> -<li><a href="#index-bop_002dhook-357"><code>bop-hook</code></a>: <a href="#Paper-trays">Paper trays</a></li> -<li><a href="#index-bop_002dhook_0040r_007b_002c-and-offset-pages_007d-188"><code>bop-hook</code><span class="roman">, and offset pages</span></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-boundary-character-611">boundary character</a>: <a href="#Encoding-file-format">Encoding file format</a></li> -<li><a href="#index-bounding-box_002c-comment-for-361">bounding box, comment for</a>: <a href="#Bounding-box">Bounding box</a></li> -<li><a href="#index-bounding-box_002c-defined-364">bounding box, defined</a>: <a href="#Bounding-box">Bounding box</a></li> -<li><a href="#index-bounding-box_002c-determining-369">bounding box, determining</a>: <a href="#Bounding-box">Bounding box</a></li> -<li><a href="#index-bounding-box_002c-finding-tight-118">bounding box, finding tight</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-bounding-box_002c-inaccurate-395">bounding box, inaccurate</a>: <a href="#EPSF-clipping">EPSF clipping</a></li> -<li><a href="#index-bounding-box_002c-supplying-to-_0040TeX_007b_007d-379">bounding box, supplying to TeX</a>: <a href="#EPSF-macros">EPSF macros</a></li> -<li><a href="#index-bounding-box_002c-supplying-to-_0040TeX_007b_007d-373">bounding box, supplying to TeX</a>: <a href="#g_t_005cincludegraphics">\includegraphics</a></li> -<li><a href="#index-c-_0040r_007binclude-additional-config-file_007d-276"><code>c </code><span class="roman">include additional config file</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-changing-PostScript-encodings-588">changing PostScript encodings</a>: <a href="#Changing-PostScript-encodings">Changing PostScript encodings</a></li> -<li><a href="#index-changing-_0040TeX_007b_007d-encodings-584">changing TeX encodings</a>: <a href="#Changing-TeX-encodings">Changing TeX encodings</a></li> -<li><a href="#index-character-definitions-in-PostScript-571">character definitions in PostScript</a>: <a href="#PostScript-typesetting">PostScript typesetting</a></li> -<li><a href="#index-character-lookup-procedure-in-PostScript-561">character lookup procedure in PostScript</a>: <a href="#PostScript-typesetting">PostScript typesetting</a></li> -<li><a href="#index-CharStrings-_0040r_007bType-1-dictionary_007d-568"><code>CharStrings </code><span class="roman">Type 1 dictionary</span></a>: <a href="#PostScript-typesetting">PostScript typesetting</a></li> -<li><a href="#index-clip-_0040r_007b_0028_0040samp_007bpsfile_007d-special-option_0029_007d-406"><code>clip </code><span class="roman">(‘</span><samp><span class="samp">psfile</span></samp><span class="roman">’ special option)</span></a>: <a href="#psfile-special">psfile special</a></li> -<li><a href="#index-clipping-of-EPSF-394">clipping of EPSF</a>: <a href="#EPSF-clipping">EPSF clipping</a></li> -<li><a href="#index-CODINGSCHEME-607"><code>CODINGSCHEME</code></a>: <a href="#Reencoding-with-Afm2tfm">Reencoding with Afm2tfm</a></li> -<li><a href="#index-collated-copies-106">collated copies</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-color-669">color</a>: <a href="#Color">Color</a></li> -<li><a href="#index-color-configuration-682">color configuration</a>: <a href="#Color-device-configuration">Color device configuration</a></li> -<li><a href="#index-color-macros-672">color macros</a>: <a href="#Color-macro-files">Color macro files</a></li> -<li><a href="#index-color-names_002c-mixed-case-675">color names, mixed case</a>: <a href="#Color-macro-files">Color macro files</a></li> -<li><a href="#index-color-nesting-level-677">color nesting level</a>: <a href="#Color-macro-files">Color macro files</a></li> -<li><a href="#index-color-separations-96">color separations</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-color-specifications-686">color specifications</a>: <a href="#Color-specifications">Color specifications</a></li> -<li><a href="#index-color-subtleties-681">color subtleties</a>: <a href="#Color-subtleties">Color subtleties</a></li> -<li><a href="#index-colors_002c-user_002ddefinable-680">colors, user-definable</a>: <a href="#User_002ddefinable-colors">User-definable colors</a></li> -<li><a href="#index-command-line_002c-including-headers-from-439">command line, including headers from</a>: <a href="#Including-headers-from-the-command-line">Including headers from the command line</a></li> -<li><a href="#index-command_002dline-options-77">command-line options</a>: <a href="#Invoking-Dvips">Invoking Dvips</a></li> -<li><a href="#index-comments_002c-in-configuration-files-271">comments, in configuration files</a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-comments_002c-in-encoding-files-609">comments, in encoding files</a>: <a href="#Encoding-file-format">Encoding file format</a></li> -<li><a href="#index-comments_002c-removing-included-144">comments, removing included</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-compilation-3">compilation</a>: <a href="#Installation">Installation</a></li> -<li><a href="#index-compressed-PostScript-416">compressed PostScript</a>: <a href="#Dynamic-creation-of-graphics">Dynamic creation of graphics</a></li> -<li><a href="#index-compressing-bitmap-fonts-247">compressing bitmap fonts</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-Computer-Modern-in-PostScript-489">Computer Modern in PostScript</a>: <a href="#Hypertext-caveats">Hypertext caveats</a></li> -<li><a href="#index-Computer-Modern_002c-encoding-of-550">Computer Modern, encoding of</a>: <a href="#Encodings">Encodings</a></li> -<li><a href="#index-condensed-fonts-635">condensed fonts</a>: <a href="#Afm2tfm-options">Afm2tfm options</a></li> -<li><a href="#index-config_002eproto-10"><code>config.proto</code></a>: <a href="#config_002eps-installation">config.ps installation</a></li> -<li><a href="#index-config_002eps-198"><code>config.ps</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-config_002eps-_0040r_007binstallation_007d-5"><code>config.ps </code><span class="roman">installation</span></a>: <a href="#config_002eps-installation">config.ps installation</a></li> -<li><a href="#index-config_002eps-_0040r_007bpaper-sizes_007d-348"><code>config.ps </code><span class="roman">paper sizes</span></a>: <a href="#Config-file-paper-sizes">Config file paper sizes</a></li> -<li><a href="#index-config_002eps_0040r_007b_002c-searched-for_007d-265"><code>config.ps</code><span class="roman">, searched for</span></a>: <a href="#Configuration-file-searching">Configuration file searching</a></li> -<li><a href="#index-configuration-file-options-269">configuration file options</a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-configuration-file-paper-size-command-344">configuration file paper size command</a>: <a href="#Config-file-paper-sizes">Config file paper sizes</a></li> -<li><a href="#index-configuration-file-path-260">configuration file path</a>: <a href="#Environment-variables">Environment variables</a></li> -<li><a href="#index-configuration-file-searching-263">configuration file searching</a>: <a href="#Configuration-file-searching">Configuration file searching</a></li> -<li><a href="#index-configuration-files-262">configuration files</a>: <a href="#Config-files">Config files</a></li> -<li><a href="#index-configuration-files_002c-creating-9">configuration files, creating</a>: <a href="#config_002eps-installation">config.ps installation</a></li> -<li><a href="#index-configuration-files_002c-prototype-13">configuration files, prototype</a>: <a href="#config_002eps-installation">config.ps installation</a></li> -<li><a href="#index-configuration_002c-of-color-devices-683">configuration, of color devices</a>: <a href="#Color-device-configuration">Color device configuration</a></li> -<li><a href="#index-configuration_002c-of-Dvips-2">configuration, of Dvips</a>: <a href="#Installation">Installation</a></li> -<li><a href="#index-continuation-lines_002c-not-supported-272">continuation lines, not supported</a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-control_002dD-126">control-D</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-copies_002c-collated-105">copies, collated</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-copies_002c-duplicated-page-bodies-95">copies, duplicated page bodies</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-copies_002c-uncollated-102">copies, uncollated</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-Crayola-crayon-box-673">Crayola crayon box</a>: <a href="#Color-macro-files">Color macro files</a></li> -<li><a href="#index-crop_002epro-142"><code>crop.pro</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-cropmarks-141">cropmarks</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-current-font_002c-in-PostScript-564">current font, in PostScript</a>: <a href="#PostScript-typesetting">PostScript typesetting</a></li> -<li><a href="#index-D-_0040r_007bconfig-command-_0028dpi_0029_007d-277"><code>D </code><span class="roman">config command (dpi)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-dated-output-467">dated output</a>: <a href="#PostScript-hooks">PostScript hooks</a></li> -<li><a href="#index-datestamp_002c-in-output-281">datestamp, in output</a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-debugging-108">debugging</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-debugging-48">debugging</a>: <a href="#Diagnosing-problems">Diagnosing problems</a></li> -<li><a href="#index-debugging-options-49">debugging options</a>: <a href="#Debug-options">Debug options</a></li> -<li><a href="#index-default-resolutions-315">default resolutions</a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-default_005ftexsizes-_0040r_007bMake-variable_007d-319"><code>default_texsizes </code><span class="roman">Make variable</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-Deutsch_002c-Peter-33">Deutsch, Peter</a>: <a href="#Ghostscript-installation">Ghostscript installation</a></li> -<li><a href="#index-device-dependency_002c-and-virtual-fonts-330">device dependency, and virtual fonts</a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-dictionary_002c-_0040code_007bCharStrings_007d-569">dictionary, <code>CharStrings</code></a>: <a href="#PostScript-typesetting">PostScript typesetting</a></li> -<li><a href="#index-dictionary_002c-PostScript-language-565">dictionary, PostScript language</a>: <a href="#PostScript-typesetting">PostScript typesetting</a></li> -<li><a href="#index-dictionary_002c-_0040code_007bSDict_007d-460">dictionary, <code>SDict</code></a>: <a href="#Literal-headers">Literal headers</a></li> -<li><a href="#index-dictionary_002c-_0040code_007buserdict_007d-428">dictionary, <code>userdict</code></a>: <a href="#Header-files">Header files</a></li> -<li><a href="#index-distillation_002c-and-_0040samp_007b_002dz_007d-243">distillation, and ‘<samp><span class="samp">-z</span></samp>’</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-distiller_002c-for-PDF-files-479">distiller, for PDF files</a>: <a href="#Hypertext">Hypertext</a></li> -<li><a href="#index-dot-accent-600">dot accent</a>: <a href="#Reencoding-with-Afm2tfm">Reencoding with Afm2tfm</a></li> -<li><a href="#index-double_002dsided-printing-99">double-sided printing</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-downloading-fonts-partially-664">downloading fonts partially</a>: <a href="#psfonts_002emap">psfonts.map</a></li> -<li><a href="#index-downloading-PostScript-fonts-648">downloading PostScript fonts</a>: <a href="#psfonts_002emap">psfonts.map</a></li> -<li><a href="#index-Doyle_002c-Mark-483">Doyle, Mark</a>: <a href="#Hypertext">Hypertext</a></li> -<li><a href="#index-draft-copies-466">draft copies</a>: <a href="#PostScript-hooks">PostScript hooks</a></li> -<li><a href="#index-dual-paper-trays-354">dual paper trays</a>: <a href="#Paper-trays">Paper trays</a></li> -<li><a href="#index-duplex-printers-441">duplex printers</a>: <a href="#Including-headers-from-the-command-line">Including headers from the command line</a></li> -<li><a href="#index-DVI-magnification-389">DVI magnification</a>: <a href="#EPSF-scaling">EPSF scaling</a></li> -<li><a href="#index-dvihps_0040r_007b_002c-hyperdvi-to-PostScript_007d-487"><code>dvihps</code><span class="roman">, hyperdvi to PostScript</span></a>: <a href="#Hypertext">Hypertext</a></li> -<li><a href="#index-Dvips-configuration-file-options-270">Dvips configuration file options</a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-dvips_002eenc-554"><code>dvips.enc</code></a>: <a href="#Encodings">Encodings</a></li> -<li><a href="#index-DVIPSDEBUG-249"><code>DVIPSDEBUG</code></a>: <a href="#Environment-variables">Environment variables</a></li> -<li><a href="#index-DVIPSFONTS-251"><code>DVIPSFONTS</code></a>: <a href="#Environment-variables">Environment variables</a></li> -<li><a href="#index-DVIPSHEADERS-252"><code>DVIPSHEADERS</code></a>: <a href="#Environment-variables">Environment variables</a></li> -<li><a href="#index-DVIPSHEADERS_0040r_007b_002c-overrides_007d-H-289"><code>DVIPSHEADERS</code><span class="roman">, overrides</span><code> H</code></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-DVIPSMAKEPK-253"><code>DVIPSMAKEPK</code></a>: <a href="#Environment-variables">Environment variables</a></li> -<li><a href="#index-DVIPSRC-255"><code>DVIPSRC</code></a>: <a href="#Environment-variables">Environment variables</a></li> -<li><a href="#index-DVIPSSIZES-256"><code>DVIPSSIZES</code></a>: <a href="#Environment-variables">Environment variables</a></li> -<li><a href="#index-DVIPSSIZES_0040r_007b_002c-overrides_007d-R-317"><code>DVIPSSIZES</code><span class="roman">, overrides</span><code> R</code></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-dynamic-creation-of-graphics-415">dynamic creation of graphics</a>: <a href="#Dynamic-creation-of-graphics">Dynamic creation of graphics</a></li> -<li><a href="#index-e-_0040r_007bconfig-command-_0028maxdrift_0029_007d-278"><code>e </code><span class="roman">config command (maxdrift)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-E-_0040r_007bconfig-command-_0028shell-escape_0029_007d-279"><code>E </code><span class="roman">config command (shell escape)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-efficiency_002c-and-fonts-577">efficiency, and fonts</a>: <a href="#Making-a-font-available">Making a font available</a></li> -<li><a href="#index-ehandler_002eps-54"><code>ehandler.ps</code></a>: <a href="#No-output">No output</a></li> -<li><a href="#index-embedding-Type-1-fonts-492">embedding Type 1 fonts</a>: <a href="#Hypertext-caveats">Hypertext caveats</a></li> -<li><a href="#index-encoding-changes-582">encoding changes</a>: <a href="#Changing-font-encodings">Changing font encodings</a></li> -<li><a href="#index-encoding-file-format-608">encoding file format</a>: <a href="#Encoding-file-format">Encoding file format</a></li> -<li><a href="#index-encoding-files-552">encoding files</a>: <a href="#Encodings">Encodings</a></li> -<li><a href="#index-Encoding-_0040r_007bType-1-dictionary_007d-567"><code>Encoding </code><span class="roman">Type 1 dictionary</span></a>: <a href="#PostScript-typesetting">PostScript typesetting</a></li> -<li><a href="#index-encoding-vectors_002c-defined-553">encoding vectors, defined</a>: <a href="#Encodings">Encodings</a></li> -<li><a href="#index-encoding-vectors_002c-in-Type-1-fonts-566">encoding vectors, in Type 1 fonts</a>: <a href="#PostScript-typesetting">PostScript typesetting</a></li> -<li><a href="#index-encodings-549">encodings</a>: <a href="#Encodings">Encodings</a></li> -<li><a href="#index-end_002dhook-465"><code>end-hook</code></a>: <a href="#PostScript-hooks">PostScript hooks</a></li> -<li><a href="#index-environment-variables-248">environment variables</a>: <a href="#Environment-variables">Environment variables</a></li> -<li><a href="#index-EOF-125">EOF</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-eop_002dhook-463"><code>eop-hook</code></a>: <a href="#PostScript-hooks">PostScript hooks</a></li> -<li><a href="#index-EPS_002c-and-Ghostview-43">EPS, and Ghostview</a>: <a href="#Ghostscript-installation">Ghostscript installation</a></li> -<li><a href="#index-EPSF-macros-374">EPSF macros</a>: <a href="#EPSF-macros">EPSF macros</a></li> -<li><a href="#index-EPSF_002c-generating-116">EPSF, generating</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-epsf_002esty-377"><code>epsf.sty</code></a>: <a href="#EPSF-macros">EPSF macros</a></li> -<li><a href="#index-epsf_002etex-376"><code>epsf.tex</code></a>: <a href="#EPSF-macros">EPSF macros</a></li> -<li><a href="#index-Epson-printers-34">Epson printers</a>: <a href="#Ghostscript-installation">Ghostscript installation</a></li> -<li><a href="#index-error-messages-from-printer-64">error messages from printer</a>: <a href="#Printer-errors">Printer errors</a></li> -<li><a href="#index-even-pages-only-98">even pages only</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-examples-of-literal-PostScript-471">examples of literal PostScript</a>: <a href="#Literal-examples">Literal examples</a></li> -<li><a href="#index-expanded-fonts-652">expanded fonts</a>: <a href="#psfonts_002emap">psfonts.map</a></li> -<li><a href="#index-expanded-fonts-634">expanded fonts</a>: <a href="#Afm2tfm-options">Afm2tfm options</a></li> -<li><a href="#index-expanded-fonts-620">expanded fonts</a>: <a href="#Special-font-effects">Special font effects</a></li> -<li><a href="#index-expansion_002c-of-virtual-fonts-547">expansion, of virtual fonts</a>: <a href="#Virtual-fonts">Virtual fonts</a></li> -<li><a href="#index-extended-URL-501">extended URL</a>: <a href="#Hypertext-specials">Hypertext specials</a></li> -<li><a href="#index-ExtendFont-622"><code>ExtendFont</code></a>: <a href="#Special-font-effects">Special font effects</a></li> -<li><a href="#index-extra-characters_002c-accessing-593">extra characters, accessing</a>: <a href="#Changing-PostScript-encodings">Changing PostScript encodings</a></li> -<li><a href="#index-F-_0040r_007bconfig-command-_0028filter_0029_007d-284"><code>F </code><span class="roman">config command (filter)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-f-_0040r_007bconfig-command-_0028filter_0029_007d-283"><code>f </code><span class="roman">config command (filter)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-failure_002c-and-printer-errors-65">failure, and printer errors</a>: <a href="#Printer-errors">Printer errors</a></li> -<li><a href="#index-failure_002c-of-long-documents-71">failure, of long documents</a>: <a href="#Long-documents-fail">Long documents fail</a></li> -<li><a href="#index-failure_002c-to-include-graphics-74">failure, to include graphics</a>: <a href="#Including-graphics-fails">Including graphics fails</a></li> -<li><a href="#index-failure_002c-to-print-at-all-53">failure, to print at all</a>: <a href="#No-output">No output</a></li> -<li><a href="#index-fallback-resolutions-314">fallback resolutions</a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-figures-and-fonts-419">figures and fonts</a>: <a href="#Fonts-in-figures">Fonts in figures</a></li> -<li><a href="#index-figures_002c-natural-size-381">figures, natural size</a>: <a href="#EPSF-macros">EPSF macros</a></li> -<li><a href="#index-figures_002c-scaling-385">figures, scaling</a>: <a href="#EPSF-scaling">EPSF scaling</a></li> -<li><a href="#index-filter_002c-running-as-a-120">filter, running as a</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-first-page-printed-190">first page printed</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-font-concepts-513">font concepts</a>: <a href="#Font-concepts">Font concepts</a></li> -<li><a href="#index-font-generation_002c-avoiding-158">font generation, avoiding</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-fontinst-579"><code>fontinst</code></a>: <a href="#Invoking-afm2tfm">Invoking afm2tfm</a></li> -<li><a href="#index-fonts_002c-as-header-files-433">fonts, as header files</a>: <a href="#Including-headers-from-TeX">Including headers from TeX</a></li> -<li><a href="#index-fonts_002c-changing-encoding-of-583">fonts, changing encoding of</a>: <a href="#Changing-font-encodings">Changing font encodings</a></li> -<li><a href="#index-fonts_002c-downloading-649">fonts, downloading</a>: <a href="#psfonts_002emap">psfonts.map</a></li> -<li><a href="#index-fonts_002c-expanded-621">fonts, expanded</a>: <a href="#Special-font-effects">Special font effects</a></li> -<li><a href="#index-fonts_002c-in-PostScript-figures-420">fonts, in PostScript figures</a>: <a href="#Fonts-in-figures">Fonts in figures</a></li> -<li><a href="#index-fonts_002c-installation-of-PostScript-15">fonts, installation of PostScript</a>: <a href="#PostScript-font-installation">PostScript font installation</a></li> -<li><a href="#index-fonts_002c-installing-573">fonts, installing</a>: <a href="#Making-a-font-available">Making a font available</a></li> -<li><a href="#index-fonts_002c-outlined-627">fonts, outlined</a>: <a href="#Special-font-effects">Special font effects</a></li> -<li><a href="#index-fonts_002c-slanted-617">fonts, slanted</a>: <a href="#Special-font-effects">Special font effects</a></li> -<li><a href="#index-fonts_002c-small-caps-624">fonts, small caps</a>: <a href="#Special-font-effects">Special font effects</a></li> -<li><a href="#index-fonts_002c-system-PostScript-27">fonts, system PostScript</a>: <a href="#PostScript-font-installation">PostScript font installation</a></li> -<li><a href="#index-G-_0040r_007bcharacter-shifting-config-command_007d-285"><code>G </code><span class="roman">character shifting config command</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-gf-files-541">gf files</a>: <a href="#Glyph-files">Glyph files</a></li> -<li><a href="#index-gftopk-542"><code>gftopk</code></a>: <a href="#Glyph-files">Glyph files</a></li> -<li><a href="#index-Ghostscript-installation-31">Ghostscript installation</a>: <a href="#Ghostscript-installation">Ghostscript installation</a></li> -<li><a href="#index-ghostview-41"><code>ghostview</code></a>: <a href="#Ghostscript-installation">Ghostscript installation</a></li> -<li><a href="#index-Ghostview_002c-and-no-_0040samp_007bN_007d-42">Ghostview, and no ‘<samp><span class="samp">N</span></samp>’</a>: <a href="#Ghostscript-installation">Ghostscript installation</a></li> -<li><a href="#index-glyph-files-527">glyph files</a>: <a href="#Glyph-files">Glyph files</a></li> -<li><a href="#index-GLYPHFONTS_0040r_007b_002c-overrides_007d-P-308"><code>GLYPHFONTS</code><span class="roman">, overrides</span><code> P</code></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-GNU-Ghostscript-39">GNU Ghostscript</a>: <a href="#Ghostscript-installation">Ghostscript installation</a></li> -<li><a href="#index-gnuplot-418"><code>gnuplot</code></a>: <a href="#Dynamic-creation-of-graphics">Dynamic creation of graphics</a></li> -<li><a href="#index-graphics-inclusion-fails-73">graphics inclusion fails</a>: <a href="#Including-graphics-fails">Including graphics fails</a></li> -<li><a href="#index-gs-_0040r_007binstallation_007d-32"><code>gs </code><span class="roman">installation</span></a>: <a href="#Ghostscript-installation">Ghostscript installation</a></li> -<li><a href="#index-gsave_0040r_007b_002f_007dgrestore_0040r_007b_002c-and-literal-PS_007d-473"><code>gsave</code><span class="roman">/</span><code>grestore</code><span class="roman">, and literal PS</span></a>: <a href="#Literal-examples">Literal examples</a></li> -<li><a href="#index-gsftopk-232"><code>gsftopk</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-h-_0040r_007bheader-downloading-config-command_007d-286"><code>h </code><span class="roman">header downloading config command</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-H-_0040r_007bheader-path-config-command_007d-287"><code>H </code><span class="roman">header path config command</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-Hafner_002c-Jim-670">Hafner, Jim</a>: <a href="#Color">Color</a></li> -<li><a href="#index-header-file_002c-downloading-133">header file, downloading</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-header-files_002c-defined-422">header files, defined</a>: <a href="#Header-files">Header files</a></li> -<li><a href="#index-header-path_002c-defining-288">header path, defining</a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-header_003d_0040var_007bfile_007d-_005cspecial-430"><code>header=</code><var>file</var><code> \special</code></a>: <a href="#Including-headers-from-TeX">Including headers from TeX</a></li> -<li><a href="#index-headers-and-memory-usage-444">headers and memory usage</a>: <a href="#Headers-and-memory-usage">Headers and memory usage</a></li> -<li><a href="#index-headers_002c-including-from-the-command-line-440">headers, including from the command line</a>: <a href="#Including-headers-from-the-command-line">Including headers from the command line</a></li> -<li><a href="#index-headers_002c-including-in-_0040TeX_007b_007d-432">headers, including in TeX</a>: <a href="#Including-headers-from-TeX">Including headers from TeX</a></li> -<li><a href="#index-hints-570">hints</a>: <a href="#PostScript-typesetting">PostScript typesetting</a></li> -<li><a href="#index-hoffset-_0040r_007b_0028_0040samp_007bpsfile_007d-special-option_0029_007d-399"><code>hoffset </code><span class="roman">(‘</span><samp><span class="samp">psfile</span></samp><span class="roman">’ special option)</span></a>: <a href="#psfile-special">psfile special</a></li> -<li><a href="#index-HP-printers-and-Type-1-fonts-30">HP printers and Type 1 fonts</a>: <a href="#PostScript-font-installation">PostScript font installation</a></li> -<li><a href="#index-HP4Si-printer-and-paper-trays-356">HP4Si printer and paper trays</a>: <a href="#Paper-trays">Paper trays</a></li> -<li><a href="#index-href-505"><code>href</code></a>: <a href="#Hypertext-specials">Hypertext specials</a></li> -<li><a href="#index-hscale-_0040r_007b_0028_0040samp_007bpsfile_007d-special-option_0029_007d-403"><code>hscale </code><span class="roman">(‘</span><samp><span class="samp">psfile</span></samp><span class="roman">’ special option)</span></a>: <a href="#psfile-special">psfile special</a></li> -<li><a href="#index-hsize-_0040r_007b_0028_0040samp_007bpsfile_007d-special-option_0029_007d-401"><code>hsize </code><span class="roman">(‘</span><samp><span class="samp">psfile</span></samp><span class="roman">’ special option)</span></a>: <a href="#psfile-special">psfile special</a></li> -<li><a href="#index-html-_0040r_007bspecials_007d-477"><code>html </code><span class="roman">specials</span></a>: <a href="#Hypertext">Hypertext</a></li> -<li><a href="#index-html-_0040r_007bspecials_002c-and-_0040samp_007b_002dz_007d_007d-245"><code>html </code><span class="roman">specials, and ‘</span><samp><span class="samp">-z</span></samp><span class="roman">’</span></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_0040code_007bhttp_003a_002f_002fwww_002ewin_002etue_002enl_002f_007edickie_002fidvi_007d-481"><code>http://www.win.tue.nl/~dickie/idvi</code></a>: <a href="#Hypertext">Hypertext</a></li> -<li><a href="#index-g_t_0040code_007bhttp_003a_002f_002fxxx_002elanl_002egov_002fhypertex_007d-482"><code>http://xxx.lanl.gov/hypertex</code></a>: <a href="#Hypertext">Hypertext</a></li> -<li><a href="#index-Hungarian-umlaut-599">Hungarian umlaut</a>: <a href="#Reencoding-with-Afm2tfm">Reencoding with Afm2tfm</a></li> -<li><a href="#index-hyperdvi-extensions_002c-enabling-242">hyperdvi extensions, enabling</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-hypertext-and-bitmap-fonts-490">hypertext and bitmap fonts</a>: <a href="#Hypertext-caveats">Hypertext caveats</a></li> -<li><a href="#index-hypertext-caveats-488">hypertext caveats</a>: <a href="#Hypertext-caveats">Hypertext caveats</a></li> -<li><a href="#index-hypertext-specials-497">hypertext specials</a>: <a href="#Hypertext-specials">Hypertext specials</a></li> -<li><a href="#index-hypertext-support-475">hypertext support</a>: <a href="#Hypertext">Hypertext</a></li> -<li><a href="#index-i-_0040r_007bconfig-command-_0028pages_002fsection_0029_007d-290"><code>i </code><span class="roman">config command (pages/section)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-idvi-_0040r_007bJava-DVI-reader_007d-486"><code>idvi </code><span class="roman">Java DVI reader</span></a>: <a href="#Hypertext">Hypertext</a></li> -<li><a href="#index-Illustrator_002c-workaround-for-75">Illustrator, workaround for</a>: <a href="#Including-graphics-fails">Including graphics fails</a></li> -<li><a href="#index-img-509"><code>img</code></a>: <a href="#Hypertext-specials">Hypertext specials</a></li> -<li><a href="#index-including-graphics-fails-72">including graphics fails</a>: <a href="#Including-graphics-fails">Including graphics fails</a></li> -<li><a href="#index-including-headers-from-the-command-line-438">including headers from the command line</a>: <a href="#Including-headers-from-the-command-line">Including headers from the command line</a></li> -<li><a href="#index-including-headers-in-_0040TeX_007b_007d-429">including headers in TeX</a>: <a href="#Including-headers-from-TeX">Including headers from TeX</a></li> -<li><a href="#index-installation-of-_0040file_007bconfig_002eps_007d-6">installation of <samp><span class="file">config.ps</span></samp></a>: <a href="#config_002eps-installation">config.ps installation</a></li> -<li><a href="#index-installation-of-PostScript-fonts-14">installation of PostScript fonts</a>: <a href="#PostScript-font-installation">PostScript font installation</a></li> -<li><a href="#index-installation_002c-of-Dvips-4">installation, of Dvips</a>: <a href="#Installation">Installation</a></li> -<li><a href="#index-installing-fonts-572">installing fonts</a>: <a href="#Making-a-font-available">Making a font available</a></li> -<li><a href="#index-interaction-with-PostScript-359">interaction with PostScript</a>: <a href="#Interaction-with-PostScript">Interaction with PostScript</a></li> -<li><a href="#index-inverted-output-60">inverted output</a>: <a href="#Small-or-inverted">Small or inverted</a></li> -<li><a href="#index-invoking-Dvips-79">invoking Dvips</a>: <a href="#Invoking-Dvips">Invoking Dvips</a></li> -<li><a href="#index-j-_0040r_007bconfig-command-_0028partial-font-downloading_0029_007d-291"><code>j </code><span class="roman">config command (partial font downloading)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-Java-DVI-reader-485">Java DVI reader</a>: <a href="#Hypertext">Hypertext</a></li> -<li><a href="#index-Jeffrey_002c-Alan-581">Jeffrey, Alan</a>: <a href="#Invoking-afm2tfm">Invoking afm2tfm</a></li> -<li><a href="#index-K-_0040r_007bconfig-command-_0028comment_002dremoval_0029_007d-292"><code>K </code><span class="roman">config command (comment-removal)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-kerning_002c-defined-515">kerning, defined</a>: <a href="#Metric-files">Metric files</a></li> -<li><a href="#index-KPATHSEA_005fDEBUG-250"><code>KPATHSEA_DEBUG</code></a>: <a href="#Environment-variables">Environment variables</a></li> -<li><a href="#index-landscape-orientation_002c-defined-338">landscape orientation, defined</a>: <a href="#Paper-size-and-landscape">Paper size and landscape</a></li> -<li><a href="#index-landscape-papertype-221">landscape papertype</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-landscape_0040r_007b_002c-as-_0040code_007b_005cspecial_007d_007d-341"><code>landscape</code><span class="roman">, as </span><code>\special</code></a>: <a href="#papersize-special">papersize special</a></li> -<li><a href="#index-last-page-printed-147">last page printed</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-last_002dresort-font-scaling_002c-with-_0040code_007bDVIPSSIZES_007d-257">last-resort font scaling, with <code>DVIPSSIZES</code></a>: <a href="#Environment-variables">Environment variables</a></li> -<li><a href="#index-last_002dresort-scaling_002c-with-_0040code_007bR_007d-316">last-resort scaling, with <code>R</code></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-ledger-papertype-218">ledger papertype</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-legal-papertype-217">legal papertype</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-letter-_0040r_007bpaper-size_007d-349"><code>letter </code><span class="roman">paper size</span></a>: <a href="#Config-file-paper-sizes">Config file paper sizes</a></li> -<li><a href="#index-letter-papertype-216">letter papertype</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-letterhead-tray-358">letterhead tray</a>: <a href="#Paper-trays">Paper trays</a></li> -<li><a href="#index-letterSize-_0040r_007bpaper-size_007d-351"><code>letterSize </code><span class="roman">paper size</span></a>: <a href="#Config-file-paper-sizes">Config file paper sizes</a></li> -<li><a href="#index-ligature-operations-612">ligature operations</a>: <a href="#Encoding-file-format">Encoding file format</a></li> -<li><a href="#index-ligature_002c-defined-516">ligature, defined</a>: <a href="#Metric-files">Metric files</a></li> -<li><a href="#index-LIGKERN-_0040r_007bencoding-file-command_007d-610"><code>LIGKERN </code><span class="roman">encoding file command</span></a>: <a href="#Encoding-file-format">Encoding file format</a></li> -<li><a href="#index-lines-in-figures_002c-wrong-width-397">lines in figures, wrong width</a>: <a href="#EPSF-clipping">EPSF clipping</a></li> -<li><a href="#index-links_002c-hypertext-506">links, hypertext</a>: <a href="#Hypertext-specials">Hypertext specials</a></li> -<li><a href="#index-literal-headers-457">literal headers</a>: <a href="#Literal-headers">Literal headers</a></li> -<li><a href="#index-literal-PostScript_002c-examples-470">literal PostScript, examples</a>: <a href="#Literal-examples">Literal examples</a></li> -<li><a href="#index-literal-PostScript_002c-using-450">literal PostScript, using</a>: <a href="#Literal-PS">Literal PS</a></li> -<li><a href="#index-llx-_0040r_007b_0028_0040samp_007bpsfile_007d-special-option_0029_007d-407"><code>llx </code><span class="roman">(‘</span><samp><span class="samp">psfile</span></samp><span class="roman">’ special option)</span></a>: <a href="#psfile-special">psfile special</a></li> -<li><a href="#index-lly-_0040r_007b_0028_0040samp_007bpsfile_007d-special-option_0029_007d-408"><code>lly </code><span class="roman">(‘</span><samp><span class="samp">psfile</span></samp><span class="roman">’ special option)</span></a>: <a href="#psfile-special">psfile special</a></li> -<li><a href="#index-long-documents-not-printing-70">long documents not printing</a>: <a href="#Long-documents-fail">Long documents fail</a></li> -<li><a href="#index-low-characters_002c-shifting-130">low characters, shifting</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-lpr-spooler_002c-MS_002dDOS-emulation-182">lpr spooler, MS-DOS emulation</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-Lucida_002c-installing-19">Lucida, installing</a>: <a href="#PostScript-font-installation">PostScript font installation</a></li> -<li><a href="#index-m-_0040r_007bconfig-command-_0028available-memory_0029_007d-293"><code>m </code><span class="roman">config command (available memory)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-M-_0040r_007bconfig-command-_0028mf-mode_0029_007d-296"><code>M </code><span class="roman">config command (mf mode)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-macros-for-color-671">macros for color</a>: <a href="#Color-macro-files">Color macro files</a></li> -<li><a href="#index-macros-for-epsf-inclusion-375">macros for epsf inclusion</a>: <a href="#EPSF-macros">EPSF macros</a></li> -<li><a href="#index-macros-for-epsf-inclusion-372">macros for epsf inclusion</a>: <a href="#g_t_005cincludegraphics">\includegraphics</a></li> -<li><a href="#index-magnification_002c-DVI-390">magnification, DVI</a>: <a href="#EPSF-scaling">EPSF scaling</a></li> -<li><a href="#index-magnification_002c-overriding-DVI-235">magnification, overriding DVI</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-magnification_002c-vertical-238">magnification, vertical</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-mailcap-_0040r_007band-hypertext_007d-510"><code>mailcap </code><span class="roman">and hypertext</span></a>: <a href="#Hypertext-specials">Hypertext specials</a></li> -<li><a href="#index-manual-feed-152">manual feed</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-maxdrift-112">maxdrift</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-maximum-pages-printed-164">maximum pages printed</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-media-215">media</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-memory-available-294">memory available</a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-memory-of-printer-exhausted-69">memory of printer exhausted</a>: <a href="#Printer-errors">Printer errors</a></li> -<li><a href="#index-memory-usage_002c-and-headers-445">memory usage, and headers</a>: <a href="#Headers-and-memory-usage">Headers and memory usage</a></li> -<li><a href="#index-memory_002c-conserving-90">memory, conserving</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-memory_002c-used-by-PostScript-fonts-576">memory, used by PostScript fonts</a>: <a href="#Making-a-font-available">Making a font available</a></li> -<li><a href="#index-Metafont-ligature-operations-613">Metafont ligature operations</a>: <a href="#Encoding-file-format">Encoding file format</a></li> -<li><a href="#index-Metafont-mode_002c-specifying-156">Metafont mode, specifying</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-Metafont-source-files-538">Metafont source files</a>: <a href="#Glyph-files">Glyph files</a></li> -<li><a href="#index-metric-files-514">metric files</a>: <a href="#Metric-files">Metric files</a></li> -<li><a href="#index-Minion-typeface-family-667">Minion typeface family</a>: <a href="#psfonts_002emap">psfonts.map</a></li> -<li><a href="#index-missfont_002elog-160"><code>missfont.log</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-MISSFONT_005fLOG-162"><code>MISSFONT_LOG</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-Mitsubishi-Shinko-CHC_002dS446i-printer-57">Mitsubishi Shinko CHC-S446i printer</a>: <a href="#No-output">No output</a></li> -<li><a href="#index-mkdvipspapers-347"><code>mkdvipspapers</code></a>: <a href="#Config-file-paper-sizes">Config file paper sizes</a></li> -<li><a href="#index-mktexpk_0040r_007b_002c-avoiding_007d-159"><code>mktexpk</code><span class="roman">, avoiding</span></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-mktexpk_0040r_007b_002c-changing-name_007d-254"><code>mktexpk</code><span class="roman">, changing name</span></a>: <a href="#Environment-variables">Environment variables</a></li> -<li><a href="#index-mode-name_002c-specifying-155">mode name, specifying</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-Monotype-fonts-20">Monotype fonts</a>: <a href="#PostScript-font-installation">PostScript font installation</a></li> -<li><a href="#index-Monotype-fonts_002c-installing-24">Monotype fonts, installing</a>: <a href="#PostScript-font-installation">PostScript font installation</a></li> -<li><a href="#index-mtpk-231"><code>mtpk</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-multiple-master-fonts-666">multiple master fonts</a>: <a href="#psfonts_002emap">psfonts.map</a></li> -<li><a href="#index-multiple-output-files-137">multiple output files</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-multiple-paper-trays-355">multiple paper trays</a>: <a href="#Paper-trays">Paper trays</a></li> -<li><a href="#index-Murphy_002c-Tim-503">Murphy, Tim</a>: <a href="#Hypertext-specials">Hypertext specials</a></li> -<li><a href="#index-N-_0040r_007bEPS_002ddisabling-config-command_007d-297"><code>N </code><span class="roman">EPS-disabling config command</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-name-507"><code>name</code></a>: <a href="#Hypertext-specials">Hypertext specials</a></li> -<li><a href="#index-narrow-fonts-654">narrow fonts</a>: <a href="#psfonts_002emap">psfonts.map</a></li> -<li><a href="#index-no-output-at-all-52">no output at all</a>: <a href="#No-output">No output</a></li> -<li><a href="#index-non_002dprinting-characters_002c-shifting-131">non-printing characters, shifting</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-non_002dresident-fonts-647">non-resident fonts</a>: <a href="#psfonts_002emap">psfonts.map</a></li> -<li><a href="#index-nopaper_0040r_007b_002c-paper-format-for-_0040samp_007b_002dt_007d_007d-346"><code>nopaper</code><span class="roman">, paper format for ‘</span><samp><span class="samp">-t</span></samp><span class="roman">’</span></a>: <a href="#Config-file-paper-sizes">Config file paper sizes</a></li> -<li><a href="#index-O-_0040r_007bconfig-command-_0028offset_0029_007d-300"><code>O </code><span class="roman">config command (offset)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-o-_0040r_007bconfig-command-_0028output-file_0029_007d-298"><code>o </code><span class="roman">config command (output file)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-oblique-fonts-615">oblique fonts</a>: <a href="#Special-font-effects">Special font effects</a></li> -<li><a href="#index-octal-character-codes-637">octal character codes</a>: <a href="#Afm2tfm-options">Afm2tfm options</a></li> -<li><a href="#index-odd-pages-only-92">odd pages only</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-offset-pages-185">offset pages</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-Omega-extensions-171">Omega extensions</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-option_002c-details-of-83">option, details of</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-options_002c-debugging-50">options, debugging</a>: <a href="#Debug-options">Debug options</a></li> -<li><a href="#index-options_002c-Dvips-78">options, Dvips</a>: <a href="#Invoking-Dvips">Invoking Dvips</a></li> -<li><a href="#index-options_002c-reading-from-standard-input-85">options, reading from standard input</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-options_002c-summary-81">options, summary</a>: <a href="#Option-summary">Option summary</a></li> -<li><a href="#index-options_002c-to-Afm2tfm-628">options, to Afm2tfm</a>: <a href="#Afm2tfm-options">Afm2tfm options</a></li> -<li><a href="#index-outline-fonts-626">outline fonts</a>: <a href="#Special-font-effects">Special font effects</a></li> -<li><a href="#index-outline-fonts-528">outline fonts</a>: <a href="#Glyph-files">Glyph files</a></li> -<li><a href="#index-output-file_002c-sectioning-of-447">output file, sectioning of</a>: <a href="#Headers-and-memory-usage">Headers and memory usage</a></li> -<li><a href="#index-output-file_002c-setting-299">output file, setting</a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-output-files_002c-multiple-138">output files, multiple</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-output_002c-inverted-59">output, inverted</a>: <a href="#Small-or-inverted">Small or inverted</a></li> -<li><a href="#index-output_002c-none-51">output, none</a>: <a href="#No-output">No output</a></li> -<li><a href="#index-output_002c-redirecting-176">output, redirecting</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-output_002c-too-small-58">output, too small</a>: <a href="#Small-or-inverted">Small or inverted</a></li> -<li><a href="#index-p-_0040r_007bconfig-command-_0028font-aliases_0029_007d-301"><code>p </code><span class="roman">config command (font aliases)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-P-_0040r_007bconfig-command-_0028PK-path_0029_007d-305"><code>P </code><span class="roman">config command (PK path)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-page-range-195">page range</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-page_002c-first-printed-191">page, first printed</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-page_002c-last-printed-148">page, last printed</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-pages_002c-maximum-printed-165">pages, maximum printed</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-PaintType-625"><code>PaintType</code></a>: <a href="#Special-font-effects">Special font effects</a></li> -<li><a href="#index-Pantone-colors-674">Pantone colors</a>: <a href="#Color-macro-files">Color macro files</a></li> -<li><a href="#index-paper-size-configuration-file-command-343">paper size configuration file command</a>: <a href="#Config-file-paper-sizes">Config file paper sizes</a></li> -<li><a href="#index-paper-size_002c-default-8">paper size, default</a>: <a href="#config_002eps-installation">config.ps installation</a></li> -<li><a href="#index-paper-size_002c-general-337">paper size, general</a>: <a href="#Paper-size-and-landscape">Paper size and landscape</a></li> -<li><a href="#index-paper-trays-353">paper trays</a>: <a href="#Paper-trays">Paper trays</a></li> -<li><a href="#index-paper-type-214">paper type</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-papersize-_0040r_007bspecial_007d-340"><code>papersize </code><span class="roman">special</span></a>: <a href="#papersize-special">papersize special</a></li> -<li><a href="#index-papersize-special_002c-and-no-_0040samp_007b_002dt_007d-222">papersize special, and no ‘<samp><span class="samp">-t</span></samp>’</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-partial-font-downloading-663">partial font downloading</a>: <a href="#psfonts_002emap">psfonts.map</a></li> -<li><a href="#index-PDF-files_002c-font-quality-493">PDF files, font quality</a>: <a href="#Hypertext-caveats">Hypertext caveats</a></li> -<li><a href="#index-PDF-files_002c-making-480">PDF files, making</a>: <a href="#Hypertext">Hypertext</a></li> -<li><a href="#index-PDF-files_002c-making-37">PDF files, making</a>: <a href="#Ghostscript-installation">Ghostscript installation</a></li> -<li><a href="#index-PDF-files_002c-option-for-244">PDF files, option for</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-pdfmark-478"><code>pdfmark</code></a>: <a href="#Hypertext">Hypertext</a></li> -<li><a href="#index-pfa-files-532">pfa files</a>: <a href="#Glyph-files">Glyph files</a></li> -<li><a href="#index-pfb-files-533">pfb files</a>: <a href="#Glyph-files">Glyph files</a></li> -<li><a href="#index-pfb-files_002c-automatically-unpacked-662">pfb files, automatically unpacked</a>: <a href="#psfonts_002emap">psfonts.map</a></li> -<li><a href="#index-pfm-files-525">pfm files</a>: <a href="#Metric-files">Metric files</a></li> -<li><a href="#index-Phaser-printer_002c-used-for-color-calibration-684">Phaser printer, used for color calibration</a>: <a href="#Color-device-configuration">Color device configuration</a></li> -<li><a href="#index-physical-page-number_002c-and-_0040samp_007b_002dl_007d-149">physical page number, and ‘<samp><span class="samp">-l</span></samp>’</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-physical-page-number_002c-and-_0040samp_007b_002dp_007d-192">physical page number, and ‘<samp><span class="samp">-p</span></samp>’</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-physical-page-number_002c-and-_0040code_007bbop_002dhook_007d-468">physical page number, and <code>bop-hook</code></a>: <a href="#PostScript-hooks">PostScript hooks</a></li> -<li><a href="#index-pipes_002c-not-readable-122">pipes, not readable</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-pk-files-539">pk files</a>: <a href="#Glyph-files">Glyph files</a></li> -<li><a href="#index-PKFONTS_0040r_007b_002c-overrides_007d-P-306"><code>PKFONTS</code><span class="roman">, overrides</span><code> P</code></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-plotfile_0040r_007b_002c-_0040samp_007bps_007d-subspecial_007d-455"><code>plotfile</code><span class="roman">, ‘</span><samp><span class="samp">ps</span></samp><span class="roman">’ subspecial</span></a>: <a href="#ps-special">ps special</a></li> -<li><a href="#index-pltotf-523"><code>pltotf</code></a>: <a href="#Metric-files">Metric files</a></li> -<li><a href="#index-popen-_0040r_007bfor-output_007d-178"><code>popen </code><span class="roman">for output</span></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-portrait-orientation_002c-defined-339">portrait orientation, defined</a>: <a href="#Paper-size-and-landscape">Paper size and landscape</a></li> -<li><a href="#index-positioning-accuracy-114">positioning accuracy</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-post-_0040r_007bcode-after-headers_007d-437"><code>post </code><span class="roman">code after headers</span></a>: <a href="#Including-headers-from-TeX">Including headers from TeX</a></li> -<li><a href="#index-PostScript-code_002c-literal-451">PostScript code, literal</a>: <a href="#Literal-PS">Literal PS</a></li> -<li><a href="#index-PostScript-encoding-551">PostScript encoding</a>: <a href="#Encodings">Encodings</a></li> -<li><a href="#index-PostScript-encoding_002c-changing-589">PostScript encoding, changing</a>: <a href="#Changing-PostScript-encodings">Changing PostScript encodings</a></li> -<li><a href="#index-PostScript-font-alias-file-302">PostScript font alias file</a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-PostScript-font-alias-file-225">PostScript font alias file</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-PostScript-fonts-512">PostScript fonts</a>: <a href="#PostScript-fonts">PostScript fonts</a></li> -<li><a href="#index-PostScript-fonts_002c-installing-16">PostScript fonts, installing</a>: <a href="#PostScript-font-installation">PostScript font installation</a></li> -<li><a href="#index-PostScript-fonts_002c-on-your-system-28">PostScript fonts, on your system</a>: <a href="#PostScript-font-installation">PostScript font installation</a></li> -<li><a href="#index-PostScript-header-files-423">PostScript header files</a>: <a href="#Header-files">Header files</a></li> -<li><a href="#index-PostScript-hooks-461">PostScript hooks</a>: <a href="#PostScript-hooks">PostScript hooks</a></li> -<li><a href="#index-PostScript-interaction-360">PostScript interaction</a>: <a href="#Interaction-with-PostScript">Interaction with PostScript</a></li> -<li><a href="#index-PostScript-previewers-36">PostScript previewers</a>: <a href="#Ghostscript-installation">Ghostscript installation</a></li> -<li><a href="#index-PostScript-units-363">PostScript units</a>: <a href="#Bounding-box">Bounding box</a></li> -<li><a href="#index-PowerPage-PostScript-implementation-55">PowerPage PostScript implementation</a>: <a href="#No-output">No output</a></li> -<li><a href="#index-pre-_0040r_007bcode-before-headers_007d-436"><code>pre </code><span class="roman">code before headers</span></a>: <a href="#Including-headers-from-TeX">Including headers from TeX</a></li> -<li><a href="#index-previewing-Dvips-output-35">previewing Dvips output</a>: <a href="#Ghostscript-installation">Ghostscript installation</a></li> -<li><a href="#index-PRINTER-258"><code>PRINTER</code></a>: <a href="#Environment-variables">Environment variables</a></li> -<li><a href="#index-printer-configuration-7">printer configuration</a>: <a href="#config_002eps-installation">config.ps installation</a></li> -<li><a href="#index-printer-configuration-file_002c-prototype-12">printer configuration file, prototype</a>: <a href="#config_002eps-installation">config.ps installation</a></li> -<li><a href="#index-printer-errors-63">printer errors</a>: <a href="#Printer-errors">Printer errors</a></li> -<li><a href="#index-printer-memory-295">printer memory</a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-printer-memory-exhausted-68">printer memory exhausted</a>: <a href="#Printer-errors">Printer errors</a></li> -<li><a href="#index-printer-offset-186">printer offset</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-PRINTER_0040r_007b_002c-and-config-file-searching_007d-268"><code>PRINTER</code><span class="roman">, and config file searching</span></a>: <a href="#Configuration-file-searching">Configuration file searching</a></li> -<li><a href="#index-PRINTER_0040r_007b_002c-avoided-with-_0040samp_007b_002df_007d_007d-123"><code>PRINTER</code><span class="roman">, avoided with ‘</span><samp><span class="samp">-f</span></samp><span class="roman">’</span></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-printer_002c-driving-directly-127">printer, driving directly</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-problems-46">problems</a>: <a href="#Diagnosing-problems">Diagnosing problems</a></li> -<li><a href="#index-property-list-files-521">property list files</a>: <a href="#Metric-files">Metric files</a></li> -<li><a href="#index-prototype-printer-configuration-file-11">prototype printer configuration file</a>: <a href="#config_002eps-installation">config.ps installation</a></li> -<li><a href="#index-ps-_0040r_007bspecial_007d-453"><code>ps </code><span class="roman">special</span></a>: <a href="#ps-special">ps special</a></li> -<li><a href="#index-psfile-_0040r_007bspecial_007d-398"><code>psfile </code><span class="roman">special</span></a>: <a href="#psfile-special">psfile special</a></li> -<li><a href="#index-psfonts_002emap-646"><code>psfonts.map</code></a>: <a href="#psfonts_002emap">psfonts.map</a></li> -<li><a href="#index-psfonts_002emap-619"><code>psfonts.map</code></a>: <a href="#Special-font-effects">Special font effects</a></li> -<li><a href="#index-psfonts_002emap-29"><code>psfonts.map</code></a>: <a href="#PostScript-font-installation">PostScript font installation</a></li> -<li><a href="#index-psheaderdir-424"><code>psheaderdir</code></a>: <a href="#Header-files">Header files</a></li> -<li><a href="#index-psi-character-missing-494">psi character missing</a>: <a href="#Hypertext-caveats">Hypertext caveats</a></li> -<li><a href="#index-pstopk-233"><code>pstopk</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-p_0040TeX_007b_007d-extensions-172">pTeX extensions</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-Q-_0040r_007bconfig-command-_0028quiet_0029_007d-311"><code>Q </code><span class="roman">config command (quiet)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-q-_0040r_007bconfig-command-_0028quiet_0029_007d-310"><code>q </code><span class="roman">config command (quiet)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-quiet-operation-200">quiet operation</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-r-_0040r_007bconfig-command-_0028page-reversal_0029_007d-312"><code>r </code><span class="roman">config command (page reversal)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-R-_0040r_007bfallback-resolution-config-command_007d-313"><code>R </code><span class="roman">fallback resolution config command</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-reencode_002f_002a_002eenc-559"><code>reencode/*.enc</code></a>: <a href="#Encodings">Encodings</a></li> -<li><a href="#index-reencoding-596">reencoding</a>: <a href="#Reencoding-with-Afm2tfm">Reencoding with Afm2tfm</a></li> -<li><a href="#index-reencoding-PostScript-fonts-655">reencoding PostScript fonts</a>: <a href="#psfonts_002emap">psfonts.map</a></li> -<li><a href="#index-registered-_0040r_007bcharacter_002c-accessing_007d-592"><code>registered </code><span class="roman">character, accessing</span></a>: <a href="#Changing-PostScript-encodings">Changing PostScript encodings</a></li> -<li><a href="#index-remapping-597">remapping</a>: <a href="#Reencoding-with-Afm2tfm">Reencoding with Afm2tfm</a></li> -<li><a href="#index-resident-fonts_002c-different-in-different-printers-303">resident fonts, different in different printers</a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-resident-fonts_002c-different-in-different-printers-226">resident fonts, different in different printers</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-resolution-237">resolution</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-resolution_002c-setting-110">resolution, setting</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-reverse-pagination-204">reverse pagination</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-rhi-_0040r_007b_0028_0040samp_007bpsfile_007d-special-option_0029_007d-411"><code>rhi </code><span class="roman">(‘</span><samp><span class="samp">psfile</span></samp><span class="roman">’ special option)</span></a>: <a href="#psfile-special">psfile special</a></li> -<li><a href="#index-Rokicki_002c-Tomas-1">Rokicki, Tomas</a>: <a href="#Why-Dvips">Why Dvips</a></li> -<li><a href="#index-rotate_002etex-456"><code>rotate.tex</code></a>: <a href="#ps-special">ps special</a></li> -<li><a href="#index-rwi-_0040r_007b_0028_0040samp_007bpsfile_007d-special-option_0029_007d-412"><code>rwi </code><span class="roman">(‘</span><samp><span class="samp">psfile</span></samp><span class="roman">’ special option)</span></a>: <a href="#psfile-special">psfile special</a></li> -<li><a href="#index-S-_0040r_007bconfig-command-_0028pict-path_0029_007d-321"><code>S </code><span class="roman">config command (pict path)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-s-_0040r_007bconfig-command-_0028save_002frestore_0029_007d-320"><code>s </code><span class="roman">config command (save/restore)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-save_002frestore_002c-and-inverted-output-62">save/restore, and inverted output</a>: <a href="#Small-or-inverted">Small or inverted</a></li> -<li><a href="#index-save_0040r_007b_002f_007drestore_0040r_007b_002c-and-literal-PS_007d-474"><code>save</code><span class="roman">/</span><code>restore</code><span class="roman">, and literal PS</span></a>: <a href="#Literal-examples">Literal examples</a></li> -<li><a href="#index-save_002frestore_002c-and-specials-454">save/restore, and specials</a>: <a href="#ps-special">ps special</a></li> -<li><a href="#index-save_002frestore_002c-generating-global-211">save/restore, generating global</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-scaleunit-413"><code>scaleunit</code></a>: <a href="#psfile-special">psfile special</a></li> -<li><a href="#index-scaling-of-figures-384">scaling of figures</a>: <a href="#EPSF-scaling">EPSF scaling</a></li> -<li><a href="#index-scaling-small-caps-632">scaling small caps</a>: <a href="#Afm2tfm-options">Afm2tfm options</a></li> -<li><a href="#index-Scandinavian-A-ring-601">Scandinavian A ring</a>: <a href="#Reencoding-with-Afm2tfm">Reencoding with Afm2tfm</a></li> -<li><a href="#index-screen-frequencies_002c-setting-443">screen frequencies, setting</a>: <a href="#Including-headers-from-the-command-line">Including headers from the command line</a></li> -<li><a href="#index-SDict-414"><code>SDict</code></a>: <a href="#psfile-special">psfile special</a></li> -<li><a href="#index-SDict-_0040r_007bdictionary_007d-458"><code>SDict </code><span class="roman">dictionary</span></a>: <a href="#Literal-headers">Literal headers</a></li> -<li><a href="#index-searching-config-files_002c-order-of-264">searching config files, order of</a>: <a href="#Configuration-file-searching">Configuration file searching</a></li> -<li><a href="#index-sections-of-output-file_002c-and-memory-446">sections of output file, and memory</a>: <a href="#Headers-and-memory-usage">Headers and memory usage</a></li> -<li><a href="#index-sections-output_002c-in-separate-files-136">sections output, in separate files</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-security-206">security</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-shell-command-execution_002c-disabling-207">shell command execution, disabling</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-shell-escape_002c-in-config-file-282">shell escape, in config file</a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-Shinko-CHC_002dS446i-printer-56">Shinko CHC-S446i printer</a>: <a href="#No-output">No output</a></li> -<li><a href="#index-show-_0040r_007bPostScript-operator_007d-562"><code>show </code><span class="roman">PostScript operator</span></a>: <a href="#PostScript-typesetting">PostScript typesetting</a></li> -<li><a href="#index-silent-operation-201">silent operation</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-simplex-mode-on-duplex-printers-442">simplex mode on duplex printers</a>: <a href="#Including-headers-from-the-command-line">Including headers from the command line</a></li> -<li><a href="#index-slanted-fonts-616">slanted fonts</a>: <a href="#Special-font-effects">Special font effects</a></li> -<li><a href="#index-slanted-fonts_002c-making-640">slanted fonts, making</a>: <a href="#Afm2tfm-options">Afm2tfm options</a></li> -<li><a href="#index-SlantFont-618"><code>SlantFont</code></a>: <a href="#Special-font-effects">Special font effects</a></li> -<li><a href="#index-small-caps-fonts-623">small caps fonts</a>: <a href="#Special-font-effects">Special font effects</a></li> -<li><a href="#index-Smith_002c-Arthur-499">Smith, Arthur</a>: <a href="#Hypertext-specials">Hypertext specials</a></li> -<li><a href="#index-Softkey-fonts-21">Softkey fonts</a>: <a href="#PostScript-font-installation">PostScript font installation</a></li> -<li><a href="#index-Softkey-fonts_002c-installing-25">Softkey fonts, installing</a>: <a href="#PostScript-font-installation">PostScript font installation</a></li> -<li><a href="#index-spaces_002c-dropped-trailing-496">spaces, dropped trailing</a>: <a href="#Hypertext-caveats">Hypertext caveats</a></li> -<li><a href="#index-specials_002c-hypertext-498">specials, hypertext</a>: <a href="#Hypertext-specials">Hypertext specials</a></li> -<li><a href="#index-splines-530">splines</a>: <a href="#Glyph-files">Glyph files</a></li> -<li><a href="#index-spooler_002c-lacking-128">spooler, lacking</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-spooling-to-lpr-on-MS_002dDOS-183">spooling to lpr on MS-DOS</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-standard-I_002fO-121">standard I/O</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-standard-input_002c-reading-options-from-86">standard input, reading options from</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-standard-output_002c-output-to-177">standard output, output to</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-standard-PostScript_002c-required-by-Ghostview-44">standard PostScript, required by Ghostview</a>: <a href="#Ghostscript-installation">Ghostscript installation</a></li> -<li><a href="#index-start_002dhook-464"><code>start-hook</code></a>: <a href="#PostScript-hooks">PostScript hooks</a></li> -<li><a href="#index-structured-comments-167">structured comments</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-system-_0040r_007bin-config-file_007d-280"><code>system </code><span class="roman">in config file</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-T-_0040r_007bconfig-command-_0028TFM-path_0029_007d-324"><code>T </code><span class="roman">config command (TFM path)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-Tektronix-Phaser-printer_002c-used-for-color-calibration-685">Tektronix Phaser printer, used for color calibration</a>: <a href="#Color-device-configuration">Color device configuration</a></li> -<li><a href="#index-testpage_002etex-187"><code>testpage.tex</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-g_t_0040TeX_007b_007d-encoding_002c-changing-585">TeX encoding, changing</a>: <a href="#Changing-TeX-encodings">Changing TeX encodings</a></li> -<li><a href="#index-g_t_0040TeX_007b_007d_002c-including-headers-in-431">TeX, including headers in</a>: <a href="#Including-headers-from-TeX">Including headers from TeX</a></li> -<li><a href="#index-TEXCONFIG-259"><code>TEXCONFIG</code></a>: <a href="#Environment-variables">Environment variables</a></li> -<li><a href="#index-TEXFONTS_0040r_007b_002c-overrides_007d-P-309"><code>TEXFONTS</code><span class="roman">, overrides</span><code> P</code></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-TEXFONTS_0040r_007b_002c-overrides_007d-T-326"><code>TEXFONTS</code><span class="roman">, overrides</span><code> T</code></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-TEXINPUTS_0040r_007b_002c-overrides_007d-S-323"><code>TEXINPUTS</code><span class="roman">, overrides</span><code> S</code></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-texmext_002eenc-556"><code>texmext.enc</code></a>: <a href="#Encodings">Encodings</a></li> -<li><a href="#index-TEXMFOUTPUT-161"><code>TEXMFOUTPUT</code></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-texmital_002eenc-557"><code>texmital.enc</code></a>: <a href="#Encodings">Encodings</a></li> -<li><a href="#index-texmsym_002eenc-587"><code>texmsym.enc</code></a>: <a href="#Changing-TeX-encodings">Changing TeX encodings</a></li> -<li><a href="#index-texmsym_002eenc-558"><code>texmsym.enc</code></a>: <a href="#Encodings">Encodings</a></li> -<li><a href="#index-TEXPICTS-261"><code>TEXPICTS</code></a>: <a href="#Environment-variables">Environment variables</a></li> -<li><a href="#index-TEXPICTS_0040r_007b_002c-overrides_007d-S-322"><code>TEXPICTS</code><span class="roman">, overrides</span><code> S</code></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-TEXPKS_0040r_007b_002c-overrides_007d-P-307"><code>TEXPKS</code><span class="roman">, overrides</span><code> P</code></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-TEXSIZES_0040r_007b_002c-overrides_007d-R-318"><code>TEXSIZES</code><span class="roman">, overrides</span><code> R</code></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-text-in-figures_002c-chopped-off-396">text in figures, chopped off</a>: <a href="#EPSF-clipping">EPSF clipping</a></li> -<li><a href="#index-tfm-files-519">tfm files</a>: <a href="#Metric-files">Metric files</a></li> -<li><a href="#index-TFMFONTS_0040r_007b_002c-overrides_007d-T-325"><code>TFMFONTS</code><span class="roman">, overrides</span><code> T</code></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-tftopl-522"><code>tftopl</code></a>: <a href="#Metric-files">Metric files</a></li> -<li><a href="#index-Theisen_002c-Tim-40">Theisen, Tim</a>: <a href="#Ghostscript-installation">Ghostscript installation</a></li> -<li><a href="#index-tight-bounding-box_002c-finding-117">tight bounding box, finding</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-too_002dsmall-output-61">too-small output</a>: <a href="#Small-or-inverted">Small or inverted</a></li> -<li><a href="#index-trademark-_0040r_007bcharacter_002c-accessing_007d-591"><code>trademark </code><span class="roman">character, accessing</span></a>: <a href="#Changing-PostScript-encodings">Changing PostScript encodings</a></li> -<li><a href="#index-trailing-spaces_002c-dropped-495">trailing spaces, dropped</a>: <a href="#Hypertext-caveats">Hypertext caveats</a></li> -<li><a href="#index-TranScript-168">TranScript</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-transforming-downloaded-fonts-651">transforming downloaded fonts</a>: <a href="#psfonts_002emap">psfonts.map</a></li> -<li><a href="#index-trouble-47">trouble</a>: <a href="#Diagnosing-problems">Diagnosing problems</a></li> -<li><a href="#index-Type-1-fonts-531">Type 1 fonts</a>: <a href="#Glyph-files">Glyph files</a></li> -<li><a href="#index-typesetting-in-PostScript-560">typesetting in PostScript</a>: <a href="#PostScript-typesetting">PostScript typesetting</a></li> -<li><a href="#index-U-_0040r_007bconfig-command-_0028Xerox-4045_0029_007d-327"><code>U </code><span class="roman">config command (Xerox 4045)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-uncollated-copies-103">uncollated copies</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-uncompressing-PostScript-417">uncompressing PostScript</a>: <a href="#Dynamic-creation-of-graphics">Dynamic creation of graphics</a></li> -<li><a href="#index-uniform-resource-locator-500">uniform resource locator</a>: <a href="#Hypertext-specials">Hypertext specials</a></li> -<li><a href="#index-unknown_0040r_007b_002c-paper-format-for-_0040samp_007b_002dt_007d_007d-345"><code>unknown</code><span class="roman">, paper format for ‘</span><samp><span class="samp">-t</span></samp><span class="roman">’</span></a>: <a href="#Config-file-paper-sizes">Config file paper sizes</a></li> -<li><a href="#index-unknown_0040r_007b_002c-paper-format-for-_0040samp_007b_002dt_007d_007d-342"><code>unknown</code><span class="roman">, paper format for ‘</span><samp><span class="samp">-t</span></samp><span class="roman">’</span></a>: <a href="#papersize-special">papersize special</a></li> -<li><a href="#index-URL_002c-definition-504">URL, definition</a>: <a href="#Hypertext-specials">Hypertext specials</a></li> -<li><a href="#index-URL_002c-extended-for-_0040TeX_007b_007d-502">URL, extended for TeX</a>: <a href="#Hypertext-specials">Hypertext specials</a></li> -<li><a href="#index-urx-_0040r_007b_0028_0040samp_007bpsfile_007d-special-option_0029_007d-409"><code>urx </code><span class="roman">(‘</span><samp><span class="samp">psfile</span></samp><span class="roman">’ special option)</span></a>: <a href="#psfile-special">psfile special</a></li> -<li><a href="#index-ury-_0040r_007b_0028_0040samp_007bpsfile_007d-special-option_0029_007d-410"><code>ury </code><span class="roman">(‘</span><samp><span class="samp">psfile</span></samp><span class="roman">’ special option)</span></a>: <a href="#psfile-special">psfile special</a></li> -<li><a href="#index-usage_002c-basic-80">usage, basic</a>: <a href="#Basic-usage">Basic usage</a></li> -<li><a href="#index-user_002ddefinable-colors-679">user-definable colors</a>: <a href="#User_002ddefinable-colors">User-definable colors</a></li> -<li><a href="#index-userdict_0040r_007b_002c-and-dictionary-files_007d-427"><code>userdict</code><span class="roman">, and dictionary files</span></a>: <a href="#Header-files">Header files</a></li> -<li><a href="#index-userdict_0040r_007b_002c-used-for-header-files_007d-134">userdict<span class="roman">, used for header files</span></a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-V-_0040r_007bconfig-command-_0028vf-path_0029_007d-328"><code>V </code><span class="roman">config command (vf path)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-verbose-EPSF-processing-383">verbose EPSF processing</a>: <a href="#EPSF-macros">EPSF macros</a></li> -<li><a href="#index-vf-files-544">vf files</a>: <a href="#Virtual-fonts">Virtual fonts</a></li> -<li><a href="#index-virtual-font-expansion-548">virtual font expansion</a>: <a href="#Virtual-fonts">Virtual fonts</a></li> -<li><a href="#index-virtual-font-path-329">virtual font path</a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-virtual-fonts-543">virtual fonts</a>: <a href="#Virtual-fonts">Virtual fonts</a></li> -<li><a href="#index-virtual-fonts_002c-creating-580">virtual fonts, creating</a>: <a href="#Invoking-afm2tfm">Invoking afm2tfm</a></li> -<li><a href="#index-VM-exhausted-67">VM exhausted</a>: <a href="#Printer-errors">Printer errors</a></li> -<li><a href="#index-VMusage-448"><code>VMusage</code></a>: <a href="#Headers-and-memory-usage">Headers and memory usage</a></li> -<li><a href="#index-voffset-_0040r_007b_0028_0040samp_007bpsfile_007d-special-option_0029_007d-400"><code>voffset </code><span class="roman">(‘</span><samp><span class="samp">psfile</span></samp><span class="roman">’ special option)</span></a>: <a href="#psfile-special">psfile special</a></li> -<li><a href="#index-vpl-files-545">vpl files</a>: <a href="#Virtual-fonts">Virtual fonts</a></li> -<li><a href="#index-vptovf-575"><code>vptovf</code></a>: <a href="#Making-a-font-available">Making a font available</a></li> -<li><a href="#index-vscale-_0040r_007b_0028_0040samp_007bpsfile_007d-special-option_0029_007d-404"><code>vscale </code><span class="roman">(‘</span><samp><span class="samp">psfile</span></samp><span class="roman">’ special option)</span></a>: <a href="#psfile-special">psfile special</a></li> -<li><a href="#index-vsize-_0040r_007b_0028_0040samp_007bpsfile_007d-special-option_0029_007d-402"><code>vsize </code><span class="roman">(‘</span><samp><span class="samp">psfile</span></samp><span class="roman">’ special option)</span></a>: <a href="#psfile-special">psfile special</a></li> -<li><a href="#index-W-_0040r_007bconfig-command-_0028warning_0029_007d-331"><code>W </code><span class="roman">config command (warning)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-warning-messages_002c-defining-332">warning messages, defining</a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-warnings_002c-suppressing-202">warnings, suppressing</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-whole-font-downloading-665">whole font downloading</a>: <a href="#psfonts_002emap">psfonts.map</a></li> -<li><a href="#index-wide-fonts-653">wide fonts</a>: <a href="#psfonts_002emap">psfonts.map</a></li> -<li><a href="#index-X-_0040r_007bconfig-command-_0028horizontal-resolution_0029_007d-333"><code>X </code><span class="roman">config command (horizontal resolution)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-Xerox-4045-228">Xerox 4045</a>: <a href="#Option-details">Option details</a></li> -<li><a href="#index-Y-_0040r_007bconfig-command-_0028vertical-resolution_0029_007d-334"><code>Y </code><span class="roman">config command (vertical resolution)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-Y_0026Y-fonts_002c-installing-26">Y&Y fonts, installing</a>: <a href="#PostScript-font-installation">PostScript font installation</a></li> -<li><a href="#index-Z-_0040r_007bconfig-command-_0028compression_0029_007d-335"><code>Z </code><span class="roman">config command (compression)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-z-_0040r_007bconfig-command-_0028secure-mode_0029_007d-336"><code>z </code><span class="roman">config command (secure mode)</span></a>: <a href="#Configuration-file-commands">Configuration file commands</a></li> -<li><a href="#index-g_t_007c-_0040r_007bstarting-output-filename_007d-181"><code>| </code><span class="roman">starting output filename</span></a>: <a href="#Option-details">Option details</a></li> - </ul><!-- INSTALLONLY --> -</body></html> - +<table><tr><th valign="top">Jump to: </th><td><a class="summary-letter" href="#Index_cp_symbol-1"><b>!</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-2"><b>"</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-3"><b>%</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-4"><b>(</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-5"><b>+</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-6"><b>-</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-7"><b>.</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-8"><b>/</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-9"><b>6</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-10"><b>8</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-11"><b><</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-12"><b>=</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-13"><b>@</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-14"><b>\</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-15"><b>|</b></a> + +<br> +<a class="summary-letter" href="#Index_cp_letter-A"><b>A</b></a> + +<a class="summary-letter" href="#Index_cp_letter-B"><b>B</b></a> + +<a class="summary-letter" href="#Index_cp_letter-C"><b>C</b></a> + +<a class="summary-letter" href="#Index_cp_letter-D"><b>D</b></a> + +<a class="summary-letter" href="#Index_cp_letter-E"><b>E</b></a> + +<a class="summary-letter" href="#Index_cp_letter-F"><b>F</b></a> + +<a class="summary-letter" href="#Index_cp_letter-G"><b>G</b></a> + +<a class="summary-letter" href="#Index_cp_letter-H"><b>H</b></a> + +<a class="summary-letter" href="#Index_cp_letter-I"><b>I</b></a> + +<a class="summary-letter" href="#Index_cp_letter-J"><b>J</b></a> + +<a class="summary-letter" href="#Index_cp_letter-K"><b>K</b></a> + +<a class="summary-letter" href="#Index_cp_letter-L"><b>L</b></a> + +<a class="summary-letter" href="#Index_cp_letter-M"><b>M</b></a> + +<a class="summary-letter" href="#Index_cp_letter-N"><b>N</b></a> + +<a class="summary-letter" href="#Index_cp_letter-O"><b>O</b></a> + +<a class="summary-letter" href="#Index_cp_letter-P"><b>P</b></a> + +<a class="summary-letter" href="#Index_cp_letter-Q"><b>Q</b></a> + +<a class="summary-letter" href="#Index_cp_letter-R"><b>R</b></a> + +<a class="summary-letter" href="#Index_cp_letter-S"><b>S</b></a> + +<a class="summary-letter" href="#Index_cp_letter-T"><b>T</b></a> + +<a class="summary-letter" href="#Index_cp_letter-U"><b>U</b></a> + +<a class="summary-letter" href="#Index_cp_letter-V"><b>V</b></a> + +<a class="summary-letter" href="#Index_cp_letter-W"><b>W</b></a> + +<a class="summary-letter" href="#Index_cp_letter-X"><b>X</b></a> + +<a class="summary-letter" href="#Index_cp_letter-Y"><b>Y</b></a> + +<a class="summary-letter" href="#Index_cp_letter-Z"><b>Z</b></a> + +</td></tr></table> +<table class="index-cp" border="0"> +<tr><td></td><th align="left">Index Entry</th><td> </td><th align="left"> Section</th></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-1">!</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_0021-special-_0028literal-PS-header_0029"><code>! <span class="roman">special (literal PS header)</span></code></a>:</td><td> </td><td valign="top"><a href="#Literal-headers">Literal headers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_0021-starting-output-filename"><code>! <span class="roman">starting output filename</span></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-2">"</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_0022-special-_0028literal-PostScript_0029"><code>" <span class="roman">special (literal PostScript)</span></code></a>:</td><td> </td><td valign="top"><a href="#g_t_0022-special">" special</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-3">%</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_0025_0025BoundingBox"><code>%%BoundingBox</code></a>:</td><td> </td><td valign="top"><a href="#Bounding-box">Bounding box</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_0025_0025Page_002c-and-multi_002dpage-information"><code>%%Page<span class="roman">, and multi-page information</span></code></a>:</td><td> </td><td valign="top"><a href="#PostScript-hooks">PostScript hooks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_0025_0025Page_002c-not-generating"><code>%%Page<span class="roman">, not generating</span></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_0025_0025Page_002c-removing"><code>%%Page<span class="roman">, removing</span></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_0025_0025Page_002c-required-by-Ghostview"><code>%%Page<span class="roman">, required by Ghostview</span></code></a>:</td><td> </td><td valign="top"><a href="#Ghostscript-installation">Ghostscript installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_0025_0025VMusage"><code>%%VMusage</code></a>:</td><td> </td><td valign="top"><a href="#Headers-and-memory-usage">Headers and memory usage</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_0025_002aFont"><code>%*Font</code></a>:</td><td> </td><td valign="top"><a href="#Fonts-in-figures">Fonts in figures</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-4">(</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_0028atend_0029_002c-bounding-box-specification"><code>(atend)<span class="roman">, bounding box specification</span></code></a>:</td><td> </td><td valign="top"><a href="#Bounding-box">Bounding box</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-5">+</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002bpsmapfile"><code>+<var>psmapfile</var></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-6">-</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d"><code>-</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d-as-output-filename"><code>- <span class="roman">as output filename</span></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dhelp"><code>--help</code></a>:</td><td> </td><td valign="top"><a href="#Option-summary">Option summary</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dhelp-1"><code>--help</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dversion"><code>--version</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002da"><code>-a</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dA"><code>-A</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dB"><code>-B</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002db-num"><code>-b <var>num</var></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dc-num"><code>-c <var>num</var></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dC-num"><code>-C <var>num</var></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dc-ratio"><code>-c <var>ratio</var></code></a>:</td><td> </td><td valign="top"><a href="#Afm2tfm-options">Afm2tfm options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dd-num"><code>-d <var>num</var></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dD-num"><code>-D <var>num</var></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dE"><code>-E</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002de-num"><code>-e <var>num</var></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002de-ratio"><code>-e <var>ratio</var></code></a>:</td><td> </td><td valign="top"><a href="#Afm2tfm-options">Afm2tfm options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002df"><code>-f</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dF"><code>-F</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dG"><code>-G</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dh-name"><code>-h <var>name</var></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002di"><code>-i</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dj-for-partial-font-downloading"><code>-j <span class="roman">for partial font downloading</span></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dK"><code>-K</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dk-for-cropmarks"><code>-k <span class="roman">for cropmarks</span></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dl-_005b_003d_005dnum"><code>-l [=]<var>num</var></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dm"><code>-m</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dM"><code>-M</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dmode"><code>-mode</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dmode-mode"><code>-mode <var>mode</var></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dN"><code>-N</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dn-num"><code>-n <var>num</var></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dnoomega"><code>-noomega</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dnoptex"><code>-noptex</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dO"><code>-O</code></a>:</td><td> </td><td valign="top"><a href="#Afm2tfm-options">Afm2tfm options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002do-name"><code>-o <var>name</var></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dO-x_002doffset_002cy_002doffset"><code>-O <var>x-offset</var>,<var>y-offset</var></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dP-printer"><code>-P <var>printer</var></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dp-ps_002denc"><code>-p <var>ps-enc</var></code></a>:</td><td> </td><td valign="top"><a href="#Changing-PostScript-encodings">Changing PostScript encodings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dp-ps_002denc-1"><code>-p <var>ps-enc</var></code></a>:</td><td> </td><td valign="top"><a href="#Afm2tfm-options">Afm2tfm options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dp-_005b_003d_005dnum"><code>-p [=]<var>num</var></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dpp-first_002dlast"><code>-pp <var>first</var>-<var>last</var></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dpp-range"><code>-pp <var>range</var></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dPprinter_002c-and-config-file-searching"><code>-P<var>printer</var><span class="roman">, and config file searching</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-searching">Configuration file searching</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dq"><code>-q</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dr"><code>-r</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dR"><code>-R</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002ds"><code>-s</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dS-num"><code>-S <var>num</var></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002ds-slant"><code>-s <var>slant</var></code></a>:</td><td> </td><td valign="top"><a href="#Afm2tfm-options">Afm2tfm options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dT-enc_002dfile"><code>-T <var>enc-file</var></code></a>:</td><td> </td><td valign="top"><a href="#Changing-both-encodings">Changing both encodings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dT-hsize_002cvsize"><code>-T <var>hsize</var>,<var>vsize</var></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dt-papertype"><code>-t <var>papertype</var></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dT-ps_002dtex_002denc"><code>-T <var>ps-tex-enc</var></code></a>:</td><td> </td><td valign="top"><a href="#Afm2tfm-options">Afm2tfm options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dt-tex_002denc"><code>-t <var>tex-enc</var></code></a>:</td><td> </td><td valign="top"><a href="#Changing-TeX-encodings">Changing TeX encodings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dt-tex_002denc-1"><code>-t <var>tex-enc</var></code></a>:</td><td> </td><td valign="top"><a href="#Afm2tfm-options">Afm2tfm options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dU"><code>-U</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002du"><code>-u</code></a>:</td><td> </td><td valign="top"><a href="#Afm2tfm-options">Afm2tfm options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002du-psmapfile"><code>-u <var>psmapfile</var></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dv"><code>-v</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dV"><code>-V</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dv-vpl_002dfile"><code>-v <var>vpl-file</var></code></a>:</td><td> </td><td valign="top"><a href="#Afm2tfm-options">Afm2tfm options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dV-vpl_002dfile"><code>-V <var>vpl-file</var></code></a>:</td><td> </td><td valign="top"><a href="#Afm2tfm-options">Afm2tfm options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dx-num"><code>-x <var>num</var></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dX-num"><code>-X <var>num</var></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dY-num"><code>-Y <var>num</var></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dz"><code>-z</code></a>:</td><td> </td><td valign="top"><a href="#Hypertext">Hypertext</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dZ-for-compressing-bitmap-fonts"><code>-Z <span class="roman">for compressing bitmap fonts</span></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dz-for-recognizing-hyperdvi"><code>-z <span class="roman">for recognizing hyperdvi</span></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-7">.</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002e_002e_002drelative-filenames"><samp>..</samp>-relative filenames</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002eafm-Adobe-metric-files"><code>.afm <span class="roman">Adobe metric files</span></code></a>:</td><td> </td><td valign="top"><a href="#Metric-files">Metric files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002edvipsrc_002c-searched-for"><code>.dvipsrc<span class="roman">, searched for</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-searching">Configuration file searching</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002eenc-extension-for-encoding-vectors"><code>.enc <span class="roman">extension for encoding vectors</span></code></a>:</td><td> </td><td valign="top"><a href="#psfonts_002emap">psfonts.map</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002elpro-long-prologue-files"><code>.lpro <span class="roman">long prologue files</span></code></a>:</td><td> </td><td valign="top"><a href="#Header-files">Header files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002emf-Metafont-source-files"><code>.mf <span class="roman">Metafont source files</span></code></a>:</td><td> </td><td valign="top"><a href="#Glyph-files">Glyph files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002ennnpk-packed-font-bitmaps"><code>.<var>nnn</var>pk <span class="roman">packed font bitmaps</span></code></a>:</td><td> </td><td valign="top"><a href="#Glyph-files">Glyph files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002epfa-extension-required-for-partial-downloading"><code>.pfa <span class="roman">extension required for partial downloading</span></code></a>:</td><td> </td><td valign="top"><a href="#psfonts_002emap">psfonts.map</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002epfa-printer-font-ascii-files"><code>.pfa <span class="roman">printer font ascii files</span></code></a>:</td><td> </td><td valign="top"><a href="#Glyph-files">Glyph files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002epfb-extension-required-for-partial-downloading"><code>.pfb <span class="roman">extension required for partial downloading</span></code></a>:</td><td> </td><td valign="top"><a href="#psfonts_002emap">psfonts.map</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002epfb-printer-font-binary-files"><code>.pfb <span class="roman">printer font binary files</span></code></a>:</td><td> </td><td valign="top"><a href="#Glyph-files">Glyph files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002epfm-printer-font-metric-files"><code>.pfm <span class="roman">printer font metric files</span></code></a>:</td><td> </td><td valign="top"><a href="#Metric-files">Metric files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002epl-property-list-files"><code>.pl <span class="roman">property list files</span></code></a>:</td><td> </td><td valign="top"><a href="#Metric-files">Metric files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002epro-prologue-files"><code>.pro <span class="roman">prologue files</span></code></a>:</td><td> </td><td valign="top"><a href="#Header-files">Header files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002etfm-TeX-font-metric-files"><code>.tfm <span class="roman">TeX font metric files</span></code></a>:</td><td> </td><td valign="top"><a href="#Metric-files">Metric files</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-8">/</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002f_0023copies"><code>/#copies</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002f_0023copies-1"><code>/#copies</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002fmagscale"><code>/magscale</code></a>:</td><td> </td><td valign="top"><a href="#EPSF-scaling">EPSF scaling</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-9">6</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-612-792-bounding-box-size"><code>612 792 <span class="roman">bounding box size</span></code></a>:</td><td> </td><td valign="top"><a href="#Bounding-box">Bounding box</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-10">8</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-8r-encoding_002c-and-extra-characters"><code>8r <span class="roman">encoding, and extra characters</span></code></a>:</td><td> </td><td valign="top"><a href="#Changing-PostScript-encodings">Changing PostScript encodings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-8r-font-encoding">8r font encoding</a>:</td><td> </td><td valign="top"><a href="#psfonts_002emap">psfonts.map</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-8r_002eenc"><code>8r.enc</code></a>:</td><td> </td><td valign="top"><a href="#Encodings">Encodings</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-11"><</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_003c-font-downloading"><code>< <span class="roman">font downloading</span></code></a>:</td><td> </td><td valign="top"><a href="#psfonts_002emap">psfonts.map</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_003c_003c-whole-font-downloading"><code><< <span class="roman">whole font downloading</span></code></a>:</td><td> </td><td valign="top"><a href="#psfonts_002emap">psfonts.map</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_003c_005b-encoding-vector-downloading"><code><[ <span class="roman">encoding vector downloading</span></code></a>:</td><td> </td><td valign="top"><a href="#psfonts_002emap">psfonts.map</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-12">=</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_003d_003a-ligature-operation"><code>=: <span class="roman">ligature operation</span></code></a>:</td><td> </td><td valign="top"><a href="#Encoding-file-format">Encoding file format</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-13">@</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_0040-paper-size-config-command"><code>@ <span class="roman">paper size config command</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-14">\</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005c_002e"><code>\.</code></a>:</td><td> </td><td valign="top"><a href="#Reencoding-with-Afm2tfm">Reencoding with Afm2tfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005cAA"><code>\AA</code></a>:</td><td> </td><td valign="top"><a href="#Reencoding-with-Afm2tfm">Reencoding with Afm2tfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005cColorName"><code>\<var>ColorName</var></code></a>:</td><td> </td><td valign="top"><a href="#Color-macro-files">Color macro files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005cdot"><code>\dot</code></a>:</td><td> </td><td valign="top"><a href="#Reencoding-with-Afm2tfm">Reencoding with Afm2tfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005cepsffile-macro"><code>\epsffile <span class="roman">macro</span></code></a>:</td><td> </td><td valign="top"><a href="#EPSF-macros">EPSF macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005cepsfsize"><code>\epsfsize</code></a>:</td><td> </td><td valign="top"><a href="#EPSF-scaling">EPSF scaling</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005cepsfverbosetrue"><code>\epsfverbosetrue</code></a>:</td><td> </td><td valign="top"><a href="#EPSF-macros">EPSF macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005cepsfxsize"><code>\epsfxsize</code></a>:</td><td> </td><td valign="top"><a href="#EPSF-scaling">EPSF scaling</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005cepsfysize"><code>\epsfysize</code></a>:</td><td> </td><td valign="top"><a href="#EPSF-scaling">EPSF scaling</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005cH"><code>\H</code></a>:</td><td> </td><td valign="top"><a href="#Reencoding-with-Afm2tfm">Reencoding with Afm2tfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005cincludegraphics-LaTeX-macro">\includegraphics LaTeX macro</a>:</td><td> </td><td valign="top"><a href="#g_t_005cincludegraphics">\includegraphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005cleavevmode"><code>\leavevmode</code></a>:</td><td> </td><td valign="top"><a href="#EPSF-macros">EPSF macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005cmagnification"><code>\magnification</code></a>:</td><td> </td><td valign="top"><a href="#EPSF-scaling">EPSF scaling</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005crotninety"><code>\rotninety</code></a>:</td><td> </td><td valign="top"><a href="#Literal-examples">Literal examples</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005ctextColorName"><code>\text<var>ColorName</var></code></a>:</td><td> </td><td valign="top"><a href="#Color-macro-files">Color macro files</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-15">|</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_007c-starting-output-filename"><code>| <span class="roman">starting output filename</span></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-A">A</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-a-config-command-_0028memory-conservation_0029"><code>a <span class="roman">config command (memory conservation)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-A-ring_002c-Scandinavian-letter">A ring, Scandinavian letter</a>:</td><td> </td><td valign="top"><a href="#Reencoding-with-Afm2tfm">Reencoding with Afm2tfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-a3-papertype">a3 papertype</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-a4-paper-size"><code>a4 <span class="roman">paper size</span></code></a>:</td><td> </td><td valign="top"><a href="#Config-file-paper-sizes">Config file paper sizes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-a4-papertype">a4 papertype</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-A4size-paper-size"><code>A4size <span class="roman">paper size</span></code></a>:</td><td> </td><td valign="top"><a href="#Config-file-paper-sizes">Config file paper sizes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-absolute-filenames_002c-disabling">absolute filenames, disabling</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-absolute-page-number_002c-and-_002dl">absolute page number, and ‘<samp>-l</samp>’</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-absolute-page-number_002c-and-_002dp">absolute page number, and ‘<samp>-p</samp>’</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-accents_002c-in-wrong-position">accents, in wrong position</a>:</td><td> </td><td valign="top"><a href="#Reencoding-with-Afm2tfm">Reencoding with Afm2tfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-accents_002c-wrong">accents, wrong</a>:</td><td> </td><td valign="top"><a href="#Afm2tfm-options">Afm2tfm options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-accuracy-in-positioning">accuracy in positioning</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-afm-files">afm files</a>:</td><td> </td><td valign="top"><a href="#Metric-files">Metric files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-afm2tfm"><code>afm2tfm</code></a>:</td><td> </td><td valign="top"><a href="#Making-a-font-available">Making a font available</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-afm2tfm-1"><code>afm2tfm</code></a>:</td><td> </td><td valign="top"><a href="#Invoking-afm2tfm">Invoking afm2tfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-afm2tfm-options">afm2tfm options</a>:</td><td> </td><td valign="top"><a href="#Afm2tfm-options">Afm2tfm options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-after-header_002c-inserting-code">after header, inserting code</a>:</td><td> </td><td valign="top"><a href="#Including-headers-from-TeX">Including headers from TeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Aladdin-Ghostscript">Aladdin Ghostscript</a>:</td><td> </td><td valign="top"><a href="#Ghostscript-installation">Ghostscript installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Anderson_002c-Laurie">Anderson, Laurie</a>:</td><td> </td><td valign="top"><a href="#Hypertext-specials">Hypertext specials</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-angle-_0028psfile-special-option_0029"><code>angle <span class="roman">(‘<samp>psfile</samp>’ special option)</span></code></a>:</td><td> </td><td valign="top"><a href="#psfile-special">psfile special</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-arcs">arcs</a>:</td><td> </td><td valign="top"><a href="#Glyph-files">Glyph files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ASCII-character-codes_002c-used-by-PostScript">ASCII character codes, used by PostScript</a>:</td><td> </td><td valign="top"><a href="#PostScript-typesetting">PostScript typesetting</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-atend_002c-bounding-box-specification"><code>atend<span class="roman">, bounding box specification</span></code></a>:</td><td> </td><td valign="top"><a href="#Bounding-box">Bounding box</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-B">B</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-b-config-command-_0028_0023copies_0029"><code>b <span class="roman">config command (#copies)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-base"><code>base</code></a>:</td><td> </td><td valign="top"><a href="#Hypertext-specials">Hypertext specials</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-base-encoding_002c-recommended">base encoding, recommended</a>:</td><td> </td><td valign="top"><a href="#psfonts_002emap">psfonts.map</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-base-fonts">base fonts</a>:</td><td> </td><td valign="top"><a href="#Virtual-fonts">Virtual fonts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bbfig"><code>bbfig</code></a>:</td><td> </td><td valign="top"><a href="#Bounding-box">Bounding box</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-before-header_002c-inserting-code">before header, inserting code</a>:</td><td> </td><td valign="top"><a href="#Including-headers-from-TeX">Including headers from TeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Bhattacharya_002c-Tanmoy">Bhattacharya, Tanmoy</a>:</td><td> </td><td valign="top"><a href="#Hypertext">Hypertext</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-big-points">big points</a>:</td><td> </td><td valign="top"><a href="#Bounding-box">Bounding box</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-binary-files_002c-not-supported">binary files, not supported</a>:</td><td> </td><td valign="top"><a href="#Including-graphics-fails">Including graphics fails</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bitmap-fonts">bitmap fonts</a>:</td><td> </td><td valign="top"><a href="#Glyph-files">Glyph files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bop-undefined-error"><tt>bop undefined</tt> error</a>:</td><td> </td><td valign="top"><a href="#Printer-errors">Printer errors</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bop_002dhook"><code>bop-hook</code></a>:</td><td> </td><td valign="top"><a href="#Paper-trays">Paper trays</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bop_002dhook-1"><code>bop-hook</code></a>:</td><td> </td><td valign="top"><a href="#EPSF-scaling">EPSF scaling</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bop_002dhook-2"><code>bop-hook</code></a>:</td><td> </td><td valign="top"><a href="#PostScript-hooks">PostScript hooks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bop_002dhook_002c-and-offset-pages"><code>bop-hook<span class="roman">, and offset pages</span></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-boundary-character">boundary character</a>:</td><td> </td><td valign="top"><a href="#Encoding-file-format">Encoding file format</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bounding-box_002c-comment-for">bounding box, comment for</a>:</td><td> </td><td valign="top"><a href="#Bounding-box">Bounding box</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bounding-box_002c-defined">bounding box, defined</a>:</td><td> </td><td valign="top"><a href="#Bounding-box">Bounding box</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bounding-box_002c-determining">bounding box, determining</a>:</td><td> </td><td valign="top"><a href="#Bounding-box">Bounding box</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bounding-box_002c-finding-tight">bounding box, finding tight</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bounding-box_002c-inaccurate">bounding box, inaccurate</a>:</td><td> </td><td valign="top"><a href="#EPSF-clipping">EPSF clipping</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bounding-box_002c-supplying-to-TeX">bounding box, supplying to TeX</a>:</td><td> </td><td valign="top"><a href="#g_t_005cincludegraphics">\includegraphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bounding-box_002c-supplying-to-TeX-1">bounding box, supplying to TeX</a>:</td><td> </td><td valign="top"><a href="#EPSF-macros">EPSF macros</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-C">C</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-c-include-additional-config-file"><code>c <span class="roman">include additional config file</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-changing-PostScript-encodings">changing PostScript encodings</a>:</td><td> </td><td valign="top"><a href="#Changing-PostScript-encodings">Changing PostScript encodings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-changing-TeX-encodings">changing TeX encodings</a>:</td><td> </td><td valign="top"><a href="#Changing-TeX-encodings">Changing TeX encodings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-character-definitions-in-PostScript">character definitions in PostScript</a>:</td><td> </td><td valign="top"><a href="#PostScript-typesetting">PostScript typesetting</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-character-lookup-procedure-in-PostScript">character lookup procedure in PostScript</a>:</td><td> </td><td valign="top"><a href="#PostScript-typesetting">PostScript typesetting</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-CharStrings-Type-1-dictionary"><code>CharStrings <span class="roman">Type 1 dictionary</span></code></a>:</td><td> </td><td valign="top"><a href="#PostScript-typesetting">PostScript typesetting</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-clip-_0028psfile-special-option_0029"><code>clip <span class="roman">(‘<samp>psfile</samp>’ special option)</span></code></a>:</td><td> </td><td valign="top"><a href="#psfile-special">psfile special</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-clipping-of-EPSF">clipping of EPSF</a>:</td><td> </td><td valign="top"><a href="#EPSF-clipping">EPSF clipping</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-CODINGSCHEME"><code>CODINGSCHEME</code></a>:</td><td> </td><td valign="top"><a href="#Reencoding-with-Afm2tfm">Reencoding with Afm2tfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-collated-copies">collated copies</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-color">color</a>:</td><td> </td><td valign="top"><a href="#Color">Color</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-color-configuration">color configuration</a>:</td><td> </td><td valign="top"><a href="#Color-device-configuration">Color device configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-color-macros">color macros</a>:</td><td> </td><td valign="top"><a href="#Color-macro-files">Color macro files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-color-names_002c-mixed-case">color names, mixed case</a>:</td><td> </td><td valign="top"><a href="#Color-macro-files">Color macro files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-color-nesting-level">color nesting level</a>:</td><td> </td><td valign="top"><a href="#Color-macro-files">Color macro files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-color-separations">color separations</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-color-specifications">color specifications</a>:</td><td> </td><td valign="top"><a href="#Color-specifications">Color specifications</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-color-subtleties">color subtleties</a>:</td><td> </td><td valign="top"><a href="#Color-subtleties">Color subtleties</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-colors_002c-user_002ddefinable">colors, user-definable</a>:</td><td> </td><td valign="top"><a href="#User_002ddefinable-colors">User-definable colors</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-command-line_002c-including-headers-from">command line, including headers from</a>:</td><td> </td><td valign="top"><a href="#Including-headers-from-the-command-line">Including headers from the command line</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-command_002dline-options">command-line options</a>:</td><td> </td><td valign="top"><a href="#Invoking-Dvips">Invoking Dvips</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-comments_002c-in-configuration-files">comments, in configuration files</a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-comments_002c-in-encoding-files">comments, in encoding files</a>:</td><td> </td><td valign="top"><a href="#Encoding-file-format">Encoding file format</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-comments_002c-removing-included">comments, removing included</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-compilation">compilation</a>:</td><td> </td><td valign="top"><a href="#Installation">Installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-compressed-PostScript">compressed PostScript</a>:</td><td> </td><td valign="top"><a href="#Dynamic-creation-of-graphics">Dynamic creation of graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-compressing-bitmap-fonts">compressing bitmap fonts</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Computer-Modern-in-PostScript">Computer Modern in PostScript</a>:</td><td> </td><td valign="top"><a href="#Hypertext-caveats">Hypertext caveats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Computer-Modern_002c-encoding-of">Computer Modern, encoding of</a>:</td><td> </td><td valign="top"><a href="#Encodings">Encodings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-condensed-fonts">condensed fonts</a>:</td><td> </td><td valign="top"><a href="#Afm2tfm-options">Afm2tfm options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-config_002eproto"><code>config.proto</code></a>:</td><td> </td><td valign="top"><a href="#config_002eps-installation">config.ps installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-config_002eps"><code>config.ps</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-config_002eps-installation"><code>config.ps <span class="roman">installation</span></code></a>:</td><td> </td><td valign="top"><a href="#config_002eps-installation">config.ps installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-config_002eps-paper-sizes"><code>config.ps <span class="roman">paper sizes</span></code></a>:</td><td> </td><td valign="top"><a href="#Config-file-paper-sizes">Config file paper sizes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-config_002eps_002c-searched-for"><code>config.ps<span class="roman">, searched for</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-searching">Configuration file searching</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configuration-file-options">configuration file options</a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configuration-file-paper-size-command">configuration file paper size command</a>:</td><td> </td><td valign="top"><a href="#Config-file-paper-sizes">Config file paper sizes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configuration-file-path">configuration file path</a>:</td><td> </td><td valign="top"><a href="#Environment-variables">Environment variables</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configuration-file-searching">configuration file searching</a>:</td><td> </td><td valign="top"><a href="#Configuration-file-searching">Configuration file searching</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configuration-files">configuration files</a>:</td><td> </td><td valign="top"><a href="#Config-files">Config files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configuration-files_002c-creating">configuration files, creating</a>:</td><td> </td><td valign="top"><a href="#config_002eps-installation">config.ps installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configuration-files_002c-prototype">configuration files, prototype</a>:</td><td> </td><td valign="top"><a href="#config_002eps-installation">config.ps installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configuration_002c-of-color-devices">configuration, of color devices</a>:</td><td> </td><td valign="top"><a href="#Color-device-configuration">Color device configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configuration_002c-of-Dvips">configuration, of Dvips</a>:</td><td> </td><td valign="top"><a href="#Installation">Installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-continuation-lines_002c-not-supported">continuation lines, not supported</a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-control_002dD">control-D</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-copies_002c-collated">copies, collated</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-copies_002c-duplicated-page-bodies">copies, duplicated page bodies</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-copies_002c-uncollated">copies, uncollated</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Crayola-crayon-box">Crayola crayon box</a>:</td><td> </td><td valign="top"><a href="#Color-macro-files">Color macro files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-crop_002epro"><code>crop.pro</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cropmarks">cropmarks</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-current-font_002c-in-PostScript">current font, in PostScript</a>:</td><td> </td><td valign="top"><a href="#PostScript-typesetting">PostScript typesetting</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-D">D</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-D-config-command-_0028dpi_0029"><code>D <span class="roman">config command (dpi)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dated-output">dated output</a>:</td><td> </td><td valign="top"><a href="#PostScript-hooks">PostScript hooks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-datestamp_002c-in-output">datestamp, in output</a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-debugging">debugging</a>:</td><td> </td><td valign="top"><a href="#Diagnosing-problems">Diagnosing problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-debugging-1">debugging</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-debugging-options">debugging options</a>:</td><td> </td><td valign="top"><a href="#Debug-options">Debug options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-default-resolutions">default resolutions</a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-default_005ftexsizes-Make-variable"><code>default_texsizes <span class="roman">Make variable</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Deutsch_002c-Peter">Deutsch, Peter</a>:</td><td> </td><td valign="top"><a href="#Ghostscript-installation">Ghostscript installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-device-dependency_002c-and-virtual-fonts">device dependency, and virtual fonts</a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dictionary_002c-CharStrings">dictionary, <code>CharStrings</code></a>:</td><td> </td><td valign="top"><a href="#PostScript-typesetting">PostScript typesetting</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dictionary_002c-PostScript-language">dictionary, PostScript language</a>:</td><td> </td><td valign="top"><a href="#PostScript-typesetting">PostScript typesetting</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dictionary_002c-SDict">dictionary, <code>SDict</code></a>:</td><td> </td><td valign="top"><a href="#Literal-headers">Literal headers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dictionary_002c-userdict">dictionary, <code>userdict</code></a>:</td><td> </td><td valign="top"><a href="#Header-files">Header files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-distillation_002c-and-_002dz">distillation, and ‘<samp>-z</samp>’</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-distiller_002c-for-PDF-files">distiller, for PDF files</a>:</td><td> </td><td valign="top"><a href="#Hypertext">Hypertext</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dot-accent">dot accent</a>:</td><td> </td><td valign="top"><a href="#Reencoding-with-Afm2tfm">Reencoding with Afm2tfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-double_002dsided-printing">double-sided printing</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-downloading-fonts-partially">downloading fonts partially</a>:</td><td> </td><td valign="top"><a href="#psfonts_002emap">psfonts.map</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-downloading-PostScript-fonts">downloading PostScript fonts</a>:</td><td> </td><td valign="top"><a href="#psfonts_002emap">psfonts.map</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Doyle_002c-Mark">Doyle, Mark</a>:</td><td> </td><td valign="top"><a href="#Hypertext">Hypertext</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-draft-copies">draft copies</a>:</td><td> </td><td valign="top"><a href="#PostScript-hooks">PostScript hooks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dual-paper-trays">dual paper trays</a>:</td><td> </td><td valign="top"><a href="#Paper-trays">Paper trays</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-duplex-printers">duplex printers</a>:</td><td> </td><td valign="top"><a href="#Including-headers-from-the-command-line">Including headers from the command line</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-DVI-magnification">DVI magnification</a>:</td><td> </td><td valign="top"><a href="#EPSF-scaling">EPSF scaling</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dvihps_002c-hyperdvi-to-PostScript"><code>dvihps<span class="roman">, hyperdvi to PostScript</span></code></a>:</td><td> </td><td valign="top"><a href="#Hypertext">Hypertext</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Dvips-configuration-file-options">Dvips configuration file options</a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dvips_002eenc"><code>dvips.enc</code></a>:</td><td> </td><td valign="top"><a href="#Encodings">Encodings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-DVIPSDEBUG"><code>DVIPSDEBUG</code></a>:</td><td> </td><td valign="top"><a href="#Environment-variables">Environment variables</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-DVIPSFONTS"><code>DVIPSFONTS</code></a>:</td><td> </td><td valign="top"><a href="#Environment-variables">Environment variables</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-DVIPSHEADERS"><code>DVIPSHEADERS</code></a>:</td><td> </td><td valign="top"><a href="#Environment-variables">Environment variables</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-DVIPSHEADERS_002c-overrides-H"><code>DVIPSHEADERS<span class="roman">, overrides</span> H</code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-DVIPSMAKEPK"><code>DVIPSMAKEPK</code></a>:</td><td> </td><td valign="top"><a href="#Environment-variables">Environment variables</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-DVIPSRC"><code>DVIPSRC</code></a>:</td><td> </td><td valign="top"><a href="#Environment-variables">Environment variables</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-DVIPSSIZES"><code>DVIPSSIZES</code></a>:</td><td> </td><td valign="top"><a href="#Environment-variables">Environment variables</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-DVIPSSIZES_002c-overrides-R"><code>DVIPSSIZES<span class="roman">, overrides</span> R</code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dynamic-creation-of-graphics">dynamic creation of graphics</a>:</td><td> </td><td valign="top"><a href="#Dynamic-creation-of-graphics">Dynamic creation of graphics</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-E">E</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-e-config-command-_0028maxdrift_0029"><code>e <span class="roman">config command (maxdrift)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-E-config-command-_0028shell-escape_0029"><code>E <span class="roman">config command (shell escape)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-efficiency_002c-and-fonts">efficiency, and fonts</a>:</td><td> </td><td valign="top"><a href="#Making-a-font-available">Making a font available</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ehandler_002eps"><code>ehandler.ps</code></a>:</td><td> </td><td valign="top"><a href="#No-output">No output</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-embedding-Type-1-fonts">embedding Type 1 fonts</a>:</td><td> </td><td valign="top"><a href="#Hypertext-caveats">Hypertext caveats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-encoding-changes">encoding changes</a>:</td><td> </td><td valign="top"><a href="#Changing-font-encodings">Changing font encodings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-encoding-file-format">encoding file format</a>:</td><td> </td><td valign="top"><a href="#Encoding-file-format">Encoding file format</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-encoding-files">encoding files</a>:</td><td> </td><td valign="top"><a href="#Encodings">Encodings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Encoding-Type-1-dictionary"><code>Encoding <span class="roman">Type 1 dictionary</span></code></a>:</td><td> </td><td valign="top"><a href="#PostScript-typesetting">PostScript typesetting</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-encoding-vectors_002c-defined">encoding vectors, defined</a>:</td><td> </td><td valign="top"><a href="#Encodings">Encodings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-encoding-vectors_002c-in-Type-1-fonts">encoding vectors, in Type 1 fonts</a>:</td><td> </td><td valign="top"><a href="#PostScript-typesetting">PostScript typesetting</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-encodings">encodings</a>:</td><td> </td><td valign="top"><a href="#Encodings">Encodings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-end_002dhook"><code>end-hook</code></a>:</td><td> </td><td valign="top"><a href="#PostScript-hooks">PostScript hooks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-environment-variables">environment variables</a>:</td><td> </td><td valign="top"><a href="#Environment-variables">Environment variables</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-EOF">EOF</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eop_002dhook"><code>eop-hook</code></a>:</td><td> </td><td valign="top"><a href="#PostScript-hooks">PostScript hooks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-EPS_002c-and-Ghostview">EPS, and Ghostview</a>:</td><td> </td><td valign="top"><a href="#Ghostscript-installation">Ghostscript installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-EPSF-macros">EPSF macros</a>:</td><td> </td><td valign="top"><a href="#EPSF-macros">EPSF macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-EPSF_002c-generating">EPSF, generating</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-epsf_002esty"><code>epsf.sty</code></a>:</td><td> </td><td valign="top"><a href="#EPSF-macros">EPSF macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-epsf_002etex"><code>epsf.tex</code></a>:</td><td> </td><td valign="top"><a href="#EPSF-macros">EPSF macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Epson-printers">Epson printers</a>:</td><td> </td><td valign="top"><a href="#Ghostscript-installation">Ghostscript installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-error-messages-from-printer">error messages from printer</a>:</td><td> </td><td valign="top"><a href="#Printer-errors">Printer errors</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-even-pages-only">even pages only</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-examples-of-literal-PostScript">examples of literal PostScript</a>:</td><td> </td><td valign="top"><a href="#Literal-examples">Literal examples</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-expanded-fonts">expanded fonts</a>:</td><td> </td><td valign="top"><a href="#Special-font-effects">Special font effects</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-expanded-fonts-1">expanded fonts</a>:</td><td> </td><td valign="top"><a href="#Afm2tfm-options">Afm2tfm options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-expanded-fonts-2">expanded fonts</a>:</td><td> </td><td valign="top"><a href="#psfonts_002emap">psfonts.map</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-expansion_002c-of-virtual-fonts">expansion, of virtual fonts</a>:</td><td> </td><td valign="top"><a href="#Virtual-fonts">Virtual fonts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-extended-URL">extended URL</a>:</td><td> </td><td valign="top"><a href="#Hypertext-specials">Hypertext specials</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ExtendFont"><code>ExtendFont</code></a>:</td><td> </td><td valign="top"><a href="#Special-font-effects">Special font effects</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-extra-characters_002c-accessing">extra characters, accessing</a>:</td><td> </td><td valign="top"><a href="#Changing-PostScript-encodings">Changing PostScript encodings</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-F">F</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-f-config-command-_0028filter_0029"><code>f <span class="roman">config command (filter)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-F-config-command-_0028filter_0029"><code>F <span class="roman">config command (filter)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-failure_002c-and-printer-errors">failure, and printer errors</a>:</td><td> </td><td valign="top"><a href="#Printer-errors">Printer errors</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-failure_002c-of-long-documents">failure, of long documents</a>:</td><td> </td><td valign="top"><a href="#Long-documents-fail">Long documents fail</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-failure_002c-to-include-graphics">failure, to include graphics</a>:</td><td> </td><td valign="top"><a href="#Including-graphics-fails">Including graphics fails</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-failure_002c-to-print-at-all">failure, to print at all</a>:</td><td> </td><td valign="top"><a href="#No-output">No output</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fallback-resolutions">fallback resolutions</a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-figures-and-fonts">figures and fonts</a>:</td><td> </td><td valign="top"><a href="#Fonts-in-figures">Fonts in figures</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-figures_002c-natural-size">figures, natural size</a>:</td><td> </td><td valign="top"><a href="#EPSF-macros">EPSF macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-figures_002c-scaling">figures, scaling</a>:</td><td> </td><td valign="top"><a href="#EPSF-scaling">EPSF scaling</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-filter_002c-running-as-a">filter, running as a</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-first-page-printed">first page printed</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-font-concepts">font concepts</a>:</td><td> </td><td valign="top"><a href="#Font-concepts">Font concepts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-font-generation_002c-avoiding">font generation, avoiding</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fontinst"><code>fontinst</code></a>:</td><td> </td><td valign="top"><a href="#Invoking-afm2tfm">Invoking afm2tfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fonts_002c-as-header-files">fonts, as header files</a>:</td><td> </td><td valign="top"><a href="#Including-headers-from-TeX">Including headers from TeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fonts_002c-changing-encoding-of">fonts, changing encoding of</a>:</td><td> </td><td valign="top"><a href="#Changing-font-encodings">Changing font encodings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fonts_002c-downloading">fonts, downloading</a>:</td><td> </td><td valign="top"><a href="#psfonts_002emap">psfonts.map</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fonts_002c-expanded">fonts, expanded</a>:</td><td> </td><td valign="top"><a href="#Special-font-effects">Special font effects</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fonts_002c-in-PostScript-figures">fonts, in PostScript figures</a>:</td><td> </td><td valign="top"><a href="#Fonts-in-figures">Fonts in figures</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fonts_002c-installation-of-PostScript">fonts, installation of PostScript</a>:</td><td> </td><td valign="top"><a href="#PostScript-font-installation">PostScript font installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fonts_002c-installing">fonts, installing</a>:</td><td> </td><td valign="top"><a href="#Making-a-font-available">Making a font available</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fonts_002c-outlined">fonts, outlined</a>:</td><td> </td><td valign="top"><a href="#Special-font-effects">Special font effects</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fonts_002c-slanted">fonts, slanted</a>:</td><td> </td><td valign="top"><a href="#Special-font-effects">Special font effects</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fonts_002c-small-caps">fonts, small caps</a>:</td><td> </td><td valign="top"><a href="#Special-font-effects">Special font effects</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fonts_002c-system-PostScript">fonts, system PostScript</a>:</td><td> </td><td valign="top"><a href="#PostScript-font-installation">PostScript font installation</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-G">G</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-G-character-shifting-config-command"><code>G <span class="roman">character shifting config command</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-gf-files">gf files</a>:</td><td> </td><td valign="top"><a href="#Glyph-files">Glyph files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-gftopk"><code>gftopk</code></a>:</td><td> </td><td valign="top"><a href="#Glyph-files">Glyph files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Ghostscript-installation">Ghostscript installation</a>:</td><td> </td><td valign="top"><a href="#Ghostscript-installation">Ghostscript installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ghostview"><code>ghostview</code></a>:</td><td> </td><td valign="top"><a href="#Ghostscript-installation">Ghostscript installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Ghostview_002c-and-no-N">Ghostview, and no ‘<samp>N</samp>’</a>:</td><td> </td><td valign="top"><a href="#Ghostscript-installation">Ghostscript installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-glyph-files">glyph files</a>:</td><td> </td><td valign="top"><a href="#Glyph-files">Glyph files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-GLYPHFONTS_002c-overrides-P"><code>GLYPHFONTS<span class="roman">, overrides</span> P</code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-GNU-Ghostscript">GNU Ghostscript</a>:</td><td> </td><td valign="top"><a href="#Ghostscript-installation">Ghostscript installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-gnuplot"><code>gnuplot</code></a>:</td><td> </td><td valign="top"><a href="#Dynamic-creation-of-graphics">Dynamic creation of graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-graphics-inclusion-fails">graphics inclusion fails</a>:</td><td> </td><td valign="top"><a href="#Including-graphics-fails">Including graphics fails</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-gs-installation"><code>gs <span class="roman">installation</span></code></a>:</td><td> </td><td valign="top"><a href="#Ghostscript-installation">Ghostscript installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-gsave_002fgrestore_002c-and-literal-PS"><code>gsave<span class="roman">/</span>grestore<span class="roman">, and literal PS</span></code></a>:</td><td> </td><td valign="top"><a href="#Literal-examples">Literal examples</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-gsftopk"><code>gsftopk</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-H">H</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-h-header-downloading-config-command"><code>h <span class="roman">header downloading config command</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-H-header-path-config-command"><code>H <span class="roman">header path config command</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Hafner_002c-Jim">Hafner, Jim</a>:</td><td> </td><td valign="top"><a href="#Color">Color</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-header-file_002c-downloading">header file, downloading</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-header-files_002c-defined">header files, defined</a>:</td><td> </td><td valign="top"><a href="#Header-files">Header files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-header-path_002c-defining">header path, defining</a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-header_003dfile-_005cspecial"><code>header=<var>file</var> \special</code></a>:</td><td> </td><td valign="top"><a href="#Including-headers-from-TeX">Including headers from TeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-headers-and-memory-usage">headers and memory usage</a>:</td><td> </td><td valign="top"><a href="#Headers-and-memory-usage">Headers and memory usage</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-headers_002c-including-from-the-command-line">headers, including from the command line</a>:</td><td> </td><td valign="top"><a href="#Including-headers-from-the-command-line">Including headers from the command line</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-headers_002c-including-in-TeX">headers, including in TeX</a>:</td><td> </td><td valign="top"><a href="#Including-headers-from-TeX">Including headers from TeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hints">hints</a>:</td><td> </td><td valign="top"><a href="#PostScript-typesetting">PostScript typesetting</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hoffset-_0028psfile-special-option_0029"><code>hoffset <span class="roman">(‘<samp>psfile</samp>’ special option)</span></code></a>:</td><td> </td><td valign="top"><a href="#psfile-special">psfile special</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-HP4Si-printer-and-paper-trays">HP4Si printer and paper trays</a>:</td><td> </td><td valign="top"><a href="#Paper-trays">Paper trays</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-href"><code>href</code></a>:</td><td> </td><td valign="top"><a href="#Hypertext-specials">Hypertext specials</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hscale-_0028psfile-special-option_0029"><code>hscale <span class="roman">(‘<samp>psfile</samp>’ special option)</span></code></a>:</td><td> </td><td valign="top"><a href="#psfile-special">psfile special</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hsize-_0028psfile-special-option_0029"><code>hsize <span class="roman">(‘<samp>psfile</samp>’ special option)</span></code></a>:</td><td> </td><td valign="top"><a href="#psfile-special">psfile special</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-html-specials"><code>html <span class="roman">specials</span></code></a>:</td><td> </td><td valign="top"><a href="#Hypertext">Hypertext</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-html-specials_002c-and-_002dz"><code>html <span class="roman">specials, and ‘<samp>-z</samp>’</span></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-http_003a_002f_002fwww_002ewin_002etue_002enl_002f_007edickie_002fidvi"><code><code>http://www.win.tue.nl/~dickie/idvi</code></code></a>:</td><td> </td><td valign="top"><a href="#Hypertext">Hypertext</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-http_003a_002f_002fxxx_002elanl_002egov_002fhypertex"><code><code>http://xxx.lanl.gov/hypertex</code></code></a>:</td><td> </td><td valign="top"><a href="#Hypertext">Hypertext</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Hungarian-umlaut">Hungarian umlaut</a>:</td><td> </td><td valign="top"><a href="#Reencoding-with-Afm2tfm">Reencoding with Afm2tfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperdvi-extensions_002c-enabling">hyperdvi extensions, enabling</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hypertext-and-bitmap-fonts">hypertext and bitmap fonts</a>:</td><td> </td><td valign="top"><a href="#Hypertext-caveats">Hypertext caveats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hypertext-caveats">hypertext caveats</a>:</td><td> </td><td valign="top"><a href="#Hypertext-caveats">Hypertext caveats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hypertext-caveats-1">hypertext caveats</a>:</td><td> </td><td valign="top"><a href="#Hypertext-caveats">Hypertext caveats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hypertext-specials">hypertext specials</a>:</td><td> </td><td valign="top"><a href="#Hypertext-specials">Hypertext specials</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hypertext-support">hypertext support</a>:</td><td> </td><td valign="top"><a href="#Hypertext">Hypertext</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-I">I</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-i-config-command-_0028pages_002fsection_0029"><code>i <span class="roman">config command (pages/section)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idvi-Java-DVI-reader"><code>idvi <span class="roman">Java DVI reader</span></code></a>:</td><td> </td><td valign="top"><a href="#Hypertext">Hypertext</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Illustrator_002c-workaround-for">Illustrator, workaround for</a>:</td><td> </td><td valign="top"><a href="#Including-graphics-fails">Including graphics fails</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-img"><code>img</code></a>:</td><td> </td><td valign="top"><a href="#Hypertext-specials">Hypertext specials</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-including-graphics-fails">including graphics fails</a>:</td><td> </td><td valign="top"><a href="#Including-graphics-fails">Including graphics fails</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-including-headers-from-the-command-line">including headers from the command line</a>:</td><td> </td><td valign="top"><a href="#Including-headers-from-the-command-line">Including headers from the command line</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-including-headers-in-TeX">including headers in TeX</a>:</td><td> </td><td valign="top"><a href="#Including-headers-from-TeX">Including headers from TeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-installation-of-config_002eps">installation of <samp>config.ps</samp></a>:</td><td> </td><td valign="top"><a href="#config_002eps-installation">config.ps installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-installation-of-PostScript-fonts">installation of PostScript fonts</a>:</td><td> </td><td valign="top"><a href="#PostScript-font-installation">PostScript font installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-installation_002c-of-Dvips">installation, of Dvips</a>:</td><td> </td><td valign="top"><a href="#Installation">Installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-installing-fonts">installing fonts</a>:</td><td> </td><td valign="top"><a href="#Making-a-font-available">Making a font available</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-interaction-with-PostScript">interaction with PostScript</a>:</td><td> </td><td valign="top"><a href="#Interaction-with-PostScript">Interaction with PostScript</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-inverted-output">inverted output</a>:</td><td> </td><td valign="top"><a href="#Small-or-inverted">Small or inverted</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-invoking-Dvips">invoking Dvips</a>:</td><td> </td><td valign="top"><a href="#Invoking-Dvips">Invoking Dvips</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-J">J</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-j-config-command-_0028partial-font-downloading_0029"><code>j <span class="roman">config command (partial font downloading)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Java-DVI-reader">Java DVI reader</a>:</td><td> </td><td valign="top"><a href="#Hypertext">Hypertext</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Jeffrey_002c-Alan">Jeffrey, Alan</a>:</td><td> </td><td valign="top"><a href="#Invoking-afm2tfm">Invoking afm2tfm</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-K">K</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-K-config-command-_0028comment_002dremoval_0029"><code>K <span class="roman">config command (comment-removal)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kerning_002c-defined">kerning, defined</a>:</td><td> </td><td valign="top"><a href="#Metric-files">Metric files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPATHSEA_005fDEBUG"><code>KPATHSEA_DEBUG</code></a>:</td><td> </td><td valign="top"><a href="#Environment-variables">Environment variables</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-L">L</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-landscape-orientation_002c-defined">landscape orientation, defined</a>:</td><td> </td><td valign="top"><a href="#Paper-size-and-landscape">Paper size and landscape</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-landscape-papertype">landscape papertype</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-landscape_002c-as-_005cspecial"><code>landscape<span class="roman">, as <code>\special</code></span></code></a>:</td><td> </td><td valign="top"><a href="#papersize-special">papersize special</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-last-page-printed">last page printed</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-last_002dresort-font-scaling_002c-with-DVIPSSIZES">last-resort font scaling, with <code>DVIPSSIZES</code></a>:</td><td> </td><td valign="top"><a href="#Environment-variables">Environment variables</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-last_002dresort-scaling_002c-with-R">last-resort scaling, with <code>R</code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ledger-papertype">ledger papertype</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-legal-papertype">legal papertype</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-letter-paper-size"><code>letter <span class="roman">paper size</span></code></a>:</td><td> </td><td valign="top"><a href="#Config-file-paper-sizes">Config file paper sizes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-letter-papertype">letter papertype</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-letterhead-tray">letterhead tray</a>:</td><td> </td><td valign="top"><a href="#Paper-trays">Paper trays</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-letterSize-paper-size"><code>letterSize <span class="roman">paper size</span></code></a>:</td><td> </td><td valign="top"><a href="#Config-file-paper-sizes">Config file paper sizes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ligature-operations">ligature operations</a>:</td><td> </td><td valign="top"><a href="#Encoding-file-format">Encoding file format</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ligature_002c-defined">ligature, defined</a>:</td><td> </td><td valign="top"><a href="#Metric-files">Metric files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-LIGKERN-encoding-file-command"><code>LIGKERN <span class="roman">encoding file command</span></code></a>:</td><td> </td><td valign="top"><a href="#Encoding-file-format">Encoding file format</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-lines-in-figures_002c-wrong-width">lines in figures, wrong width</a>:</td><td> </td><td valign="top"><a href="#EPSF-clipping">EPSF clipping</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-links_002c-hypertext">links, hypertext</a>:</td><td> </td><td valign="top"><a href="#Hypertext-specials">Hypertext specials</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-literal-headers">literal headers</a>:</td><td> </td><td valign="top"><a href="#Literal-headers">Literal headers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-literal-PostScript_002c-examples">literal PostScript, examples</a>:</td><td> </td><td valign="top"><a href="#Literal-examples">Literal examples</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-literal-PostScript_002c-using">literal PostScript, using</a>:</td><td> </td><td valign="top"><a href="#Literal-PS">Literal PS</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-llx-_0028psfile-special-option_0029"><code>llx <span class="roman">(‘<samp>psfile</samp>’ special option)</span></code></a>:</td><td> </td><td valign="top"><a href="#psfile-special">psfile special</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-lly-_0028psfile-special-option_0029"><code>lly <span class="roman">(‘<samp>psfile</samp>’ special option)</span></code></a>:</td><td> </td><td valign="top"><a href="#psfile-special">psfile special</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-long-documents-not-printing">long documents not printing</a>:</td><td> </td><td valign="top"><a href="#Long-documents-fail">Long documents fail</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-low-characters_002c-shifting">low characters, shifting</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-lpr-spooler_002c-MS_002dDOS-emulation">lpr spooler, MS-DOS emulation</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-M">M</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-m-config-command-_0028available-memory_0029"><code>m <span class="roman">config command (available memory)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-M-config-command-_0028mf-mode_0029"><code>M <span class="roman">config command (mf mode)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-macros-for-color">macros for color</a>:</td><td> </td><td valign="top"><a href="#Color-macro-files">Color macro files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-macros-for-epsf-inclusion">macros for epsf inclusion</a>:</td><td> </td><td valign="top"><a href="#g_t_005cincludegraphics">\includegraphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-macros-for-epsf-inclusion-1">macros for epsf inclusion</a>:</td><td> </td><td valign="top"><a href="#EPSF-macros">EPSF macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-magnification_002c-DVI">magnification, DVI</a>:</td><td> </td><td valign="top"><a href="#EPSF-scaling">EPSF scaling</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-magnification_002c-overriding-DVI">magnification, overriding DVI</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-magnification_002c-vertical">magnification, vertical</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mailcap-and-hypertext"><code>mailcap <span class="roman">and hypertext</span></code></a>:</td><td> </td><td valign="top"><a href="#Hypertext-specials">Hypertext specials</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-manual-feed">manual feed</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-maxdrift">maxdrift</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-maximum-pages-printed">maximum pages printed</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-media">media</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-memory-available">memory available</a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-memory-of-printer-exhausted">memory of printer exhausted</a>:</td><td> </td><td valign="top"><a href="#Printer-errors">Printer errors</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-memory-usage_002c-and-headers">memory usage, and headers</a>:</td><td> </td><td valign="top"><a href="#Headers-and-memory-usage">Headers and memory usage</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-memory_002c-conserving">memory, conserving</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-memory_002c-used-by-PostScript-fonts">memory, used by PostScript fonts</a>:</td><td> </td><td valign="top"><a href="#Making-a-font-available">Making a font available</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Metafont-ligature-operations">Metafont ligature operations</a>:</td><td> </td><td valign="top"><a href="#Encoding-file-format">Encoding file format</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Metafont-mode_002c-specifying">Metafont mode, specifying</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Metafont-source-files">Metafont source files</a>:</td><td> </td><td valign="top"><a href="#Glyph-files">Glyph files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-metric-files">metric files</a>:</td><td> </td><td valign="top"><a href="#Metric-files">Metric files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Minion-typeface-family">Minion typeface family</a>:</td><td> </td><td valign="top"><a href="#psfonts_002emap">psfonts.map</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-missfont_002elog"><code>missfont.log</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MISSFONT_005fLOG"><code>MISSFONT_LOG</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Mitsubishi-Shinko-CHC_002dS446i-printer">Mitsubishi Shinko CHC-S446i printer</a>:</td><td> </td><td valign="top"><a href="#No-output">No output</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mkdvipspapers"><code>mkdvipspapers</code></a>:</td><td> </td><td valign="top"><a href="#Config-file-paper-sizes">Config file paper sizes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mktexpk_002c-avoiding"><code>mktexpk<span class="roman">, avoiding</span></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mktexpk_002c-changing-name"><code>mktexpk<span class="roman">, changing name</span></code></a>:</td><td> </td><td valign="top"><a href="#Environment-variables">Environment variables</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mode-name_002c-specifying">mode name, specifying</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mtpk"><code>mtpk</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-multiple-master-fonts">multiple master fonts</a>:</td><td> </td><td valign="top"><a href="#psfonts_002emap">psfonts.map</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-multiple-output-files">multiple output files</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-multiple-paper-trays">multiple paper trays</a>:</td><td> </td><td valign="top"><a href="#Paper-trays">Paper trays</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Murphy_002c-Tim">Murphy, Tim</a>:</td><td> </td><td valign="top"><a href="#Hypertext-specials">Hypertext specials</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-N">N</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-N-EPS_002ddisabling-config-command"><code>N <span class="roman">EPS-disabling config command</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-name"><code>name</code></a>:</td><td> </td><td valign="top"><a href="#Hypertext-specials">Hypertext specials</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-narrow-fonts">narrow fonts</a>:</td><td> </td><td valign="top"><a href="#psfonts_002emap">psfonts.map</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-no-output-at-all">no output at all</a>:</td><td> </td><td valign="top"><a href="#No-output">No output</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-non_002dprinting-characters_002c-shifting">non-printing characters, shifting</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-non_002dresident-fonts">non-resident fonts</a>:</td><td> </td><td valign="top"><a href="#psfonts_002emap">psfonts.map</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-nopaper_002c-paper-format-for-_002dt"><code>nopaper<span class="roman">, paper format for ‘<samp>-t</samp>’</span></code></a>:</td><td> </td><td valign="top"><a href="#Config-file-paper-sizes">Config file paper sizes</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-O">O</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-O-config-command-_0028offset_0029"><code>O <span class="roman">config command (offset)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-o-config-command-_0028output-file_0029"><code>o <span class="roman">config command (output file)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-oblique-fonts">oblique fonts</a>:</td><td> </td><td valign="top"><a href="#Special-font-effects">Special font effects</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-octal-character-codes">octal character codes</a>:</td><td> </td><td valign="top"><a href="#Afm2tfm-options">Afm2tfm options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-odd-pages-only">odd pages only</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-offset-pages">offset pages</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Omega-extensions">Omega extensions</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-option_002c-details-of">option, details of</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-options_002c-debugging">options, debugging</a>:</td><td> </td><td valign="top"><a href="#Debug-options">Debug options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-options_002c-Dvips">options, Dvips</a>:</td><td> </td><td valign="top"><a href="#Invoking-Dvips">Invoking Dvips</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-options_002c-reading-from-standard-input">options, reading from standard input</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-options_002c-summary">options, summary</a>:</td><td> </td><td valign="top"><a href="#Option-summary">Option summary</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-options_002c-to-Afm2tfm">options, to Afm2tfm</a>:</td><td> </td><td valign="top"><a href="#Afm2tfm-options">Afm2tfm options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-outline-fonts">outline fonts</a>:</td><td> </td><td valign="top"><a href="#Glyph-files">Glyph files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-outline-fonts-1">outline fonts</a>:</td><td> </td><td valign="top"><a href="#Special-font-effects">Special font effects</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-output-file_002c-sectioning-of">output file, sectioning of</a>:</td><td> </td><td valign="top"><a href="#Headers-and-memory-usage">Headers and memory usage</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-output-file_002c-setting">output file, setting</a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-output-files_002c-multiple">output files, multiple</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-output_002c-inverted">output, inverted</a>:</td><td> </td><td valign="top"><a href="#Small-or-inverted">Small or inverted</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-output_002c-none">output, none</a>:</td><td> </td><td valign="top"><a href="#No-output">No output</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-output_002c-redirecting">output, redirecting</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-output_002c-too-small">output, too small</a>:</td><td> </td><td valign="top"><a href="#Small-or-inverted">Small or inverted</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-P">P</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-p-config-command-_0028font-aliases_0029"><code>p <span class="roman">config command (font aliases)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-P-config-command-_0028PK-path_0029"><code>P <span class="roman">config command (PK path)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-page-range">page range</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-page_002c-first-printed">page, first printed</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-page_002c-last-printed">page, last printed</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pages_002c-maximum-printed">pages, maximum printed</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PaintType"><code>PaintType</code></a>:</td><td> </td><td valign="top"><a href="#Special-font-effects">Special font effects</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Pantone-colors">Pantone colors</a>:</td><td> </td><td valign="top"><a href="#Color-macro-files">Color macro files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-paper-size-configuration-file-command">paper size configuration file command</a>:</td><td> </td><td valign="top"><a href="#Config-file-paper-sizes">Config file paper sizes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-paper-size_002c-default">paper size, default</a>:</td><td> </td><td valign="top"><a href="#config_002eps-installation">config.ps installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-paper-size_002c-general">paper size, general</a>:</td><td> </td><td valign="top"><a href="#Paper-size-and-landscape">Paper size and landscape</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-paper-trays">paper trays</a>:</td><td> </td><td valign="top"><a href="#Paper-trays">Paper trays</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-paper-type">paper type</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-papersize-special"><code>papersize <span class="roman">special</span></code></a>:</td><td> </td><td valign="top"><a href="#papersize-special">papersize special</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-papersize-special_002c-and-no-_002dt">papersize special, and no ‘<samp>-t</samp>’</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-partial-font-downloading">partial font downloading</a>:</td><td> </td><td valign="top"><a href="#psfonts_002emap">psfonts.map</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PDF-files_002c-font-quality">PDF files, font quality</a>:</td><td> </td><td valign="top"><a href="#Hypertext-caveats">Hypertext caveats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PDF-files_002c-making">PDF files, making</a>:</td><td> </td><td valign="top"><a href="#Ghostscript-installation">Ghostscript installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PDF-files_002c-making-1">PDF files, making</a>:</td><td> </td><td valign="top"><a href="#Hypertext">Hypertext</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PDF-files_002c-option-for">PDF files, option for</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pdfmark"><code>pdfmark</code></a>:</td><td> </td><td valign="top"><a href="#Hypertext">Hypertext</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pfa-files">pfa files</a>:</td><td> </td><td valign="top"><a href="#Glyph-files">Glyph files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pfb-files">pfb files</a>:</td><td> </td><td valign="top"><a href="#Glyph-files">Glyph files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pfb-files_002c-automatically-unpacked">pfb files, automatically unpacked</a>:</td><td> </td><td valign="top"><a href="#psfonts_002emap">psfonts.map</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pfm-files">pfm files</a>:</td><td> </td><td valign="top"><a href="#Metric-files">Metric files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Phaser-printer_002c-used-for-color-calibration">Phaser printer, used for color calibration</a>:</td><td> </td><td valign="top"><a href="#Color-device-configuration">Color device configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-physical-page-number_002c-and-_002dl">physical page number, and ‘<samp>-l</samp>’</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-physical-page-number_002c-and-_002dp">physical page number, and ‘<samp>-p</samp>’</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-physical-page-number_002c-and-bop_002dhook">physical page number, and <code>bop-hook</code></a>:</td><td> </td><td valign="top"><a href="#PostScript-hooks">PostScript hooks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pipes_002c-not-readable">pipes, not readable</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pk-files">pk files</a>:</td><td> </td><td valign="top"><a href="#Glyph-files">Glyph files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PKFONTS_002c-overrides-P"><code>PKFONTS<span class="roman">, overrides</span> P</code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-plotfile_002c-ps-subspecial"><code>plotfile<span class="roman">, ‘<samp>ps</samp>’ subspecial</span></code></a>:</td><td> </td><td valign="top"><a href="#ps-special">ps special</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pltotf"><code>pltotf</code></a>:</td><td> </td><td valign="top"><a href="#Metric-files">Metric files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-popen-for-output"><code>popen <span class="roman">for output</span></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-portrait-orientation_002c-defined">portrait orientation, defined</a>:</td><td> </td><td valign="top"><a href="#Paper-size-and-landscape">Paper size and landscape</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-positioning-accuracy">positioning accuracy</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-post-code-after-headers"><code>post <span class="roman">code after headers</span></code></a>:</td><td> </td><td valign="top"><a href="#Including-headers-from-TeX">Including headers from TeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PostScript-code_002c-literal">PostScript code, literal</a>:</td><td> </td><td valign="top"><a href="#Literal-PS">Literal PS</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PostScript-encoding">PostScript encoding</a>:</td><td> </td><td valign="top"><a href="#Encodings">Encodings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PostScript-encoding_002c-changing">PostScript encoding, changing</a>:</td><td> </td><td valign="top"><a href="#Changing-PostScript-encodings">Changing PostScript encodings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PostScript-font-alias-file">PostScript font alias file</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PostScript-font-alias-file-1">PostScript font alias file</a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PostScript-fonts">PostScript fonts</a>:</td><td> </td><td valign="top"><a href="#PostScript-fonts">PostScript fonts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PostScript-fonts_002c-installing">PostScript fonts, installing</a>:</td><td> </td><td valign="top"><a href="#PostScript-font-installation">PostScript font installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PostScript-fonts_002c-on-your-system">PostScript fonts, on your system</a>:</td><td> </td><td valign="top"><a href="#PostScript-font-installation">PostScript font installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PostScript-header-files">PostScript header files</a>:</td><td> </td><td valign="top"><a href="#Header-files">Header files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PostScript-hooks">PostScript hooks</a>:</td><td> </td><td valign="top"><a href="#PostScript-hooks">PostScript hooks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PostScript-interaction">PostScript interaction</a>:</td><td> </td><td valign="top"><a href="#Interaction-with-PostScript">Interaction with PostScript</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PostScript-previewers">PostScript previewers</a>:</td><td> </td><td valign="top"><a href="#Ghostscript-installation">Ghostscript installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PostScript-units">PostScript units</a>:</td><td> </td><td valign="top"><a href="#Bounding-box">Bounding box</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PowerPage-PostScript-implementation">PowerPage PostScript implementation</a>:</td><td> </td><td valign="top"><a href="#No-output">No output</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pre-code-before-headers"><code>pre <span class="roman">code before headers</span></code></a>:</td><td> </td><td valign="top"><a href="#Including-headers-from-TeX">Including headers from TeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-previewing-Dvips-output">previewing Dvips output</a>:</td><td> </td><td valign="top"><a href="#Ghostscript-installation">Ghostscript installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PRINTER"><code>PRINTER</code></a>:</td><td> </td><td valign="top"><a href="#Environment-variables">Environment variables</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-printer-configuration">printer configuration</a>:</td><td> </td><td valign="top"><a href="#config_002eps-installation">config.ps installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-printer-configuration-file_002c-prototype">printer configuration file, prototype</a>:</td><td> </td><td valign="top"><a href="#config_002eps-installation">config.ps installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-printer-errors">printer errors</a>:</td><td> </td><td valign="top"><a href="#Printer-errors">Printer errors</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-printer-memory">printer memory</a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-printer-memory-exhausted">printer memory exhausted</a>:</td><td> </td><td valign="top"><a href="#Printer-errors">Printer errors</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-printer-offset">printer offset</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PRINTER_002c-and-config-file-searching"><code>PRINTER<span class="roman">, and config file searching</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-searching">Configuration file searching</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PRINTER_002c-avoided-with-_002df"><code>PRINTER<span class="roman">, avoided with ‘<samp>-f</samp>’</span></code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-printer_002c-driving-directly">printer, driving directly</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-problems">problems</a>:</td><td> </td><td valign="top"><a href="#Diagnosing-problems">Diagnosing problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-property-list-files">property list files</a>:</td><td> </td><td valign="top"><a href="#Metric-files">Metric files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-prototype-printer-configuration-file">prototype printer configuration file</a>:</td><td> </td><td valign="top"><a href="#config_002eps-installation">config.ps installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ps-special"><code>ps <span class="roman">special</span></code></a>:</td><td> </td><td valign="top"><a href="#ps-special">ps special</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-psfile-special"><code>psfile <span class="roman">special</span></code></a>:</td><td> </td><td valign="top"><a href="#psfile-special">psfile special</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-psfonts_002emap"><code>psfonts.map</code></a>:</td><td> </td><td valign="top"><a href="#PostScript-font-installation">PostScript font installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-psfonts_002emap-1"><code>psfonts.map</code></a>:</td><td> </td><td valign="top"><a href="#Special-font-effects">Special font effects</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-psfonts_002emap-2"><code>psfonts.map</code></a>:</td><td> </td><td valign="top"><a href="#psfonts_002emap">psfonts.map</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-psheaderdir"><code>psheaderdir</code></a>:</td><td> </td><td valign="top"><a href="#Header-files">Header files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-psi-character-missing">psi character missing</a>:</td><td> </td><td valign="top"><a href="#Hypertext-caveats">Hypertext caveats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pstopk"><code>pstopk</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pTeX-extensions">pTeX extensions</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pTeX-extensions-1">pTeX extensions</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-Q">Q</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-q-config-command-_0028quiet_0029"><code>q <span class="roman">config command (quiet)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Q-config-command-_0028quiet_0029"><code>Q <span class="roman">config command (quiet)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-quiet-operation">quiet operation</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-R">R</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-r-config-command-_0028page-reversal_0029"><code>r <span class="roman">config command (page reversal)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-R-fallback-resolution-config-command"><code>R <span class="roman">fallback resolution config command</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-reencode_002f_002a_002eenc"><code>reencode/*.enc</code></a>:</td><td> </td><td valign="top"><a href="#Encodings">Encodings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-reencoding">reencoding</a>:</td><td> </td><td valign="top"><a href="#Reencoding-with-Afm2tfm">Reencoding with Afm2tfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-reencoding-PostScript-fonts">reencoding PostScript fonts</a>:</td><td> </td><td valign="top"><a href="#psfonts_002emap">psfonts.map</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-registered-character_002c-accessing"><code>registered <span class="roman">character, accessing</span></code></a>:</td><td> </td><td valign="top"><a href="#Changing-PostScript-encodings">Changing PostScript encodings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-remapping">remapping</a>:</td><td> </td><td valign="top"><a href="#Reencoding-with-Afm2tfm">Reencoding with Afm2tfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-resident-fonts_002c-different-in-different-printers">resident fonts, different in different printers</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-resident-fonts_002c-different-in-different-printers-1">resident fonts, different in different printers</a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-resolution">resolution</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-resolution-1">resolution</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-resolution_002c-setting">resolution, setting</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-reverse-pagination">reverse pagination</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-rhi-_0028psfile-special-option_0029"><code>rhi <span class="roman">(‘<samp>psfile</samp>’ special option)</span></code></a>:</td><td> </td><td valign="top"><a href="#psfile-special">psfile special</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Rokicki_002c-Tomas">Rokicki, Tomas</a>:</td><td> </td><td valign="top"><a href="#Why-Dvips">Why Dvips</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-rotate_002etex"><code>rotate.tex</code></a>:</td><td> </td><td valign="top"><a href="#ps-special">ps special</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-rwi-_0028psfile-special-option_0029"><code>rwi <span class="roman">(‘<samp>psfile</samp>’ special option)</span></code></a>:</td><td> </td><td valign="top"><a href="#psfile-special">psfile special</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-S">S</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-S-config-command-_0028pict-path_0029"><code>S <span class="roman">config command (pict path)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-s-config-command-_0028save_002frestore_0029"><code>s <span class="roman">config command (save/restore)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-save_002frestore_002c-and-inverted-output">save/restore, and inverted output</a>:</td><td> </td><td valign="top"><a href="#Small-or-inverted">Small or inverted</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-save_002frestore_002c-and-literal-PS"><code>save<span class="roman">/</span>restore<span class="roman">, and literal PS</span></code></a>:</td><td> </td><td valign="top"><a href="#Literal-examples">Literal examples</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-save_002frestore_002c-and-specials">save/restore, and specials</a>:</td><td> </td><td valign="top"><a href="#ps-special">ps special</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-save_002frestore_002c-generating-global">save/restore, generating global</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-scaleunit"><code>scaleunit</code></a>:</td><td> </td><td valign="top"><a href="#psfile-special">psfile special</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-scaling-of-figures">scaling of figures</a>:</td><td> </td><td valign="top"><a href="#EPSF-scaling">EPSF scaling</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-scaling-small-caps">scaling small caps</a>:</td><td> </td><td valign="top"><a href="#Afm2tfm-options">Afm2tfm options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Scandinavian-A-ring">Scandinavian A ring</a>:</td><td> </td><td valign="top"><a href="#Reencoding-with-Afm2tfm">Reencoding with Afm2tfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-screen-frequencies_002c-setting">screen frequencies, setting</a>:</td><td> </td><td valign="top"><a href="#Including-headers-from-the-command-line">Including headers from the command line</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-SDict"><code>SDict</code></a>:</td><td> </td><td valign="top"><a href="#psfile-special">psfile special</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-SDict-dictionary"><code>SDict <span class="roman">dictionary</span></code></a>:</td><td> </td><td valign="top"><a href="#Literal-headers">Literal headers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-searching-config-files_002c-order-of">searching config files, order of</a>:</td><td> </td><td valign="top"><a href="#Configuration-file-searching">Configuration file searching</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-sections-of-output-file_002c-and-memory">sections of output file, and memory</a>:</td><td> </td><td valign="top"><a href="#Headers-and-memory-usage">Headers and memory usage</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-sections-output_002c-in-separate-files">sections output, in separate files</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-security">security</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-shell-command-execution_002c-disabling">shell command execution, disabling</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-shell-escape_002c-in-config-file">shell escape, in config file</a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Shinko-CHC_002dS446i-printer">Shinko CHC-S446i printer</a>:</td><td> </td><td valign="top"><a href="#No-output">No output</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-show-PostScript-operator"><code>show <span class="roman">PostScript operator</span></code></a>:</td><td> </td><td valign="top"><a href="#PostScript-typesetting">PostScript typesetting</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-silent-operation">silent operation</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-simplex-mode-on-duplex-printers">simplex mode on duplex printers</a>:</td><td> </td><td valign="top"><a href="#Including-headers-from-the-command-line">Including headers from the command line</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-slanted-fonts">slanted fonts</a>:</td><td> </td><td valign="top"><a href="#Special-font-effects">Special font effects</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-slanted-fonts_002c-making">slanted fonts, making</a>:</td><td> </td><td valign="top"><a href="#Afm2tfm-options">Afm2tfm options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-SlantFont"><code>SlantFont</code></a>:</td><td> </td><td valign="top"><a href="#Special-font-effects">Special font effects</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-small-caps-fonts">small caps fonts</a>:</td><td> </td><td valign="top"><a href="#Special-font-effects">Special font effects</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Smith_002c-Arthur">Smith, Arthur</a>:</td><td> </td><td valign="top"><a href="#Hypertext-specials">Hypertext specials</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-spaces_002c-dropped-trailing">spaces, dropped trailing</a>:</td><td> </td><td valign="top"><a href="#Hypertext-caveats">Hypertext caveats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-specials_002c-hypertext">specials, hypertext</a>:</td><td> </td><td valign="top"><a href="#Hypertext-specials">Hypertext specials</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-splines">splines</a>:</td><td> </td><td valign="top"><a href="#Glyph-files">Glyph files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-spooler_002c-lacking">spooler, lacking</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-spooling-to-lpr-on-MS_002dDOS">spooling to lpr on MS-DOS</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-standard-I_002fO">standard I/O</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-standard-input_002c-reading-options-from">standard input, reading options from</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-standard-output_002c-output-to">standard output, output to</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-standard-PostScript_002c-required-by-Ghostview">standard PostScript, required by Ghostview</a>:</td><td> </td><td valign="top"><a href="#Ghostscript-installation">Ghostscript installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-start_002dhook"><code>start-hook</code></a>:</td><td> </td><td valign="top"><a href="#PostScript-hooks">PostScript hooks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-structured-comments">structured comments</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-system-in-config-file"><code>system <span class="roman">in config file</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-T">T</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-T-config-command-_0028TFM-path_0029"><code>T <span class="roman">config command (TFM path)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Tektronix-Phaser-printer_002c-used-for-color-calibration">Tektronix Phaser printer, used for color calibration</a>:</td><td> </td><td valign="top"><a href="#Color-device-configuration">Color device configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-testpage_002etex"><code>testpage.tex</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TeX-encoding_002c-changing">TeX encoding, changing</a>:</td><td> </td><td valign="top"><a href="#Changing-TeX-encodings">Changing TeX encodings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TeX_002c-including-headers-in">TeX, including headers in</a>:</td><td> </td><td valign="top"><a href="#Including-headers-from-TeX">Including headers from TeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXCONFIG"><code>TEXCONFIG</code></a>:</td><td> </td><td valign="top"><a href="#Environment-variables">Environment variables</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXFONTS_002c-overrides-P"><code>TEXFONTS<span class="roman">, overrides</span> P</code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXFONTS_002c-overrides-T"><code>TEXFONTS<span class="roman">, overrides</span> T</code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXINPUTS_002c-overrides-S"><code>TEXINPUTS<span class="roman">, overrides</span> S</code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-texmext_002eenc"><code>texmext.enc</code></a>:</td><td> </td><td valign="top"><a href="#Encodings">Encodings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXMFOUTPUT"><code>TEXMFOUTPUT</code></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-texmital_002eenc"><code>texmital.enc</code></a>:</td><td> </td><td valign="top"><a href="#Encodings">Encodings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-texmsym_002eenc"><code>texmsym.enc</code></a>:</td><td> </td><td valign="top"><a href="#Encodings">Encodings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-texmsym_002eenc-1"><code>texmsym.enc</code></a>:</td><td> </td><td valign="top"><a href="#Changing-TeX-encodings">Changing TeX encodings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXPICTS"><code>TEXPICTS</code></a>:</td><td> </td><td valign="top"><a href="#Environment-variables">Environment variables</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXPICTS_002c-overrides-S"><code>TEXPICTS<span class="roman">, overrides</span> S</code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXPKS_002c-overrides-P"><code>TEXPKS<span class="roman">, overrides</span> P</code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXSIZES_002c-overrides-R"><code>TEXSIZES<span class="roman">, overrides</span> R</code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-text-in-figures_002c-chopped-off">text in figures, chopped off</a>:</td><td> </td><td valign="top"><a href="#EPSF-clipping">EPSF clipping</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tfm-files">tfm files</a>:</td><td> </td><td valign="top"><a href="#Metric-files">Metric files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TFMFONTS_002c-overrides-T"><code>TFMFONTS<span class="roman">, overrides</span> T</code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tftopl"><code>tftopl</code></a>:</td><td> </td><td valign="top"><a href="#Metric-files">Metric files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Theisen_002c-Tim">Theisen, Tim</a>:</td><td> </td><td valign="top"><a href="#Ghostscript-installation">Ghostscript installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tight-bounding-box_002c-finding">tight bounding box, finding</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-too_002dsmall-output">too-small output</a>:</td><td> </td><td valign="top"><a href="#Small-or-inverted">Small or inverted</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-trademark-character_002c-accessing"><code>trademark <span class="roman">character, accessing</span></code></a>:</td><td> </td><td valign="top"><a href="#Changing-PostScript-encodings">Changing PostScript encodings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-trailing-spaces_002c-dropped">trailing spaces, dropped</a>:</td><td> </td><td valign="top"><a href="#Hypertext-caveats">Hypertext caveats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TranScript">TranScript</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-transforming-downloaded-fonts">transforming downloaded fonts</a>:</td><td> </td><td valign="top"><a href="#psfonts_002emap">psfonts.map</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-trouble">trouble</a>:</td><td> </td><td valign="top"><a href="#Diagnosing-problems">Diagnosing problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Type-1-fonts">Type 1 fonts</a>:</td><td> </td><td valign="top"><a href="#Glyph-files">Glyph files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-typesetting-in-PostScript">typesetting in PostScript</a>:</td><td> </td><td valign="top"><a href="#PostScript-typesetting">PostScript typesetting</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-U">U</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-U-config-command-_0028Xerox-4045_0029"><code>U <span class="roman">config command (Xerox 4045)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-uncollated-copies">uncollated copies</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-uncompressing-PostScript">uncompressing PostScript</a>:</td><td> </td><td valign="top"><a href="#Dynamic-creation-of-graphics">Dynamic creation of graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-uniform-resource-locator">uniform resource locator</a>:</td><td> </td><td valign="top"><a href="#Hypertext-specials">Hypertext specials</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-unknown_002c-paper-format-for-_002dt"><code>unknown<span class="roman">, paper format for ‘<samp>-t</samp>’</span></code></a>:</td><td> </td><td valign="top"><a href="#papersize-special">papersize special</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-unknown_002c-paper-format-for-_002dt-1"><code>unknown<span class="roman">, paper format for ‘<samp>-t</samp>’</span></code></a>:</td><td> </td><td valign="top"><a href="#Config-file-paper-sizes">Config file paper sizes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-URL_002c-definition">URL, definition</a>:</td><td> </td><td valign="top"><a href="#Hypertext-specials">Hypertext specials</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-URL_002c-extended-for-TeX">URL, extended for TeX</a>:</td><td> </td><td valign="top"><a href="#Hypertext-specials">Hypertext specials</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-urx-_0028psfile-special-option_0029"><code>urx <span class="roman">(‘<samp>psfile</samp>’ special option)</span></code></a>:</td><td> </td><td valign="top"><a href="#psfile-special">psfile special</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ury-_0028psfile-special-option_0029"><code>ury <span class="roman">(‘<samp>psfile</samp>’ special option)</span></code></a>:</td><td> </td><td valign="top"><a href="#psfile-special">psfile special</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-usage_002c-basic">usage, basic</a>:</td><td> </td><td valign="top"><a href="#Basic-usage">Basic usage</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-user_002ddefinable-colors">user-definable colors</a>:</td><td> </td><td valign="top"><a href="#User_002ddefinable-colors">User-definable colors</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-userdict_002c-and-dictionary-files"><code>userdict<span class="roman">, and dictionary files</span></code></a>:</td><td> </td><td valign="top"><a href="#Header-files">Header files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-userdict_002c-used-for-header-files">userdict<span class="roman">, used for header files</span></a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-V">V</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-V-config-command-_0028vf-path_0029"><code>V <span class="roman">config command (vf path)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-verbose-EPSF-processing">verbose EPSF processing</a>:</td><td> </td><td valign="top"><a href="#EPSF-macros">EPSF macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-vf-files">vf files</a>:</td><td> </td><td valign="top"><a href="#Virtual-fonts">Virtual fonts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-virtual-font-expansion">virtual font expansion</a>:</td><td> </td><td valign="top"><a href="#Virtual-fonts">Virtual fonts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-virtual-font-path">virtual font path</a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-virtual-fonts">virtual fonts</a>:</td><td> </td><td valign="top"><a href="#Virtual-fonts">Virtual fonts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-virtual-fonts_002c-creating">virtual fonts, creating</a>:</td><td> </td><td valign="top"><a href="#Invoking-afm2tfm">Invoking afm2tfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-VM-exhausted">VM exhausted</a>:</td><td> </td><td valign="top"><a href="#Printer-errors">Printer errors</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-VMusage"><code>VMusage</code></a>:</td><td> </td><td valign="top"><a href="#Headers-and-memory-usage">Headers and memory usage</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-voffset-_0028psfile-special-option_0029"><code>voffset <span class="roman">(‘<samp>psfile</samp>’ special option)</span></code></a>:</td><td> </td><td valign="top"><a href="#psfile-special">psfile special</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-vpl-files">vpl files</a>:</td><td> </td><td valign="top"><a href="#Virtual-fonts">Virtual fonts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-vptovf"><code>vptovf</code></a>:</td><td> </td><td valign="top"><a href="#Making-a-font-available">Making a font available</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-vscale-_0028psfile-special-option_0029"><code>vscale <span class="roman">(‘<samp>psfile</samp>’ special option)</span></code></a>:</td><td> </td><td valign="top"><a href="#psfile-special">psfile special</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-vsize-_0028psfile-special-option_0029"><code>vsize <span class="roman">(‘<samp>psfile</samp>’ special option)</span></code></a>:</td><td> </td><td valign="top"><a href="#psfile-special">psfile special</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-W">W</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-W-config-command-_0028warning_0029"><code>W <span class="roman">config command (warning)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-warning-messages_002c-defining">warning messages, defining</a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-warnings_002c-suppressing">warnings, suppressing</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-whole-font-downloading">whole font downloading</a>:</td><td> </td><td valign="top"><a href="#psfonts_002emap">psfonts.map</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-wide-fonts">wide fonts</a>:</td><td> </td><td valign="top"><a href="#psfonts_002emap">psfonts.map</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-X">X</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-X-config-command-_0028horizontal-resolution_0029"><code>X <span class="roman">config command (horizontal resolution)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Xerox-4045">Xerox 4045</a>:</td><td> </td><td valign="top"><a href="#Option-details">Option details</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-Y">Y</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-Y-config-command-_0028vertical-resolution_0029"><code>Y <span class="roman">config command (vertical resolution)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-Z">Z</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-Z-config-command-_0028compression_0029"><code>Z <span class="roman">config command (compression)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-z-config-command-_0028secure-mode_0029"><code>z <span class="roman">config command (secure mode)</span></code></a>:</td><td> </td><td valign="top"><a href="#Configuration-file-commands">Configuration file commands</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +</table> +<table><tr><th valign="top">Jump to: </th><td><a class="summary-letter" href="#Index_cp_symbol-1"><b>!</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-2"><b>"</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-3"><b>%</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-4"><b>(</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-5"><b>+</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-6"><b>-</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-7"><b>.</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-8"><b>/</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-9"><b>6</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-10"><b>8</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-11"><b><</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-12"><b>=</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-13"><b>@</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-14"><b>\</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-15"><b>|</b></a> + +<br> +<a class="summary-letter" href="#Index_cp_letter-A"><b>A</b></a> + +<a class="summary-letter" href="#Index_cp_letter-B"><b>B</b></a> + +<a class="summary-letter" href="#Index_cp_letter-C"><b>C</b></a> + +<a class="summary-letter" href="#Index_cp_letter-D"><b>D</b></a> + +<a class="summary-letter" href="#Index_cp_letter-E"><b>E</b></a> + +<a class="summary-letter" href="#Index_cp_letter-F"><b>F</b></a> + +<a class="summary-letter" href="#Index_cp_letter-G"><b>G</b></a> + +<a class="summary-letter" href="#Index_cp_letter-H"><b>H</b></a> + +<a class="summary-letter" href="#Index_cp_letter-I"><b>I</b></a> + +<a class="summary-letter" href="#Index_cp_letter-J"><b>J</b></a> + +<a class="summary-letter" href="#Index_cp_letter-K"><b>K</b></a> + +<a class="summary-letter" href="#Index_cp_letter-L"><b>L</b></a> + +<a class="summary-letter" href="#Index_cp_letter-M"><b>M</b></a> + +<a class="summary-letter" href="#Index_cp_letter-N"><b>N</b></a> + +<a class="summary-letter" href="#Index_cp_letter-O"><b>O</b></a> + +<a class="summary-letter" href="#Index_cp_letter-P"><b>P</b></a> + +<a class="summary-letter" href="#Index_cp_letter-Q"><b>Q</b></a> + +<a class="summary-letter" href="#Index_cp_letter-R"><b>R</b></a> + +<a class="summary-letter" href="#Index_cp_letter-S"><b>S</b></a> + +<a class="summary-letter" href="#Index_cp_letter-T"><b>T</b></a> + +<a class="summary-letter" href="#Index_cp_letter-U"><b>U</b></a> + +<a class="summary-letter" href="#Index_cp_letter-V"><b>V</b></a> + +<a class="summary-letter" href="#Index_cp_letter-W"><b>W</b></a> + +<a class="summary-letter" href="#Index_cp_letter-X"><b>X</b></a> + +<a class="summary-letter" href="#Index_cp_letter-Y"><b>Y</b></a> + +<a class="summary-letter" href="#Index_cp_letter-Z"><b>Z</b></a> + +</td></tr></table> + + +<hr> + + + +</body> +</html> diff --git a/Master/texmf-dist/doc/dvips/dvips.pdf b/Master/texmf-dist/doc/dvips/dvips.pdf Binary files differindex 94b17e2aaf4..f7e631e528d 100644 --- a/Master/texmf-dist/doc/dvips/dvips.pdf +++ b/Master/texmf-dist/doc/dvips/dvips.pdf diff --git a/Master/texmf-dist/doc/info/dir b/Master/texmf-dist/doc/info/dir index 9132b9981a3..865ccfce962 100644 --- a/Master/texmf-dist/doc/info/dir +++ b/Master/texmf-dist/doc/info/dir @@ -30,6 +30,7 @@ TeX * Naming TeX fonts: (fontname). Filenames for TeX fonts. * TDS: (tds). Standard TeX directory structure. * TeXDraw: (texdraw). Drawing PostScript diagrams within TeX. +* TL-build: (tlbuild). TeX Live configuration and development. * Web2C: (web2c). TeX, Metafont, and companion programs. Individual utilities diff --git a/Master/texmf-dist/doc/info/dvipng.info b/Master/texmf-dist/doc/info/dvipng.info index c0f565d72be..c1062fb6d72 100644 --- a/Master/texmf-dist/doc/info/dvipng.info +++ b/Master/texmf-dist/doc/info/dvipng.info @@ -1,4 +1,4 @@ -This is dvipng.info, produced by makeinfo version 4.13 from dvipng.texi. +This is dvipng.info, produced by makeinfo version 5.1 from dvipng.texi. INFO-DIR-SECTION TeX START-INFO-DIR-ENTRY @@ -43,43 +43,43 @@ File: dvipng.info, Node: Introduction, Next: Installation, Prev: Top, Up: To This program makes PNG and/or GIF graphics from DVI files as obtained from TeX and its relatives. - If GIF support is enabled, GIF output is chosen by using the -`dvigif' binary or with the `--gif' option. + If GIF support is enabled, GIF output is chosen by using the 'dvigif' +binary or with the '--gif' option. It is intended to produce anti-aliased screen-resolution images as -fast as is possible. The target audience is people who need to generate -and regenerate many images again and again. The primary target is the +fast as is possible. The target audience is people who need to generate +and regenerate many images again and again. The primary target is the preview-latex (X)Emacs package, a package to preview formulas from -within (X)Emacs. Yes, you get to see your formulas in the (X)Emacs -buffer, see `http://www.gnu.org/software/auctex/preview-latex.html'. +within (X)Emacs. Yes, you get to see your formulas in the (X)Emacs +buffer, see <http://www.gnu.org/software/auctex/preview-latex.html>. Another example is WeBWorK, an internet-based method for delivering -homework problems to students over the internet, giving students -instant feedback as to whether or not their answers are correct, see -`http://webwork.math.rochester.edu'. +homework problems to students over the internet, giving students instant +feedback as to whether or not their answers are correct, see +<http://webwork.math.rochester.edu>. A more recent addition to the dvipng-using applications out there is -MediaWiki, the software behind Wikipedia and many other wikis out -there. Dvipng is used to render mathematical formulae from version -1.8.0 of MediaWiki, see `http://www.mediawiki.org'. +MediaWiki, the software behind Wikipedia and many other wikis out there. +Dvipng is used to render mathematical formulae from version 1.8.0 of +MediaWiki, see <http://www.mediawiki.org>. Other applications may also benefit, like web applications as latex2html and WYSIWYG editors like LyX. - The benefits of `dvipng'/`dvigif' include + The benefits of 'dvipng'/'dvigif' include - * Speed. It is a very fast bitmap-rendering code for DVI files, which - makes it suitable for generating large amounts of images + * Speed. It is a very fast bitmap-rendering code for DVI files, + which makes it suitable for generating large amounts of images on-the-fly, as needed in preview-latex, WeBWorK and others. * It does not read the postamble, so it can be started before TeX - finishes. There is a `--follow' switch that makes dvipng wait at + finishes. There is a '--follow' switch that makes dvipng wait at end-of-file for further output, unless it finds the POST marker that indicates the end of the DVI. - * Interactive query of options. dvipng can read options interactively - through stdin, and all options are usable. It is even possible to - change the input file through this interface. + * Interactive query of options. dvipng can read options + interactively through stdin, and all options are usable. It is + even possible to change the input file through this interface. * Supports PK, VF, PostScript Type1, and TrueType fonts, subfonts (i.e., as used in CJK-LaTeX), color specials, and inclusion of @@ -87,23 +87,22 @@ latex2html and WYSIWYG editors like LyX. * and more... - File: dvipng.info, Node: Installation, Next: Basic usage, Prev: Introduction, Up: Top 2 Installation ************** -Installing dvipng should be simple: merely `./configure', `make', and -`make install'. +Installing dvipng should be simple: merely './configure', 'make', and +'make install'. * Menu: -* Prerequisites:: -* Configure:: -* Build/install:: +* Prerequisites:: +* Configure:: +* Build/install:: * Installation outside the texmf tree:: -* Advice for non-privileged users:: +* Advice for non-privileged users:: File: dvipng.info, Node: Prerequisites, Next: Configure, Up: Installation @@ -113,35 +112,35 @@ File: dvipng.info, Node: Prerequisites, Next: Configure, Up: Installation * The GD Graphics Draw library, libgd - The drawing library `libgd' is necessary, and is downloadable at - `http://www.boutell.com/gd', and there are binary packages for - most operating systems from their respective distributors. In any - case, the latest version of the library installs using `autoconf' - so it should not be difficult for you to install it from source, - and then proceed with installing dvipng. + The drawing library 'libgd' is necessary, and is downloadable at + <http://www.boutell.com/gd>, and there are binary packages for most + operating systems from their respective distributors. In any case, + the latest version of the library installs using 'autoconf' so it + should not be difficult for you to install it from source, and then + proceed with installing dvipng. * The path-searching library kpathsea Kpathsea is most likely included in your LaTeX installation, but it - may happen that ./configure does not find it; see below. If you do - not have it, download it from `http://www.ctan.org' and compile it. + may happen that ./configure does not find it; see below. If you do + not have it, download it from <http://www.ctan.org> and compile it. I have no experience with this, so I cannot help much here. * The font-rendering library FreeType 2 While not strictly necessary, a recent FreeType 2 is recommended - since dvipng currently will produce better-quality images when - this library is available. To take advantage of this, you should - have at least FreeType 2.1.9. + since dvipng currently will produce better-quality images when this + library is available. To take advantage of this, you should have + at least FreeType 2.1.9. FreeType 2 will enable direct support for PostScript and TrueType fonts, so that dvipng will not need to generate bitmapped variants on disk of the TeX fonts since modern TeX distributions include - PostScript versions of them. Then, you can render images at + PostScript versions of them. Then, you can render images at different (and unusual) resolutions without cluttering the disk with lots of bitmapped fonts. - Finally, it will enable subfont support in dvipng. That is, if you + Finally, it will enable subfont support in dvipng. That is, if you want to render CJK-LaTeX characters, you must have FreeType 2 installed. @@ -151,17 +150,17 @@ File: dvipng.info, Node: Prerequisites, Next: Configure, Up: Installation PostScript fonts in dvipng and will not include subfont support. Also here, you can render images at different (and unusual) resolutions without cluttering the disk with lots of bitmapped - fonts. If both FreeType 2 and T1lib are present, FreeType will be + fonts. If both FreeType 2 and T1lib are present, FreeType will be internally preferred by dvipng but T1lib can be chosen at runtime. * libpng and libz To be able to compress and write PNG files to disk, dvipng (or - really libgd) uses libpng which in turn uses libz. These should be + really libgd) uses libpng which in turn uses libz. These should be available on any modern system, if not, download them and install them. - * The `texinfo' package + * The 'texinfo' package This is needed for building the documentation. @@ -171,32 +170,32 @@ File: dvipng.info, Node: Configure, Next: Build/install, Prev: Prerequisites, 2.2 Configure ============= -The first step is to configure the source code, telling it where -various files will be. To do so, run +The first step is to configure the source code, telling it where various +files will be. To do so, run ./configure OPTIONS (Note: if you have fetched dvipng from CVS rather than a regular -release, you will have to first generate `./configure' by running -`autoconf' 2.53 or later.) +release, you will have to first generate './configure' by running +'autoconf' 2.53 or later.) On many machines, you will not need to specify any options, but if -`configure' cannot determine something on its own, you'll need to help -it out. For a list of the options type +'configure' cannot determine something on its own, you'll need to help +it out. For a list of the options type ./configure --help On some machines, the libraries will be installed in directories that -are not in the linker's search path. This will generate an error when -running `./configure', indicating that it cannot find libgd or -libkpathsea (most likely). You then need to specify the path to the -respective library's object files. They are typically called e.g., -`libgd.a' or `libgd.so'. If they are located in e.g., `/sw/local/lib', +are not in the linker's search path. This will generate an error when +running './configure', indicating that it cannot find libgd or +libkpathsea (most likely). You then need to specify the path to the +respective library's object files. They are typically called e.g., +'libgd.a' or 'libgd.so'. If they are located in e.g., '/sw/local/lib', do ./configure LDFLAGS=-L/sw/local/lib - If the library is available as a shared object file (`.so'), the + If the library is available as a shared object file ('.so'), the runtime linker may also need to be told where to find the library, then use @@ -204,11 +203,11 @@ use When either of these is necessary, it is likely that the C header files are also installed in directories that are not in the C -preprocessor's search path. This will also generate an error when -running `./configure', indicating that it cannot find e.g., `gd.h' or -`kpathsea.h' (most likely). You then need to specify the path to the -respective library's C header files. If they are located in e.g., -`/sw/local/include', do +preprocessor's search path. This will also generate an error when +running './configure', indicating that it cannot find e.g., 'gd.h' or +'kpathsea.h' (most likely). You then need to specify the path to the +respective library's C header files. If they are located in e.g., +'/sw/local/include', do ./configure CPPFLAGS=-I/sw/local/include @@ -225,7 +224,7 @@ File: dvipng.info, Node: Build/install, Next: Installation outside the texmf t 2.3 Build/install ================= -Once `configure' has been run, simply enter +Once 'configure' has been run, simply enter make @@ -243,14 +242,13 @@ File: dvipng.info, Node: Installation outside the texmf tree, Next: Advice for 2.4 Installation outside the texmf tree ======================================= -In some cases, a dvipng binary installed outside the texmf tree will -not be able to find virtual fonts, or the PostScript font maps -(normally used by dvips). This may be because _only_ $SELFAUTOLOC, -$SELFAUTODIR, and $SELFAUTOPARENT are used in the texmf tree -configuration file `texmf.cnf'. If so, give the switch -`--enable-selfauto-set' to `./configure'. This will make dvipng adjust -these three internally so that kpathsea thinks that dvipng _is_ -installed in the texmf tree. +In some cases, a dvipng binary installed outside the texmf tree will not +be able to find virtual fonts, or the PostScript font maps (normally +used by dvips). This may be because _only_ $SELFAUTOLOC, $SELFAUTODIR, +and $SELFAUTOPARENT are used in the texmf tree configuration file +'texmf.cnf'. If so, give the switch '--enable-selfauto-set' to +'./configure'. This will make dvipng adjust these three internally so +that kpathsea thinks that dvipng _is_ installed in the texmf tree. File: dvipng.info, Node: Advice for non-privileged users, Prev: Installation outside the texmf tree, Up: Installation @@ -259,18 +257,18 @@ File: dvipng.info, Node: Advice for non-privileged users, Prev: Installation o ========================================= Often people without system administration privileges want to install -software for their private use. In that case you need to specify more -options to the `configure' script, usually this is done by using the -`--prefix' option to the `configure' script, and let it point to the -personal home directory. In that way, resulting binaries will be -installed under the `bin' subdirectory of your home directory, manual -pages under `man' and so on. That way, it is reasonably easy to +software for their private use. In that case you need to specify more +options to the 'configure' script, usually this is done by using the +'--prefix' option to the 'configure' script, and let it point to the +personal home directory. In that way, resulting binaries will be +installed under the 'bin' subdirectory of your home directory, manual +pages under 'man' and so on. That way, it is reasonably easy to maintain a bunch of additional packages, since the prefix argument is -supported by most `configure' scripts. +supported by most 'configure' scripts. - You'll have to add something like `/home/myself/bin' to your `PATH' + You'll have to add something like '/home/myself/bin' to your 'PATH' shell variable, if it isn't there already, and similarly set the -`INFOPATH' and `MANPATH' variables to be able to access the +'INFOPATH' and 'MANPATH' variables to be able to access the documentation. @@ -283,21 +281,20 @@ To use dvipng at its simplest, simply type dvipng foo -where `foo.dvi' is the output of TeX that you want to convert to PNG -format. If there are four pages in `foo.dvi', those pages will be -output as `foo1.png', `foo2.png', `foo3.png', and `foo4.png', +where 'foo.dvi' is the output of TeX that you want to convert to PNG +format. If there are four pages in 'foo.dvi', those pages will be +output as 'foo1.png', 'foo2.png', 'foo3.png', and 'foo4.png', respectively. If you have enabled the PostScript font support (via FreeType or -T1lib), fonts will be rendered as they are needed. Otherwise, dvipng +T1lib), fonts will be rendered as they are needed. Otherwise, dvipng will use bitmapped (PK) fonts, and if you use PK fonts that have not been used on your system before, they may be automatically generated; this process can take a few minutes, so progress reports appear by -default. The next time the same font is used, it will have been saved -on disk, so rendering will go much faster. (If dvipng tries to +default. The next time the same font is used, it will have been saved +on disk, so rendering will go much faster. (If dvipng tries to endlessly generate the same fonts over and over again, something is -wrong. *Note Unable to generate fonts: (kpathsea)Unable to generate -fonts.) +wrong. *Note (kpathsea)Unable to generate fonts::.) Many options are available (see the next section). For a brief summary of available options, just type @@ -315,7 +312,7 @@ section will give a good idea of the capabilities of the driver. * Menu: -* Option summary:: Quick listing, from dvipng --help. +* Option summary:: Quick listing, from dvipng -help. * Option details:: More information about each option. @@ -325,9 +322,9 @@ File: dvipng.info, Node: Option summary, Next: Option details, Up: Command-li ================== Here is a handy summary of the options; it is printed out when you run -dvipng with no arguments or with the standard `--help' option. +dvipng with no arguments or with the standard '--help' option. - This is ./dvipng 1.14 Copyright 2002-2010 Jan-Ake Larsson + This is ./dvipng (TeX Live) 1.14 Copyright 2002-2010 Jan-Ake Larsson Usage: ./dvipng [OPTION]... FILENAME[.dvi] Options are chosen to be similar to dvips' options where possible: @@ -362,7 +359,6 @@ dvipng with no arguments or with the standard `--help' option. --picky When a warning occurs, don't output image --png Output PNG images (dvipng default) --strict When a warning occurs, exit - --t1lib* T1lib font rendering (default on) --truecolor* Truecolor output -Q # Quality (T1lib and PK subsampling) --width* Output the image width on stdout @@ -378,325 +374,322 @@ File: dvipng.info, Node: Option details, Prev: Option summary, Up: Command-li ================== Many of the parameterless options listed here can be turned off by -suffixing the option with a zero (`0'); for instance, to turn off page -reversal, use `-r0'. Such options are marked with a trailing `*'. +suffixing the option with a zero ('0'); for instance, to turn off page +reversal, use '-r0'. Such options are marked with a trailing '*'. -`-' +'-' Read additional options from standard input after processing the command line. -`--help' +'--help' Print a usage message and exit. -`--version' +'--version' Print the version number and exit. -`-bd NUM' - -`-bd COLOR_SPEC' - -`-bd 'NUM COLOR_SPEC'' - Set the pixel width of the transparent border (default 0). Using +'-bd NUM' +'-bd COLOR_SPEC' +'-bd 'NUM COLOR_SPEC'' + Set the pixel width of the transparent border (default 0). Using this option will make the image edges transparent, but it only - affects pixels with the background color. Giving a COLOR_SPEC will + affects pixels with the background color. Giving a COLOR_SPEC will set the fallback color, to be used in viewers that cannot handle - transparency (the default is the background color). The color spec + transparency (the default is the background color). The color spec should be in TeX color \special syntax, e.g., 'rgb 1.0 0.0 0.0'. Setting the fallback color makes the default border width 1 px. *Note Color::. -`--bdpi NUM' - This option only has an effect when using bitmapped (PK) fonts. The - option sets the base (Metafont) resolution, both horizontal and - vertical, to NUM dpi (dots per inch). This option is necessary +'--bdpi NUM' + This option only has an effect when using bitmapped (PK) fonts. + The option sets the base (Metafont) resolution, both horizontal and + vertical, to NUM dpi (dots per inch). This option is necessary when manually selecting Metafont mode with the -mode option (see below). -`-bg COLOR_SPEC' - Choose background color for the images. This option will be +'-bg COLOR_SPEC' + Choose background color for the images. This option will be ignored if there is a background color \special in the DVI. The color spec should be in TeX color \special syntax, e.g., 'rgb 1.0 - 0.0 0.0'. You can also specify 'Transparent' or 'transparent' + 0.0 0.0'. You can also specify 'Transparent' or 'transparent' which will give you a transparent background with the normal - background as a fallback color. A capitalized 'Transparent' will + background as a fallback color. A capitalized 'Transparent' will give a full-alpha transparency, while an all-lowercase 'transparent' will give a simple fully transparent background with - non-transparent antialiased pixels. The latter would be suitable + non-transparent antialiased pixels. The latter would be suitable for viewers who cannot cope with a true alpha channel. GIF images do not support full alpha transparency, so in case of GIF output, both variants will use the latter behaviour. *Note Color::. -`-d NUM' +'-d NUM' Set the debug flags, showing what dvipng (thinks it) is doing. - This will work unless dvipng has been compiled without the `DEBUG' - option (not recommended). Set the flags as you need them, use `-d - -1' as the first option for maximum output. *Note Debug options::. + This will work unless dvipng has been compiled without the 'DEBUG' + option (not recommended). Set the flags as you need them, use '-d + -1' as the first option for maximum output. *Note Debug options::. -`-D NUM' - Set the output resolution, both horizontal and vertical, to NUM - dpi (dots per inch). +'-D NUM' + Set the output resolution, both horizontal and vertical, to NUM dpi + (dots per inch). One may want to adjust this to fit a certain text font size (e.g., on a web page), and for a text font height of FONT_PX pixels (in Mozilla) the correct formula is DPI = FONT_PX * 72.27 / 10 [px * TeXpt/in / TeXpt] The last division by ten is due to the standard font height 10pt in - your document, if you use 12pt, divide by 12. Unfortunately, some + your document, if you use 12pt, divide by 12. Unfortunately, some proprietary browsers have font height in pt (points), not pixels. You have to rescale that to pixels, using the screen resolution (default is usually 96 dpi) which means the formula is FONT_PX = FONT_PT * 96 / 72 [pt * px/in / (pt/in)] - On some high-res screens, the value is instead 120 dpi. Good luck! + On some high-res screens, the value is instead 120 dpi. Good luck! -`--depth*' - Report the depth of the image. This only works reliably when the - LaTeX style `preview.sty' from preview-latex is used with the - `active' option. It reports the number of pixels from the bottom - of the image to the baseline of the image. This can be used for +'--depth*' + Report the depth of the image. This only works reliably when the + LaTeX style 'preview.sty' from preview-latex is used with the + 'active' option. It reports the number of pixels from the bottom + of the image to the baseline of the image. This can be used for vertical positioning of the image in, e.g., web documents, where one would use (Cascading StyleSheets 1) <IMG SRC="FILENAME.PNG" STYLE="vertical-align: -DEPTHpx"> The depth is a negative offset in this case, so the minus sign is necessary, and the unit is pixels (px). -`--dvinum*' +'--dvinum*' Set this option to make the output page number be the TeX page - numbers rather than the physical page number. See the `-o' switch. + numbers rather than the physical page number. See the '-o' switch. -`-fg COLOR_SPEC' - Choose foreground color for the images. This option will be +'-fg COLOR_SPEC' + Choose foreground color for the images. This option will be ignored if there is a foreground color \special in the DVI. The color spec should be in TeX color \special syntax, e.g., 'rgb 1.0 0.0 0.0'. *Note Color::. -`--follow*' - Wait for data at end-of-file. One of the benefits of dvipng is +'--follow*' + Wait for data at end-of-file. One of the benefits of dvipng is that it does not read the postamble, so it can be started before - TeX finishes. This switch makes dvipng wait at end-of-file for + TeX finishes. This switch makes dvipng wait at end-of-file for further output, unless it finds the POST marker that indicates the - end of the DVI. This is similar to `tail -f' but for DVI-to-PNG + end of the DVI. This is similar to 'tail -f' but for DVI-to-PNG conversion. -`--freetype*' - Enable/disable FreeType font rendering (default on). This option is - available if the FreeType2 font library was present at compilation - time. If this is the case, dvipng will have direct support for - PostScript Type1 and TrueType fonts internally, rather than using - `gsftopk' for rendering the fonts. If you have PostScript versions - of Computer Modern installed, there will be no need to generate - bitmapped (PK) variants on disk of these. Then, you can render - images at different (and unusual) resolutions without cluttering - the disk with lots of bitmapped fonts. Note that if you have both - FreeType and T1lib on your system, FreeType will be preferred by - dvipng. If you for some reason would want to use T1lib rendering, - use this option. - -`--gamma NUM' +'--freetype*' + Enable/disable FreeType font rendering (default on). This option + is available if the FreeType2 font library was present at + compilation time. If this is the case, dvipng will have direct + support for PostScript Type1 and TrueType fonts internally, rather + than using 'gsftopk' for rendering the fonts. If you have + PostScript versions of Computer Modern installed, there will be no + need to generate bitmapped (PK) variants on disk of these. Then, + you can render images at different (and unusual) resolutions + without cluttering the disk with lots of bitmapped fonts. Note + that if you have both FreeType and T1lib on your system, FreeType + will be preferred by dvipng. If you for some reason would want to + use T1lib rendering, use this option. + +'--gamma NUM' Control the interpolation of colors in the greyscale anti-aliasing color palette. Default value is 1.0. For 0 < NUM < 1, the fonts will be lighter (more like the background), and for NUM > 1, the fonts will be darker (more like the foreground). -`--gif*' +'--gif*' The images are output in the GIF format, if GIF support is enabled. - This is the default for the `dvigif' binary, which only will be - available when GIF support is enabled. GIF images are palette - images (see the `--palette' option) and does not support true alpha - channels (see the `--bg' option). See also the `--png' option. - -`--height*' - Report the height of the image. This only works reliably when the - LaTeX style `preview.sty' from preview-latex is used with the - `active' option. It reports the number of pixels from the top of - the image to the baseline of the image. The total height of the - image is obtained as the sum of the values reported from - `--height' and `--depth'. - -`-l [=]NUM' - The last page printed will be the first one numbered NUM. Default + This is the default for the 'dvigif' binary, which only will be + available when GIF support is enabled. GIF images are palette + images (see the '--palette' option) and does not support true alpha + channels (see the '--bg' option). See also the '--png' option. + +'--height*' + Report the height of the image. This only works reliably when the + LaTeX style 'preview.sty' from preview-latex is used with the + 'active' option. It reports the number of pixels from the top of + the image to the baseline of the image. The total height of the + image is obtained as the sum of the values reported from '--height' + and '--depth'. + +'-l [=]NUM' + The last page printed will be the first one numbered NUM. Default is the last page in the document. If NUM is prefixed by an equals - sign, then it (and the argument to the `-p' option, if specified) + sign, then it (and the argument to the '-p' option, if specified) is treated as a physical (absolute) page number, rather than a - value to compare with the TeX `\count0' values stored in the DVI - file. Thus, using `-l =9' will end with the ninth page of the + value to compare with the TeX '\count0' values stored in the DVI + file. Thus, using '-l =9' will end with the ninth page of the document, no matter what the pages are actually numbered. -`--mode MODE' - This option only has an effect when using bitmapped (PK) fonts. Use - MODE as the Metafont device name for the PK fonts (both for path - searching and font generation). This needs to be augmented with - the base device resolution, given with the `--bdpi' option. See - the file `ftp://ftp.tug.org/tex/modes.mf' for a list of - resolutions and mode names for most devices. *Note Unable to - generate fonts: (kpathsea)Unable to generate fonts. +'--mode MODE' + This option only has an effect when using bitmapped (PK) fonts. + Use MODE as the Metafont device name for the PK fonts (both for + path searching and font generation). This needs to be augmented + with the base device resolution, given with the '--bdpi' option. + See the file <ftp://ftp.tug.org/tex/modes.mf> for a list of + resolutions and mode names for most devices. *Note + (kpathsea)Unable to generate fonts::. -`-M*' - This option only has an effect when using bitmapped (PK) fonts. It - turns off automatic PK font generation (`mktexpk'). +'-M*' + This option only has an effect when using bitmapped (PK) fonts. It + turns off automatic PK font generation ('mktexpk'). -`--nogs*' +'--nogs*' This switch prohibits the internal call to GhostScript for - displaying PostScript specials. `--nogs0' turns the call back on. + displaying PostScript specials. '--nogs0' turns the call back on. -`--nogssafer*' +'--nogssafer*' Normally, if GhostScript is used to render PostScript specials, the - GhostScript interpreter is run with the option `-dSAFER'. The - `--nogssafer' option runs GhostScript without `-dSAFER'. The - `-dSAFER' option in Ghostscript disables PostScript operators such + GhostScript interpreter is run with the option '-dSAFER'. The + '--nogssafer' option runs GhostScript without '-dSAFER'. The + '-dSAFER' option in Ghostscript disables PostScript operators such as deletefile, to prevent possibly malicious PostScript programs from having any effect. -`--norawps*' +'--norawps*' Some packages generate raw PostScript specials, even non-rendering such specials. This switch turns off the internal call to GhostScript intended to display these raw PostScript specials. - `--norawps0' turns the call back on. + '--norawps0' turns the call back on. -`-o NAME' - Send output to the file NAME. A single occurrence of `%d' or - `%01d', ..., `%09d' will be exchanged for the physical page number - (this can be changed, see the `--dvinum' switch). The default - output filename is `FILE%d.png' where the input DVI file was - `FILE.dvi'. +'-o NAME' + Send output to the file NAME. A single occurrence of '%d' or + '%01d', ..., '%09d' will be exchanged for the physical page number + (this can be changed, see the '--dvinum' switch). The default + output filename is 'FILE%d.png' where the input DVI file was + 'FILE.dvi'. -`-O X-OFFSET,Y-OFFSET' +'-O X-OFFSET,Y-OFFSET' Move the origin by X-OFFSET,Y-OFFSET, a comma-separated pair of - dimensions such as `.1in,-.3cm'. The origin of the page is - shifted from the default position (of one inch down, one inch to - the right from the upper left corner of the paper) by this amount. - -`-p [=]NUM' - The first page printed will be the first one numbered NUM. Default - is the first page in the document. If NUM is prefixed by an - equals sign, then it (and the argument to the `-l' option, if - specified) is treated as a physical (absolute) page number, rather - than a value to compare with the TeX `\count0' values stored in the - DVI file. Thus, using `-p =3' will start with the third page of - the document, no matter what the pages are actually numbered. - -`--palette*' - When an external image is included, `dvipng' will automatically + dimensions such as '.1in,-.3cm'. The origin of the page is shifted + from the default position (of one inch down, one inch to the right + from the upper left corner of the paper) by this amount. + +'-p [=]NUM' + The first page printed will be the first one numbered NUM. Default + is the first page in the document. If NUM is prefixed by an equals + sign, then it (and the argument to the '-l' option, if specified) + is treated as a physical (absolute) page number, rather than a + value to compare with the TeX '\count0' values stored in the DVI + file. Thus, using '-p =3' will start with the third page of the + document, no matter what the pages are actually numbered. + +'--palette*' + When an external image is included, 'dvipng' will automatically switch to truecolor mode, to avoid unnecessary delay and quality reduction, and enable the EPS translator to draw on a transparent - background and outside of the boundingbox. This switch will force - palette (256-color) output and make `dvipng' revert to opaque - clipped image inclusion. This will also override the `--truecolor' + background and outside of the boundingbox. This switch will force + palette (256-color) output and make 'dvipng' revert to opaque + clipped image inclusion. This will also override the '--truecolor' switch if present. -`--picky*' - No images are output when a warning occurs. Normally, dvipng will +'--picky*' + No images are output when a warning occurs. Normally, dvipng will output an image in spite of a warning, but there may be something - missing in this image. One reason to use this option would be if - you have a more complete but slower fallback converter. Mainly, + missing in this image. One reason to use this option would be if + you have a more complete but slower fallback converter. Mainly, this is useful for failed figure inclusion and unknown \special occurrences, but warnings will also occur for missing or unknown color specs and missing PK fonts. -`--png*' - The images are output in the PNG format. This is the default for - the `dvipng' binary. See also the `--gif' option. +'--png*' + The images are output in the PNG format. This is the default for + the 'dvipng' binary. See also the '--gif' option. -`-pp FIRSTPAGE-LASTPAGE' - Print pages FIRSTPAGE through LASTPAGE; but not quite equivalent - to `-p FIRSTPAGE -l LASTPAGE'. For example, when rendering a book, +'-pp FIRSTPAGE-LASTPAGE' + Print pages FIRSTPAGE through LASTPAGE; but not quite equivalent to + '-p FIRSTPAGE -l LASTPAGE'. For example, when rendering a book, there may be several instances of a page in the DVI file (one in - `\frontmatter', one in `\mainmatter', and one in `\backmatter'). - In case of several pages matching, `-pp FIRSTPAGE-LASTPAGE' will - render _all_ pages that matches the specified range, while `-p + '\frontmatter', one in '\mainmatter', and one in '\backmatter'). + In case of several pages matching, '-pp FIRSTPAGE-LASTPAGE' will + render _all_ pages that matches the specified range, while '-p FIRSTPAGE -l LASTPAGE' will render the pages from the _first_ occurrence of FIRSTPAGE to the _first_ occurrence of LASTPAGE. - This is the (undocumented) behaviour of dvips. In dvipng you can + This is the (undocumented) behaviour of dvips. In dvipng you can give both kinds of options, in which case you get all pages that - matches the range in `-pp' between the pages from `-p' to `-l'. - Also multiple `-pp' options accumulate, unlike `-p' and `-l'. The - `-' separator can also be `:'. Note that `-pp -1' will be + matches the range in '-pp' between the pages from '-p' to '-l'. + Also multiple '-pp' options accumulate, unlike '-p' and '-l'. The + '-' separator can also be ':'. Note that '-pp -1' will be interpreted as "all pages up to and including 1", if you want a - page numbered -1 (only the table of contents, say) put `-pp -1--1', - or more readable, `-pp -1:-1'. + page numbered -1 (only the table of contents, say) put '-pp -1--1', + or more readable, '-pp -1:-1'. -`-q*' +'-q*' Run quietly. Don't chatter about pages converted, etc. to standard output; report no warnings (only errors) to standard error. -`-Q NUM' - Set the quality to NUM. That is, choose the number of antialiasing +'-Q NUM' + Set the quality to NUM. That is, choose the number of antialiasing levels for bitmapped fonts (PK) and fonts rendered using T1lib, to - be NUM*NUM+1. The default value is 4 which gives 17 levels of - antialiasing for antialiased fonts from these two. If FreeType is + be NUM*NUM+1. The default value is 4 which gives 17 levels of + antialiasing for antialiased fonts from these two. If FreeType is available, its rendering is unaffected by this option. -`-r*' - Toggle output of pages in reverse/forward order. By default, the +'-r*' + Toggle output of pages in reverse/forward order. By default, the first page in the DVI is output first. -`--strict*' - The program exits when a warning occurs. Normally, dvipng will +'--strict*' + The program exits when a warning occurs. Normally, dvipng will output an image in spite of a warning, but there may be something - missing in this image. One reason to use this option would be if - you have a more complete but slower fallback converter. See the - `--picky' option above for a list of when warnings occur. - -`-T IMAGE_SIZE' - Set the image size to IMAGE_SIZE which can be either of `bbox', - `tight', or a comma-separated pair of dimensions HSIZE,VSIZE such - as `.1in,.3cm'. The default is `bbox' which produces a PNG that + missing in this image. One reason to use this option would be if + you have a more complete but slower fallback converter. See the + '--picky' option above for a list of when warnings occur. + +'-T IMAGE_SIZE' + Set the image size to IMAGE_SIZE which can be either of 'bbox', + 'tight', or a comma-separated pair of dimensions HSIZE,VSIZE such + as '.1in,.3cm'. The default is 'bbox' which produces a PNG that includes all ink put on the page and in addition the DVI origin, located 1in from the top and 1in from the left edge of the paper. - This usually gives whitespace above and to the left in the - produced image. The value `tight' will make dvipng only include - all ink put on the page, producing neat images. + This usually gives whitespace above and to the left in the produced + image. The value 'tight' will make dvipng only include all ink put + on the page, producing neat images. -`--t1lib*' - Enable T1lib font rendering (default on). This option is available - if the T1lib font library was present at compilation time. If this +'--t1lib*' + Enable T1lib font rendering (default on). This option is available + if the T1lib font library was present at compilation time. If this is the case, dvipng will have direct support for PostScript Type1 - fonts internally, rather than using `gsftopk' for rendering the - fonts. If you have PostScript versions of Computer Modern + fonts internally, rather than using 'gsftopk' for rendering the + fonts. If you have PostScript versions of Computer Modern installed, there will be no need to generate bitmapped variants on disk of these. Then, you can render images at different (and unusual) resolutions without cluttering the disk with lots of - bitmapped fonts. Note that if you have both FreeType and T1lib on + bitmapped fonts. Note that if you have both FreeType and T1lib on your system, FreeType will be preferred by dvipng, and if you for - some reason rather want to use T1lib, give the option - `--freetype0' (see above). + some reason rather want to use T1lib, give the option '--freetype0' + (see above). -`--truecolor*' - This will make `dvipng' generate truecolor output. Note that +'--truecolor*' + This will make 'dvipng' generate truecolor output. Note that truecolor output is automatic if you include an external image in - your DVI, e.g., via a PostScript special (i.e., the `graphics' or - `graphicx' package). This switch is overridden by the `--palette' + your DVI, e.g., via a PostScript special (i.e., the 'graphics' or + 'graphicx' package). This switch is overridden by the '--palette' switch. -`-v*' - Enable verbose operation. This will currently indicate what fonts +'-v*' + Enable verbose operation. This will currently indicate what fonts is used, in addition to the usual output. -`--width*' - Report the width of the image. See also `--height' and `--depth'. +'--width*' + Report the width of the image. See also '--height' and '--depth'. -`-x NUM' - This option is deprecated; it should not be used. It is much - better to select the output resolution directly with the `-D' - option. This option sets the magnification ratio to NUM/1000 and +'-x NUM' + This option is deprecated; it should not be used. It is much + better to select the output resolution directly with the '-D' + option. This option sets the magnification ratio to NUM/1000 and overrides the magnification specified in the DVI file. Must be between 10 and 100000. It is recommended that you use standard magstep values (1095, 1200, 1440, 1728, 2074, 2488, 2986, and so - on) to help reduce the total number of PK files generated. NUM - may be a real number, not an integer, for increased precision. + on) to help reduce the total number of PK files generated. NUM may + be a real number, not an integer, for increased precision. -`-z NUM' - Set the PNG compression level to NUM. This option is enabled if - your `libgd' is new enough. The default compression level is 1, +'-z NUM' + Set the PNG compression level to NUM. This option is enabled if + your 'libgd' is new enough. The default compression level is 1, which selects maximum speed at the price of slightly larger PNGs. - For an older `libgd', the hard-soldered value 5 is used. The - include file `png.h' says - + For an older 'libgd', the hard-soldered value 5 is used. The + include file 'png.h' says Currently, valid values range from 0 - 9, corresponding directly to the zlib compression levels 0 - 9 (0 - no - compression, 9 - "maximal" compression). Note that tests have - shown that zlib compression levels 3-6 usually perform as - well as level 9 for PNG images, and do considerably fewer - calculations. In the future, these values may not correspond + compression, 9 - "maximal" compression). Note that tests have + shown that zlib compression levels 3-6 usually perform as well + as level 9 for PNG images, and do considerably fewer + calculations. In the future, these values may not correspond directly to the zlib compression levels. @@ -705,12 +698,12 @@ File: dvipng.info, Node: Graphics, Next: Color, Prev: Command-line options, 5 Graphics ********** -`dvipng' attempts to handle graphics as included by the `graphicx' and -`graphics' packages, without the need of specifying a driver to these -packages. This means that it recognizes the encapsulated postscript -inclusion meant for `dvips', but is also able (from version 1.8) to -include bitmapped graphics. It also tries to handle some of the raw -PostScript that is output from various packages. Some of the +'dvipng' attempts to handle graphics as included by the 'graphicx' and +'graphics' packages, without the need of specifying a driver to these +packages. This means that it recognizes the encapsulated postscript +inclusion meant for 'dvips', but is also able (from version 1.8) to +include bitmapped graphics. It also tries to handle some of the raw +PostScript that is output from various packages. Some of the possibilities and problems are mentioned below. * Menu: @@ -726,25 +719,25 @@ File: dvipng.info, Node: Encapsulated PostScript, Next: Bitmapped graphics, U =========================== When an EPS file is included, a call to GhostScript is performed to -produce a bitmapped image that can be included. The default is to +produce a bitmapped image that can be included. The default is to produce an image with transparent background, at the same size as the DVI page currently being converted to PNG, and include that as -foreground on the PNG. Of course, if the image is to be cropped, that -is done. The included image will be a truecolor image, so for maximum +foreground on the PNG. Of course, if the image is to be cropped, that is +done. The included image will be a truecolor image, so for maximum performance the output PNG will be in truecolor mode as well. - This conversion needs the `pngalpha' output device to be present in -your copy of GhostScript. If that device is not present, or you use the -`--palette' switch or request GIF output, the fallback is to use the -`png16m' device to produce a cropped opaque image for inclusion. Other -relevant switches are `--noghostscript' and `--nogssafer'. *Note Option + This conversion needs the 'pngalpha' output device to be present in +your copy of GhostScript. If that device is not present, or you use the +'--palette' switch or request GIF output, the fallback is to use the +'png16m' device to produce a cropped opaque image for inclusion. Other +relevant switches are '--noghostscript' and '--nogssafer'. *Note Option details::. The most common problem with including graphics is an incorrect -bounding box. Complain to whoever wrote the software that generated the -file if the bounding box is indeed incorrect. An adjusted boundingbox -can be specified in the `\includegraphics' call, as in this example -(using `graphicx'): +bounding box. Complain to whoever wrote the software that generated the +file if the bounding box is indeed incorrect. An adjusted boundingbox +can be specified in the '\includegraphics' call, as in this example +(using 'graphicx'): \includegraphics[bb=10 20 100 200]{imagename.eps} @@ -754,11 +747,11 @@ File: dvipng.info, Node: Bitmapped graphics, Next: Raw PostScript, Prev: Enca 5.2 Bitmapped graphics ====================== -dvipng can include PNG, JPEG and GIF graphics. When including such -images via `\includegraphics' you need to specify the bounding box -since TeX itself cannot read them from the files in question. The -bounding box size should be given as `0 0 w h' in pixels, e.g., if the -file `imagename.png' is 300x400 pixels, the inclusion would read +dvipng can include PNG, JPEG and GIF graphics. When including such +images via '\includegraphics' you need to specify the bounding box since +TeX itself cannot read them from the files in question. The bounding +box size should be given as '0 0 w h' in pixels, e.g., if the file +'imagename.png' is 300x400 pixels, the inclusion would read \includegraphics[bb=0 0 300 400]{imagename.png} @@ -768,10 +761,10 @@ That is, default resolution will be 72 dpi for included bitmaps, which is the default size in the few other bitmap-capable drivers that are known to me (dvipdfm and PDFLaTeX). - If you want 100 dpi you need to specify the width accordingly. You + If you want 100 dpi you need to specify the width accordingly. You just divide your image width by 100: a 135 pixel wide image at 100 dpi -will take up 1.35 inches. If you want 200 dpi you divide by 200, and so -on. Simple, eh? The example above at 200 dpi would be 1.5 inches wide: +will take up 1.35 inches. If you want 200 dpi you divide by 200, and so +on. Simple, eh? The example above at 200 dpi would be 1.5 inches wide: \includegraphics[bb=0 0 300 400,witdh=1.5in]{imagename.png} @@ -781,40 +774,40 @@ File: dvipng.info, Node: Raw PostScript, Prev: Bitmapped graphics, Up: Graphi 5.3 Raw PostScript ================== -dvipng attempts to handle raw PostScript. Rendering raw PostScript +dvipng attempts to handle raw PostScript. Rendering raw PostScript specials is done on top of the page by including a transparent image -generated by the `pngalpha' device in GhostScript (automatically -selecting `truecolor' mode in dvipng). +generated by the 'pngalpha' device in GhostScript (automatically +selecting 'truecolor' mode in dvipng). Included PostScript headers are respected, and if the header -`tex.pro' is included, dvipng also throws in `color.pro' and -`special.pro'. The package `xcolor' includes its own headers with color +'tex.pro' is included, dvipng also throws in 'color.pro' and +'special.pro'. The package 'xcolor' includes its own headers with color names, and this is not only kept as a PostScript header, but is also -read and interpreted by dvipng itself. An attempt is also made to -respect the PGF header. The non-rendering specials from `hyperref' are +read and interpreted by dvipng itself. An attempt is also made to +respect the PGF header. The non-rendering specials from 'hyperref' are handled via some heuristics and do not give an error. Really rendering and moving things with raw PostScript specials is -more troublesome. The \rotatebox macro serves as a good example. The +more troublesome. The \rotatebox macro serves as a good example. The dvips driver of the graphicx package surrounds DVI glyphs with PostScript code so that after conversion by dvips, the glyphs (now -themselves in PostScript) will be rotated in the desired way. dvipng -does not handle this, at present. An attempt has been made to handle -the rendering specials output by PGF (tikz), and also PSTricks. Some +themselves in PostScript) will be rotated in the desired way. dvipng +does not handle this, at present. An attempt has been made to handle +the rendering specials output by PGF (tikz), and also PSTricks. Some things work, but others do not. This is especially clear when mixing -PostScript and DVI rendering commands such as glyphs. dvipng cannot at -present detect if PostScript code moves `currentpoint' or rotates the -frame since GhostScript does not return such information. A +PostScript and DVI rendering commands such as glyphs. dvipng cannot at +present detect if PostScript code moves 'currentpoint' or rotates the +frame since GhostScript does not return such information. A recommendation would be to produce images from these packages as EPS files and include them into your document in the standard manner. Another way to handle this would be to use a slower fallback (with -dvips and gs, for example). If you want to disable raw PostScript -handling in dvipng, use the switch `--norawps'. This switch turns off +dvips and gs, for example). If you want to disable raw PostScript +handling in dvipng, use the switch '--norawps'. This switch turns off the internal call to GhostScript intended to display these raw -PostScript specials. Further, when dvipng encounters raw PostScript and -the gs call is turned off, it gives a warning. It is now possible to -use the switch `--picky' to disable page rendering of pages with +PostScript specials. Further, when dvipng encounters raw PostScript and +the gs call is turned off, it gives a warning. It is now possible to +use the switch '--picky' to disable page rendering of pages with warnings, and use the slower fallback for these pages. @@ -824,14 +817,14 @@ File: dvipng.info, Node: Color, Next: Diagnosing problems, Prev: Graphics, U ******* To support color, dvipng recognizes a certain set of specials as -generated by the `color' and `xcolor' style files. These specials start -with the keyword `color' or the keyword `background', followed by a +generated by the 'color' and 'xcolor' style files. These specials start +with the keyword 'color' or the keyword 'background', followed by a color specification. * Menu: -* Color specifications:: -* Color specials:: +* Color specifications:: +* Color specials:: File: dvipng.info, Node: Color specifications, Next: Color specials, Up: Color @@ -839,23 +832,23 @@ File: dvipng.info, Node: Color specifications, Next: Color specials, Up: Colo 6.1 Color specifications ======================== -The color specification supported by dvipng is by-value or by-name. The -by-value spec starts with the name of a color model (one of `rgb', -`hsb', `cmy', `cmyk', or `gray') followed by the appropriate number of -parameters. Thus, the color specification `rgb 0.3 0.4 0.5' would -correspond to the color that is `0.3 0.4 0.5' in its red, blue and -green values. The color model used internally in dvipng is `RGB' -(discretized to 256 levels), for details on the formulas used in -conversion, see the `xcolor' documentation. +The color specification supported by dvipng is by-value or by-name. The +by-value spec starts with the name of a color model (one of 'rgb', +'hsb', 'cmy', 'cmyk', or 'gray') followed by the appropriate number of +parameters. Thus, the color specification 'rgb 0.3 0.4 0.5' would +correspond to the color that is '0.3 0.4 0.5' in its red, blue and green +values. The color model used internally in dvipng is 'RGB' (discretized +to 256 levels), for details on the formulas used in conversion, see the +'xcolor' documentation. By-name color specifications are single (case-dependent) words and -are compared with color names defined in `dvipsnam.def' (from the -`graphics' bundle), `svgnam.def' and `xcolor.sty' (from the `xcolor' -bundle). See the `xcolor' documentation for a list of names and the +are compared with color names defined in 'dvipsnam.def' (from the +'graphics' bundle), 'svgnam.def' and 'xcolor.sty' (from the 'xcolor' +bundle). See the 'xcolor' documentation for a list of names and the corresponding colors. - On the command-line, the name `Transparent' can also be used as an -argument to `--bg' to choose transparent background. *Note Option + On the command-line, the name 'Transparent' can also be used as an +argument to '--bg' to choose transparent background. *Note Option details::. @@ -864,28 +857,27 @@ File: dvipng.info, Node: Color specials, Prev: Color specifications, Up: Colo 6.2 Color specials ================== -We will describe `background' first, since it is the simplest. The -`background' keyword must be followed by a color specification. That -color specification is used as a fill color for the background. The -last `background' special on a page is the one that gets used, and is -used for the whole of the page image. (This is possible because the +We will describe 'background' first, since it is the simplest. The +'background' keyword must be followed by a color specification. That +color specification is used as a fill color for the background. The +last 'background' special on a page is the one that gets used, and is +used for the whole of the page image. (This is possible because the prescan phase of dvipng notices all of the color specials so that the appropriate information can be written out during the second phase.) - The `color' special itself has three forms. The first is just -`color' followed by a color specification. In this case, the current + The 'color' special itself has three forms. The first is just +'color' followed by a color specification. In this case, the current global color is set to that color; the color stack must be empty when such a command is executed. - The second form is `color push' followed by a color specification. + The second form is 'color push' followed by a color specification. This saves the current color on the color stack and sets the color to be that given by the color specification. This is the most common way to set a color. - The final form of the `color' special is just `color pop', with no -color specification; this says to pop the color last pushed on the -color stack from the color stack and set the current color to be that -color. + The final form of the 'color' special is just 'color pop', with no +color specification; this says to pop the color last pushed on the color +stack from the color stack and set the current color to be that color. dvipng correctly handles these color specials across pages, even when the pages are rendered repeatedly or in reverse order. @@ -898,7 +890,7 @@ File: dvipng.info, Node: Diagnosing problems, Next: Credits, Prev: Color, Up You've gone through all the trouble of installing dvipng, carefully read all the instructions in this manual, and still can't get something to -work. The following sections provide some helpful hints if you find +work. The following sections provide some helpful hints if you find yourself in such a situation. * Menu: @@ -915,16 +907,16 @@ File: dvipng.info, Node: Contact information, Next: Debug options, Up: Diagno Bug reports should be sent to <dvipng@nongnu.org>. Questions, suggestions for new features, pleas for help, and/or -praise should go to <dvipng@nongnu.org>. For more information on this -mailing list, send a message with just the word `help' as subject or +praise should go to <dvipng@nongnu.org>. For more information on this +mailing list, send a message with just the word 'help' as subject or body to <dvipng-request@nongnu.org> or look at -`http://lists.nongnu.org/mailman/listinfo/dvipng'. +<http://lists.nongnu.org/mailman/listinfo/dvipng>. - Offers to support further development will be appreciated. For + Offers to support further development will be appreciated. For developer access, ask on <dvipng@nongnu.org>. - For details on the TeX path-searching library, and `mktexpk' -problems, *note Common problems: (kpathsea)Common problems. + For details on the TeX path-searching library, and 'mktexpk' +problems, *note (kpathsea)Common problems::. File: dvipng.info, Node: Debug options, Prev: Contact information, Up: Diagnosing problems @@ -932,60 +924,46 @@ File: dvipng.info, Node: Debug options, Prev: Contact information, Up: Diagno 7.2 Debug options ================= -The `-d' flag to dvipng helps in tracking down certain errors. The +The '-d' flag to dvipng helps in tracking down certain errors. The parameter to this flag is an integer that tells what errors are currently being tracked. To track a certain class of debug messages, simply provide the appropriate number given below; if you wish to track multiple classes, sum the numbers of the classes you wish to track. To -track all classes, you can use `-1'. +track all classes, you can use '-1'. Some of these debugging options are actually provided by Kpathsea -(*note Debugging: (kpathsea)Debugging.). +(*note (kpathsea)Debugging::). The classes are: 1 Normal dvi op-codes - 2 Virtual fonts - 4 PK fonts - 8 TFM files - 16 Glyph rendering - 32 FreeType calls - 64 Encoding loads - 128 Color specials - 256 GhostScript specials - 512 T1lib calls - 1024 - Kpathsea `stat' calls - + Kpathsea 'stat' calls 2048 Kpathsea hash table lookups - 4096 Kpathsea path element expansion - 8192 Kpathsea path searches - File: dvipng.info, Node: Credits, Next: Copying, Prev: Diagnosing problems, Up: Top @@ -993,10 +971,10 @@ File: dvipng.info, Node: Credits, Next: Copying, Prev: Diagnosing problems, ********* A number of persons have contributed, if I forget to mention someone, I -apologize. First and foremost we have David Kastrup whose preview-latex +apologize. First and foremost we have David Kastrup whose preview-latex project provided the incentive to write this program. There is also a number of people who have contributed by reporting bugs and suggesting -improvements as the thing has evolved. These include but is perhaps not +improvements as the thing has evolved. These include but is perhaps not limited to (in semi-random order): Thomas Esser (teTeX), Christian Schenk (MIKTeX), Brian R Furry (debian package), Angus Leeming (LyX), Thomas Boutell (libgd), John Jones (first user report), Uwe Kern @@ -1009,59 +987,50 @@ Ridderstro"m, Ezra Peisach, William H Wheeler, Thomas Klausner, Harald Koenig, Adrian Bunk, Kevin Smith, Jason Riedy, Wolfram Krause, Reinhard Kotucha, Takeshi Abe, and Waldeck Schutzer. - Use of the `gd' library requires inclusion of the following -copyright notice, which applies to the `gd' library: + Use of the 'gd' library requires inclusion of the following copyright +notice, which applies to the 'gd' library: Portions copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, - 2002, 2003, 2004 by Cold Spring Harbor Laboratory. Funded under - Grant P41-RR02188 by the National Institutes of Health. + 2002 by Cold Spring Harbor Laboratory. Funded under Grant + P41-RR02188 by the National Institutes of Health. - Portions copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, - 2004 by Boutell.Com, Inc. + Portions copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 by + Boutell.Com, Inc. - Portions relating to GD2 format copyright 1999, 2000, 2001, 2002, - 2003, 2004 Philip Warner. + Portions relating to GD2 format copyright 1999, 2000, 2001, 2002 + Philip Warner. - Portions relating to PNG copyright 1999, 2000, 2001, 2002, 2003, - 2004 Greg Roelofs. + Portions relating to PNG copyright 1999, 2000, 2001, 2002 Greg + Roelofs. - Portions relating to gdttf.c copyright 1999, 2000, 2001, 2002, - 2003, 2004 John Ellson (ellson@graphviz.org). + Portions relating to gdttf.c copyright 1999, 2000, 2001, 2002 John + Ellson (ellson@lucent.com). - Portions relating to gdft.c copyright 2001, 2002, 2003, 2004 John - Ellson (ellson@graphviz.org). + Portions relating to gdft.c copyright 2001, 2002 John Ellson + (ellson@lucent.com). - Portions relating to JPEG and to color quantization copyright - 2000, 2001, 2002, 2003, 2004, Doug Becker and copyright (C) 1994, - 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Thomas - G. Lane. This software is based in part on the work of the - Independent JPEG Group. See the file README-JPEG.TXT for more - information. + Portions copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 + Pierre-Alain Joye (pierre@libgd.org). - Portions relating to GIF compression copyright 1989 by Jef - Poskanzer and David Rowley, with modifications for thread safety - by Thomas Boutell. + Portions relating to JPEG and to color quantization copyright 2000, + 2001, 2002, Doug Becker and copyright (C) 1994, 1995, 1996, 1997, + 1998, 1999, 2000, 2001, 2002, Thomas G. Lane. This software is + based in part on the work of the Independent JPEG Group. See the + file README-JPEG.TXT for more information. - Portions relating to GIF decompression copyright 1990, 1991, 1993 - by David Koblas, with modifications for thread safety by Thomas - Boutell. - - Portions relating to WBMP copyright 2000, 2001, 2002, 2003, 2004 - Maurice Szmurlo and Johan Van den Brande. - - Portions relating to GIF animations copyright 2004 Jaakko - Hyva"dtti (jaakko.hyvatti@iki.fi) + Portions relating to WBMP copyright 2000, 2001, 2002 Maurice + Szmurlo and Johan Van den Brande. Permission has been granted to copy, distribute and modify gd in any context without fee, including a commercial application, provided that this notice is present in user-accessible supporting documentation. - This does not affect your ownership of the derived work itself, - and the intent is to assure proper credit for the authors of gd, - not to interfere with your productive use of gd. If you have - questions, ask. "Derived works" includes all programs that utilize - the library. Credit must be given in user-accessible documentation. + This does not affect your ownership of the derived work itself, and + the intent is to assure proper credit for the authors of gd, not to + interfere with your productive use of gd. If you have questions, + ask. "Derived works" includes all programs that utilize the + library. Credit must be given in user-accessible documentation. This software is provided "AS IS." The copyright holders disclaim all warranties, either express or implied, including but not @@ -1069,9 +1038,9 @@ copyright notice, which applies to the `gd' library: particular purpose, with respect to this code and accompanying documentation. - Although their code does not appear in the current release, the - authors also wish to thank Hutchison Avenue Software Corporation - for their prior contributions. + Although their code does not appear in gd, the authors wish to + thank David Koblas, David Rowley, and Hutchison Avenue Software + Corporation for their prior contributions. File: dvipng.info, Node: Copying, Next: Index, Prev: Credits, Up: Top @@ -1080,9 +1049,9 @@ File: dvipng.info, Node: Copying, Next: Index, Prev: Credits, Up: Top ********* This program is free software: you can redistribute it and/or modify it -under the terms of the GNU Lesser General Public License as published -by the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. +under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation, either version 3 of the License, or (at +your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -1090,7 +1059,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public -License along with this program. If not, see +License along with this program. If not, see <http://www.gnu.org/licenses/>. @@ -1106,107 +1075,107 @@ Index * Menu: -* -dSAFER: Option details. (line 168) -* absolute page number, and -l: Option details. (line 142) -* absolute page number, and -p: Option details. (line 195) -* antialiasing levels, number of: Option details. (line 248) -* background color (option): Option details. (line 42) -* base resolution, setting: Option details. (line 35) -* baseline reporting: Option details. (line 78) +* -dSAFER: Option details. (line 166) +* absolute page number, and '-l': Option details. (line 140) +* absolute page number, and '-p': Option details. (line 193) +* antialiasing levels, number of: Option details. (line 246) +* background color (option): Option details. (line 40) +* base resolution, setting: Option details. (line 33) +* baseline reporting: Option details. (line 76) +* baseline reporting <1>: Option details. (line 132) * color specifications: Color specifications. (line 6) * command-line options: Command-line options. (line 6) * compilation: Installation. (line 6) -* compression: Option details. (line 314) +* compression: Option details. (line 312) * configuration, of dvipng: Installation. (line 6) -* dark fonts: Option details. (line 121) +* dark fonts: Option details. (line 119) +* debugging: Option details. (line 54) * debugging <1>: Diagnosing problems. (line 6) -* debugging: Option details. (line 56) -* depth reporting: Option details. (line 78) -* exit on erroneous images: Option details. (line 259) -* first page printed: Option details. (line 195) -* follow mode: Option details. (line 99) -* font generation, avoiding: Option details. (line 160) -* forcing palette output: Option details. (line 204) -* foreground color (option): Option details. (line 93) -* FreeType font rendering: Option details. (line 107) -* fuzzy images: Option details. (line 121) -* gamma: Option details. (line 121) -* GhostScript and -dSAFER: Option details. (line 168) -* GhostScript, turning off: Option details. (line 164) -* GIF image format: Option details. (line 127) -* height reporting: Option details. (line 134) +* depth reporting: Option details. (line 76) +* exit on erroneous images: Option details. (line 257) +* first page printed: Option details. (line 193) +* follow mode: Option details. (line 97) +* font generation, avoiding: Option details. (line 158) +* forcing palette output: Option details. (line 202) +* foreground color (option): Option details. (line 91) +* FreeType font rendering: Option details. (line 105) +* fuzzy images: Option details. (line 119) +* gamma: Option details. (line 119) +* GhostScript and -dSAFER: Option details. (line 166) +* GhostScript, turning off: Option details. (line 162) +* GIF image format: Option details. (line 125) +* height reporting: Option details. (line 132) * installation, of dvipng: Installation. (line 6) * invoking dvipng: Basic usage. (line 6) -* last page printed: Option details. (line 142) -* light fonts: Option details. (line 121) -* magnification, overriding DVI: Option details. (line 304) -* Metafont mode, specifying: Option details. (line 151) -* mktexpk, avoiding: Option details. (line 160) -* mode name, specifying: Option details. (line 151) -* no erroneous images: Option details. (line 213) -* offset pages: Option details. (line 189) +* last page printed: Option details. (line 140) +* light fonts: Option details. (line 119) +* magnification, overriding DVI: Option details. (line 302) +* Metafont mode, specifying: Option details. (line 149) +* mktexpk, avoiding: Option details. (line 158) +* mode name, specifying: Option details. (line 149) +* no erroneous images: Option details. (line 211) +* offset pages: Option details. (line 187) * option, details of: Option details. (line 6) * options, dvipng: Command-line options. (line 6) * options, reading from standard input: Option details. (line 11) * options, summary: Option summary. (line 6) -* output resolution, setting: Option details. (line 62) -* output, redirecting: Option details. (line 182) -* page range: Option details. (line 226) -* page, first printed: Option details. (line 195) -* page, last printed: Option details. (line 142) -* physical page number, and -l: Option details. (line 142) -* physical page number, and -p: Option details. (line 195) -* PNG image format: Option details. (line 222) +* output resolution, setting: Option details. (line 60) +* output, redirecting: Option details. (line 180) +* page range: Option details. (line 224) +* page, first printed: Option details. (line 193) +* page, last printed: Option details. (line 140) +* physical page number, and '-l': Option details. (line 140) +* physical page number, and '-p': Option details. (line 193) +* PNG image format: Option details. (line 220) * PostScript inclusion problems: Encapsulated PostScript. (line 21) * PostScript, turning off raw PostScript specials: Option details. - (line 176) + (line 174) * problems: Diagnosing problems. (line 6) -* quality: Option details. (line 248) -* quiet operation: Option details. (line 244) -* reverse pagination: Option details. (line 255) -* silent operation: Option details. (line 244) +* quality: Option details. (line 246) +* quiet operation: Option details. (line 242) +* reverse pagination: Option details. (line 253) +* silent operation: Option details. (line 242) * standard input, reading options from: Option details. (line 11) -* standard output, output to: Option details. (line 182) -* T1lib font rendering: Option details. (line 276) -* transparent border fallback color: Option details. (line 25) -* transparent border width: Option details. (line 25) +* standard output, output to: Option details. (line 180) +* T1lib font rendering: Option details. (line 274) +* transparent border fallback color: Option details. (line 23) +* transparent border width: Option details. (line 23) * trouble: Diagnosing problems. (line 6) -* truecolor output: Option details. (line 290) -* warnings, suppressing: Option details. (line 244) -* width reporting: Option details. (line 301) +* truecolor output: Option details. (line 288) +* warnings, suppressing: Option details. (line 242) +* width reporting: Option details. (line 299) Tag Table: -Node: Top297 -Node: Introduction1192 -Node: Installation3431 -Node: Prerequisites3778 -Node: Configure6268 -Node: Build/install8307 -Node: Installation outside the texmf tree8775 -Node: Advice for non-privileged users9482 -Node: Basic usage10490 -Node: Command-line options11662 -Node: Option summary12086 -Node: Option details14512 -Node: Graphics30430 -Node: Encapsulated PostScript31182 -Node: Bitmapped graphics32525 -Node: Raw PostScript33748 -Node: Color35987 -Node: Color specifications36375 -Node: Color specials37474 -Node: Diagnosing problems38886 -Node: Contact information39369 -Node: Debug options40110 -Node: Credits41145 -Node: Copying45146 -Node: Index45926 +Node: Top296 +Node: Introduction1191 +Node: Installation3436 +Node: Prerequisites3834 +Node: Configure6331 +Node: Build/install8378 +Node: Installation outside the texmf tree8846 +Node: Advice for non-privileged users9556 +Node: Basic usage10567 +Node: Command-line options11720 +Node: Option summary12143 +Node: Option details14526 +Node: Graphics30489 +Node: Encapsulated PostScript31244 +Node: Bitmapped graphics32594 +Node: Raw PostScript33822 +Node: Color36075 +Node: Color specifications36486 +Node: Color specials37589 +Node: Diagnosing problems39006 +Node: Contact information39490 +Node: Debug options40218 +Node: Credits41229 +Node: Copying44830 +Node: Index45611 End Tag Table - diff --git a/Master/texmf-dist/doc/info/dvips.info b/Master/texmf-dist/doc/info/dvips.info index 71a64d83ba0..65e4c59c284 100644 --- a/Master/texmf-dist/doc/info/dvips.info +++ b/Master/texmf-dist/doc/info/dvips.info @@ -1,6 +1,6 @@ -This is dvips.info, produced by makeinfo version 5.1 from dvips.texi. +This is dvips.info, produced by makeinfo version 5.2 from dvips.texi. -This manual documents Dvips version 5.993 (April 2013), a program to +This manual documents Dvips version 5.994 (April 2014), a program to translate a DVI file into PostScript. You may freely use, modify and/or distribute this file. INFO-DIR-SECTION TeX @@ -16,7 +16,7 @@ File: dvips.info, Node: Top, Next: Why Dvips, Up: (dir) Dvips ***** -This manual documents Dvips version 5.993 (April 2013), a program to +This manual documents Dvips version 5.994 (April 2014), a program to translate a DVI file into PostScript. You may freely use, modify and/or distribute this file. diff --git a/Master/texmf-dist/doc/info/kpathsea.info b/Master/texmf-dist/doc/info/kpathsea.info index b28c541d762..2586ede9e5a 100644 --- a/Master/texmf-dist/doc/info/kpathsea.info +++ b/Master/texmf-dist/doc/info/kpathsea.info @@ -1,9 +1,9 @@ -This is kpathsea.info, produced by makeinfo version 5.1 from +This is kpathsea.info, produced by makeinfo version 5.2 from kpathsea.texi. This file documents the Kpathsea library for path searching. - Copyright (C) 1996-2013 Karl Berry & Olaf Weber. + Copyright (C) 1996-2014 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 @@ -36,56 +36,64 @@ File: kpathsea.info, Node: Top, Next: Introduction, Up: (dir) Kpathsea library **************** -This manual documents how to install and use the Kpathsea library for -filename lookup. It corresponds to version 6.1.1, released in April -2013. +This manual documents the Kpathsea library for path searching. It +corresponds to version 6.2.0, released in May 2014. * Menu: -* Introduction:: Overview. -* Installation:: Compilation, installation, and bug reporting. +* Introduction:: Overview and history. -* Path searching:: How filename lookups work. -* TeX support:: Special support for TeX-related file lookups. +* unixtex.ftp:: Obtaining TeX software. +* Security:: Who can write what files, etc. +* TeX directory structure:: Managing the horde of TeX input files. -* Programming:: How to use Kpathsea features in your program. +* Path searching:: How filename lookups work. +* TeX support:: Special support for TeX-related file lookups. -* Index:: General index. +* Programming:: How to use Kpathsea features in your program. + +* Reporting bugs:: Where and how to report bugs. +* Index:: General index. -File: kpathsea.info, Node: Introduction, Next: Installation, Prev: Top, Up: Top +File: kpathsea.info, Node: Introduction, Next: unixtex.ftp, Prev: Top, Up: Top 1 Introduction ************** -This manual corresponds to version 6.1.1 of the Kpathsea library, -released in April 2013. +This manual corresponds to version 6.2.0 of the Kpathsea library, +released in May 2014. The library's fundamental purpose is to return a filename from a list of directories specified by the user, similar to what shells do when looking up program names to execute. - The following software, all of which we maintain, uses this library: + The following software, all of which is maintained in parallel, uses +this library: * Dviljk (see the 'dvilj' man page) - * Dvipsk (*note Introduction: (dvips)Top.) - * GNU font utilities (*note Introduction: (fontu)Top.) - * Web2c (*note Introduction: (web2c)Top.) + * Dvipsk (*note (dvips)::) + * GNU font utilities (*note (fontu)::) + * Web2c (*note (web2c)::) * Xdvik (see the 'xdvi' man page) Other software that we do not maintain also uses it. - We are still actively maintaining the library (and probably always -will be, despite our hopes). If you have comments or suggestions, -please send them to us (*note Reporting bugs::). + Kpathsea is now maintained as part of the TeX Live distribution +(<http://tug.org/texlive>). For information on configuration, building, +installing, and more, *note (tlbuild)::. - We distribute the library under the GNU Library General Public -License (LGPL). In short, this means if you write a program using the -library, you must (offer to) distribute the source to the library, along -with any changes you have made, and allow anyone to modify the library -source and distribute their modifications. It does not mean you have to -distribute the source to your program, although we hope you will. See -the accompanying files for the text of the GNU licenses. + The library is still actively maintained. If you have comments or +suggestions, please send along (*note Reporting bugs::). + + The Kpathsea library is distributed under the GNU Library General +Public License (LGPL). In short, this means if you write a program using +the library, you must (offer to) distribute the source to the library, +along with any changes you have made, and allow anyone to modify the +library source and distribute their modifications. It does not mean you +have to distribute the source to your program, although we hope you +will. See accompanying files for the text of the GNU licenses, or +<http://www.gnu.org/licenses>. If you know enough about TeX to be reading this manual, then you (or your institution) should consider joining the TeX Users Group (if you're @@ -104,19 +112,19 @@ File: kpathsea.info, Node: History, Up: Introduction 1.1 History =========== -(This section is for those people who are curious about how the library -came about.) (If you like to read historical accounts of software, we +This section is for those people who are curious about how the library +came about. If you like to read historical accounts of software, we urge you to seek out the GNU Autoconf manual and the "Errors of TeX" -paper by Don Knuth, published in 'Software--Practice and Experience' -19(7), July 1989.) +paper by Don Knuth, published in his book 'Digital Typography', among +other places. [Karl writes.] My first ChangeLog entry for Web2c seems to be February 1990, but I may have done some work before then. In any case, Tim Morgan and I were jointly maintaining it for a time. (I should mention here that Tim had made Web2c into a real distribution long before I had ever used it or even heard of it, and Tom Rokicki did the -original implementation. I was using 'pxp' and 'pc' on VAX 11/750's and -the hot new Sun 2 machines.) +original implementation. When I started, I was using 'pxp' and 'pc' on +VAX 11/750's and the hot new Sun 2 machines.) It must have been later in 1990 and 1991 that I started working on 'TeX for the Impatient'. Dvips, Xdvi, Web2c, and the GNU fontutils @@ -130,30 +138,29 @@ explicitly specify 'cm', 'pandora', ... in a path. In the first incarnation, I just hacked separately on each program--that was the original subdirectory searching code in both Xdvi -and Dvips, though I think Paul Vojta has completely rewritten Xdvi's -support by now. That is, I tried to go with the flow in each program, -rather than changing the program's calling sequences to conform to -common routines. +and Dvips. That is, I tried to go with the flow in each program, rather +than changing the program's calling sequences to conform to new +routines. Then, as bugs inevitably appeared, I found I was fixing the same -thing three times (Web2c and fontutils were always sharing code, since I -maintained those--there was no Dvipsk or Xdvik or Dviljk at this point). -After a while, I finally started sharing source files. They weren't yet -a library, though. I just kept things up to date with shell scripts. -(I was developing on a 386 running ISC 2.2 at the time, and so didn't -have symbolic links. An awful experience.) +thing three times (Web2c and fontutils were already sharing code, since +I maintained both of those--there was no Dvipsk or Xdvik or Dviljk at +this point). After a while, I finally started sharing source files. +They weren't yet a library, though. I just kept things up to date with +shell scripts. (I was developing on a 386 running ISC 2.2 at the time, +and so didn't have symbolic links. An awful experience.) The ChangeLogs for Xdvik and Dvipsk record initial releases of those distributions in May and June 1992. I think it was because I was tired of the different configuration strategies of each program, not so much -because of the path searching. (Autoconf was being developed by David -MacKenzie and others, and I was adapting it to TeX and friends.) +because of the path searching. Autoconf was being developed by David +MacKenzie and others, and I was adapting it to TeX and friends. I started to make a separate library that other programs could link with on my birthday in April 1993, according to the ChangeLog. I don't remember exactly why I finally took the time to make it a separate -library; a conversation with david zuhn that initiated it. Just seemed -like it was time. +library; a conversation with david zuhn initiated it. Just seemed like +it was time. Dviljk got started in March 1994 after I bought a Laserjet 4. (Kpathsea work got suspended while Norm Walsh and I, with Gustaf @@ -172,906 +179,58 @@ development by anybody smaller than a company with a million-dollar-a-year legal budget. Which is actually what I think is likely to happen, but that's another story...) - [Olaf writes.] At the end of 1997, UNIX is still alive and kicking, + [Olaf writes.] At the end of 1997, Unix is still alive and kicking, individuals still develop software, and Web2c development still continues. Karl had been looking for some time for someone to take up part of the burden, and I volunteered. - -File: kpathsea.info, Node: Installation, Next: Path searching, Prev: Introduction, Up: Top - -2 Installation -************** - -(A copy of this chapter is in the distribution file 'kpathsea/INSTALL'.) - - The procedure for Kpathsea (and Web2c, etc.) configuration and -installation follows. If you encounter trouble, see *note Common -problems::, a copy of which is in the file 'kpathsea/BUGS'. - -* Menu: - -* Simple installation:: If you just want to do it. -* Custom installation:: If you want to change things around. -* Security:: Who can write what files, etc. -* TeX directory structure:: Managing the horde of TeX input files. -* unixtex.ftp:: Getting software via FTP, on CD-ROM, or on tape. -* Reporting bugs:: Where and how to report bugs. - - -File: kpathsea.info, Node: Simple installation, Next: Custom installation, Up: Installation - -2.1 Simple installation -======================= - -Installing TeX and friends for the first time can be a daunting -experience. Thus, you may prefer to skip this whole thing and just get -precompiled executables: see *note unixtex.ftp::. - - This section explains what to do if you wish to take the defaults for -everything, and generally to install in the simplest possible way. Most -steps here refer to corresponding subsection in the next section which -explains how to override defaults and generally gives more details. - - By default everything will be installed under '/usr/local' and the -following discussion assumes this. However, if you already have TeX -installed, its location is used to derive the directory under which -everything is to be installed. - - 1. Be sure you have enough disk space: approximately 8 megabytes for - the compressed archives, 15MB for sources, 50MB for compilation, - 40MB for the (initial) installed system (including library files). - *Note Disk space::. - - 2. Retrieve these distribution archives: - <ftp://ftp.tug.org/tex/texk.tar.gz> - These are the sources, which you will be compiling. - - <ftp://ftp.tug.org/tex/texklib.tar.gz> - This is a basic set of input files. You should unpack it in - the directory '/usr/local/share'; doing so will create a - 'texmf' subdirectory there. - - These archives are mirrored on the CTAN hosts, in the - 'systems/web2c' directory. - - *Note Kpathsea application distributions::. - - 3. When using the default search paths, there is no need to edit any - distribution files. *Note Changing search paths::. - - 4. At the top level of the distribution, run 'sh configure'. (If you - have the GNU Bash shell installed, run 'bash configure'.) *Note - Running configure::. - - 5. 'make'. *Note Running make::. If you are using a BSD 4.4 system - such as FreeBSD or NetBSD, you may have to use GNU make (often - installed in '/usr/local/bin'), not the BSD make. - - 6. 'make install'. *Note Installing files::. - - 7. 'make distclean'. *Note Cleaning up::. - - 8. Set up a cron job to rebuild the filename database that makes - searching faster. This line will rebuild it every midnight: - 0 0 * * * cd /usr/local/share/texmf && /BINDIR/mktexlsr - *Note Filename database generation::, and *note Filename - database::. - - 9. If you're installing Dvips, you also need to set up configuration - files for your printers and make any additional PostScript fonts - available. *Note (dvips)Installation::. If you have any color - printers, see *note (dvips)Color device configuration::. - - 10. The first time you run a DVI driver, a bunch of PK fonts will be - built by Metafont via 'mktexpk' (and added to the filename - database). This will take some time. Don't be alarmed; they will - created only this first time (unless something is wrong with your - path definitions). - - By default, 'mktexpk' will create these fonts in a hierarchy under - '/var/tmp/texfonts'; it simply assumes that '/var/tmp' exists and - is globally writable. If you need a different arrangement, see - *note mktex configuration::. - - *Note mktex scripts::. - - 11. For some simple tests, try 'tex story \\bye' and 'latex sample2e'. - Then run 'xdvi story' or 'dvips sample2e' on the resulting DVI - files to preview/print the documents. *Note Installation - testing::. - - -File: kpathsea.info, Node: Custom installation, Next: Security, Prev: Simple installation, Up: Installation - -2.2 Custom installation -======================= - -Most sites need to modify the default installation procedure in some -way, perhaps merely changing the prefix from '/usr/local', perhaps -adding extra compiler or loader options to work around 'configure' bugs. -This section explains how to override default choices. For additional -distribution-specific information: - * 'dviljk/INSTALL'. - * *Note (dvips)Installation::. - * *Note (web2c)Installation::. - * 'xdvik/INSTALL'. - - These instructions are for Unix systems. Other operating-system -specific distributions have their own instructions. The code base -itself supports Amiga, DOS, OS/2, and VMS. - - Following are the same steps as in the previous section (which -describes the simplest installation), but with much more detail. - -* Menu: - -* Disk space:: -* Kpathsea application distributions:: -* Changing search paths:: -* Running configure:: -* Running make:: -* Installing files:: -* Cleaning up:: -* Filename database generation:: -* mktex scripts:: -* Installation testing:: - - -File: kpathsea.info, Node: Disk space, Next: Kpathsea application distributions, Up: Custom installation - -2.2.1 Disk space ----------------- - -Here is a table showing the disk space needed for each distribution -(described in the next section). The '(totals)' line reflects the -'texk' source distribution and 'texklib'; the individual distributions -don't enter into it. Sizes are in megabytes. All numbers are -approximate. - -Distribution .tar.gz Unpacked Compiled Installed -dviljk .9 3.8 -dvipsk .9 3.2 -xdvik .7 2.5 -web2c 1.3 5.0 -web 1.9 6.5 - - -texk 7.5 32.1 95.3 33.5 -texklib 6.3 15.0 - 15.0 -(totals) 14.6 47.1 95.3 48.5 - - -File: kpathsea.info, Node: Kpathsea application distributions, Next: Changing search paths, Prev: Disk space, Up: Custom installation - -2.2.2 Kpathsea application distributions ----------------------------------------- - -The archive <ftp://ftp.tug.org/tex/texk.tar.gz> contains all of the -Kpathsea applications I maintain, and the library itself. For example, -since NeXT does not generally support X11, you'd probably want to skip -'xdvik' (or simply remove it after unpacking 'texk.tar.gz'. If you are -not interested in all of them, you can also retrieve them separately: - -'dviljk.tar.gz' - DVI to PCL, for LaserJet printers. - -'dvipsk.tar.gz' - DVI to PostScript, for previewers, printers, or PDF generation. - -'web2c.tar.gz' - The software needed to compile TeX and friends. - -'web.tar.gz' - The original WEB source files, also used in compilation. - -'xdvik.tar.gz' - DVI previewing under the X window system. - - If you want to use the Babel LaTeX package for support of non-English -typesetting, you may need to retrieve additional files. See the file -'install.txt' in the Babel distribution. - - -File: kpathsea.info, Node: Changing search paths, Next: Running configure, Prev: Kpathsea application distributions, Up: Custom installation - -2.2.3 Changing search paths ---------------------------- - -If the search paths for your installation differ from the standard TeX -directory structure (*note Introduction: (tds)Top.), edit the file -'kpathsea/texmf.in' as desired, before running 'configure'. For -example, if you have all your fonts or macros in one big directory. - - You may also wish to edit the file 'mktex.cnf', either before or -after installation, to control various aspects of 'mktexpk' and friends. -*Note mktex configuration::. - - You do not need to edit 'texmf.in' to change the default top-level or -other installation _directories_ (only the paths). You can and should -do that when you run 'configure' (next step). - - You also do not need to edit 'texmf.in' if you are willing to rely on -'texmf.cnf' at runtime to define the paths, and let the compile-time -default paths be incorrect. Usually there is no harm in doing this. - - The section below explains default generation in more detail. - -* Menu: - -* Default path features:: -* Default path generation:: - - -File: kpathsea.info, Node: Default path features, Next: Default path generation, Up: Changing search paths - -2.2.3.1 Default path features -............................. - -The purpose of having all the different files described in the section -above is to avoid having the same information in more than one place. -If you change the installation directories or top-level prefix at -'configure'-time, those changes will propagate through the whole -sequence. And if you change the default paths in 'texmf.in', those -changes are propagated to the compile-time defaults. - - The Make definitions are all repeated in several Makefile's; but -changing the top-level 'Makefile' should suffice, as it passes down all -the variable definitions, thus overriding the submakes. (The -definitions are repeated so you can run Make in the subdirectories, if -you should have occasion to.) - - By default, the bitmap font paths end with '/$MAKETEX_MODE', thus -including the device name (usually a Metafont mode name such as -'ljfour'). This distinguishes two different devices with the same -resolution--a write/white from a write/black 300dpi printer, for -example. - - However, since most sites don't have this complication, Kpathsea -(specifically, the 'kpse_init_prog' function in 'kpathsea/proginit.c') -has a special case: if the mode has not been explicitly set by the user -(or in a configuration file), it sets 'MAKETEX_MODE' to '/'. This makes -the default PK path, for example, expand into '.../pk//', so fonts will -be found even if there is no subdirectory for the mode (if you arranged -things that way because your site has only one printer, for example) or -if the program is mode-independent (e.g., 'pktype'). - - To make the paths independent of the mode, simply edit 'texmf.in' -before installation, or the installed 'texmf.cnf', and remove the -'$MAKETEX_MODE'. - - *Note mktex script arguments::, for how this interacts with -'mktexpk'. - - *Note TeX directory structure: TeX directory structure, for a -description of the default arrangement of the input files that comprise -the TeX system. - - -File: kpathsea.info, Node: Default path generation, Prev: Default path features, Up: Changing search paths - -2.2.3.2 Default path generation -............................... - -This section describes how the default paths are constructed. - - You may wish to ignore the whole mess and simply edit 'texmf.cnf' -after it is installed, perhaps even copying it into place beforehand so -you can complete the installation, if it seems necessary. - - To summarize the chain of events that go into defining the default -paths: - - 1. 'configure' creates a 'Makefile' from each 'Makefile.in'. - - 2. When Make runs in the 'kpathsea' directory, it creates a file - 'texmf.sed' that substitutes the Make value of '$(var)' for a - string '@var@'. The variables in question are the one that define - the installation directories. - - 3. 'texmf.sed' (together with a little extra magic--see - 'kpathsea/Makefile') is applied to 'texmf.in' to generate - 'texmf.cnf'. This is the file that will eventually be installed - and used. - - 4. The definitions in 'texmf.cnf' are recast as C '#define''s in - 'paths.h'. These values will be the compile-time defaults; they - are not used at runtime unless no 'texmf.cnf' file can be found. - - (That's a lie: the compile-time defaults are what any extra :'s in - 'texmf.cnf' expand into; but the paths as distributed have no extra - :'s, and there's no particular reason for them to.) - - -File: kpathsea.info, Node: Running configure, Next: Running make, Prev: Changing search paths, Up: Custom installation - -2.2.4 Running 'configure' -------------------------- - -Run 'sh configure OPTIONS' (in the top-level directory, the one -containing 'kpathsea/'), possibly using a shell other than 'sh' (*note -configure shells::). - - 'configure' adapts the source distribution to the present system via -'#define''s in '*/c-auto.h', which are created from the corresponding -'c-auto.in'. It also creates a 'Makefile' from the corresponding -'Makefile.in', doing '@VAR@' and 'ac_include' substitutions). - - 'configure' is the best place to control the configuration, -compilation, and installed location of the software, either via -command-line options, or by setting environment variables before -invoking it. For example, you can disable 'mktexpk' by default with the -option '--disable-mktexpk'. *Note configure options::. - -* Menu: - -* configure shells:: -* configure options:: -* configure environment:: -* configure scenarios:: -* Shared library:: - - -File: kpathsea.info, Node: configure shells, Next: configure options, Up: Running configure - -2.2.4.1 'configure' shells -.......................... - -Considerable effort has gone into trying to ensure that the 'configure' -scripts can be run by most Bourne shell variants. If 'sh' runs into -trouble, your best bet is to use Bash, the GNU Bourne-again shell (*note -(bash)Top::). - - Bourne shell variants for which problems have been reported in the -past are: -'ksh' - Old versions of the Korn shell may fail to handle the scripts. The - Korn shell may be installed as '/bin/sh' on AIX, in which case - '/bin/bsh' may serve instead. - -'ash' - Old versions of ash are unable to handle the scripts. Ash is - sometimes installed as '/bin/sh' on NetBSD, FreeBSD, and Linux - systems. '/bin/bash' should be available for those systems, but - might not be part of a default installation. - -'Ultrix /bin/sh' - '/bin/sh' under Ultrix is a DEC-grown shell that is notably - deficient in many ways. '/bin/sh5' may be necessary. - - -File: kpathsea.info, Node: configure options, Next: configure environment, Prev: configure shells, Up: Running configure - -2.2.4.2 'configure' options -........................... - -For a complete list of all 'configure' options, run 'configure --help' -or see *note Running 'configure' scripts: (autoconf)Invoking configure, -(a copy is in the file 'kpathsea/README.CONFIGURE'). The generic -options are listed first in the '--help' output, and the -package-specific options come last. The environment variables -'configure' pays attention to are listed below. - - Options particularly likely to be useful are '--prefix', '--datadir', -and the like; see *note configure scenarios::. - - This section gives pointers to descriptions of the '--with' and -'--enable' options to 'configure' that Kpathsea-using programs accept. - -'--without-mktexmf-default' -'--without-mktexpk-default' -'--without-mktextfm-default' -'--with-mktextex-default' - Enable or disable the dynamic generation programs. *Note mktex - configuration::. - -'--enable-shared' - Build Kpathsea as a shared library, and link against it. Also - build the usual static library. *Note Shared library::. - -'--disable-static' - Build only the shared library. Implies '--enable-shared'. - -'--enable-maintainer-mode' - Enables make targets that are useful for the maintainer and likely - to be a pain for anyone else; the makefiles created when this - option is enabled may not work at all for you. You have been - warned. - - -File: kpathsea.info, Node: configure environment, Next: configure scenarios, Prev: configure options, Up: Running configure - -2.2.4.3 'configure' environment -............................... - -'configure' uses the value of the following environment variables in -determining your system's characteristics, and substitutes for them in -Makefile's: - -'CC' - The compiler to use: default is 'gcc' if it's installed, otherwise - 'cc'. - -'CFLAGS' - Options to give the compiler: default is '-g -O2' for 'gcc', '-g' - otherwise. 'CFLAGS' comes after any other options. You may need - to include '-w' here if your compilations commonly have useless - warnings (e.g., 'NULL redefined'), or 'configure' may fail to - detect the presence of header files (it takes the messages on - standard error to mean the header file doesn't exist). - -'CPPFLAGS' - Options to pass to the compiler preprocessor; this matters most for - configuration, not the actual source compilation. The 'configure' - script often does only preprocessing (e.g., to check for the - existence of #include files), and 'CFLAGS' is not used for this. - You may need to set this to something like - '-I/usr/local/include/wwwhatever' if you have the libwww library - installed for hyper-xdvik (see 'xdvik/INSTALL'). - -'DEFS' - Additional preprocessor options, but not used by 'configure'. - Provided for enabling or disabling program features, as documented - in the various program-specific installation instructions. 'DEFS' - comes before any compiler options included by the distribution - 'Makefile's or by 'configure'. - -'LDFLAGS' - Additional options to give to the loader. 'LDFLAGS' comes before - any other linker options. - -'LIBS' - Additional libraries to link with. - - -File: kpathsea.info, Node: configure scenarios, Next: Shared library, Prev: configure environment, Up: Running configure - -2.2.4.4 'configure' scenarios -............................. - -Here are some common installation scenarios: - - * Including X support in Metafont. This is disabled by default, - since many sites have no use for it, and it's a leading cause of - configuration problems. - configure --with-x - - * Putting the binaries, TeX files, GNU info files, etc. into a single - TeX hierarchy, say '/here/texmf', requires overriding defaults in - 'configure': - configure --prefix=/here/texmf --datadir=/here - - * You can compile on multiple architectures simultaneously either by - building symbolic link trees with the 'lndir' script from the X11 - distribution, or with the '--srcdir' option: - configure --srcdir=SRCDIR - - * If you are installing binaries for multiple architectures into a - single hierarchy, you will probably want to override the default - 'bin' and 'lib' directories, something like this: - configure --prefix=TEXMF --datadir=TEXMF \ - --bindir=TEXMF/ARCH/bin --libdir=TEXMF/ARCH/lib - make texmf=TEXMF - (Unless you make provisions for architecture-specific files in - other ways, e.g., with Depot or an automounter.) - - * To compile with optimization (to compile without debugging, remove - the '-g'): - env CFLAGS="-g -O" sh configure ... - For a potential problem if you optimize, see *note TeX or Metafont - failing: TeX or Metafont failing. - - -File: kpathsea.info, Node: Shared library, Prev: configure scenarios, Up: Running configure - -2.2.4.5 Shared library -...................... - -You can compile Kpathsea as a shared library on a few systems, by -specifying the option '--enable-shared' when you run 'configure'. - - The main advantage in doing this is that the executables can then -share the code, thus decreasing memory and disk space requirements. - - On some systems, you can record the location of shared libraries in a -binary, usually by giving certain options to the linker. Then -individual users do not need to set their system's environment variable -(e.g., 'LD_LIBRARY_PATH') to find shared libraries. If you want to do -this, you will need to add the necessary options to 'LDFLAGS' yourself; -for example, on Solaris, include something like '-R${prefix}/lib', on -IRIX or Linux, use '-rpath${prefix}/lib'. (Unfortunately, making this -happen by default is very difficult, because of interactions with an -existing installed shared library.) - - -File: kpathsea.info, Node: Running make, Next: Installing files, Prev: Running configure, Up: Custom installation - -2.2.5 Running 'make' --------------------- - -'make' (still in the top-level directory). This also creates the -'texmf.cnf' and 'paths.h' files that define the default search paths, -and (by default) the 'plain' and 'latex' TeX formats. - - You can override directory names and other values at 'make'-time. -'make/paths.make' lists the variables most commonly reset. For example, -'make default_texsizes=600' changes the list of fallback resolutions. - - You can also override each of 'configure''s environment variables -(*note configure environment::). The Make variables have the same -names. - - Finally, you can supply additional options via the following -variables. ('configure' does not use these.) - -'XCPPFLAGS' -'XDEFS' - Preprocessor options. - -'XCFLAGS' - Compiler options. - -'XLDFLAGS' - Loader options (included at beginning of link commands). - -'XLOADLIBES' - More loader options (included at end of link commands). - -'XMAKEARGS' - Additional Make arguments passed to all sub-'make''s. You may need - to include assignments to the other variables here via 'XMAKEARGS'; - for example: 'make XMAKEARGS="CFLAGS=-O XDEFS=-DA4"'. - - It's generally a bad idea to use a different compiler ('CC') or -libraries ('LIBS') for compilation than you did for configuration, since -the values 'configure' determined may then be incorrect. - - Adding compiler options to change the "universe" you are using -(typically BSD vs. system V) is generally a cause of trouble. It's best -to use the native environment, whatever that is; 'configure' and the -software usually adapt best to that. In particular, under Solaris 2.x, -you should not use the BSD-compatibility library ('libucb') or include -files ('ucbinclude'). - - If you want to use the Babel LaTeX package for support of non-English -typesetting, you need to modify some files before making the LaTeX -format. See the file 'install.txt' in the Babel distribution. - - -File: kpathsea.info, Node: Installing files, Next: Cleaning up, Prev: Running make, Up: Custom installation - -2.2.6 Installing files ----------------------- - -The basic command is the usual 'make install'. For security issues, -*note Security::. - - The first time you install any manual in the GNU Info system, you -should add a line (you choose where) to the file 'dir' in your -'$(infodir)' directory. Sample text for this is given near the top of -the Texinfo source files ('kpathsea/kpathsea.texi', 'dvipsk/dvips.texi', -and 'web2c/doc/web2c.texi'). If you have a recent version of the GNU -Texinfo distribution installed -(<ftp://prep.ai.mit.edu/pub/gnu/texinfo-3.9.tar.gz> or later), this -should happen automatically. - - On the offchance that this is your first Info installation, the 'dir' -file I use is included in the distribution as 'etc/dir-example'. - - You may wish to use one of the following targets, especially if you -are installing on multiple architectures: - * 'make install-exec' to install in architecture-dependent - directories, i.e., ones that depend on the '$(exec_prefix)' Make - variable. This includes links to binaries, libraries, etc., not - just "executables". - - * 'make install-data' to install in architecture-independent - directories, such as documentation, configuration files, pool - files, etc. - - If you use the Andrew File System, the normal path (e.g., PREFIX/bin) -only gets you to a read-only copy of the files, and you must specify a -different path for installation. The best way to do this is by setting -the 'prefix' variable on the 'make' command line. The sequence becomes -something like this: - configure --prefix=/whatever - make - make install prefix=/afs/.SYSTEM.NAME/system/1.3/@sys/whatever -With AFS, you will definitely want to use relative filenames in 'ls-R' -(*note Filename database::), not absolute filenames. This is done by -default, but check anyway. - - -File: kpathsea.info, Node: Cleaning up, Next: Filename database generation, Prev: Installing files, Up: Custom installation - -2.2.7 Cleaning up ------------------ - -The basic command is 'make distclean'. This removes all files created -by the build. - - Alternatively, - * 'make mostlyclean' if you intend to compile on another - architecture. For Web2C, since the generated C files are portable, - they are not removed. If the 'lex' vs. 'flex' situation is going - to be different on the next machine, 'rm web2c/lex.yy.c'. - - * 'make clean' to remove files created by compiling, but leave - configuration files and Makefiles. - - * 'make maintainer-clean' to remove everything that the Makefiles can - rebuild. This is more than 'distclean' removes, and you should - only use it if you are thoroughly conversant with (and have the - necessary versions of) Autoconf. - - * 'make extraclean' to remove other junk, e.g., core files, log - files, patch rejects. This is independent of the other 'clean' - targets. - - -File: kpathsea.info, Node: Filename database generation, Next: mktex scripts, Prev: Cleaning up, Up: Custom installation - -2.2.8 Filename database generation ----------------------------------- - -You will probably want to set up a 'cron' entry on the appropriate -machine(s) to rebuild the filename database nightly or so, as in: - 0 0 * * * cd TEXMF && /BINDIR/mktexlsr -*Note Filename database::. - - Although the 'mktex...' scripts make every effort to add -newly-created files on the fly, it can't hurt to make sure you get a -fresh version every so often. - - -File: kpathsea.info, Node: mktex scripts, Next: Installation testing, Prev: Filename database generation, Up: Custom installation - -2.2.9 'mktex' scripts ---------------------- - -If Kpathsea cannot otherwise find a file, for some file types it is -configured by default to invoke an external program to create it -dynamically (*note mktex configuration::). These are collectively known -as "'mktex' scripts", since most of them are named 'mktex...'. - - For example, this is useful for fonts (bitmaps, TFM's, and -arbitrarily-sizable Metafont sources such as the Sauter and EC fonts), -since any given document can use fonts never before referenced. -Building all fonts in advance is therefore impractical, if not -impossible. - - It is also useful for the TeX '.fmt' (and Metafont '.base' and -Metapost '.mem' files, *note (Web2c)Memory dumps::), where -pre-generating every format consumes a lot of both time and space. - - The script is passed the name of the file to create and possibly -other arguments, as explained below. It must echo the full pathname of -the file it created (and nothing else) to standard output; it can write -diagnostics to standard error. - -* Menu: - -* config: mktex configuration. -* names: mktex script names. -* args: mktex script arguments. - - -File: kpathsea.info, Node: mktex configuration, Next: mktex script names, Up: mktex scripts - -2.2.9.1 'mktex' configuration -............................. - -The list of file types and program names that can run an external -program to create missing files is listed in the next section. In the -absence of 'configure' options specifying otherwise, everything but -'mktextex' will be enabled by default. The 'configure' options to -change the defaults are: - - --without-mktexfmt-default - --without-mktexmf-default - --without-mktexocp-default - --without-mktexofm-default - --without-mktexpk-default - --without-mktextfm-default - --with-mktextex-default - - The 'configure' setting is overridden if the environment variable or -configuration file value named for the script is set; e.g., 'MKTEXPK' -(*note mktex script arguments::). - - 'mktexfmt' reads a file 'fmtutil.cnf', typically located in -'texmf/web2c/' to glean its configuration information. The rest of the -files and features in this section are primarily intended for the font -generation scripts. - - As distributed, all the scripts source a file 'texmf/web2c/mktex.cnf' -if it exists, so you can override various defaults. See 'mktex.opt', -for instance, which defines the default mode, resolution, some special -directory names, etc. If you prefer not to change the distributed -scripts, you can simply create 'mktex.cnf' with the appropriate -definitions (you do not need to create it if you have nothing to put in -it). 'mktex.cnf' has no special syntax; it's an arbitrary Bourne shell -script. The distribution contains a sample 'mktex.cnf' for you to copy -and modify as you please (it is not installed anywhere). - - In addition, you can configure a number of features with the -'MT_FEATURES' variable, which you can define: - - * in 'mktex.opt', as just mentioned; - - * by editing the file 'mktex.opt', either before 'make install' (in - the source hierarchy) or after (in the installed hierarchy); - - * or in the environment. - - If none of the options below are enabled, 'mktexpk', 'mktextfm', and -'mktexmf' follow the following procedure to decide where fonts should be -installed. Find the tree where the font's sources are, and test the -permissions of the 'fonts' directory of that tree to determine whether -it is writable. If it is, put the files in the tree in appropriate -locations. If it isn't writable, see whether the tree is a system tree -(named in 'SYSTEXMF'). If so, the 'VARTEXFONTS' tree is used. In all -other cases the working directory is used. - - The 'appendonlydir' option is enabled by default. - -'appendonlydir' - Tell 'mktexdir' to create directories append-only, i.e., set their - sticky bit (*note (coreutils)Mode Structure::). This feature is - silently ignored on non-Unix platforms (e.g. Windows/NT and - MS-DOS) which don't support similar functionality. This feature is - enabled by default. - -'dosnames' - Use 8.3 names; e.g., 'dpi600/cmr10.pk' instead of 'cmr10.600pk'. - Note that this feature only affects filenames that would otherwise - clash with other TeX-related filenames; 'mktex' scripts do nothing - about filenames which exceed the 8+3 MS-DOS limits but remain - unique when truncated (by the OS) to these limits, and nether do - the scripts care about possible clashes with files which aren't - related with TeX. For example, 'cmr10.600pk' would clash with - 'cmr10.600gf' and is therefore changed when 'dosnames' is in - effect, but 'mf.pool' and 'mp.base' don't clash with any - TeX-related files and are therefore unchanged. - - This feature is turned on by default on MS-DOS. If you do not wish - 'dosnames' to be set on an MS-DOS platform, you need to set the - 'MT_FEATURES' environment variable to a value that doesn't include - 'dosnames'. You can also change the default setting by editing - 'mktex.opt', but only if you use the 'mktex' shell scripts; the - emulation programs don't consult 'mktex.opt'. - -'fontmaps' - Instead of deriving the location of a font in the destination tree - from the location of the sources, the aliases and directory names - from the Fontname distribution are used. (*note Introduction: - (fontname)Top.). - -'nomfdrivers' - Let mktexpk and mktextfm create metafont driver files in a - temporary directory. These will be used for just one metafont run - and not installed permanently. - -'nomode' - Omit the directory level for the mode name; this is fine as long as - you generate fonts for only one mode. - -'stripsupplier' - Omit the font supplier name directory level. - -'striptypeface' - Omit the font typeface name directory level. - -'strip' - Omit the font supplier and typeface name directory levels. This - feature is deprecated in favour of 'stripsupplier' and - 'striptypeface'. - -'varfonts' - When this option is enabled, fonts that would otherwise be written - in system texmf tree go to the 'VARTEXFONTS' tree instead. The - default value in 'kpathsea/Makefile.in' is '/var/tmp/texfonts'. - The 'Linux File System Standard' recommends '/var/tex/fonts'. - - The 'varfonts' setting in 'MT_FEATURES' is overridden by the - 'USE_VARTEXFONTS' environment variable: if set to '1', the feature - is enabled, and if set to '0', the feature is disabled. - -'texmfvar' - Force generated files that would go into a system tree (as defined - by 'SYSTEXMF') into 'TEXMFVAR'. Starting with teTeX-3.0, the - variable 'TEXMFVAR' is always set. The 'varfonts' feature takes - precedence if also set. - - The 'texmfvar' setting in 'MT_FEATURES' is overridden by the - 'USE_TEXMFVAR' environment variable: if set to '1', the feature is - enabled, and if set to '0', the feature is disabled. - - -File: kpathsea.info, Node: mktex script names, Next: mktex script arguments, Prev: mktex configuration, Up: mktex scripts - -2.2.9.2 'mktex' script names -............................ - -The following table shows the default name of the script for each of the -file types which support runtime generation. - -'mktexfmt' - ('.fmt', '.base', '.mem') TeX/Metafont/MetaPost formats. This - script is also named 'fmtutil', and reads 'fmtutil.cnf' for - configuration information. - -'mktexmf' - ('.mf') Metafont input files. - -'mkocp' - ('.ocp') Omega compiled process files. - -'mkofm' - ('.ofm') Omega font metric files. - -'mktexpk' - ('pk') Glyph fonts. - -'mktextex' - ('.tex') TeX input files (disabled by default). - -'mktextfm' - ('.tfm') TFM files. - -These names can be overridden by an environment variable specific to the -program--for example, 'DVIPSMAKEPK' for Dvipsk. - - If a 'mktex...' script fails, the invocation is appended to a file -'missfont.log' (by default) in the current directory. You can then -execute the log file to create the missing files after fixing the -problem. - - If the current directory is not writable and the environment variable -or configuration file value 'TEXMFOUTPUT' is set, its value is used. -Otherwise, nothing is written. The name 'missfont.log' is overridden by -the 'MISSFONT_LOG' environment variable or configuration file value. + [Karl writes again.] Indeed, time goes on. As of 2006 or so, Olaf's +available time for Kpathsea became rather reduced, and I started taking +overall care of it again, although I did not do any significant new +development. In 2009, Taco Hoekwater made a major rearrangement to make +the library suitable for use within the MetaPost library (*note +Programming overview::). Also, for some years now, Peter Breitenlohner +has made many improvements to the infrastructure and kept up-to-date +with respect to the overall TeX Live build, where Kpathsea is now +maintained. -File: kpathsea.info, Node: mktex script arguments, Prev: mktex script names, Up: mktex scripts +File: kpathsea.info, Node: unixtex.ftp, Next: Security, Prev: Introduction, Up: Top -2.2.9.3 'mktex' script arguments -................................ - -The first argument to a 'mktex' script is always the name of the file to -be created. +2 'unixtex.ftp': Obtaining TeX +****************************** - In the default 'mktexpk' implementation, additional arguments may -also be passed: +This is <ftp://ftp.tug.org/tex/unixtex.ftp>, last updated 13 June 2010. +Also available as <http://www.tug.org/unixtex.ftp>. Email +<tex-k@tug.org> with comments or questions. -'--dpi NUM' - Sets the resolution of the generated font to NUM. -'--mfmode NAME' - Sets the Metafont mode to NAME. -'--bdpi NUM' - Sets the "base dpi" for the font. This must match the mode being - used. -'--mag STRING' - A "magstep" string suitable for the Metafont 'mag' variable. This - must match the combination of BDPI and DPI being used. -'--destdir STRING' - A directory name. If the directory is absolute, it is used as-is. - Otherwise, it is appended to the root destination directory set in - the script. + The principal free TeX distribution for Unix-like systems is TeX +Live, on the web at <http://tug.org/texlive>. The pages there describe +many ways to acquire and build TeX, over the Internet or on physical +media, both the sources and precompiled binaries for many systems, +either standalone or as part of various operating system distributions. - -File: kpathsea.info, Node: Installation testing, Prev: mktex scripts, Up: Custom installation + Web2C, Kpathsea, Dvips, and Dviljk are no longer released as a +separate packages. Their sources are now maintained as part of TeX +Live. -2.2.10 Installation testing ---------------------------- + The host ftp.cs.stanford.edu is the original source for the files for +which Donald Knuth is directly responsible: 'tex.web', 'plain.tex', etc. +However, unless you want to undertake the very significant project of +building your TeX installation from scratch, it is far more reliable and +less work to retrieve these files as part of a larger package -Besides the tests listed in *note Simple installation::, you can try -running 'make check'. This includes the torture tests (trip, trap, and -mptrap) that come with Web2c (*note (web2c)Triptrap::). + In any case, the Stanford ftp site is not the canonical source for +anything except what was created as part of Knuth's original TeX, so do +not rely on any other files available there being up-to-date. The best +place to check for up-to-date files is CTAN (the Comprehensive TeX +Archive Network), <http://www.ctan.org>. -File: kpathsea.info, Node: Security, Next: TeX directory structure, Prev: Custom installation, Up: Installation +File: kpathsea.info, Node: Security, Next: TeX directory structure, Prev: unixtex.ftp, Up: Top -2.3 Security -============ +3 Security +********** None of the programs in the TeX system require any special system privileges, so there's no first-level security concern of people gaining @@ -1123,28 +282,20 @@ permissions as their parent directory, unless the 'appendonlydir' feature is used, in which case the sticky bit is always set. -File: kpathsea.info, Node: TeX directory structure, Next: unixtex.ftp, Prev: Security, Up: Installation +File: kpathsea.info, Node: TeX directory structure, Next: Path searching, Prev: Security, Up: Top -2.4 TeX directory structure -=========================== +4 TeX directory structure +************************* This section describes the default installation hierarchy of the distribution. It conforms to both the GNU coding standards and the TeX directory structure (TDS) standard. For rationale and further -explanation, please see those documents. The GNU standard is available -as <ftp://prep.ai.mit.edu/pub/gnu/standards/standards.texi> and mirrors. -The TDS document is available from 'CTAN:/tex-archive/tds' (*note -unixtex.ftp::). - - You can change the default paths in many ways (*note Changing search -paths::). One common desire is to put everything (binaries and all) -under a single top-level directory such as '/usr/local/texmf' or -'/opt/texmf'--in the terms used below, make PREFIX and TEXMF the same. -For specific instructions on doing that, see *note configure -scenarios::. +explanation, please see those documents. The GNU document is available +from <http://www.gnu.org/prep/standards>. The TDS document is available +from <http://www.mirror.ctan.org/tds> (*note unixtex.ftp::). - Here is a skeleton of the default directory structure, extracted from -the TDS document: + In short, here is a skeleton of the default directory structure, +extracted from the TDS document: PREFIX/ installation root ('/usr/local' by default) bin/ executables @@ -1214,648 +365,9 @@ the TDS document: /usr/local/share/texmf/web2c/texmf.cnf -File: kpathsea.info, Node: unixtex.ftp, Next: Reporting bugs, Prev: TeX directory structure, Up: Installation - -2.5 'unixtex.ftp': Obtaining TeX -================================ - -This is <ftp://ftp.tug.org/tex/unixtex.ftp>, last updated 13 June 2010. -Also available as <http://www.tug.org/unixtex.ftp>. Email -<tex-k@tug.org> with comments or questions. - - The principal free TeX distribution for Unix-like systems is TeX -Live, on the web at <http://tug.org/texlive>. The pages there describe -many ways to acquire TeX, over the Internet or on physical media, both -the sources and precompiled binaries for many systems, either standalone -or as part of various operating system distributions. - - Web2C, Kpathsea, Dvips, and Dviljk are no longer released as a -separate packages. Their sources are now maintained as part of TeX -Live. - - The host ftp.cs.stanford.edu is the original source for the files for -which Donald Knuth is directly responsible: 'tex.web', 'plain.tex', etc. -However, unless you want to build your TeX library tree ab initio, it is -more reliable and less work to retrieve these files as part of a larger -package. In any case, that ftp site is not the canonical source for -anything except what was created as part of Stanford TeX project, so do -not rely on the other files available there being up-to-date. - - -File: kpathsea.info, Node: Reporting bugs, Prev: unixtex.ftp, Up: Installation - -2.6 Reporting bugs -================== - -(A copy of this chapter is in the file 'kpathsea/BUGS'.) - - If you have problems or suggestions, please report them to -<tex-k@tug.org> using the bug checklist below. - - Please report bugs in the documentation; not only factual errors or -inconsistent behavior, but unclear or incomplete explanations, typos, -wrong fonts, ... - -* Menu: - -* Bug checklist:: What to include in a good bug report. -* Mailing lists:: Joining the bugs or announcements mailing lists. -* Debugging:: Analyzing runtime problems. -* Logging:: Recording searches. -* Common problems:: When things go wrong. - - -File: kpathsea.info, Node: Bug checklist, Next: Mailing lists, Up: Reporting bugs - -2.6.1 Bug checklist -------------------- - -Before reporting a bug, please check below to be sure it isn't already -known (*note Common problems::). - - Bug reports should be sent via electronic mail to <tex-k@tug.org>. - - The general principle is that a good bug report includes all the -information necessary for reproduction. Therefore, to enable -investigation, your report should include the following: - - * The version number(s) of the program(s) involved, and of Kpathsea - itself. You can get the former by giving a sole option '--version' - to the program, and the latter by running 'kpsewhich --version'. - The 'NEWS' and 'ChangeLog' files also contain the version number. - - * The hardware, operating system (including version number), - compiler, and 'make' program you are using (the output of 'uname - -a' is a start on the first two, though often incomplete). If the - bug involves the X window system, include X version and supplier - information as well (examples: X11R6 from MIT; X11R4 from HP; - OpenWindows 3.3 bundled with SunOS 4.1.4). - - * Any options you gave to 'configure'. This is recorded in the - 'config.status' files. - - If you are reporting a bug in 'configure' itself, it's probably - system-dependent, and it will be unlikely the maintainers can do - anything useful if you merely report that thus-and-such is broken. - Therefore, you need to do some additional work: for some bugs, you - can look in the file 'config.log' where the test that failed should - appear, along with the compiler invocation and source program in - question. You can then compile it yourself by hand, and discover - why the test failed. Other 'configure' bugs do not involve the - compiler; in that case, the only recourse is to inspect the - 'configure' shell script itself, or the Autoconf macros that - generated 'configure'. - - * The log of all debugging output, if the bug is in path searching. - You can get this by setting the environment variable - 'KPATHSEA_DEBUG' to '-1' before running the program. Please look - at the log yourself to make sure the behavior is really a bug - before reporting it; perhaps "old" environment variable settings - are causing files not to be found, for example. - - * The contents of any input files necessary to reproduce the bug. - For bugs in DVI-reading programs, for example, this generally means - a DVI file (and any EPS or other files it uses)--TeX source files - are helpful, but the DVI file is necessary, because that's the - actual program input. - - * If you are sending a patch (do so if you can!), please do so in the - form of a context diff ('diff -c') against the original - distribution source. Any other form of diff is either not as - complete or harder for me to understand. Please also include a - 'ChangeLog' entry. - - * If the bug involved is an actual crash (i.e., core dump), it is - easy and useful to include a stack trace from a debugger (I - recommend the GNU debugger GDB, available from - <ftp://prep.ai.mit.edu/pub/gnu>). If the cause is apparent (a - 'NULL' value being dereferenced, for example), please send the - details along. If the program involved is TeX or Metafont, and the - crash is happening at apparently-sound code, however, the bug may - well be in the compiler, rather than in the program or the library - (*note TeX or Metafont failing: TeX or Metafont failing.). - - * Any additional information that will be helpful in reproducing, - diagnosing, or fixing the bug. - - -File: kpathsea.info, Node: Mailing lists, Next: Debugging, Prev: Bug checklist, Up: Reporting bugs - -2.6.2 Mailing lists -------------------- - -Web2c and Kpathsea in general are discussed on the mailing list -<tex-k@tug.org>. To join, email <tex-k-request@tug.org> with a line -consisting of - - subscribe YOU@YOUR.PREFERRED.EMAIL.ADDRESS - -in the body of the message. - - You do not need to join to submit a report, nor will it affect -whether you get a response. There is no Usenet newsgroup equivalent (if -you can be the one to set this up, email 'tex-k-request'). Traffic on -the list is fairly light, and is mainly bug reports and enhancement -requests to the software. The best way to decide if you want to join or -not is read some of the archives from -<ftp://ftp.tug.org/mail/archives/tex-k/>. - - Be aware that large data files are sometimes included in bug reports. -If this is a problem for you, do not join the list. - - If you are looking for general TeX help, such as how to use LaTeX, -please use the mailing list <texhax@tug.org> mailing list -(<http://lists.tug.org/texhax>) which is gatewayed to the -'comp.text.tex' Usenet newsgroup (or post to the newsgroup; the gateway -is bidirectional). - - -File: kpathsea.info, Node: Debugging, Next: Logging, Prev: Mailing lists, Up: Reporting bugs - -2.6.3 Debugging ---------------- - -Kpathsea provides a number of runtime debugging options, detailed below -by their names and corresponding numeric values. When the files you -expect aren't being found, the thing to do is enable these options and -examine the output. - - You can set these with some runtime argument (e.g., '-d') to the -program; in that case, you should use the numeric values described in -the program's documentation (which, for Dvipsk and Xdvik, are different -than those below). It's best to give the '-d' (or whatever) option -first, for maximal output. Dvipsk and Xdvik have additional -program-specific debugging options as well. - - You can also set the environment variable 'KPATHSEA_DEBUG'; in this -case, you should use the numbers below. If you run the program under a -debugger and set the instance variable 'kpse->debug', also use the -numbers below. - - In any case, by far the simplest value to use is '-1', which will -turn on all debugging output. This is usually better than guessing -which particular values will yield the output you need. - - Debugging output always goes to standard error, so you can redirect -it easily. For example, in Bourne-compatible shells: - dvips -d -1 ... 2>/tmp/debug - - It is sometimes helpful to run the standalone Kpsewhich utility -(*note Invoking kpsewhich::), instead of the original program. - - In any case, you can _not_ use the _names_ below; you must always use -somebody's numbers. (Sorry.) To set more than one option, just sum the -corresponding numbers. - -'KPSE_DEBUG_STAT (1)' - Report 'stat'(2) calls. This is useful for verifying that your - directory structure is not forcing Kpathsea to do many additional - file tests (*note Slow path searching::, and *note Subdirectory - expansion::). If you are using an up-to-date 'ls-R' database - (*note Filename database::), this should produce no output unless a - nonexistent file that must exist is searched for. - -'KPSE_DEBUG_HASH (2)' - Report lookups in all hash tables: 'ls-R' and 'aliases' (*note - Filename database::); font aliases (*note Fontmap::); and config - file values (*note Config files::). Useful when expected values - are not being found, e.g.., file searches are looking at the disk - instead of using 'ls-R'. - -'KPSE_DEBUG_FOPEN (4)' - Report file openings and closings. Especially useful when your - system's file table is full, for seeing which files have been - opened but never closed. In case you want to set breakpoints in a - debugger: this works by redefining 'fopen' ('fclose') to be - 'kpse_fopen_trace' ('kpse_fclose_trace'). - -'KPSE_DEBUG_PATHS (8)' - Report general path information for each file type Kpathsea is - asked to search. This is useful when you are trying to track down - how a particular path got defined--from 'texmf.cnf', 'config.ps', - an environment variable, the compile-time default, etc. This is - the contents of the 'kpse_format_info_type' structure defined in - 'tex-file.h'. - -'KPSE_DEBUG_EXPAND (16)' - Report the directory list corresponding to each path element - Kpathsea searches. This is only relevant when Kpathsea searches - the disk, since 'ls-R' searches don't look through directory lists - in this way. - -'KPSE_DEBUG_SEARCH (32)' - Report on each file search: the name of the file searched for, the - path searched in, whether or not the file must exist (when drivers - search for 'cmr10.vf', it need not exist), and whether or not we - are collecting all occurrences of the file in the path (as with, - e.g., 'texmf.cnf' and 'texfonts.map'), or just the first (as with - most lookups). This can help you correlate what Kpathsea is doing - with what is in your input file. - -'KPSE_DEBUG_VARS (64)' - Report the value of each variable Kpathsea looks up. This is - useful for verifying that variables do indeed obtain their correct - values. - -'GSFTOPK_DEBUG (128)' - Activates debugging printout specific to 'gsftopk' program. - -'MAKETEX_DEBUG (512)' - If you use the optional 'mktex' programs instead of the traditional - shell scripts, this will report the name of the site file - ('mktex.cnf' by default) which is read, directories created by - 'mktexdir', the full path of the 'ls-R' database built by - 'mktexlsr', font map searches, 'MT_FEATURES' in effect, parameters - from 'mktexnam', filenames added by 'mktexupd', and some subsidiary - commands run by the programs. - -'MAKETEX_FINE_DEBUG (1024)' - When the optional 'mktex' programs are used, this will print - additional debugging info from functions internal to these - programs. - - Debugging output from Kpathsea is always written to standard error, -and begins with the string 'kdebug:'. (Except for hash table buckets, -which just start with the number, but you can only get that output -running under a debugger. See comments at the 'hash_summary_only' -variable in 'kpathsea/db.c'.) - - -File: kpathsea.info, Node: Logging, Next: Common problems, Prev: Debugging, Up: Reporting bugs - -2.6.4 Logging -------------- - -Kpathsea can record the time and filename found for each successful -search. This may be useful in finding good candidates for deletion when -your filesystem is full, or in discovering usage patterns at your site. - - To do this, define the environment or config file variable -'TEXMFLOG'. The value is the name of the file to append the information -to. The file is created if it doesn't exist, and appended to if it -does. - - Each successful search turns into one line in the log file: two words -separated by a space. The first word is the time of the search, as the -integer number of seconds since "the epoch", i.e., UTC midnight 1 -January 1970 (more precisely, the result of the 'time' system call). -The second word is the filename. - - For example, after 'setenv TEXMFLOG /tmp/log', running Dvips on -'story.dvi' appends the following lines: - - 774455887 /usr/local/share/texmf/dvips/config.ps - 774455887 /usr/local/share/texmf/dvips/psfonts.map - 774455888 /usr/local/share/texmf/dvips/texc.pro - 774455888 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmbx10.600pk - 774455889 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmsl10.600pk - 774455889 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmr10.600pk - 774455889 /usr/local/share/texmf/dvips/texc.pro - -Only filenames that are absolute are recorded, to preserve some -semblance of privacy. - - In addition to this Kpathsea-specific logging, 'pdftex' provides an -option '-recorder' to write the names of all files accessed during a run -to the file 'BASEFILE.fls'. - - Finally, most systems provide a general tool to output each system -call, thus including opening and closing files. It might be named -'strace', 'truss', 'struss', or something else. - - -File: kpathsea.info, Node: Common problems, Prev: Logging, Up: Reporting bugs - -2.6.5 Common problems ---------------------- - -Here are some common problems with configuration, compilation, linking, -execution, ... - -* Menu: - -* Unable to find files:: If your program can't find fonts (or whatever). -* Slow path searching:: If it takes forever to find anything. -* Unable to generate fonts:: If mktexpk fails. -* TeX or Metafont failing:: Likely compiler bugs. - -* Empty Makefiles:: When configure produces empty makefiles. -* XtStrings:: When _XtStrings is undefined. -* dlopen:: When dlopen is undefined. -* ShellWidgetClass:: For dynamic linking troubles under OpenWindows. -* Pointer combination warnings:: For old compilers that don't grok char *. - - -File: kpathsea.info, Node: Unable to find files, Next: Slow path searching, Up: Common problems - -2.6.5.1 Unable to find files -............................ - -If a program complains it cannot find fonts (or other input files), any -of several things might be wrong. In any case, you may find the -debugging options helpful. *Note Debugging::. - - * Perhaps you simply haven't installed all the necessary files; the - basic fonts and input files are distributed separately from the - programs. *Note unixtex.ftp::. - - * You have (perhaps unknowingly) told Kpathsea to use search paths - that don't reflect where the files actually are. One common cause - is having environment variables set from a previous installation, - thus overriding what you carefully set in 'texmf.cnf' (*note - Supported file formats::). System '/etc/profile' or other files - such may be the culprit. - - * Your files reside in a directory that is only pointed to via a - symbolic link, in a leaf directory and is not listed in 'ls-R'. - - Unfortunately, Kpathsea's subdirectory searching has an - irremediable deficiency: If a directory D being searched for - subdirectories contains plain files and symbolic links to other - directories, but no true subdirectories, D will be considered a - leaf directory, i.e., the symbolic links will not be followed. - *Note Subdirectory expansion::. - - You can work around this problem by creating an empty dummy - subdirectory in D. Then D will no longer be a leaf, and the - symlinks will be followed. - - The directory immediately followed by the '//' in the path - specification, however, is always searched for subdirectories, even - if it is a leaf. Presumably you would not have asked for the - directory to be searched for subdirectories if you didn't want it - to be. - - * If the fonts (or whatever) don't already exist, 'mktexpk' (or - 'mktexmf' or 'mktextfm') will try to create them. If these rather - complicated shell scripts fail, you'll eventually get an error - message saying something like 'Can't find font FONTNAME'. The best - solution is to fix (or at least report) the bug in 'mktexpk'; the - workaround is to generate the necessary fonts by hand with - Metafont, or to grab them from a CTAN site (*note unixtex.ftp::). - - * There is a bug in the library. *Note Reporting bugs::. - - -File: kpathsea.info, Node: Slow path searching, Next: Unable to generate fonts, Prev: Unable to find files, Up: Common problems - -2.6.5.2 Slow path searching -........................... - -If your program takes an excessively long time to find fonts or other -input files, but does eventually succeed, here are some possible -culprits: - - * Most likely, you just have a lot of directories to search, and that - takes a noticeable time. The solution is to create and maintain a - separate 'ls-R' file that lists all the files in your main TeX - hierarchy. *Note Filename database::. Kpathsea always uses 'ls-R' - if it's present; there's no need to recompile or reconfigure any of - the programs. - - * Your recursively-searched directories (e.g., - '/usr/local/share/texmf/fonts//'), contain a mixture of files and - directories. This prevents Kpathsea from using a useful - optimization (*note Subdirectory expansion::). - - It is best to have only directories (and perhaps a 'README') in the - upper levels of the directory structure, and it's very important to - have _only_ files, and no subdirectories, in the leaf directories - where the dozens of TFM, PK, or whatever files reside. - - In any case, you may find the debugging options helpful in -determining precisely when the disk or network is being pounded. *Note -Debugging::. - - -File: kpathsea.info, Node: Unable to generate fonts, Next: TeX or Metafont failing, Prev: Slow path searching, Up: Common problems +File: kpathsea.info, Node: Path searching, Next: TeX support, Prev: TeX directory structure, Up: Top -2.6.5.3 Unable to generate fonts -................................ - -Metafont outputs fonts in bitmap format, tuned for a particular device -at a particular resolution, in order to allow for the highest-possible -quality of output. Some DVI-to-whatever programs, such as Dvips, try to -generate these on the fly when they are needed, but this generation may -fail in several cases. - - If 'mktexpk' runs, but fails with this error: - mktexpk: Can't guess mode for NNN dpi devices. - mktexpk: Use a config file to specify the mode, or update me. - you need to ensure the resolution and mode match; just specifying the -resolution, as in '-D 360', is not enough. - - You can specify the mode name with the '-mode' option on the Dvips -command line, or in a Dvips configuration file (*note (dvips)Config -files::), such as 'config.ps' in your document directory, '~/.dvipsrc' -in your home directory, or in a system directory (again named -'config.ps'). (Other drivers use other files, naturally.) - - For example, if you need 360dpi fonts, you could include this in a -configuration file: - D 360 - M lqmed - - If Metafont runs, but generates fonts at the wrong resolution or for -the wrong device, most likely 'mktexpk''s built-in guess for the mode is -wrong, and you should override it as above. - - See <ftp://ftp.tug.org/tex/modes.mf> for a list of resolutions and -mode names for most devices (additional submissions are welcome). - - If Metafont runs but generates fonts at a resolution of 2602dpi (and -prints out the name of each character as well as just a character -number, and maybe tries to display the characters), then your Metafont -base file probably hasn't been made properly. (It's using the default -'proof' mode, instead of an actual device mode.) To make a proper -'plain.base', assuming the local mode definitions are contained in a -file 'modes.mf', run the following command (assuming Unix): - - inimf "plain; input modes; dump" - -Then copy the 'plain.base' file from the current directory to where the -base files are stored on your system ('/usr/local/share/texmf/web2c' by -default), and make a link (either hard or soft) from 'plain.base' to -'mf.base' in that directory. *Note (web2c)inimf invocation::. - - If 'mf' is a command not found at all by 'mktexpk', then you need to -install Metafont (*note unixtex.ftp::). - - -File: kpathsea.info, Node: TeX or Metafont failing, Next: Empty Makefiles, Prev: Unable to generate fonts, Up: Common problems - -2.6.5.4 TeX or Metafont failing -............................... - -If TeX or Metafont get a segmentation fault or otherwise fail while -running a normal input file, the problem is usually a compiler bug -(unlikely as that may sound). Even if the trip and trap tests are -passed, problems may lurk. Optimization occasionally causes trouble in -programs other than TeX and Metafont themselves, too. - - Insufficient swap space may also cause core dumps or other erratic -behavior. - - For a workaround, if you enabled any optimization flags, it's best to -omit optimization entirely. In any case, the way to find the facts is -to run the program under the debugger and see where it's failing. - - Also, if you have trouble with a system C compiler, I advise trying -the GNU C compiler. And vice versa, unfortunately; but in that case I -also recommend reporting a bug to the GCC mailing list; see *note -(gcc)Bugs::. - - To report compiler bugs effectively requires perseverance and -perspicacity: you must find the miscompiled line, and that usually -involves delving backwards in time from the point of error, checking -through TeX's (or whatever program's) data structures. Things are not -helped by all-too-common bugs in the debugger itself. Good luck. - - One known cause of trouble is the way arrays are handled. Some of -the Pascal arrays have a lower index other than 0, and the C code will -take the pointer to the allocated memory, subtract the lower index, and -use the resulting pointer for the array. While this trick often works, -ANSI C doesn't guarantee that it will. It it known to fail on HP-UX 10 -machines when the native compiler is used, unless the '+u' compiler -switch was specified. Using GCC will work on this platform as well. - - -File: kpathsea.info, Node: Empty Makefiles, Next: XtStrings, Prev: TeX or Metafont failing, Up: Common problems - -2.6.5.5 Empty Makefiles -....................... - -On some systems (NetBSD, FreeBSD, AIX 4.1, and Mach10), 'configure' may -fail to properly create the Makefiles. Instead, you get an error which -looks something like this: - - prompt$ ./configure - ... - creating Makefile - sed: 1: "\\@^ac_include make/pat ...": \ can not - be used as a string delimiter - - So far as I know, the bug here is in '/bin/sh' on these systems. I -don't have access to a machine running any of them, so if someone can -find a workaround that avoids the quoting bug, I'd be most grateful. -(Search for 'ac_include' in the 'configure' script to get to the -problematic code.) - - It should work to run 'bash configure', instead of using '/bin/sh'. -You can get Bash from <ftp://prep.ai.mit.edu/pub/gnu> and mirrors. - - Another possible cause (reported for NeXT) is a bug in the 'sed' -command. In that case the error may look like this: - - Unrecognized command: \@^ac_include make/paths.make@r make/paths.make - - In this case, installing GNU 'sed' should solve the problem. You can -get GNU 'sed' from the same places as Bash. - - -File: kpathsea.info, Node: XtStrings, Next: dlopen, Prev: Empty Makefiles, Up: Common problems - -2.6.5.6 'XtStrings' -................... - -You may find that linking X programs results in an error from the linker -that 'XtStrings' is undefined, something like this: - - gcc -o virmf ... - .../x11.c:130: undefined reference to `XtStrings' - - This generally happens because of a mismatch between the X include -files with which you compiled and the X libraries with which you linked; -often, the include files are from MIT and the libraries from Sun. - - The solution is to use the same X distribution for compilation and -linking. Probably 'configure' was unable to guess the proper -directories from your installation. You can use the 'configure' options -'--x-includes=PATH' and '--x-libraries=PATH' to explicitly specify them. - - -File: kpathsea.info, Node: dlopen, Next: ShellWidgetClass, Prev: XtStrings, Up: Common problems - -2.6.5.7 'dlopen' -................ - -(This section adapted from the file 'dlsym.c' in the X distribution.) - - The 'Xlib' library uses the standard C function 'wcstombs'. Under -SunOS 4.1, 'wcstombs' uses the 'dlsym' interface defined in 'libdl.so'. -Unfortunately, the SunOS 4.1 distribution does not include a static -'libdl.a' library. - - As a result, if you try to link an X program statically under SunOS, -you may get undefined references to 'dlopen', 'dlsym', and 'dlclose'. -One workaround is to include these definitions when you link: - - void *dlopen() { return 0; } - void *dlsym() { return 0; } - int dlclose() { return -1; } - -These are contained in the 'dlsym.c' file in the MIT X distribution. - - -File: kpathsea.info, Node: ShellWidgetClass, Next: Pointer combination warnings, Prev: dlopen, Up: Common problems - -2.6.5.8 'ShellWidgetClass' -.......................... - -(This section adapted from the comp.sys.sun.admin FAQ.) - - If you are linking with Sun's OpenWindows libraries in SunOS 4.1.x, -you may get undefined symbols '_get_wmShellWidgetClass' and -'_get_applicationShellWidgetClass' when linking. This problem does not -arise using the standard MIT X libraries under SunOS. - - The cause is bugs in the 'Xmu' shared library as shipped from Sun. -There are several fixes: - - * Install the free MIT distribution from 'ftp.x.org' and mirrors. - - * Get the OpenWindows patches listed below. - - * Statically link the 'Xmu' library into the executable. - - * Avoid using 'Xmu' at all. If you are compiling Metafont, see *note - (web2c)Online Metafont graphics::. If you are compiling Xdvi, see - the '-DNOTOOL' option in 'xdvik/INSTALL'. - - * Ignore the errors. The binary runs fine regardless. - - Here is the information for getting the two patches: - - Patch ID: 100512-02 - Bug ID's: 1086793, 1086912, 1074766 - Description: 4.1.x OpenWindows 3.0 'libXt' jumbo patch - - Patch ID: 100573-03 - Bug ID: 1087332 - Description: 4.1.x OpenWindows 3.0 undefined symbols when using shared 'libXmu'. - - The way to statically link with 'libXmu' depends on whether you are -using a Sun compiler (e.g., 'cc') or 'gcc'. If the latter, alter the -'x_libs' Make variable to include - - -static -lXmu -dynamic - - If you are using the Sun compiler, use '-Bstatic' and '-Bdynamic'. - - -File: kpathsea.info, Node: Pointer combination warnings, Prev: ShellWidgetClass, Up: Common problems - -2.6.5.9 Pointer combination warnings -.................................... - -When compiling with old C compilers, you may get some warnings about -"illegal pointer combinations". These are spurious; just ignore them. -I decline to clutter up the source with casts to get rid of them. - - -File: kpathsea.info, Node: Path searching, Next: TeX support, Prev: Installation, Up: Top - -3 Path searching +5 Path searching **************** This chapter describes the generic path searching mechanism Kpathsea @@ -1873,7 +385,7 @@ provides. For information about searching for particular file types File: kpathsea.info, Node: Searching overview, Next: Path sources, Up: Path searching -3.1 Searching overview +5.1 Searching overview ====================== A "search path" is a colon-separated list of "path elements", which are @@ -1941,7 +453,7 @@ when searching for a file of a particular type (*note File lookup::, and File: kpathsea.info, Node: Path sources, Next: Path expansion, Prev: Searching overview, Up: Path searching -3.2 Path sources +5.2 Path sources ================ A search path can come from many sources. In the order in which @@ -1973,7 +485,7 @@ expansion::). File: kpathsea.info, Node: Config files, Up: Path sources -3.2.1 Config files +5.2.1 Config files ------------------ As mentioned above, Kpathsea reads "runtime configuration files" named @@ -2061,7 +573,7 @@ anyway, since the 'sh' process couldn't affect its parent's environment. File: kpathsea.info, Node: Path expansion, Next: Filename database, Prev: Path sources, Up: Path searching -3.3 Path expansion +5.3 Path expansion ================== Kpathsea recognizes certain special characters and constructions in @@ -2082,7 +594,7 @@ file 'baz'. These expansions are explained in the sections below. File: kpathsea.info, Node: Default expansion, Next: Variable expansion, Up: Path expansion -3.3.1 Default expansion +5.3.1 Default expansion ----------------------- If the highest-priority search path (*note Path sources::) contains an @@ -2133,7 +645,7 @@ expansion is implemented in the source file 'kpathsea/kdefault.c'. File: kpathsea.info, Node: Variable expansion, Next: Tilde expansion, Prev: Default expansion, Up: Path expansion -3.3.2 Variable expansion +5.3.2 Variable expansion ------------------------ '$foo' or '${foo}' in a path element is replaced by (1) the value of an @@ -2168,7 +680,7 @@ sources::). File: kpathsea.info, Node: Tilde expansion, Next: Brace expansion, Prev: Variable expansion, Up: Path expansion -3.3.3 Tilde expansion +5.3.3 Tilde expansion --------------------- A leading '~' in a path element is replaced by the value of the @@ -2195,7 +707,7 @@ the path element '~root/mymacros' expands to just '/mymacros', not File: kpathsea.info, Node: Brace expansion, Next: KPSE_DOT expansion, Prev: Tilde expansion, Up: Path expansion -3.3.4 Brace expansion +5.3.4 Brace expansion --------------------- 'x{A,B}y' expands to 'xAy:xBy'. For example: @@ -2224,7 +736,7 @@ example could have been written 'x{A:B}{1:2}y'. File: kpathsea.info, Node: KPSE_DOT expansion, Next: Subdirectory expansion, Prev: Brace expansion, Up: Path expansion -3.3.5 'KPSE_DOT' expansion +5.3.5 'KPSE_DOT' expansion -------------------------- When 'KPSE_DOT' is defined in the environment, it names a directory that @@ -2236,7 +748,7 @@ directory. You should not ever define it yourself. File: kpathsea.info, Node: Subdirectory expansion, Prev: KPSE_DOT expansion, Up: Path expansion -3.3.6 Subdirectory expansion +5.3.6 Subdirectory expansion ---------------------------- Two or more consecutive slashes in a path element following a directory @@ -2287,7 +799,7 @@ And if you can find a way to _solve_ the problem, please let me know. File: kpathsea.info, Node: Filename database, Next: Invoking kpsewhich, Prev: Path expansion, Up: Path searching -3.4 Filename database ('ls-R') +5.4 Filename database ('ls-R') ============================== Kpathsea goes to some lengths to minimize disk accesses for searches @@ -2315,7 +827,7 @@ filename conventions in source files. File: kpathsea.info, Node: ls-R, Next: Filename aliases, Up: Filename database -3.4.1 'ls-R' +5.4.1 'ls-R' ------------ As mentioned above, you must name the main filename database 'ls-R'. @@ -2375,7 +887,7 @@ paths. File: kpathsea.info, Node: Filename aliases, Next: Database format, Prev: ls-R, Up: Filename database -3.4.2 Filename aliases +5.4.2 Filename aliases ---------------------- In some circumstances, you may wish to find a file under several names. @@ -2403,7 +915,7 @@ aliases. File: kpathsea.info, Node: Database format, Prev: Filename aliases, Up: Filename database -3.4.3 Database format +5.4.3 Database format --------------------- The "database" read by Kpathsea is a line-oriented file of plain text. @@ -2446,7 +958,7 @@ the '-R' option, as follows. File: kpathsea.info, Node: Invoking kpsewhich, Prev: Filename database, Up: Path searching -3.5 'kpsewhich': Standalone path searching +5.5 'kpsewhich': Standalone path searching ========================================== The Kpsewhich program exercises the path searching functionality @@ -2473,7 +985,7 @@ accepted. File: kpathsea.info, Node: Path searching options, Next: Specially-recognized files, Up: Invoking kpsewhich -3.5.1 Path searching options +5.5.1 Path searching options ---------------------------- Kpsewhich looks up each non-option argument on the command line as a @@ -2577,7 +1089,7 @@ filename, and returns the first file found. pdftex config (pdftexconfig): lig files: .lig texmfscripts: - lua: .luc .luctex .texluc .lua .luatex .texlua + lua: .lua .luatex .luc .luctex .texlua .texluc .tlu font feature files: .fea cid maps: .cid .cidmap mlbib: .mlbib .bib @@ -2693,7 +1205,7 @@ filename, and returns the first file found. File: kpathsea.info, Node: Specially-recognized files, Next: Auxiliary tasks, Prev: Path searching options, Up: Invoking kpsewhich -3.5.2 Specially-recognized files for 'kpsewhich' +5.5.2 Specially-recognized files for 'kpsewhich' ------------------------------------------------ 'kpsewhich' recognizes a few special filenames on the command line and @@ -2743,7 +1255,7 @@ about the above configuration files (among others). File: kpathsea.info, Node: Auxiliary tasks, Next: Standard options, Prev: Specially-recognized files, Up: Invoking kpsewhich -3.5.3 Auxiliary tasks +5.5.3 Auxiliary tasks --------------------- Kpsewhich provides some additional features not strictly related to path @@ -2789,7 +1301,7 @@ lookup: File: kpathsea.info, Node: Standard options, Prev: Auxiliary tasks, Up: Invoking kpsewhich -3.5.4 Standard options +5.5.4 Standard options ---------------------- Kpsewhich accepts the standard GNU options: @@ -2803,7 +1315,7 @@ Kpsewhich accepts the standard GNU options: File: kpathsea.info, Node: TeX support, Next: Programming, Prev: Path searching, Up: Top -4 TeX support +6 TeX support ************* Although the basic features in Kpathsea can be used for any type of path @@ -2829,11 +1341,12 @@ is named 'cmr10.600pk', it will be found as a PK file. * File lookup:: Searching for most kinds of files. * Glyph lookup:: Searching for bitmap fonts. * Suppressing warnings:: Avoiding warnings via TEX_HUSH. +* mktex scripts:: Generating files at runtime. File: kpathsea.info, Node: Supported file formats, Next: File lookup, Up: TeX support -4.1 Supported file formats +6.1 Supported file formats ========================== Kpathsea has support for a number of file types. Each file type has a @@ -3076,7 +1589,7 @@ expansion::. File: kpathsea.info, Node: File lookup, Next: Glyph lookup, Prev: Supported file formats, Up: TeX support -4.2 File lookup +6.2 File lookup =============== This section describes how Kpathsea searches for most files (bitmap font @@ -3117,7 +1630,7 @@ the debugging options (*note Debugging::). File: kpathsea.info, Node: Glyph lookup, Next: Suppressing warnings, Prev: File lookup, Up: TeX support -4.3 Glyph lookup +6.3 Glyph lookup ================ This section describes how Kpathsea searches for a bitmap font in GF or @@ -3152,7 +1665,7 @@ successful lookup. File: kpathsea.info, Node: Basic glyph lookup, Next: Fontmap, Up: Glyph lookup -4.3.1 Basic glyph lookup +6.3.1 Basic glyph lookup ------------------------ When Kpathsea looks for a bitmap font NAME at resolution DPI in a format @@ -3173,7 +1686,7 @@ than the 0.2% minimum allowed by the DVI standard File: kpathsea.info, Node: Fontmap, Next: Fallback font, Prev: Basic glyph lookup, Up: Glyph lookup -4.3.2 Fontmap +6.3.2 Fontmap ------------- If a bitmap font or metric file is not found with the original name (see @@ -3214,9 +1727,8 @@ of extension. For example, an alias 'foo.tfm' matches only when 'foo.600pk', etc. As an example, here is an excerpt from the 'texfonts.map' in the -Web2c distribution. It makes the circle fonts equivalent and includes -automatically generated maps for most PostScript fonts available from -various font suppliers. +Web2c distribution. It makes the old and new names of the LaTeX circle +fonts equivalent. circle10 lcircle10 circle10 lcirc10 @@ -3225,19 +1737,15 @@ various font suppliers. lcirc10 circle10 lcirc10 lcircle10 ... - include adobe.map - include apple.map - include bitstrea.map - ... Fontmaps are implemented in the file 'kpathsea/fontmap.c'. The Fontname distribution has much more information on font naming (*note -(fontname)Introduction::). +(fontname)::). File: kpathsea.info, Node: Fallback font, Prev: Fontmap, Up: Glyph lookup -4.3.3 Fallback font +6.3.3 Fallback font ------------------- If a bitmap font cannot be found or created at the requested size, @@ -3255,9 +1763,9 @@ Programs must enable this feature by calling 'kpathsea_init_prog' (*note Calling sequence::); the default is no fallback font. -File: kpathsea.info, Node: Suppressing warnings, Prev: Glyph lookup, Up: TeX support +File: kpathsea.info, Node: Suppressing warnings, Next: mktex scripts, Prev: Glyph lookup, Up: TeX support -4.4 Suppressing warnings +6.4 Suppressing warnings ======================== Kpathsea provides a way to suppress selected usually-harmless warnings; @@ -3292,9 +1800,245 @@ possibilities: driver implements its own checks where appropriate. -File: kpathsea.info, Node: Programming, Next: Index, Prev: TeX support, Up: Top +File: kpathsea.info, Node: mktex scripts, Prev: Suppressing warnings, Up: TeX support + +6.5 'mktex' scripts +=================== + +If Kpathsea cannot otherwise find a file, for some file types it is +configured by default to invoke an external program to create it +dynamically (*note mktex configuration::). These are collectively known +as "'mktex' scripts", since most of them are named 'mktex...'. + + For example, this is useful for fonts (bitmaps, TFM's, and +arbitrarily-sizable Metafont sources such as the Sauter and EC fonts), +since any given document can use fonts never before referenced. +Building all fonts in advance is therefore impractical, if not +impossible. + + It is also useful for the TeX '.fmt' (and Metafont '.base' and +Metapost '.mem' files, *note (Web2c)Memory dumps::), where +pre-generating every format consumes a lot of both time and space. + + The script is passed the name of the file to create and possibly +other arguments, as explained below. It must echo the full pathname of +the file it created (and nothing else) to standard output; it can write +diagnostics to standard error. + +* Menu: + +* config: mktex configuration. +* names: mktex script names. +* args: mktex script arguments. + + +File: kpathsea.info, Node: mktex configuration, Next: mktex script names, Up: mktex scripts + +6.5.1 'mktex' configuration +--------------------------- + +The list of file types and program names that can run an external +program to create missing files is listed in the next section. In the +absence of 'configure' options specifying otherwise, everything but +'mktextex' will be enabled by default. The 'configure' options to +change the defaults are: + + --without-mktexfmt-default + --without-mktexmf-default + --without-mktexocp-default + --without-mktexofm-default + --without-mktexpk-default + --without-mktextfm-default + --with-mktextex-default + + The 'configure' setting is overridden if the environment variable or +configuration file value named for the script is set; e.g., 'MKTEXPK' +(*note mktex script arguments::). + + 'mktexfmt' reads a file 'fmtutil.cnf', typically located in +'texmf/web2c/' to glean its configuration information. The rest of the +files and features in this section are primarily intended for the font +generation scripts. + + As distributed, all the scripts source a file 'texmf/web2c/mktex.cnf' +if it exists, so you can override various defaults. See 'mktex.opt', +for instance, which defines the default mode, resolution, some special +directory names, etc. If you prefer not to change the distributed +scripts, you can simply create 'mktex.cnf' with the appropriate +definitions (you do not need to create it if you have nothing to put in +it). 'mktex.cnf' has no special syntax; it's an arbitrary Bourne shell +script. The distribution contains a sample 'mktex.cnf' for you to copy +and modify as you please (it is not installed anywhere). + + In addition, you can configure a number of features with the +'MT_FEATURES' variable, which you can define: + + * in 'mktex.opt', as just mentioned; + + * by editing the file 'mktex.opt', either before 'make install' (in + the source hierarchy) or after (in the installed hierarchy); + + * or in the environment. + + If none of the options below are enabled, 'mktexpk', 'mktextfm', and +'mktexmf' follow the following procedure to decide where fonts should be +installed. Find the tree where the font's sources are, and test the +permissions of the 'fonts' directory of that tree to determine whether +it is writable. If it is, put the files in the tree in appropriate +locations. If it isn't writable, see whether the tree is a system tree +(named in 'SYSTEXMF'). If so, the 'VARTEXFONTS' tree is used. In all +other cases the working directory is used. + + The 'appendonlydir' option is enabled by default. + +'appendonlydir' + Tell 'mktexdir' to create directories append-only, i.e., set their + sticky bit (*note (coreutils)Mode Structure::). This feature is + silently ignored on non-Unix platforms (e.g. Windows/NT and + MS-DOS) which don't support similar functionality. This feature is + enabled by default. + +'dosnames' + Use 8.3 names; e.g., 'dpi600/cmr10.pk' instead of 'cmr10.600pk'. + Note that this feature only affects filenames that would otherwise + clash with other TeX-related filenames; 'mktex' scripts do nothing + about filenames which exceed the 8+3 MS-DOS limits but remain + unique when truncated (by the OS) to these limits, and nether do + the scripts care about possible clashes with files which aren't + related with TeX. For example, 'cmr10.600pk' would clash with + 'cmr10.600gf' and is therefore changed when 'dosnames' is in + effect, but 'mf.pool' and 'mp.base' don't clash with any + TeX-related files and are therefore unchanged. + + This feature is turned on by default on MS-DOS. If you do not wish + 'dosnames' to be set on an MS-DOS platform, you need to set the + 'MT_FEATURES' environment variable to a value that doesn't include + 'dosnames'. You can also change the default setting by editing + 'mktex.opt', but only if you use the 'mktex' shell scripts; the + emulation programs don't consult 'mktex.opt'. + +'fontmaps' + Instead of deriving the location of a font in the destination tree + from the location of the sources, the aliases and directory names + from the Fontname distribution are used. (*note Introduction: + (fontname)Top.). + +'nomfdrivers' + Let mktexpk and mktextfm create metafont driver files in a + temporary directory. These will be used for just one metafont run + and not installed permanently. + +'nomode' + Omit the directory level for the mode name; this is fine as long as + you generate fonts for only one mode. + +'stripsupplier' + Omit the font supplier name directory level. + +'striptypeface' + Omit the font typeface name directory level. + +'strip' + Omit the font supplier and typeface name directory levels. This + feature is deprecated in favour of 'stripsupplier' and + 'striptypeface'. + +'varfonts' + When this option is enabled, fonts that would otherwise be written + in system texmf tree go to the 'VARTEXFONTS' tree instead. The + default value in 'kpathsea/Makefile.in' is '/var/tmp/texfonts'. + The 'Linux File System Standard' recommends '/var/tex/fonts'. + + The 'varfonts' setting in 'MT_FEATURES' is overridden by the + 'USE_VARTEXFONTS' environment variable: if set to '1', the feature + is enabled, and if set to '0', the feature is disabled. + +'texmfvar' + Force generated files that would go into a system tree (as defined + by 'SYSTEXMF') into 'TEXMFVAR'. Starting with teTeX-3.0, the + variable 'TEXMFVAR' is always set. The 'varfonts' feature takes + precedence if also set. + + The 'texmfvar' setting in 'MT_FEATURES' is overridden by the + 'USE_TEXMFVAR' environment variable: if set to '1', the feature is + enabled, and if set to '0', the feature is disabled. + + +File: kpathsea.info, Node: mktex script names, Next: mktex script arguments, Prev: mktex configuration, Up: mktex scripts + +6.5.2 'mktex' script names +-------------------------- + +The following table shows the default name of the script for each of the +file types which support runtime generation. + +'mktexfmt' + ('.fmt', '.base', '.mem') TeX/Metafont/MetaPost formats. This + script is also named 'fmtutil', and reads 'fmtutil.cnf' for + configuration information. + +'mktexmf' + ('.mf') Metafont input files. + +'mkocp' + ('.ocp') Omega compiled process files. + +'mkofm' + ('.ofm') Omega font metric files. + +'mktexpk' + ('pk') Glyph fonts. + +'mktextex' + ('.tex') TeX input files (disabled by default). + +'mktextfm' + ('.tfm') TFM files. + +These names can be overridden by an environment variable specific to the +program--for example, 'DVIPSMAKEPK' for Dvipsk. + + If a 'mktex...' script fails, the invocation is appended to a file +'missfont.log' (by default) in the current directory. You can then +execute the log file to create the missing files after fixing the +problem. + + If the current directory is not writable and the environment variable +or configuration file value 'TEXMFOUTPUT' is set, its value is used. +Otherwise, nothing is written. The name 'missfont.log' is overridden by +the 'MISSFONT_LOG' environment variable or configuration file value. + + +File: kpathsea.info, Node: mktex script arguments, Prev: mktex script names, Up: mktex scripts + +6.5.3 'mktex' script arguments +------------------------------ + +The first argument to a 'mktex' script is always the name of the file to +be created. + + In the default 'mktexpk' implementation, additional arguments may +also be passed: + +'--dpi NUM' + Sets the resolution of the generated font to NUM. +'--mfmode NAME' + Sets the Metafont mode to NAME. +'--bdpi NUM' + Sets the "base dpi" for the font. This must match the mode being + used. +'--mag STRING' + A "magstep" string suitable for the Metafont 'mag' variable. This + must match the combination of BDPI and DPI being used. +'--destdir STRING' + A directory name. If the directory is absolute, it is used as-is. + Otherwise, it is appended to the root destination directory set in + the script. + + +File: kpathsea.info, Node: Programming, Next: Reporting bugs, Prev: TeX support, Up: Top -5 Programming +7 Programming ************* This chapter is for programmers who wish to use Kpathsea. *Note @@ -3310,7 +2054,7 @@ Introduction::, for the conditions under which you may do so. File: kpathsea.info, Node: Programming overview, Next: Calling sequence, Up: Programming -5.1 Programming overview +7.1 Programming overview ======================== Aside from this manual, your best source of information is the source to @@ -3363,7 +2107,7 @@ the programs above, of course. File: kpathsea.info, Node: Calling sequence, Next: Program-specific files, Prev: Programming overview, Up: Programming -5.2 Calling sequence +7.2 Calling sequence ==================== The typical way to use Kpathsea in your program goes something like @@ -3481,12 +2225,12 @@ library.) different systems. You will almost certainly want to use Autoconf and probably Automake for configuring and building your software if you use Kpathsea; I strongly recommend using Autoconf and Automake regardless. -They are available from <ftp://ftp.gnu.og/pub/gnu/>. +They are available from <http://www.gnu.org/software>. File: kpathsea.info, Node: Program-specific files, Next: Programming with config files, Prev: Calling sequence, Up: Programming -5.3 Program-specific files +7.3 Program-specific files ========================== Many programs will need to find some configuration files. Kpathsea @@ -3509,7 +2253,7 @@ mode. File: kpathsea.info, Node: Programming with config files, Prev: Program-specific files, Up: Programming -5.4 Programming with config files +7.4 Programming with config files ================================= You can (and probably should) use the same 'texmf.cnf' configuration @@ -3537,7 +2281,454 @@ the string VAR. No initialization calls are needed. -File: kpathsea.info, Node: Index, Prev: Programming, Up: Top +File: kpathsea.info, Node: Reporting bugs, Next: Index, Prev: Programming, Up: Top + +8 Reporting bugs +**************** + +If you have problems or suggestions, please report them to +<tex-k@tug.org> using the bug checklist below. + + Please report bugs in the documentation; not only factual errors or +inconsistent behavior, but unclear or incomplete explanations, typos, +wrong fonts, ... + +* Menu: + +* Bug checklist:: What to include in a good bug report. +* Mailing lists:: Joining the bugs or announcements mailing lists. +* Debugging:: Analyzing runtime problems. +* Logging:: Recording searches. +* Common problems:: When things go wrong. + + +File: kpathsea.info, Node: Bug checklist, Next: Mailing lists, Up: Reporting bugs + +8.1 Bug checklist +================= + +Before reporting a bug, please check below to be sure it isn't already +known (*note Common problems::). + + Bug reports should be sent via electronic mail to <tex-k@tug.org>. + + The general principle is that a good bug report includes all the +information necessary for reproduction. Therefore, to enable +investigation, your report should include the following: + + * The version number(s) of the program(s) involved, and of Kpathsea + itself. You can get the former by giving a sole option '--version' + to the program, and the latter by running 'kpsewhich --version'. + The 'NEWS' and 'ChangeLog' files also contain the version number. + + * The hardware, operating system (including version), compiler, and + 'make' program you are using (the output of 'uname -a' is a start + on the first two, though incomplete). + + * Any options you gave to 'configure'. This is recorded in the + 'config.status' files. + + If you are reporting a bug in 'configure' itself, it's probably + system-dependent, and it will be unlikely the maintainers can do + anything useful if you merely report that thus-and-such is broken. + Therefore, you need to do some additional work: for some bugs, you + can look in the file 'config.log' where the test that failed should + appear, along with the compiler invocation and source program in + question. You can then compile it yourself by hand, and discover + why the test failed. Other 'configure' bugs do not involve the + compiler; in that case, the only recourse is to inspect the + 'configure' shell script itself, or the Autoconf macros that + generated 'configure'. + + * The log of all debugging output, if the bug is in path searching. + You can get this by setting the environment variable + 'KPATHSEA_DEBUG' to '-1' before running the program. Please look + at the log yourself to make sure the behavior is really a bug + before reporting it; perhaps "old" environment variable settings + are causing files not to be found, for example. + + * The contents of any input files necessary to reproduce the bug. + For bugs in DVI-reading programs, for example, this generally means + a DVI file (and any EPS or other files it uses)--TeX source files + are helpful, but the DVI file is required, because that's the + actual program input. + + * If you are sending a patch (do so if you can!), please do so in the + form of a context diff ('diff -c') against the original + distribution source. Any other form of diff is either not as + complete or harder for me to understand. Please also include a + 'ChangeLog' entry. + + * If the bug involved is an actual crash (i.e., core dump), it is + easy and useful to include a stack trace from a debugger (I + recommend the GNU debugger GDB (<http://www.gnu.org/software/gdb>). + If the cause is apparent (a 'NULL' value being dereferenced, for + example), please send the details along. If the program involved + is TeX or Metafont, and the crash is happening at apparently-sound + code, however, the bug may well be in the compiler, rather than in + the program or the library (*note TeX or Metafont failing: TeX or + Metafont failing.). + + * Any additional information that will be helpful in reproducing, + diagnosing, or fixing the bug. + + +File: kpathsea.info, Node: Mailing lists, Next: Debugging, Prev: Bug checklist, Up: Reporting bugs + +8.2 Mailing lists +================= + +Web2c and Kpathsea in general are discussed on the mailing list +<tex-k@tug.org>. You can subscribe and peruse the archives on the web +<http://lists.tug.org/tex-k>. + + You do not need to join to submit a report, nor will it affect +whether you get a response. Be aware that large data files are +sometimes included in bug reports. If this is a problem for you, do not +join the list. + + If you are looking for general TeX help, such as how to install a +full TeX system or how to use LaTeX, please see +<http://tug.org/begin.html>. + + +File: kpathsea.info, Node: Debugging, Next: Logging, Prev: Mailing lists, Up: Reporting bugs + +8.3 Debugging +============= + +Kpathsea provides a number of runtime debugging options, detailed below +by their names and corresponding numeric values. When the files you +expect aren't being found, the thing to do is enable these options and +examine the output. + + You can set these with some runtime argument (e.g., '-d') to the +program; in that case, you should use the numeric values described in +the program's documentation (which, for Dvipsk and Xdvik, are different +than those below). It's best to give the '-d' (or whatever) option +first, for maximal output. Dvipsk and Xdvik have additional +program-specific debugging options as well. + + You can also set the environment variable 'KPATHSEA_DEBUG'; in this +case, you should use the numbers below. If you run the program under a +debugger and set the instance variable 'kpse->debug', also use the +numbers below. + + In any case, by far the simplest value to use is '-1', which will +turn on all debugging output. This is usually better than guessing +which particular values will yield the output you need. + + Debugging output always goes to standard error, so you can redirect +it easily. For example, in Bourne-compatible shells: + dvips -d -1 ... 2>/tmp/debug + + It is sometimes helpful to run the standalone Kpsewhich utility +(*note Invoking kpsewhich::), instead of the original program. + + In any case, you cannot use the names below; you must always use +somebody's numbers. (Sorry.) To set more than one option, just sum the +corresponding numbers. + +'KPSE_DEBUG_STAT (1)' + Report 'stat'(2) calls. This is useful for verifying that your + directory structure is not forcing Kpathsea to do many additional + file tests (*note Slow path searching::, and *note Subdirectory + expansion::). If you are using an up-to-date 'ls-R' database + (*note Filename database::), this should produce no output unless a + nonexistent file that must exist is searched for. + +'KPSE_DEBUG_HASH (2)' + Report lookups in all hash tables: 'ls-R' and 'aliases' (*note + Filename database::); font aliases (*note Fontmap::); and config + file values (*note Config files::). Useful when expected values + are not being found, e.g.., file searches are looking at the disk + instead of using 'ls-R'. + +'KPSE_DEBUG_FOPEN (4)' + Report file openings and closings. Especially useful when your + system's file table is full, for seeing which files have been + opened but never closed. In case you want to set breakpoints in a + debugger: this works by redefining 'fopen' ('fclose') to be + 'kpse_fopen_trace' ('kpse_fclose_trace'). + +'KPSE_DEBUG_PATHS (8)' + Report general path information for each file type Kpathsea is + asked to search. This is useful when you are trying to track down + how a particular path got defined--from 'texmf.cnf', 'config.ps', + an environment variable, the compile-time default, etc. This is + the contents of the 'kpse_format_info_type' structure defined in + 'tex-file.h'. + +'KPSE_DEBUG_EXPAND (16)' + Report the directory list corresponding to each path element + Kpathsea searches. This is only relevant when Kpathsea searches + the disk, since 'ls-R' searches don't look through directory lists + in this way. + +'KPSE_DEBUG_SEARCH (32)' + Report on each file search: the name of the file searched for, the + path searched in, whether or not the file must exist (when drivers + search for 'cmr10.vf', it need not exist), and whether or not we + are collecting all occurrences of the file in the path (as with, + e.g., 'texmf.cnf' and 'texfonts.map'), or just the first (as with + most lookups). This can help you correlate what Kpathsea is doing + with what is in your input file. + +'KPSE_DEBUG_VARS (64)' + Report the value of each variable Kpathsea looks up. This is + useful for verifying that variables do indeed obtain their correct + values. + +'GSFTOPK_DEBUG (128)' + Activates debugging printout specific to 'gsftopk' program. + +'MAKETEX_DEBUG (512)' + If you use the optional 'mktex' programs instead of the traditional + shell scripts, this will report the name of the site file + ('mktex.cnf' by default) which is read, directories created by + 'mktexdir', the full path of the 'ls-R' database built by + 'mktexlsr', font map searches, 'MT_FEATURES' in effect, parameters + from 'mktexnam', filenames added by 'mktexupd', and some subsidiary + commands run by the programs. + +'MAKETEX_FINE_DEBUG (1024)' + When the optional 'mktex' programs are used, this will print + additional debugging info from functions internal to these + programs. + + Debugging output from Kpathsea is always written to standard error, +and begins with the string 'kdebug:'. (Except for hash table buckets, +which just start with the number, but you can only get that output +running under a debugger. See comments at the 'hash_summary_only' +variable in 'kpathsea/db.c'.) + + +File: kpathsea.info, Node: Logging, Next: Common problems, Prev: Debugging, Up: Reporting bugs + +8.4 Logging +=========== + +Kpathsea can record the time and filename found for each successful +search. This may be useful in finding good candidates for deletion when +your filesystem is full, or in discovering usage patterns at your site. + + To do this, define the environment or config file variable +'TEXMFLOG'. The value is the name of the file to append the information +to. The file is created if it doesn't exist, and appended to if it +does. + + Each successful search turns into one line in the log file: two words +separated by a space. The first word is the time of the search, as the +integer number of seconds since "the epoch", i.e., UTC midnight 1 +January 1970 (more precisely, the result of the 'time' system call). +The second word is the filename. + + For example, after 'setenv TEXMFLOG /tmp/log', running Dvips on +'story.dvi' appends the following lines: + + 774455887 /usr/local/share/texmf/dvips/config.ps + 774455887 /usr/local/share/texmf/dvips/psfonts.map + 774455888 /usr/local/share/texmf/dvips/texc.pro + 774455888 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmbx10.600pk + 774455889 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmsl10.600pk + 774455889 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmr10.600pk + 774455889 /usr/local/share/texmf/dvips/texc.pro + +Only filenames that are absolute are recorded, to preserve some +semblance of privacy. + + In addition to this Kpathsea-specific logging, 'pdftex' provides an +option '-recorder' to write the names of all files accessed during a run +to the file 'BASEFILE.fls'. + + Finally, most systems provide a general tool to output each system +call, thus including opening and closing files. It might be named +'strace', 'truss', 'struss', or something else. + + +File: kpathsea.info, Node: Common problems, Prev: Logging, Up: Reporting bugs + +8.5 Common problems +=================== + +Here are some common problems with configuration, compilation, linking, +execution, ... + +* Menu: + +* Unable to find files:: If your program can't find fonts (or whatever). +* Slow path searching:: If it takes forever to find anything. +* Unable to generate fonts:: If mktexpk fails. +* TeX or Metafont failing:: Likely compiler bugs. + + +File: kpathsea.info, Node: Unable to find files, Next: Slow path searching, Up: Common problems + +8.5.1 Unable to find files +-------------------------- + +If a program complains it cannot find fonts (or other input files), any +of several things might be wrong. In any case, you may find the +debugging options helpful. *Note Debugging::. + + * Perhaps you simply haven't installed all the necessary files; the + basic fonts and input files are distributed separately from the + programs. *Note unixtex.ftp::. + + * You have (perhaps unknowingly) told Kpathsea to use search paths + that don't reflect where the files actually are. One common cause + is having environment variables set from a previous installation, + thus overriding what you carefully set in 'texmf.cnf' (*note + Supported file formats::). System '/etc/profile' or other files + such may be the culprit. + + * Your files reside in a directory that is only pointed to via a + symbolic link, in a leaf directory and is not listed in 'ls-R'. + + Unfortunately, Kpathsea's subdirectory searching has an + irremediable deficiency: If a directory D being searched for + subdirectories contains plain files and symbolic links to other + directories, but no true subdirectories, D will be considered a + leaf directory, i.e., the symbolic links will not be followed. + *Note Subdirectory expansion::. + + You can work around this problem by creating an empty dummy + subdirectory in D. Then D will no longer be a leaf, and the + symlinks will be followed. + + The directory immediately followed by the '//' in the path + specification, however, is always searched for subdirectories, even + if it is a leaf. Presumably you would not have asked for the + directory to be searched for subdirectories if you didn't want it + to be. + + * If the fonts (or whatever) don't already exist, 'mktexpk' (or + 'mktexmf' or 'mktextfm') will try to create them. If these rather + complicated shell scripts fail, you'll eventually get an error + message saying something like 'Can't find font FONTNAME'. The best + solution is to fix (or at least report) the bug in 'mktexpk'; the + workaround is to generate the necessary fonts by hand with + Metafont, or to grab them from a CTAN site (*note unixtex.ftp::). + + * There is a bug in the library. *Note Reporting bugs::. + + +File: kpathsea.info, Node: Slow path searching, Next: Unable to generate fonts, Prev: Unable to find files, Up: Common problems + +8.5.2 Slow path searching +------------------------- + +If your program takes an excessively long time to find fonts or other +input files, but does eventually succeed, here are some possible +culprits: + + * Most likely, you just have a lot of directories to search, and that + takes a noticeable time. The solution is to create and maintain a + separate 'ls-R' file that lists all the files in your main TeX + hierarchy. *Note Filename database::. Kpathsea always uses 'ls-R' + if it's present; there's no need to recompile or reconfigure any of + the programs. + + * Your recursively-searched directories (e.g., + '/usr/local/share/texmf/fonts//'), contain a mixture of files and + directories. This prevents Kpathsea from using a useful + optimization (*note Subdirectory expansion::). + + It is best to have only directories (and perhaps a 'README') in the + upper levels of the directory structure, and it's very important to + have _only_ files, and no subdirectories, in the leaf directories + where the dozens of TFM, PK, or whatever files reside. + + In any case, you may find the debugging options helpful in +determining precisely when the disk or network is being pounded. *Note +Debugging::. + + +File: kpathsea.info, Node: Unable to generate fonts, Next: TeX or Metafont failing, Prev: Slow path searching, Up: Common problems + +8.5.3 Unable to generate fonts +------------------------------ + +Metafont outputs fonts in bitmap format, tuned for a particular device +at a particular resolution, in order to allow for the highest-possible +quality of output. Some DVI-to-whatever programs, such as Dvips, try to +generate these on the fly when they are needed, but this generation may +fail in several cases. + + If 'mktexpk' runs, but fails with this error: + mktexpk: Can't guess mode for NNN dpi devices. + mktexpk: Use a config file to specify the mode, or update me. + you need to ensure the resolution and mode match; just specifying the +resolution, as in '-D 360', is not enough. + + You can specify the mode name with the '-mode' option on the Dvips +command line, or in a Dvips configuration file (*note (dvips)Config +files::), such as 'config.ps' in your document directory, '~/.dvipsrc' +in your home directory, or in a system directory (again named +'config.ps'). (Other drivers use other files, naturally.) + + For example, if you need 360dpi fonts, you could include this in a +configuration file: + D 360 + M lqmed + + If Metafont runs, but generates fonts at the wrong resolution or for +the wrong device, most likely 'mktexpk''s built-in guess for the mode is +wrong, and you should override it as above. + + See <http://ctan.org/pkg/modes> for a list of resolutions and mode +names for most devices (additional submissions are welcome). + + If Metafont runs but generates fonts at a resolution of 2602dpi (and +prints out the name of each character as well as just a character +number, and maybe tries to display the characters), then your Metafont +base file probably hasn't been made properly. (It's using the default +'proof' mode, instead of an actual device mode.) To make a proper +'plain.base', assuming the local mode definitions are contained in a +file 'modes.mf', run the following command (assuming Unix): + + inimf "plain; input modes; dump" + +Then copy the 'plain.base' file from the current directory to where the +base files are stored on your system ('/usr/local/share/texmf/web2c' by +default), and make a link (either hard or soft) from 'plain.base' to +'mf.base' in that directory. *Note (web2c)inimf invocation::. + + If 'mf' is a command not found at all by 'mktexpk', then you need to +install Metafont (*note unixtex.ftp::). + + +File: kpathsea.info, Node: TeX or Metafont failing, Prev: Unable to generate fonts, Up: Common problems + +8.5.4 TeX or Metafont failing +----------------------------- + +If TeX or Metafont get a segmentation fault or otherwise fail while +running a normal input file, the problem is usually a compiler bug +(unlikely as that may sound). Even if the trip and trap tests are +passed, problems may lurk. Optimization occasionally causes trouble in +programs other than TeX and Metafont themselves, too. + + Insufficient swap space may also cause core dumps or other erratic +behavior. + + For a workaround, if you enabled any optimization flags, it's best to +omit optimization entirely. In any case, the way to find the facts is +to run the program under the debugger and see where it's failing. + + Also, if you have trouble with a system C compiler, I advise trying +the GNU C compiler. And vice versa, unfortunately; but in that case I +also recommend reporting a bug to the GCC mailing list; see *note +(gcc)Bugs::. + + To report compiler bugs effectively requires perseverance and +perspicacity: you must find the miscompiled line, and that usually +involves delving backwards in time from the point of error, checking +through TeX's (or whatever program's) data structures. Things are not +helped by all-too-common bugs in the debugger itself. Good luck. + + +File: kpathsea.info, Node: Index, Prev: Reporting bugs, Up: Top Index ***** @@ -3551,13 +2742,8 @@ Index (line 12) * --color=tty: ls-R. (line 21) * --debug=NUM: Auxiliary tasks. (line 9) -* --disable-static: configure options. (line 31) * --dpi=NUM: Path searching options. (line 17) -* --enable options: configure options. (line 16) -* --enable-maintainer-mode: configure options. (line 34) -* --enable-shared: configure options. (line 27) -* --enable-shared <1>: Shared library. (line 6) * --engine=NAME: Path searching options. (line 21) * --expand-braces=STRING: Auxiliary tasks. (line 16) @@ -3585,13 +2771,10 @@ Index * --safe-out-name=NAME: Path searching options. (line 154) * --show-path=NAME: Auxiliary tasks. (line 41) -* --srcdir, for building multiple architectures: configure scenarios. - (line 18) * --subdir=STRING: Path searching options. (line 160) * --var-value=VARIABLE: Auxiliary tasks. (line 12) * --version: Standard options. (line 11) -* --with options: configure options. (line 16) * --with-mktextex-default: mktex configuration. (line 12) * --without-mktexfmt-default: mktex configuration. (line 12) * --without-mktexmf-default: mktex configuration. (line 12) @@ -3601,15 +2784,9 @@ Index * --without-mktextfm-default: mktex configuration. (line 12) * -1 debugging value: Debugging. (line 23) * -A option to 'ls': ls-R. (line 33) -* -Bdynamic: ShellWidgetClass. (line 44) -* -Bstatic: ShellWidgetClass. (line 44) * -D NUM: Path searching options. (line 17) -* -dynamic: ShellWidgetClass. (line 42) -* -g, compiling without: configure scenarios. (line 32) * -L option to 'ls': ls-R. (line 38) -* -O, compiling with: configure scenarios. (line 32) -* -static: ShellWidgetClass. (line 42) * . directories, ignored: ls-R. (line 33) * . files: ls-R. (line 33) * .2602gf: Unable to generate fonts. @@ -3706,7 +2883,6 @@ Index * /, trailing in home directory: Tilde expansion. (line 19) * //: Subdirectory expansion. (line 6) -* /afs/... , installing into: Installing files. (line 32) * /etc/profile: Unable to find files. (line 14) * /etc/profile and aliases: ls-R. (line 21) @@ -3716,7 +2892,6 @@ Index * 8.3 filenames, using: mktex configuration. (line 68) * : may not be :: Searching overview. (line 13) * :: expansion: Default expansion. (line 6) -* @VAR@ substitutions: Running configure. (line 6) * \, line continuation in 'texmf.cnf': Config files. (line 37) * \openin: Searching overview. (line 31) * \special, suppressing warnings about: Suppressing warnings. @@ -3725,12 +2900,8 @@ Index * ~ expansion: Tilde expansion. (line 6) * absolute filenames: Searching overview. (line 52) * access warnings: Searching overview. (line 56) -* ac_include, Autoconf extension: Running configure. (line 6) * AFMFONTS: Supported file formats. (line 20) -* AFS: Installing files. (line 32) -* AIX 4.1 'configure' error: Empty Makefiles. (line 6) -* AIX shells and 'configure': configure shells. (line 14) * aliases for fonts: Fontmap. (line 6) * aliases, for filenames: Filename aliases. (line 6) * all: Suppressing warnings. @@ -3739,33 +2910,19 @@ Index (line 12) * alphabetical order, not: Subdirectory expansion. (line 6) -* Amiga support: Custom installation. (line 16) -* Andrew File System, installing with: Installing files. (line 32) * announcement mailing list: Mailing lists. (line 6) -* ANSI C: TeX or Metafont failing. - (line 30) * API, re-entrant: Programming overview. (line 16) * append-only directories and 'mktexpk': Security. (line 36) * appendonlydir: mktex configuration. (line 60) -* architecture-(in)dependent files, installing only: Installing files. - (line 21) -* architectures, compiling multiple: configure scenarios. (line 18) * arguments to 'mktex': mktex script arguments. (line 6) * argv[0]: Calling sequence. (line 14) -* ash, losing with 'configure': configure shells. (line 19) * autoconf, recommended: Calling sequence. (line 117) -* automounter, and configuration: configure scenarios. (line 29) * automounter, and 'ls-R': ls-R. (line 40) * auxiliary tasks: Auxiliary tasks. (line 6) -* Babel: Kpathsea application distributions. - (line 27) -* Babel <1>: Running make. (line 50) * Bach, Johann Sebastian: Default expansion. (line 41) * backslash-newline: Config files. (line 37) -* bash, recommended for running 'configure': configure shells. - (line 6) * basic glyph lookup: Basic glyph lookup. (line 6) * Berry, Karl: History. (line 12) * BIBINPUTS: Supported file formats. @@ -3774,36 +2931,25 @@ Index (line 111) * blank lines, in 'texmf.cnf': Config files. (line 35) * brace expansion: Brace expansion. (line 6) -* BSD universe: Running make. (line 43) -* bsh, ok with 'configure': configure shells. (line 14) +* Breitenlohner, Peter: History. (line 78) * BSTINPUTS: Supported file formats. (line 32) * BSTINPUTS <1>: Supported file formats. (line 115) -* bug address: Reporting bugs. (line 8) +* bug address: Reporting bugs. (line 6) * bug checklist: Bug checklist. (line 6) * bug mailing list: Mailing lists. (line 6) * bugs, reporting: Reporting bugs. (line 6) * c-*.h: Calling sequence. (line 117) * c-auto.h: Programming overview. (line 33) -* c-auto.in: Running configure. (line 6) * cache of fonts, local: Security. (line 22) * calling sequence: Calling sequence. (line 6) -* CC: configure environment. - (line 10) -* cc warnings: Pointer combination warnings. - (line 6) -* cc, compiling with: configure environment. - (line 11) -* CFLAGS: configure environment. - (line 14) -* ChangeLog entry: Bug checklist. (line 55) +* ChangeLog entry: Bug checklist. (line 52) * checklist for bug reports: Bug checklist. (line 6) * checksum: Suppressing warnings. (line 16) * circle fonts: Fontmap. (line 19) -* clean Make target: Cleaning up. (line 15) * client_path in 'kpse->format_info': Calling sequence. (line 47) * CMAPFONTS: Supported file formats. (line 36) @@ -3812,28 +2958,17 @@ Index * cnf.c: Config files. (line 86) * cnf.h: Programming with config files. (line 23) -* code sharing: Shared library. (line 9) -* color printers, configuring: Simple installation. (line 60) * comments, in fontmap files: Fontmap. (line 27) * comments, in 'texmf.cnf': Config files. (line 27) -* comments, making: Introduction. (line 23) +* comments, making: Introduction. (line 28) * common features in glyph lookup: Basic glyph lookup. (line 6) * common problems: Common problems. (line 6) -* comp.sys.sun.admin FAQ: ShellWidgetClass. (line 6) -* comp.text.tex: Mailing lists. (line 25) -* compilation: Installation. (line 6) * compilation value, source for path: Path sources. (line 20) * compiler bugs: TeX or Metafont failing. (line 6) * compiler bugs, finding: TeX or Metafont failing. (line 24) -* compiler options, additional: Running make. (line 26) -* compiler options, specifying: configure environment. - (line 15) -* compiler, changing: Running make. (line 39) -* compiling on HP-UX: TeX or Metafont failing. - (line 30) -* conditions for use: Introduction. (line 27) +* conditions for use: Introduction. (line 31) * config files: Config files. (line 6) * config files, for Kpathsea-using programs: Calling sequence. (line 47) @@ -3841,60 +2976,37 @@ Index (line 6) * config.h: Programming overview. (line 33) -* config.log: Bug checklist. (line 27) +* config.log: Bug checklist. (line 24) * config.ps: Specially-recognized files. (line 16) * config.ps, search path for: Supported file formats. (line 47) -* config.status: Bug checklist. (line 30) -* configuration: Installation. (line 6) -* configuration bugs: Bug checklist. (line 30) -* configuration compiler options: configure environment. - (line 23) +* config.status: Bug checklist. (line 27) +* configuration bugs: Bug checklist. (line 27) * configuration file, source for path: Path sources. (line 17) * configuration files as shell scripts.: Config files. (line 79) * configuration of 'mktex' scripts: mktex configuration. (line 6) -* configuration of optional features: configure options. (line 16) -* configure error from 'sed': Empty Makefiles. (line 6) -* 'configure' options: configure options. (line 6) * 'configure' options for 'mktex' scripts: mktex configuration. (line 12) -* configure, running: Running configure. (line 6) -* context diff: Bug checklist. (line 55) +* context diff: Bug checklist. (line 52) * continuation character: Config files. (line 37) -* core dumps, reporting: Bug checklist. (line 61) -* CPPFLAGS: configure environment. - (line 22) -* crashes, reporting: Bug checklist. (line 61) -* custom installation: Custom installation. (line 6) +* core dumps, reporting: Bug checklist. (line 58) +* crashes, reporting: Bug checklist. (line 58) * CWEBINPUTS: Supported file formats. (line 43) * database search: Searching overview. (line 17) * database, for filenames: Filename database. (line 6) * database, format of: Database format. (line 6) * debug.h: Debugging. (line 6) -* debugger: Bug checklist. (line 61) +* debugger: Bug checklist. (line 58) * debugging: Debugging. (line 6) * debugging options, in Kpathsea-using program: Calling sequence. (line 39) * debugging output: Debugging. (line 27) -* debugging with '-g', disabling: configure scenarios. (line 32) -* DEC shells and 'configure': configure shells. (line 25) * default expansion: Default expansion. (line 6) -* default path features: Default path features. - (line 6) -* default paths, changing: Default path generation. - (line 6) -* default paths, how they're made: Default path generation. - (line 12) * default_texsizes: Fallback font. (line 6) -* DEFS: configure environment. - (line 31) -* depot: configure scenarios. (line 29) * device, wrong: Unable to generate fonts. (line 29) -* directories, changing default installation: Default path generation. - (line 6) * directories, making append-only: mktex configuration. (line 61) * directory permissions: Security. (line 51) * directory structure, for TeX files: TeX directory structure. @@ -3902,27 +3014,14 @@ Index * disabling 'mktex' scripts: mktex configuration. (line 6) * disk search: Searching overview. (line 22) * disk searching, avoiding: ls-R. (line 51) -* disk space, needed: Disk space. (line 6) * disk usage, reducing: Logging. (line 6) -* distclean Make target: Cleaning up. (line 6) -* distributions, compiling simultaneously: Kpathsea application distributions. - (line 6) -* distributions, not compiling: Kpathsea application distributions. - (line 6) -* dlclose: dlopen. (line 6) -* dlopen: dlopen. (line 6) -* dlsym: dlopen. (line 6) -* dlsym.c: dlopen. (line 21) * doc files: Supported file formats. (line 171) * DOS compatible names: mktex configuration. (line 68) -* DOS support: Custom installation. (line 16) * dosnames: mktex configuration. (line 67) * dot files: ls-R. (line 33) * doubled colons: Default expansion. (line 6) * dpiNNN directories: mktex configuration. (line 68) -* DVI drivers: Kpathsea application distributions. - (line 12) * DVILJMAKEPK: mktex script names. (line 32) * DVILJSIZES: Fallback font. (line 6) * dvipdfmx.cfg: Specially-recognized files. @@ -3934,8 +3033,6 @@ Index * DVIPSMAKEPK: mktex script names. (line 32) * DVIPSSIZES: Fallback font. (line 6) * dynamic creation of files: mktex scripts. (line 6) -* dynamic linking problems with OpenWin libraries: ShellWidgetClass. - (line 6) * EC fonts, and dynamic source creation: mktex scripts. (line 6) * elt-dirs.c: Subdirectory expansion. (line 41) @@ -3968,17 +3065,12 @@ Index * extensions, filename: File lookup. (line 24) * externally-built filename database: Filename database. (line 6) * extra colons: Default expansion. (line 6) -* extraclean Make target: Cleaning up. (line 23) * failed 'mktex...' script invocation: mktex script names. (line 35) * fallback font: Fallback font. (line 6) * fallback resolutions: Fallback font. (line 6) -* fallback resolutions, overriding: Running make. (line 10) -* FAQ, comp.sys.sun.admin: ShellWidgetClass. (line 6) * FAQ, Kpathsea: Common problems. (line 6) * Farwell, Matthew: Subdirectory expansion. (line 22) -* features, of default paths: Default path features. - (line 6) * file formats, supported: Supported file formats. (line 6) * file lookup: File lookup. (line 6) @@ -3987,8 +3079,6 @@ Index (line 39) * filename aliases: Filename aliases. (line 6) * filename database: Filename database. (line 6) -* filename database generation: Filename database generation. - (line 6) * filenames, absolute or explicitly relative: Searching overview. (line 52) * files, unable to find: Unable to find files. @@ -4013,25 +3103,16 @@ Index * fontmaps <1>: mktex configuration. (line 87) * fontname: mktex configuration. (line 87) * fontnames, arbitrary length: Fontmap. (line 15) -* fonts, being created: Simple installation. (line 78) * FOOINPUTS: Supported file formats. (line 222) * FOOINPUTS <1>: Supported file formats. (line 225) * fopen, redefined: Debugging. (line 54) * format of external database: Database format. (line 6) -* FreeBSD 'configure' error: Empty Makefiles. (line 6) -* FreeBSD shells and 'configure': configure shells. (line 19) * ftp.cs.stanford.edu: unixtex.ftp. (line 20) * ftp.tug.org: unixtex.ftp. (line 6) * fundamental purpose of Kpathsea: Introduction. (line 6) -* gcc, compiling with: configure environment. - (line 11) -* gdb, recommended: Bug checklist. (line 61) -* generation of filename database: Filename database generation. - (line 6) -* get_applicationShellWidgetClass: ShellWidgetClass. (line 6) -* get_wmShellWidgetClass: ShellWidgetClass. (line 6) +* gdb, recommended: Bug checklist. (line 58) * gf: Supported file formats. (line 65) * GFFONTS: Supported file formats. @@ -4047,61 +3128,36 @@ Index (line 25) * GNU C compiler bugs: TeX or Metafont failing. (line 19) -* GNU General Public License: Introduction. (line 27) +* GNU General Public License: Introduction. (line 31) * group-writable directories: Security. (line 40) * GSFTOPK_DEBUG (128): Debugging. (line 88) * hash table buckets, printing: Debugging. (line 105) * hash table routines: Calling sequence. (line 110) * hash_summary_only variable for debugging: Debugging. (line 105) -* help, mailing list for general TeX: Mailing lists. (line 25) * history of Kpathsea: History. (line 6) +* Hoekwater, Taco: History. (line 78) * home directories in paths: Tilde expansion. (line 6) * HOME, as ~ expansion: Tilde expansion. (line 6) -* HP-UX, compiling on: TeX or Metafont failing. - (line 30) * identifiers, characters valid in: Config files. (line 47) -* illegal pointer combination warnings: Pointer combination warnings. - (line 6) * include fontmap directive: Fontmap. (line 30) * INDEXSTYLE: Supported file formats. (line 74) -* info-tex@shsu.edu: Mailing lists. (line 25) * input lines, reading: Calling sequence. (line 110) -* install-data Make target: Installing files. (line 28) -* install-exec Make target: Installing files. (line 23) -* installation: Installation. (line 6) -* installation testing: Installation testing. - (line 6) -* installation, architecture-(in)dependent files only: Installing files. - (line 21) -* installation, changing default directories: Default path generation. - (line 6) -* installation, customized: Custom installation. (line 6) -* installation, getting executables instead of: Simple installation. - (line 6) -* installation, simple: Simple installation. (line 6) -* installing files: Installing files. (line 6) * interactive query: Path searching options. (line 119) -* interface, not frozen: Introduction. (line 23) +* interface, not frozen: Introduction. (line 28) * introduction: Introduction. (line 6) * 'kdebug:': Debugging. (line 105) * kdefault.c: Default expansion. (line 48) * Knuth, Donald E.: History. (line 6) * Knuth, Donald E., archive of programs by: unixtex.ftp. (line 20) -* Korn shell, losing with 'configure': configure shells. (line 14) -* kpathsae_var_value: Programming with config files. - (line 10) * Kpathsea config file, source for path: Path sources. (line 17) -* Kpathsea version number: Kpathsea application distributions. - (line 6) * kpathsea.h: Programming overview. (line 24) -* kpathsea/README.CONFIGURE: Running configure. (line 15) * kpathsea_cnf_get: Programming with config files. (line 23) -* KPATHSEA_DEBUG: Debugging. (line 18) -* KPATHSEA_DEBUG <1>: Calling sequence. (line 28) +* KPATHSEA_DEBUG: Calling sequence. (line 28) +* KPATHSEA_DEBUG <1>: Debugging. (line 18) * kpathsea_find_file: File lookup. (line 38) * kpathsea_find_file <1>: Calling sequence. (line 62) * kpathsea_find_glyph: Glyph lookup. (line 26) @@ -4113,6 +3169,8 @@ Index * kpathsea_open_file: Calling sequence. (line 74) * kpathsea_out_name_ok: Calling sequence. (line 82) * kpathsea_set_program_name: Calling sequence. (line 14) +* kpathsea_var_value: Programming with config files. + (line 10) * KPATHSEA_WARNING: Config files. (line 18) * kpse->debug: Debugging. (line 6) * kpse->debug <1>: Debugging. (line 18) @@ -4133,39 +3191,18 @@ Index * KPSE_DEBUG_VARS (64): Debugging. (line 83) * KPSE_DOT expansion: KPSE_DOT expansion. (line 6) * kpse_format_info_type: Debugging. (line 61) -* kpse_init_prog, and 'MAKETEX_MODE': Default path features. - (line 25) -* ksh, losing with 'configure': configure shells. (line 14) -* LaserJet drive: Kpathsea application distributions. - (line 13) * last-resort font: Fallback font. (line 6) -* LaTeX help mailing list: Mailing lists. (line 25) * lcircle10: Fontmap. (line 19) -* LDFLAGS: configure environment. - (line 38) * leading colons: Default expansion. (line 6) * leaf directories wrongly guessed: Unable to find files. (line 21) * leaf directory trick: Subdirectory expansion. (line 22) -* libdl.a: dlopen. (line 6) -* libraries, changing: Running make. (line 39) -* libraries, specifying additional: configure environment. - (line 43) -* LIBS: configure environment. - (line 42) -* libucb, avoiding: Running make. (line 43) -* license for using the library: Introduction. (line 27) +* license for using the library: Introduction. (line 31) * LIGFONTS: Supported file formats. (line 78) * lines, reading arbitrary-length: Calling sequence. (line 110) * Linux File System Standard: mktex configuration. (line 113) -* Linux shells and 'configure': configure shells. (line 19) -* lndir for building symlink trees: configure scenarios. (line 18) -* loader options: configure environment. - (line 39) -* loader options, final: Running make. (line 32) -* loader options, initial: Running make. (line 29) * local cache of fonts: Security. (line 22) * log file: Logging. (line 6) * logging successful searches: Logging. (line 6) @@ -4174,24 +3211,15 @@ Index (line 19) * ls-R: Supported file formats. (line 81) -* ls-R and AFS: Installing files. (line 40) * ls-R database file: ls-R. (line 6) * ls-R, simplest build: ls-R. (line 18) -* Mach10 'configure' error: Empty Makefiles. (line 6) -* MacKenzie, David: History. (line 45) +* MacKenzie, David: History. (line 44) * MacKenzie, David <1>: Subdirectory expansion. (line 22) * magic characters: Searching overview. (line 13) * mailing lists: Mailing lists. (line 6) -* maintainer-clean Make target: Cleaning up. (line 18) -* Make arguments, additional: Running make. (line 35) -* make, running: Running make. (line 6) -* Makefile.in: Running configure. (line 6) -* Makefiles, empty: Empty Makefiles. (line 6) * MAKETEX_DEBUG (512): Debugging. (line 91) * MAKETEX_FINE_DEBUG (1024): Debugging. (line 100) -* MAKETEX_MODE: Default path features. - (line 19) * memory allocation routines: Calling sequence. (line 110) * metafont driver files: mktex configuration. (line 93) * Metafont failures: TeX or Metafont failing. @@ -4223,16 +3251,15 @@ Index * 'mktex' script configuration: mktex configuration. (line 6) * 'mktex' script names: mktex script names. (line 6) * 'mktex' scripts: mktex scripts. (line 6) -* mktex.cnf: mktex configuration. (line 29) -* mktex.cnf <1>: Specially-recognized files. +* mktex.cnf: Specially-recognized files. (line 28) +* mktex.cnf <1>: mktex configuration. (line 29) * mktex.opt: mktex configuration. (line 29) * mktex.opt <1>: mktex configuration. (line 39) * mktexdir: mktex configuration. (line 61) * mktexfmt: mktex script names. (line 10) * mktexmf: mktex script names. (line 15) * mktexpk: mktex script names. (line 24) -* mktexpk , initial runs: Simple installation. (line 78) * 'mktexpk' can't guess mode: Unable to generate fonts. (line 12) * mktextex: mktex script names. (line 27) @@ -4243,7 +3270,6 @@ Index (line 115) * mode directory, omitting: mktex configuration. (line 98) * Morgan, Tim: History. (line 12) -* mostlyclean Make target: Cleaning up. (line 10) * MPINPUTS: Supported file formats. (line 119) * MPMEMS: Supported file formats. @@ -4253,29 +3279,16 @@ Index * MPSUPPORT: Supported file formats. (line 91) * MT_FEATURES: mktex configuration. (line 39) -* multiple architectures, compiling on: configure scenarios. (line 18) -* multiple architectures, directories for: configure scenarios. - (line 23) -* multiple architectures, installing on: Installing files. (line 21) * multiple TeX hierarchies: Brace expansion. (line 20) * must exist: Searching overview. (line 31) * names for 'mktex' scripts: mktex script names. (line 6) -* NetBSD 'configure' error: Empty Makefiles. (line 6) -* NetBSD shells and 'configure': configure shells. (line 19) -* Neumann, Gustaf: History. (line 57) -* newsgroup for TeX: Mailing lists. (line 25) -* NeXT 'sed' error: Empty Makefiles. (line 6) -* NeXT, lacking X11: Kpathsea application distributions. - (line 6) +* Neumann, Gustaf: History. (line 56) * NFS and 'ls-R': ls-R. (line 40) * nomfdrivers: mktex configuration. (line 92) * nomode: mktex configuration. (line 97) -* non-English typesetting: Kpathsea application distributions. - (line 27) -* non-Unix operating systems: Custom installation. (line 16) * none: Suppressing warnings. (line 23) -* null pointers, dereferencing: Bug checklist. (line 61) +* null pointers, dereferencing: Bug checklist. (line 58) * numeric debugging values: Debugging. (line 34) * obtaining TeX: unixtex.ftp. (line 6) * OCPINPUTS: Supported file formats. @@ -4286,14 +3299,9 @@ Index (line 36) * OPENTYPEFONTS: Supported file formats. (line 135) -* OpenWin libraries, dynamic linking problems: ShellWidgetClass. - (line 6) * optimization caveat: TeX or Metafont failing. (line 15) -* optimization, enabling: configure scenarios. (line 32) * options for debugging: Debugging. (line 6) -* options to 'configure': configure options. (line 16) -* OS/2 support: Custom installation. (line 16) * OTPINPUTS: Supported file formats. (line 141) * overview of path searching: Searching overview. (line 6) @@ -4303,7 +3311,6 @@ Index (line 144) * OVPFONTS: Supported file formats. (line 147) -* patches, Sun OpenWin: ShellWidgetClass. (line 28) * path expansion: Path expansion. (line 6) * path searching: Path searching. (line 6) * path searching options: Path searching options. @@ -4311,22 +3318,9 @@ Index * path searching, overview: Searching overview. (line 6) * path searching, standalone: Invoking kpsewhich. (line 6) * path sources: Path sources. (line 6) -* paths, changing default: Changing search paths. - (line 6) -* paths, changing default <1>: Default path generation. - (line 6) -* paths, device name included in: Default path features. - (line 19) -* paths.h: Default path generation. - (line 27) -* paths.h, creating: Running make. (line 6) * pathsearch.h: Programming overview. (line 24) * pc Pascal compiler: History. (line 12) -* PCL driver: Kpathsea application distributions. - (line 13) -* PDF generation: Kpathsea application distributions. - (line 16) * pdfglyphlist.txt: Specially-recognized files. (line 31) * pdftex.cfg: Specially-recognized files. @@ -4342,21 +3336,8 @@ Index (line 154) * plain.base: Unable to generate fonts. (line 46) -* pointer combination warnings: Pointer combination warnings. - (line 6) -* PostScript driver: Kpathsea application distributions. - (line 16) -* PostScript fonts, additional: Simple installation. (line 60) -* precompiled executables, instead of installation: Simple installation. - (line 6) -* preprocessor options: configure environment. - (line 32) -* preprocessor options, additional: Running make. (line 23) -* printer configuration files: Simple installation. (line 60) * privacy, semblance of: Logging. (line 32) * problems, common: Common problems. (line 6) -* proginit.c: Default path features. - (line 25) * proginit.h: Calling sequence. (line 53) * program-varying paths: Supported file formats. (line 12) @@ -4377,10 +3358,8 @@ Index * readable: Suppressing warnings. (line 26) * reading arbitrary-length lines: Calling sequence. (line 110) -* README.CONFIGURE: Running configure. (line 15) * recording successful searches: Logging. (line 6) * relative filenames: Searching overview. (line 52) -* relative filenames in 'ls-R': Installing files. (line 40) * reporting bugs: Reporting bugs. (line 6) * resident.c: Calling sequence. (line 47) * resolution, setting: Path searching options. @@ -4395,48 +3374,37 @@ Index * Sauter fonts, and dynamic source creation: mktex scripts. (line 6) * scripts for file creation: mktex scripts. (line 6) * search path, defined: Searching overview. (line 6) -* search paths, changing default: Changing search paths. - (line 6) * searching for files: File lookup. (line 6) * searching for glyphs: Glyph lookup. (line 6) * searching overview: Searching overview. (line 6) * searching the database: Searching overview. (line 17) * searching the disk: Searching overview. (line 22) * security considerations: Security. (line 6) -* sed error from 'configure': Empty Makefiles. (line 6) * SELFAUTODIR: Calling sequence. (line 31) * SELFAUTOLOC: Calling sequence. (line 31) * SELFAUTOPARENT: Calling sequence. (line 31) -* sending patches: Bug checklist. (line 55) +* sending patches: Bug checklist. (line 52) * setgid scripts: Security. (line 40) * SFDFONTS: Supported file formats. (line 163) -* sh5, ok with 'configure': configure shells. (line 25) -* shared library, making: Shared library. (line 6) * shell scripts as configuration files: Config files. (line 79) * shell variables: Variable expansion. (line 17) -* shells and 'configure': configure shells. (line 6) * shell_escape, example for code: Programming with config files. (line 10) -* simple installation: Simple installation. (line 6) * site overrides for 'mktex...': mktex configuration. (line 29) -* size of distribution archives: Disk space. (line 6) * skeleton TeX directory: TeX directory structure. (line 6) * slow startup time: Slow path searching. (line 6) -* Solaris BSD compatibility, not: Running make. (line 43) * source files: Supported file formats. (line 174) * sources for search paths: Path sources. (line 6) * special: Suppressing warnings. (line 30) -* stack trace: Bug checklist. (line 61) +* stack trace: Bug checklist. (line 58) * standalone path searching: Invoking kpsewhich. (line 6) * standard error and debugging output: Debugging. (line 27) * standard options: Standard options. (line 6) * startup time, excessive: Slow path searching. (line 6) -* static linking: ShellWidgetClass. (line 38) -* static linking and 'dlsym': dlopen. (line 6) * string routines: Calling sequence. (line 110) * strip: mktex configuration. (line 107) * stripsupplier: mktex configuration. (line 101) @@ -4448,25 +3416,20 @@ Index * subdirectory searching: Subdirectory expansion. (line 6) * suffixes, filename: File lookup. (line 24) -* suggestions, making: Introduction. (line 23) +* suggestions, making: Introduction. (line 28) * Sun 2: History. (line 12) -* Sun OpenWin patches: ShellWidgetClass. (line 28) * supplier directory, omitting: mktex configuration. (line 102) * supplier directory, omitting <1>: mktex configuration. (line 108) * supported file formats: Supported file formats. (line 6) * suppressing warnings: Suppressing warnings. (line 6) -* symbolic link trees, for multiple architectures: configure scenarios. - (line 18) * symbolic links not found: Unable to find files. (line 21) * symbolic links, and 'ls-R': ls-R. (line 38) * symlinks, resolving: Calling sequence. (line 31) * system C compiler bugs: TeX or Metafont failing. (line 19) -* system dependencies: Running configure. (line 6) -* system V universe: Running make. (line 43) * T1FONTS: Supported file formats. (line 197) * T1INPUTS: Supported file formats. @@ -4475,16 +3438,9 @@ Index (line 202) * tcfmgr.map: Specially-recognized files. (line 46) -* TDS: Default path features. - (line 41) -* TDS <1>: TeX directory structure. - (line 6) -* testing, post-installation: Installation testing. +* TDS: TeX directory structure. (line 6) -* tests, simple: Simple installation. (line 78) -* TeX directory structure: Default path features. - (line 41) -* TeX directory structure <1>: TeX directory structure. +* TeX directory structure: TeX directory structure. (line 6) * TeX environment variables: Supported file formats. (line 6) @@ -4492,18 +3448,16 @@ Index (line 6) * TeX file lookup: File lookup. (line 6) * TeX glyph lookup: Glyph lookup. (line 6) -* TeX help mailing list: Mailing lists. (line 25) -* TeX hierarchy, one: configure scenarios. (line 13) * TeX support: TeX support. (line 6) -* TeX Users Group: Introduction. (line 35) +* TeX Users Group: Introduction. (line 40) * tex-file.c: File lookup. (line 38) * tex-file.h: Programming overview. (line 24) * tex-glyph.c: Glyph lookup. (line 26) * tex-glyph.h: Programming overview. (line 24) -* tex-k-request@tug.org: Mailing lists. (line 7) -* tex-k@tug.org (bug address): Reporting bugs. (line 8) +* tex-k@tug.org: Mailing lists. (line 6) +* tex-k@tug.org (bug address): Reporting bugs. (line 6) * tex.web: unixtex.ftp. (line 20) * TEXBIB: Supported file formats. (line 28) @@ -4538,17 +3492,8 @@ Index (line 38) * 'texmf.cnf' missing, warning about: Config files. (line 18) * texmf.cnf, and variable expansion: Variable expansion. (line 6) -* texmf.cnf, creating: Running make. (line 6) * texmf.cnf, definition for: Config files. (line 6) -* texmf.cnf, generated: Default path generation. - (line 22) * texmf.cnf, source for path: Path sources. (line 17) -* texmf.in: Default path generation. - (line 22) -* texmf.in, editing: Changing search paths. - (line 6) -* texmf.sed: Default path generation. - (line 17) * TEXMFCNF: Config files. (line 6) * TEXMFCNF <1>: Supported file formats. (line 39) @@ -4589,7 +3534,6 @@ Index * tilde.c: Tilde expansion. (line 25) * time system call: Logging. (line 15) * tolerance for glyph lookup: Basic glyph lookup. (line 15) -* total disk space: Disk space. (line 6) * trailing '/' in home directory: Tilde expansion. (line 19) * trailing colons: Default expansion. (line 6) * TRFONTS: Supported file formats. @@ -4603,14 +3547,11 @@ Index * tug.org: unixtex.ftp. (line 6) * typeface directory, omitting: mktex configuration. (line 105) * typeface directory, omitting <1>: mktex configuration. (line 108) -* ucbinclude, avoiding: Running make. (line 43) -* Ultrix shells and 'configure': configure shells. (line 25) * unable to find files: Unable to find files. (line 6) * unable to generate fonts: Unable to generate fonts. (line 6) * uname: Bug checklist. (line 20) -* universe, BSD vs. system V: Running make. (line 43) * unixtex.ftp: unixtex.ftp. (line 6) * unknown special warnings: Suppressing warnings. (line 31) @@ -4619,7 +3560,6 @@ Index * unreadable files: Searching overview. (line 56) * unusable 'ls-R' warning: ls-R. (line 45) * usage patterns, finding: Logging. (line 6) -* Usenet TeX newsgroup: Mailing lists. (line 25) * USERPROFILE, as ~ expansion: Tilde expansion. (line 6) * USE_TEXMFVAR: mktex configuration. (line 128) * USE_VARTEXFONTS: mktex configuration. (line 118) @@ -4630,132 +3570,90 @@ Index (line 10) * VARTEXFONTS: mktex configuration. (line 113) * VAX 11/750: History. (line 12) -* version number, of Kpathsea: Kpathsea application distributions. - (line 6) * version numbers, determining: Bug checklist. (line 15) * VF files, not found: Searching overview. (line 31) * VFFONTS: Supported file formats. (line 205) -* VMS support: Custom installation. (line 16) * Vojta, Paul: History. (line 30) -* Walsh, Norman: History. (line 57) +* Walsh, Norman: History. (line 56) * warning about unusable 'ls-R': ls-R. (line 45) * warning, about missing 'texmf.cnf': Config files. (line 18) * warnings, file access: Searching overview. (line 56) -* warnings, pointer combinations: Pointer combination warnings. - (line 6) * warnings, suppressing: Suppressing warnings. (line 6) -* wcstombs: dlopen. (line 6) * WEB2C: Supported file formats. (line 213) -* Weber, Olaf: History. (line 74) +* Weber, Olaf: History. (line 73) * WEBINPUTS: Supported file formats. (line 209) * whitespace, in fontmap files: Fontmap. (line 27) * whitespace, not ignored on continuation lines: Config files. (line 37) * www.tug.org: unixtex.ftp. (line 6) -* X11 previewer: Kpathsea application distributions. - (line 25) -* X11, lacking on NeXT: Kpathsea application distributions. - (line 6) -* XCFLAGS: Running make. (line 25) -* XCPPFLAGS: Running make. (line 21) -* XDEFS: Running make. (line 22) * XDvi: Specially-recognized files. (line 41) * XDVIFONTS: Supported file formats. (line 240) * XDVIMAKEPK: mktex script names. (line 32) * XDVISIZES: Fallback font. (line 6) -* XLDFLAGS: Running make. (line 28) -* XLOADLIBES: Running make. (line 31) -* XMAKEARGS: Running make. (line 34) -* Xmu library problems: ShellWidgetClass. (line 13) -* XtStrings: XtStrings. (line 6) -* zuhn, david: History. (line 51) +* zuhn, david: History. (line 50) Tag Table: Node: Top1480 -Node: Introduction2124 -Node: History3942 -Node: Installation8034 -Node: Simple installation8828 -Node: Custom installation12376 -Node: Disk space13697 -Node: Kpathsea application distributions14505 -Node: Changing search paths15619 -Node: Default path features16812 -Node: Default path generation18895 -Node: Running configure20338 -Node: configure shells21421 -Node: configure options22470 -Node: configure environment23976 -Node: configure scenarios25778 -Node: Shared library27364 -Node: Running make28378 -Node: Installing files30426 -Node: Cleaning up32370 -Node: Filename database generation33418 -Node: mktex scripts33982 -Node: mktex configuration35246 -Node: mktex script names41053 -Node: mktex script arguments42443 -Node: Installation testing43326 -Node: Security43681 -Node: TeX directory structure46206 -Node: unixtex.ftp50627 -Node: Reporting bugs51962 -Node: Bug checklist52700 -Node: Mailing lists56397 -Node: Debugging57606 -Node: Logging62692 -Node: Common problems64563 -Node: Unable to find files65394 -Node: Slow path searching67808 -Node: Unable to generate fonts69187 -Node: TeX or Metafont failing71667 -Node: Empty Makefiles73543 -Node: XtStrings74782 -Node: dlopen75618 -Node: ShellWidgetClass76436 -Node: Pointer combination warnings78048 -Node: Path searching78437 -Node: Searching overview79084 -Node: Path sources82479 -Node: Config files83537 -Node: Path expansion87464 -Node: Default expansion88413 -Node: Variable expansion90483 -Node: Tilde expansion91884 -Node: Brace expansion92864 -Node: KPSE_DOT expansion93789 -Node: Subdirectory expansion94302 -Node: Filename database96656 -Node: ls-R97710 -Node: Filename aliases100605 -Node: Database format101783 -Node: Invoking kpsewhich102796 -Node: Path searching options103740 -Node: Specially-recognized files111946 -Node: Auxiliary tasks113301 -Node: Standard options115126 -Node: TeX support115482 -Node: Supported file formats116773 -Node: File lookup123972 -Node: Glyph lookup125721 -Node: Basic glyph lookup126845 -Node: Fontmap127725 -Node: Fallback font130314 -Node: Suppressing warnings131226 -Node: Programming132331 -Node: Programming overview132844 -Node: Calling sequence135541 -Node: Program-specific files142071 -Node: Programming with config files143094 -Node: Index144406 +Node: Introduction2258 +Node: History4202 +Node: unixtex.ftp8799 +Node: Security10294 +Node: TeX directory structure12798 +Node: Path searching16846 +Node: Searching overview17504 +Node: Path sources20899 +Node: Config files21957 +Node: Path expansion25884 +Node: Default expansion26833 +Node: Variable expansion28903 +Node: Tilde expansion30304 +Node: Brace expansion31284 +Node: KPSE_DOT expansion32209 +Node: Subdirectory expansion32722 +Node: Filename database35076 +Node: ls-R36130 +Node: Filename aliases39025 +Node: Database format40203 +Node: Invoking kpsewhich41216 +Node: Path searching options42160 +Node: Specially-recognized files50371 +Node: Auxiliary tasks51726 +Node: Standard options53551 +Node: TeX support53907 +Node: Supported file formats55259 +Node: File lookup62458 +Node: Glyph lookup64207 +Node: Basic glyph lookup65331 +Node: Fontmap66211 +Node: Fallback font68632 +Node: Suppressing warnings69544 +Node: mktex scripts70671 +Node: mktex configuration71886 +Node: mktex script names77689 +Node: mktex script arguments79075 +Node: Programming79954 +Node: Programming overview80476 +Node: Calling sequence83173 +Node: Program-specific files89705 +Node: Programming with config files90728 +Node: Reporting bugs92040 +Node: Bug checklist92718 +Node: Mailing lists96190 +Node: Debugging96865 +Node: Logging101942 +Node: Common problems103809 +Node: Unable to find files104286 +Node: Slow path searching106696 +Node: Unable to generate fonts108071 +Node: TeX or Metafont failing110542 +Node: Index111895 End Tag Table diff --git a/Master/texmf-dist/doc/info/tlbuild.info b/Master/texmf-dist/doc/info/tlbuild.info new file mode 100644 index 00000000000..306b033ad62 --- /dev/null +++ b/Master/texmf-dist/doc/info/tlbuild.info @@ -0,0 +1,5209 @@ +This is tlbuild.info, produced by makeinfo version 5.2 from +tlbuild.texi. + +This file documents the TeX Live build system and more. + + Copyright (C) 2013, 2014 Karl Berry & Peter Breitenlohner. + + 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 approved by the TeX Users Group. +INFO-DIR-SECTION TeX +START-INFO-DIR-ENTRY +* TL-build: (tlbuild). TeX Live configuration and development. +END-INFO-DIR-ENTRY + + +File: tlbuild.info, Node: Top, Next: Introduction, Up: (dir) + +Building TeX Live (2014) +************************ + +For an overview of this manual, *note Introduction::. + +* Menu: + +* Introduction:: About this manual. +* Overview of build system:: The TeX Live build system. +* Prerequisites:: Requirements for building TeX Live. +* Building:: The overall build process. +* Installing:: How and where installation happens (or not). +* Layout and infrastructure:: Autoconf macros, etc., in detail. +* Configure options:: List of all configure options. +* Cross compilation:: Building on host X for target Y. +* Coding conventions:: Conventions to follow. +* install-tl:: The TeX Live installer. +* tlmgr:: The native TeX Live package manager. +* Index:: General index. + + +File: tlbuild.info, Node: Introduction, Next: Overview of build system, Prev: Top, Up: Top + +1 Introduction +************** + +This manual (dated May 2014) corresponds to the TeX Live 2014 release. + + This manual is aimed at system installers and programmers, and +focuses on how to configure, build, and develop the TeX Live (TL) +sources. The sources can be acquired in a number of ways; see +<http://tug.org/texlive/svn>. + + This manual does not duplicate the (primarily user-level) information +found in other TL documentation resources, such as: + + * The TeX Live web pages: <http://tug.org/texlive>. + + * The web page with an overview of how to build the binaries which + are distributed with TeX Live: <http://tug.org/texlive/build.html>. + + * The TeX Live user manual: <http://tug.org/texlive/doc.html>, or run + 'texdoc texlive'. + + * Other TeX-related Texinfo manuals (*note (web2c)::, *note + (kpathsea)::, etc.): <http://tug.org/texinfohtml/>, or check the + 'TeX' category in the GNU Info system. + + * Package documentation: + <http://tug.org/texlive/Contents/live/doc.html>, or the 'doc.html' + file at the top level of the installed TL. + + As an exception, the full documentation for 'install-tl' and 'tlmgr' +is included here, just because it is convenient to do so. The same text +is available online (linked from <http://tug.org/texlive/doc.html>, or +by invoking the program with '--help' (or look at the end of the source +file). + + +File: tlbuild.info, Node: Overview of build system, Next: Prerequisites, Prev: Introduction, Up: Top + +2 Overview of build system +************************** + +The TeX Live build system was redesigned in 2009, consistently using +Autoconf, Automake, and Libtool. Thus + 'configure && make && make check && make install' +or the basically-equivalent top-level 'Build' script suffice to build +and install the TL programs. The 'make check' clause performs various +tests of the generated programs--not strictly required but strongly +recommended. Running 'configure --help' will display a comprehensive +list of all 'configure' options. + + The main components of the TL build system are: + +'libs/LIB' + Generic libraries. + +'texk/LIB' + TeX-specific libraries in subdirectories, notably LIB='kpathsea'. + (The other one is 'texk/ptexenc'.) + +'texk/PROG' + TeX-specific programs (that use Kpathsea). + +'utils/PROG' + Other programs (that don't use Kpathsea). + + The primary design goal of the build system is modularity. Each +program and library module (or package) specifies its own requirements +and properties, such as required libraries, whether an installed +(system) version of a library can be used, 'configure' options to be +seen at the top-level, and more. An explicit list of all available +modules is kept in only one, central, place ('m4/kpse-pkgs.m4'). + + A second, related goal is to configure and build each library before +configuring any other (program or library) module which uses that +library. This allows checking for properties and features of a library +built as part of the TL tree in much the same way as for a system +version of that library. + + All generic libraries and several programs are maintained +independently. The corresponding modules use (most of) the distributed +source tree and document any modifications of that source. + + All this is for the sake of simplifying both upgrading of modules +maintained independently and integrating new modules into the TL build +system. (Not to say that either task is trivial.) + + +File: tlbuild.info, Node: Prerequisites, Next: Building, Prev: Overview of build system, Up: Top + +3 Prerequisites +*************** + +Overall, building the TeX Live programs, when using all libraries from +the TL source tree, requires only C and C++ compilers and GNU 'make'. +(If 'make' from your 'PATH' is not GNU make, you can set 'MAKE' in the +environment to whatever is necessary.) + + Indeed, GNU 'make' is required only because of some third-party +libraries, notably FreeType; all the TL-maintained directories (and +Automake/Autoconf output in general) should work with any reasonable +'make'. + + However, a few programs in the tree have additional requirements: + +'web2c' + requires 'perl' for some tests run by 'make check'. + +'xdvik' +'xpdfopen' + require X11 headers and libraries, often in "development" packages + that are not installed by default. + +'xetex' + requires 'fontconfig' (again both headers and library). + +'xindy' + requires GNU 'clisp' and in addition 'perl', 'latex', and + 'pdflatex' to build the rules and/or documentation. + +Lacking the required tools, building these programs must avoided, e.g., +'configure --without-x --disable-xetex --disable-xindy' + + Modifying source files induces more requirements, as one might +expect: + + * Modification of any '.y' or '.l' source files requires 'bison' or + 'flex' to updatete the corresponding C sources. + + * Modification of the sources for '.info' files requires 'makeinfo'. + + * Modification of any part of the build system (M4 macros, + 'configure.ac', 'Makefile.am', or their fragments) requires GNU M4, + GNU Autoconf, GNU Automake, and GNU Libtool to update the generated + files. *Note Build system tools::. + + If you haven't modified any source files, and infrastructure tools +such as 'autoconf' or 'makeinfo' are still being run, check your +timestamps--notably, 'use-commit-times' must be set to 'yes' in your +Subversion configuration (*note Build system tools::). Barring buggy +commits, no infrastructure tools are needed to do a normal build. + + +File: tlbuild.info, Node: Building, Next: Installing, Prev: Prerequisites, Up: Top + +4 Building +********** + +The top-level 'Build' script is intended to simplify building the +binaries distributed with TeX Live itself--we call this the "native" TL +build. It configures and makes everything in a subdirectory of the main +build tree (default 'Work/'), installs everything in an other +subdirectory (default 'inst/'), and finally runs 'make check'. The +exact directory and command names can be specified via environment +variables and a few leading options. All remaining arguments +(assignments or options) are passed to the 'configure' script. Please +take a look at the script itself for more information; it is not +complicated. + + An alternative, and the one we will mainly discuss here, is to run +'configure' and 'make' oneself in a suitable empty subdirectory. +Building in the source directory itself is not supported (sorry). + +* Menu: + +* Build iteration:: What 'configure' and 'make' do. +* Build problems:: If the build fails. +* Build in parallel:: Simultaneous 'make' processes. +* Build distribution:: Making a distribution tarball. +* Build one package:: Example of working on just one program. + + +File: tlbuild.info, Node: Build iteration, Next: Build problems, Up: Building + +4.1 Build iteration +=================== + +Running the top-level 'configure' script configures the top level and +the subdirectories 'libs', 'utils', and 'texk'. Running 'make' at the +top-level first iterates over all TeX-specific libraries, and then runs +'make' in 'libs', 'utils', and 'texk' to iterate over all generic +libraries, utility programs, and TeX-specific programs. These +iterations consist of two steps: + + 1. For each library or program module not yet configured, run + 'configure', adding the configure option '--disable-build' if the + module need not be built, otherwise running 'make all'. + + 2. For each library or program module that must be built, run 'make' + for the selected target(s): 'default' or 'all' to (re-)build, + 'check' to run tests, 'install', etc. + + Running the top-level 'make' a second time iterates again over all +the library and program modules, but finds (should find) nothing to be +done unless some source files have been modified. + + +File: tlbuild.info, Node: Build problems, Next: Build in parallel, Prev: Build iteration, Up: Building + +4.2 Build problems +================== + +If configuring or building a module fails, you could either (a) find and +fix the problem, or (b) remove the subdirectory for that module from the +build tree, and rerun the top-level 'make' (or 'Build' with '--no-clean' +as its first argument). + + +File: tlbuild.info, Node: Build in parallel, Next: Build distribution, Prev: Build problems, Up: Building + +4.3 Build in parallel +===================== + +The TL build system carefully formulates dependencies as well as 'make' +rules when a tool (such as 'tangle', 'ctangle', or 'convert') creates +several output files. This allows for parallel builds ('make -j N' with +N>1 or even 'make -j') that can considerably speed up the TL build. + + Incidentally, a noticeable speed-up can also be (independently) +gained by using a configure cache file, i.e., with the option '-C' +(recommended). + + +File: tlbuild.info, Node: Build distribution, Next: Build one package, Prev: Build in parallel, Up: Building + +4.4 Build distribution +====================== + +Running 'make dist' at the top-level creates a tarball +'tex-live-YYYY-MM-DD.tar.xz' from the TL source tree. Running 'make +distcheck' also verifies that this tarball suffices to build and install +all of TL. + + This is useful for checking consistency of the source tree and +Makefiles, but the result is not a complete or even usable TeX system, +since all the support files are lacking; *note Installing::. + + +File: tlbuild.info, Node: Build one package, Prev: Build distribution, Up: Building + +4.5 Build one package +===================== + +To build one package, the basic idea is to use the 'configure' option +'--disable-all-pkgs' (*note '--disable-all-pkgs'::). Then all program +and library modules are configured but none are made. However, the +'Makefile's still contain all build rules and dependencies and can be +invoked to build an individual program or library and causes to first +build any required libraries. + + This "build-on-demand" procedure is used, e.g., in the 'luatex' +repository to build LuaTeX, essentially from a subset of the complete +TeX Live tree. Similarly, when, e.g., building the original e-TeX has +been disabled (as it is by default), one can run 'make etex' (or 'make +etex.exe') in 'texk/web2c/' to build e-TeX (although there is no +comparably simple way to install e-TeX). + + If you want to work on a single program within the TL sources, this +is the recommended way to do it. Here is an example from start to +finish for working on 'dvipdfmx'. + + mkdir mydir && cd mydir # new working directory + + # Get sources (<http://tug.org/texlive/svn>) + rsync -a --delete --exclude=.svn --exclude=Work \ + tug.org::tldevsrc/Build/source/ . + + # Create build directory: + mkdir Work && cd Work + + # Do the configure: + ../configure --disable-all-pkgs --enable-dvipdfm-x \ + -C CFLAGS=-g CXXFLAGS=-g >&outc + + # Do the make: + make >&outm + + # Test: + cd texk/dvipdfmx + make check + + Then you modify source files in 'mydir/texk/dvipdfm-x' and rerun +'make' in 'mydir/Work/texk/dvipdfm-x' to rebuild. + + The second line the 'configure' are invocation shows examples of +extra things you likely want to specify if you intend to hack the +sources (and not just build binaries): the '-C' speeds up 'configure', +and the 'CFLAGS' and 'CXXFLAGS' are to eliminate compiler optimization +for debugging purposes. + + Of course, one should actually look at the output and check that +things are working. There are many 'configure' options you can tweak as +desired; check the output from 'configure --help'. + + Finally, the above retrieves the entire TL source tree (some 300mb). +It is natural to ask if this is really necessary. Strictly speaking, +the answer is no, but it is vastly more convenient to do so. If you cut +down the source tree, you must also give additional 'configure' flags to +individually disable using system versions of libraries, or the +intricacies of the dependencies (such as 'teckit' requiring 'zlib') will +have undesired side effects. For an example, see the 'build-pdftex.sh' +script in the 'pdftex' development sources (<http://pdftex.org>), which +are indeed a cut-down TL source tree. + + +File: tlbuild.info, Node: Installing, Next: Layout and infrastructure, Prev: Building, Up: Top + +5 Installing +************ + +This section discusses the results of 'make install' in the source tree. + + The main consideration is that 'make install' is not enough to make a +usable TeX installation. Beyond the compiled binaries, (thousands of) +support files are needed; just as a first example 'plain.tex' is not in +the source tree. + + These support files are maintained completely independently and are +not present in the source tree. The best basis for dealing with them is +the TeX Live (plain text) database in 'Master/tlpkg/texlive.tlpdb', +and/or the TeX Live installer, 'install-tl'. More information is under +'Master/tlpkg' and at <http://tug.org/texlive/distro.html>. + +* Menu: + +* Installation directories:: The prefix, 'bindir', etc., directories. +* Linked scripts:: Scripts not maintained in the sources. +* Distro builds:: Configuring and building for OS distributions. + + +File: tlbuild.info, Node: Installation directories, Next: Linked scripts, Up: Installing + +5.1 Installation directories +============================ + +Running 'make install' (or 'make install-strip') installs executables in +'BINDIR', libraries in 'LIBDIR', headers in 'INCLUDEDIR', general data +(including "linked scripts", *note Linked scripts::) in +'DATAROOTDIR/texmf-dist', man pages in 'MANDIR', and Info files in +'INFODIR'. + + The values of these directories are determined by 'configure' and can +be specified explictly as options such as '--prefix=PREFIX' or +'--bindir=BINDIR'; otherwise, they are given by their usual Autoconf +defaults: + + PREFIX /usr/local + EXEC_PREFIX PREFIX + BINDIR EXEC_PREFIX/bin + LIBDIR EXEC_PREFIX/lib + INCLUDEDIR PREFIX/include + DATAROOTDIR PREFIX/share + MANDIR DATAROOTDIR/man + INFODIR DATAROOTDIR/info + +... except possibly modified as follows: + + * If the option '--enable-multiplatform' is given, '/PLATFORM' (i.e., + the canonical platform name) is appended to 'BINDIR' and 'LIBDIR'. + This is implied for a native TL build. + + * In a native TL build, 'DATAROOTDIR' is set to 'PREFIX', 'INFODIR' + is set to 'PREFIX/texmf-dist/doc/info', and 'MANDIR' to + 'PREFIX/texmf-dist/doc/man', corresponding to the directories used + in the TL distribution. + +The top-level 'configure' script displays all these installation paths. + + For the native TL build, the 'Build' script leaves the binaries in +'./inst/bin/STD-PLATFORM-NAME'. The new binaries are not directly +usable from that location; they need to be copied to +'Master/bin/TL-PLATFORM'. The other files and directories that end up +in './inst/' are ignored. + + +File: tlbuild.info, Node: Linked scripts, Next: Distro builds, Prev: Installation directories, Up: Installing + +5.2 Linked scripts +================== + +Quite a few executables are architecture-independent shell, Perl, or +other interpreted scripts, rather than compiled binaries. A few are +maintained as part of the TL source tree, but most are maintained +elsewhere with copies under 'texk/texlive/linked_scripts'. + + These so-called "linked scripts" are installed under +'DATAROOTDIR/texmf-dist/scripts'; for Unix-like systems a symbolic link +is made in 'BINDIR'. For example, a symlink points from 'BINDIR/ps2eps' +to 'DATAROOTDIR/texmf-dist/scripts/ps2eps/ps2eps.pl'. For Windows, a +standard wrapper binary (e.g., 'BINDIR/ps2eps.exe') serves the same +purpose. (The source for the wrapper is in 'texk/texlive/w32_wrapper'.) + + One reason for this is to avoid having many copies of the same +script; a more important reason is that it guarantees the scripts will +stay in sync across the different supported operating systems. + + Most important of all, we want the 'BINDIR' resulting from the build +to be as close as possible to what is in the TL distribution. At +present, there are a few exceptions--Asymptote, Biber, Xindy--and each +one creates considerable extra work. We don't want to add more. (See +<http://tug.org/texlive/build.html> for information about building those +exceptions, as well as the 'xz' and 'wget' programs that are used in the +TL infrastructure.) + + +File: tlbuild.info, Node: Distro builds, Prev: Linked scripts, Up: Installing + +5.3 Distro builds +================= + +Although they use the same code base, building for the native TL +distribution as shipped by the TeX user groups is typically quite +different from a "distro" build needed by, e.g., a full GNU/Linux or BSD +operating system distribution. + + The native TL distribution uses shared libraries only when absolutely +necessary ('libc', 'libm', X11 libraries, and 'libfontconfig'). +However, a distro typically wants to use as many shared libraries as +possible from elsewhere on the system, including TeX-specific libraries +such as 'libkpathsea' (even though Kpathsea has never officially been +released as a shared library, but we digress). In addition, the +installation paths will, in general, be completely different. + + Here are the 'configure' options that distro builds are likely to +find most relevant: + +'--disable-native-texlive-build' + This must be specified to avoid interference from the many tweaks + we do for the native TL build. + +'--with-banner-add=/SOMEDISTRO' + This isn't technically required, but is strongly recommended, so + your build and your distro can be distinguished from others. + +'--enable-shared' + Build shared versions of the TeX-specific libraries (uses + 'libtool'). + +'--disable-static' + Do not build the static versions of the TeX-specific libraries. + +'--with-system-LIB' + Use system versions for as many libraries LIB as possible. + 'configure --help' will give you the list of possibilities. + +'--with-LIB-includes=DIR' +'--with-LIB-libdir=DIR' + If needed, allows you to specify where the headers/code are for the + given library LIB. + +'--prefix=/usr' +'--prefix=/opt/TeXLive' + Or whatever your convention is. The default is '/usr/local' and + you shouldn't install there for a distro. + +'--libdir=\${exec_prefix}/lib64' + May be needed for 64-bit bi-architecture (GNU/Linux) systems. + + You will need to take care of the support files mentioned above +(*note Installing::), and many other issues, such as font maps, +languages, and formats, independently of the build. Norbert Preining +has written a detailed article on adapting TL for distros: +<http://tug.org/TUGboat/tb34-3/tb108preining-distro.pdf>. (If the +article needs updating in the future, perhaps we will merge it into this +document.) + + +File: tlbuild.info, Node: Layout and infrastructure, Next: Configure options, Prev: Installing, Up: Top + +6 Layout and infrastructure +*************************** + +The TeX Live source tree is the subtree rooted at 'Build/source' of the +complete TL distribution and contains the sources for all executables +distributed by TL, as well as 'configure' scripts and 'make' rules to +build and install them together with some of their support files. + +* Menu: + +* Build system tools:: If modifying infrastructure files. +* Top-level directories:: +* Autoconf macros:: TL-specific Autoconf macros. +* Library modules:: Details on some specific libraries, +* Program modules:: and on some programs. +* Extending TeX Live:: Adding a new module. + + +File: tlbuild.info, Node: Build system tools, Next: Top-level directories, Up: Layout and infrastructure + +6.1 Build system tools +====================== + +As mentioned above (*note Prerequisites::), a normal build requires very +little. On the other hand, if you want to modify the TeX Live +infrastructure sources, such as 'configure.ac' or 'Makefile.am' files, +you will need to have several additional tools installed. + + In general, the TL build system uses the latest released versions of +the GNU build tools, installed directly from the original GNU releases +(e.g., by building them with 'configure --prefix=/usr/local/gnu' and +having 'PATH' start with '/usr/local/gnu/bin'). We have found that +trying to use the versions of these tools packaged for distros causes +many extra hassles, so don't do that, tempting as it may be. + + Currently the versions we use are: + + autoconf (GNU Autoconf) 2.69 + automake (GNU automake) 1.14.1 + bison (GNU Bison) 3.0.2 + flex 2.5.39 + ltmain.sh (GNU libtool) 2.4.2 + m4 (GNU M4) 1.4.17 + makeinfo (GNU texinfo) 5.2 + + These versions should be used to update the generated files (e.g., +'configure' or 'Makefile.in') in all or parts of the TL tree after their +dependencies have been changed. This can be done explicitly with the +top-level 'reautoconf' script or implicitly by using the configure +option '--enable-maintainer-mode'. + + The files in the Subversion repository (see +<http://tug.org/texlive/svn>) are all up to date, but unfortunately this +may not be reflected by their timestamps. (For starters, be sure to set +'use-commit-times=yes' in '~/.subversion/config' or the equivalent.) + + To avoid unnecessary runs of 'bison', 'flex', or 'makeinfo' it may be +necessary to 'touch' the generated ('.c', '.h', or '.info') files. With +'--enable-maintainer-mode' it may also be necessary to 'touch' first +'aclocal.m4', then 'configure' and 'config.h.in' (or 'c-auto.in'), and +finally all 'Makefile.in' files. Perhaps 'make -t' will help. + + +File: tlbuild.info, Node: Top-level directories, Next: Autoconf macros, Prev: Build system tools, Up: Layout and infrastructure + +6.2 Top-level directories +========================= + +Here is a brief description of the top-level directories in the TeX Live +source tree. + + As mentioned at the beginning of the chapter (*note Overview of build +system::), the main source directories are 'texk/' (TeX-specific +programs and libraries), 'utils/' (additional programs), and 'libs' +(generic libraries). + + The top-level directories 'am/' and 'm4/' contain 'Makefile.am' +fragments and Autoconf macros, respectively, used in many places. +Specifically, the file 'm4/kpse-pkgs.m4' contains lists of all program +and library modules; missing modules are silently ignored. (This helps +in creating cut-down source trees.) + + Each module contributes fragments (in separate files) defining its +capabilities and requirements to the 'configure.ac' scripts at the +top-level and in the subdirectories 'libs', 'utils', and 'texk'. The +fragments from program modules supply 'configure' options to disable or +enable building them; those from library modules specify if an installed +(system) version of that library can be used. This ultimately +determines which modules need to be built--although all modules must be +configured for the benefit of 'make' targets such as 'dist' or +'distcheck'. + + The top-level 'build-aux/' directory contains the common files +'compile', 'config.guess', 'config.sub', 'depcomp', etc. for most +packages, pulled from the GNU Gnulib sources +(<http://www.gnu.org/software/gnulib>), which in turn synchronizes with +the appropriate ultimate upstream repository. There are, however, +independent copies in, e.g., 'libs/freetype2/freetype-*/builds/unix/', +and similar places. The 'reautoconf' script does not touch those, but a +TL cron job keeps them in sync (nightly). + + The directory 'extra/' contains things which are not part of the TL +build, but are present just for (someone's) convenience, e.g., +'epstopdf' which is developed here. + + +File: tlbuild.info, Node: Autoconf macros, Next: Library modules, Prev: Top-level directories, Up: Layout and infrastructure + +6.3 Autoconf macros +=================== + +Here we describe some of the Autoconf macros used in several modules-not +a complete list, by any means. These general macros are supplemented by +module-specific macros in directories such as 'texk/dvipng/m4/'; some of +those are described in *note Library modules:: and *note Program +modules::. + +* Menu: + +* Setup: General setup macros. +* Programs: Macros for programs. +* Compilers: Macros for compilers. +* Libraries: Macros for libraries. +* Flags: Macros for library and header flags. +* Windows: Macros for Windows. + + +File: tlbuild.info, Node: General setup macros, Next: Macros for programs, Up: Autoconf macros + +6.3.1 General setup macros +-------------------------- + +The TL sources use two general setup macros: + + -- Macro: KPSE_BASIC (NAME, [MORE-OPTIONS]) + Initialize the basic TL infrastructure for module NAME: + 'AM_INIT_AUTOMAKE([foreign MORE-OPTIONS])' + 'AM_MAINTAINER_MODE' + 'KPSE_COMPILER_WARNINGS' + and make sure the C compiler understands function prototypes. This + is used for all generic library and program modules. + + -- Macro: KPSE_COMMON (NAME, [MORE-OPTIONS]) + Like 'KPSE_BASIC' but add: + 'LT_PREREQ([2.2.6])' + 'LT_INIT([win32-dll])' + 'AC_SYS_LARGEFILE' + 'AC_FUNC_FSEEKO' + and check for frequently used functions, headers, types, and + structures. This is used for TeX-specific modules. + + +File: tlbuild.info, Node: Macros for programs, Next: Macros for compilers, Prev: General setup macros, Up: Autoconf macros + +6.3.2 Macros for programs +------------------------- + +Macros for program checks: + + -- Macro: KPSE_CHECK_LATEX + Set 'LATEX' to the name of the first of 'latex', 'elatex', or + 'lambda' which exists in 'PATH', or to 'no' if none of them exists. + Call 'AC_SUBST' for 'LATEX'. The result of this test can be + overridden by setting the 'LATEX' environment variable or the cache + variable 'ac_cv_prog_LATEX'. + + -- Macro: KPSE_CHECK_PDFLATEX + Check for 'pdflatex' in 'PATH' and set 'PDFLATEX'. + + -- Macro: KPSE_CHECK_PERL + Check for 'perl' or 'perl5' in 'PATH' and set 'PERL'. + + -- Macro: KPSE_PROG_LEX + Call 'AC_PROG_LEX' and add the flag '-l' for 'flex'. + + +File: tlbuild.info, Node: Macros for compilers, Next: Macros for libraries, Prev: Macros for programs, Up: Autoconf macros + +6.3.3 Macros for compilers +-------------------------- + +Macros for compiler-related checks: + + -- Macro: KPSE_COMPILER_WARNINGS + When using the (Objective) C/C++ compiler, set + 'WARNING_[OBJ]C[XX']FLAGS to suitable warning flags (depending on + the value given to or implied for '--enable-compiler-warnings'). + Call 'AC_SUBST' for them. At the moment this only works for GNU + compilers, but could be extended to others if necessary. + + This macro caches its results in the 'kpse_cv_warning_cflags', ... + variables. + + -- Macro: KPSE_COMPILER_VISIBILITY + When using the C or C++ compiler, try to set + 'VISIBILITY_C[XX]FLAGS' to flags to hide external symbols. Call + 'AC_SUBST' for this variable. At the moment this only tests for + the compiler option '-fvisibility=hidden', but that could be + extended with more checks if necessary. + + This macro caches its results in the 'kpse_cv_visibility_cflags' or + 'kpse_cv_visibility_cxxflags' variable. + + -- Macro: KPSE_CXX_HACK + Provide the configure option '--enable-cxx-runtime-hack'. If + enabled and when using 'g++', try to statically link with + 'libstdc++', somewhat improving portability of the resulting + binary. + + This macro caches its result in the 'kpse_cv_cxx_hack' variable. + + +File: tlbuild.info, Node: Macros for libraries, Next: Macros for library and header flags, Prev: Macros for compilers, Up: Autoconf macros + +6.3.4 Macros for libraries +-------------------------- + +One macro for a library check: + + -- Macro: KPSE_LARGEFILE (VARIABLE, [EXTRA-DEFINE]) + Call 'AC_SYS_LARGEFILE' and 'AC_FUNC_FSEEKO' and append suitable + '-D' flags (optionally including '-DEXTRA-DEFINE') to VARIABLE. + + +File: tlbuild.info, Node: Macros for library and header flags, Next: Macros for Windows, Prev: Macros for libraries, Up: Autoconf macros + +6.3.5 Macros for library and header flags +----------------------------------------- + +Each library module 'libs/LIB' or 'texk/LIB' is supplemented by a macro +'KPSE_LIB_FLAGS' (all uppercase) that provides make variables for that +library. E.g., for 'libs/libpng': + + -- Macro: KPSE_LIBPNG_FLAGS + Provide the configure option '--with-system-libpng'. Set and + 'AC_SUBST' 'make' variables for modules using this library (either + an installed version or from the TeX Live tree): 'LIBPNG_INCLUDES' + for use in CPPFLAGS, LIBPNG_LIBS for use in LDADD, LIBPNG_DEPEND + for use as dependency, and LIBPNG_RULE defining 'make' rules to + rebuild the library. + + -- Macro: KPSE_ADD_FLAGS (LIBNAME) + Temporarily extend CPPFLAGS and LIBS with the values required for + the library module 'NAME'. + + -- Macro: KPSE_RESTORE_FLAGS + Restore 'CPPFLAGS' and 'LIBS' to their original values. + + As an example, the 'configure.ac' file for a hypothetical program +'utils/foo' using 'libpng', and hence 'zlib', would contain + KPSE_ZLIB_FLAGS + KPSE_LIBPNG_FLAGS + +and its 'Makefile.am' would be along these lines: + bin_PROGRAMS = foo + AM_CPPFLAGS = ${ZLIB_INCLUDES} ${LIBPNG_INCLUDES} + foo_LDADD = ${ZLIB_LIBS} ${LIBPNG_LIBS} + foo_DEPENDENCIES = ${ZLIB_DEPEND} ${LIBPNG_DEPEND} + ## Rebuild libz + @ZLIB_RULE@ + ## Rebuild libpng + @LIBPNG_RULE@ + + If it was necessary to examine whether certain 'zlib' or 'libpng' +features were available, 'configure.ac' should be continued this way: + KPSE_ADD_FLAGS([zlib]) + ... # tests for 'zlib' features, if any + KPSE_ADD_FLAGS([libpng]) + ... # tests for 'libpng' features + KPSE_RESTORE_FLAGS # restore 'CPPFLAGS' and 'LIBS' + + +File: tlbuild.info, Node: Macros for Windows, Prev: Macros for library and header flags, Up: Autoconf macros + +6.3.6 Macros for Windows +------------------------ + +Windows differs in several aspects from Unix-like systems, many of them +due to the lack of symbolic links. + + -- Macro: KPSE_CHECK_WIN32 + Check if compiling for a Windows system. The result is 'no' for + Unix-like systems (including Cygwin), 'mingw32' for Windows with + GCC, or 'native' for Windows with MSVC. The result is cached in the + 'kpse_cv_have_win32' variable. + + -- Macro: KPSE_COND_WIN32 + Call 'KPSE_CHECK_WIN32' and define the Automake conditional 'WIN32' + ('true' if the value of 'kpse_cv_have_win32' is not 'no'). + + -- Macro: KPSE_COND_MINGW32 + Call 'KPSE_COND_WIN32' and define the Automake conditional + 'MINGW32' ('true' if the value of 'kpse_cv_have_win32' is + 'mingw32'). + + -- Macro: KPSE_COND_WIN32_WRAP + Call 'KPSE_COND_WIN32' and define the Automake conditional + 'WIN32_WRAP' ('true' if the standard Windows wrapper + ('texk/texlive/w32_wrapper/runscript.exe') exists. This wrapper is + used on Windows instead of symlinks for the "linked scripts" (*note + Linked scripts::). + + -- Macro: KPSE_WIN32_CALL + Call 'KPSE_COND_WIN32', check if the file + 'texk/texlive/w32_wrapper/callexe.c' exists; if it does, create a + symlink in the build tree. Compiling 'callexe.c' with + '-DEXEPROG='"FOO.exe"'' and installing 'callexe.exe' as 'BAR.exe' + is used on Windows instead of a symlink 'BAR->FOO' for Unix-like + systems. + + +File: tlbuild.info, Node: Library modules, Next: Program modules, Prev: Autoconf macros, Up: Layout and infrastructure + +6.4 Library modules +=================== + +Here we discuss some specifics for a few of the libraries in TL, both +for the details themselves, and as a way of illuminating the general +structure and variation. + +* Menu: + +* 'png' library:: 'libs/libpng' +* 'zlib' library:: 'libs/zlib' +* 'freetype' library:: 'libs/freetype2' +* 'kpathsea' library:: 'texk/kpathsea' + + +File: tlbuild.info, Node: 'png' library, Next: 'zlib' library, Up: Library modules + +6.4.1 The 'png' library in 'libs/libpng' +---------------------------------------- + +This generic library uses the source tree in, e.g., the subdirectory +'libpng-1.5.17' with all modifications for TL recorded in +'libpng-1.5.17-PATCHES/*'. The 'configure.ac' fragment +'ac/withenable.ac' contains + + KPSE_WITH_LIB([libpng], [zlib]) + +specifying the module name, and indicating the dependency on 'zlib'. A +third literal argument 'tree' would specify that the library from the +TeX Live tree cannot be replaced by a system version. That not being +the case here, a second fragment 'ac/libpng.ac' contains + + KPSE_TRY_LIB([libpng], + [#include <png.h>], + [png_structp png; png_voidp io; png_rw_ptr fn; + png_set_read_fn(png, io, fn);]) + +thus providing the simple C code + + #include <png.h> + int main () + { png_structp png; png_voidp io; png_rw_ptr fn; + png_set_read_fn(png, io, fn); + return 0; } + +which Autoconf uses to verify the usability of a system version with C +code. The analogous macro 'KPSE_TRY_LIBXX' would check using C++ code. +These fragments are included by 'configure.ac' at the top level. + + For this library, among many other modules, a proxy build system for +TL is used ('configure.ac', 'Makefile.am', and 'include/Makefile.am'), +ignoring the distributed one. Consequently, a few generated files and +auxiliary scripts are removed from the distributed source tree. The +public headers 'png.h', 'pngconf.h', and 'pnglibconf.h' are "installed" +(as symlinks) under 'include/' in the build tree exactly as they are for +a system version under, e.g., '/usr/include/'. + + The module is supplemented by the file 'm4/kpse-libpng-flags.m4' that +defines the M4 macro 'KPSE_LIBPNG_FLAGS' used by all modules depending +on this library in their 'configure.ac' to generate the 'make' variables +'LIBPNG_INCLUDES' for use in 'CPPFLAGS', 'LIBPNG_LIBS' for use in +'LDADD', 'LIBPNG_DEPEND' for use as dependencies, and 'LIBPNG_RULE' +defining 'make' rules to rebuild the library. + + 'm4/kpse-libpng-flags.m4' also supplies the configure option +'--with-system-libpng' and uses 'pkg-config' to determine the flags +required for the system library. + + +File: tlbuild.info, Node: 'zlib' library, Next: 'freetype' library, Prev: 'png' library, Up: Library modules + +6.4.2 The 'zlib' library in 'libs/zlib' +--------------------------------------- + +This generic library is very much analogous to 'libpng', but without the +dependency on any other library. The file 'm4/kpse-zlib-flags.m4' +supplies the configure option '--with-system-zlib', as well as +'--with-zlib-includes' and '--with-zlib-libdir' to specify non-standard +locations of the 'zlib' headers and/or library. + + +File: tlbuild.info, Node: 'freetype' library, Next: 'kpathsea' library, Prev: 'zlib' library, Up: Library modules + +6.4.3 The 'freetype' library in 'libs/freetype2' +------------------------------------------------ + +This module uses a wrapper build system with an almost trivial +'configure.ac' and with a 'Makefile.am' that invokes 'configure' and +'make' for the distributed source, followed by 'make install' with the +build tree as destination. The flags required for the system library +are obtained through 'freetype-config'. + + +File: tlbuild.info, Node: 'kpathsea' library, Prev: 'freetype' library, Up: Library modules + +6.4.4 The 'kpathsea' library in 'texk/kpathsea' +----------------------------------------------- + +This is one of the TeX-specific libraries that are maintained as part of +TeX Live (*note (kpathsea)::). Despite being a core part of the TeX +system, it is not a terribly special case in the infrastructure. The +TeX libraries are Libtool libraries (static and/or shared) and are +installed by 'make install' together with the programs. They are, +however, not part of the TL DVD as distributed by TeX user groups, and +have never been officially released for standalone use. + + It is possible, and possibly even useful for distro builds (*note +Distro builds::, to specify the configure option +'--with-system-kpathsea' in order to use a system version of the library +and it may then be necessary to specify '--with-kpathsea-includes' +and/or '--with-kpathsea-libdir'. + + In addition to 'ac/withenable.ac' and 'ac/kpathsea.ac' there is a +third fragment 'ac/mktex.ac' included by both 'ac/withenable.ac' and +'configure.ac' that supplies configure options such as +'--enable-mktextfm-default', which determine the compile time default of +whether or not to run 'mktextfm' to generate a missing '.tfm' file. In +any case, however, the command line options '-mktex=tfm' or +'-no-mktex=tfm' for the TeX-like engines override this default. + + +File: tlbuild.info, Node: Program modules, Next: Extending TeX Live, Prev: Library modules, Up: Layout and infrastructure + +6.5 Program modules +=================== + +As with libraries (*note Library modules::), here we discuss the details +for a few of the programs in TL. + +* Menu: + +* 't1utils' package:: 'utils/t1utils' +* 'xindy' package:: 'utils/xindy' +* 'xdvik' package:: 'texk/xdvik' +* 'asymptote':: 'utils/asymptote' + + +File: tlbuild.info, Node: 't1utils' package, Next: 'xindy' package, Up: Program modules + +6.5.1 The 't1utils' package in 'utils/t1utils' +---------------------------------------------- + +Once again we use the distributed source tree 't1utils-1.38' with +modifications documented in 't1utils-1.38-PATCHES/*' and a proxy build +system consisting of 'configure.ac' and 'Makefile.am'. The fragment +'ac/withenable.ac' contains + + KPSE_ENABLE_PROG([t1utils]) + +specifying the module name without any dependencies, and supplies the +configure option '--disable-t1utils'. + + +File: tlbuild.info, Node: 'xindy' package, Next: 'xdvik' package, Prev: 't1utils' package, Up: Program modules + +6.5.2 The 'xindy' package in 'utils/xindy' +------------------------------------------ + +This module uses the distributed source tree 'xindy-2.4' with +modifications documented in 'xindy-2.4-PATCHES/*', a proxy +'configure.ac', and a wrapper 'Makefile.am' that descends into +'xindy-2.4'. The 'xindy' build requires that the distributed +'Makefile's allow a 'VPATH' build, can handle all targets, and do not +refer to '${top_srcdir}' or '${top_builddir}'. The fragment +'ac/withenable.ac' contains + + KPSE_ENABLE_PROG([xindy], , [disable native]) + m4_include(kpse_TL[utils/xindy/ac/xindy.ac]) + m4_include(kpse_TL[utils/xindy/ac/clisp.ac]) + +where 'disable' in the third argument indicates that 'xindy' is only +built if explicitly enabled by the user with 'configure --enable-xindy' +(the need for 'clisp' is too painful to require by default), and +'native' disallows cross compilation. The additional fragments +'ac/xindy.ac' and 'ac/clisp.ac' specify more 'configure' options to be +seen at the top level with 'ac/xindy.ac' also included by +'configure.ac'. + + +File: tlbuild.info, Node: 'xdvik' package, Next: 'asymptote', Prev: 'xindy' package, Up: Program modules + +6.5.3 The 'xdvik' package in 'texk/xdvik' +----------------------------------------- + +This package is maintained as part of the TeX Live tree with sources in +its top level directory and the subdirectory 'gui'. The fragment +'ac/withenable.ac' contains + + dnl extra_dirs = texk/xdvik/squeeze + KPSE_ENABLE_PROG([xdvik], [kpathsea freetype2], [x]) + m4_include(kpse_TL[texk/xdvik/ac/xdvik.ac]) + +thus specifying the dependency on the 'kpathsea', 'freetype', and X11 +libraries. The M4 comment (following 'dnl') signals the subsidiary +'squeeze/configure.ac'. This is needed because the main executable +'xdvi-bin' (to be installed as, e.g., 'xdvi-xaw') is for the 'host' +system whereas the auxiliary program 'squeeze/squeeze' has to run on the +'build' system and in a cross compilation they differ. + + The additional fragment 'ac/xdvik.ac' is also included by +'configure.ac' and supplies the configure option '--with-xdvi-x-toolkit' +also seen at the top-level. + + +File: tlbuild.info, Node: 'asymptote', Prev: 'xdvik' package, Up: Program modules + +6.5.4 The subdirectory 'utils/asymptote' +---------------------------------------- + +This subdirectory contains the sources for 'asy' and 'xasy' but due to +its complexity and prerequisites (e.g., OpenGL) it is not part of the TL +build system. These programs must be built and installed independently, +but are included on the TL DVD together with their support files. + + +File: tlbuild.info, Node: Extending TeX Live, Prev: Program modules, Up: Layout and infrastructure + +6.6 Extending TeX Live +====================== + +This section outlines the basic process for adding new packages to the +TL build system. + +* Menu: + +* Adding a new program module:: +* Adding a new generic library module:: +* Adding a new TeX-specific library module:: + + +File: tlbuild.info, Node: Adding a new program module, Next: Adding a new generic library module, Up: Extending TeX Live + +6.6.1 Adding a new program module +--------------------------------- + +A TeX-specific program module in a subdirectory 'texk/PROG' may use the +TeX-specific libraries and is included by adding its name 'PROG' to the +M4 list 'kpse_texk_pkgs' defined in 'm4/kpse-pkgs.m4'. + + A generic program module in a subdirectory 'utils/PROG' must not use +the TeX-specific libraries and is included by adding its name 'PROG' to +the M4 list 'kpse_utils_pkgs' in 'm4/kpse-pkgs.m4'. + + In either case, apart from the program sources and build system +('configure.ac' and 'Makefile.am'), the subdirectory 'texk/PROG' or +'utils/PROG' must provide a fragment 'ac/withenable.ac' that contains +the M4 macro 'KPSE_ENABLE_PROG' defined in 'm4/kpse-setup.m4' with +'PROG' as the mandatory first argument and three optional arguments: + + 1. a list of required libraries from the TL tree; + + 2. a list of options ('disable' if this module is not to be built + without the configure option '--enable-PROG', 'native' if cross + compilation is not possible, 'x' if the program requires X11 + libraries); + + 3. and a comment added to the help text for the 'configure' option + '--enable-PROG' or '--disable-PROG'. + + If the module requires specific configure options to be seen at the +top-level, they should be defined in an additional fragment 'ac/PROG.ac' +included from 'ac/withenable.ac' and 'configure.ac'. + + +File: tlbuild.info, Node: Adding a new generic library module, Next: Adding a new TeX-specific library module, Prev: Adding a new program module, Up: Extending TeX Live + +6.6.2 Adding a new generic library module +----------------------------------------- + +A generic library module in a subdirectory 'libs/LIB' must not depend on +TeX-specific libraries, by definition. It is included by adding its +name 'LIB' to the M4 list 'kpse_libs_pkgs' in 'm4/kpse-pkgs.m4'--before +any other libraries from the TeX Live tree on which it depends. + + As with program modules, the subdirectory 'libs/LIB' must contain the +sources and build system for the library (and any installable support +programs) and a fragment 'ac/withenable.ac' that contains the M4 macro +'KPSE_WITH_LIB' defined in 'm4/kpse-setup.m4' with 'LIB' as the +mandatory first argument and two optional arguments: a list of required +libraries from the TL tree, and a list of options (currently there is +only one: specify 'tree' if this library cannot be replaced by a system +version). + + If a system version can be used, a second fragment 'ac/LIB.ac' is +needed, containing the M4 macro 'KPSE_TRY_LIB' (or 'KPSE_TRY_LIBXX') +with 'LIB' as the mandatory first argument and two additional arguments +for the Autoconf macro 'AC_LANG_PROGRAM' used to compile and link a +small C (or C++) program as sanity check for using the system library. + + In addition a file 'm4/kpse-LIB-flags' (at the top level) must define +the M4 macro 'KPSE_LIB_FLAGS' (all uppercase) setting up the 'make' +variables 'LIB_INCLUDES', 'LIB_LIBS', 'LIB_DEPEND', and 'LIB_RULE' with +the values required for 'CPPFLAGS', 'LDADD', dependencies, and a +(multi-line) 'make' rule to rebuild the library when necessary. All of +that is needed for the library from the TL tree and, if supported, for a +system version. + + If a system library is allowed, 'KPSE_LIB_FLAGS' also provides the +configure option '--with-system-LIB' and uses the additional M4 macro +'KPSE_LIB_SYSTEM_FLAGS' to generate the 'make' variables for a system +library. Furthermore the definition of the M4 macro +'KPSE_ALL_SYSTEM_FLAGS' in 'm4/kpse-pkgs.m4' must be extended by the +line: + 'AC_REQUIRE([KPSE_LIB_SYSTEM_FLAGS])' + + +File: tlbuild.info, Node: Adding a new TeX-specific library module, Prev: Adding a new generic library module, Up: Extending TeX Live + +6.6.3 Adding a new TeX-specific library module +---------------------------------------------- + +A TeX-specific library module in a subdirectory 'texk/LIB' may depend on +other TeX-specific libraries but must not depend on any generic library +from the TL tree. It is included in the same general ways as a generic +library (see the previous section), with these modifications: + + * The library name 'LIB' is added to the M4 list 'kpse_texlibs_pkgs' + also in 'm4/kpse-pkgs.m4'. + + * The fragment 'ac/withenable.ac' must use 'KPSE_WITH_TEXLIB'. + + +File: tlbuild.info, Node: Configure options, Next: Cross compilation, Prev: Layout and infrastructure, Up: Top + +7 Configure options +******************* + +Corresponding to the large number of program and library modules there +are a large number 'configure' options, most of which are described +here. The command + 'configure --help' +at the top level gives an exhaustive list of all global options and a +few important module-specific ones, whereas, e.g., + 'texk/lcdf-typetools/configure --help' +also displays the 'lcdf-typetools' specific options, which are not shown +by the top-level '--help'. + + The help text also mentions several influential environment +variables, but for TeX Live it is better to specify them as assigments +on the command line. + + The './Build' script used to make the binaries shipped with TeX Live +invokes the top-level 'configure' with a few additional options (*note +Building::). The defaults discussed below are those for the actual +'configure' script; invoking 'configure' via './Build' may yield +different results. + + Defaults for most options are set at the top level and propagated +explicitly to all subdirectories. Options specified on the command line +are checked for consistency but never modified. + +* Menu: + +* Global configure options:: +* Program-specific configure options:: +* Library-specific configure options:: +* Variables for configure:: + + +File: tlbuild.info, Node: Global configure options, Next: Program-specific configure options, Up: Configure options + +7.1 Global configure options +============================ + +Here are the global configure options. + +* Menu: + +* '--disable-native-texlive-build':: +* '--prefix' '--bindir' ...:: +* '--disable-largefile':: +* '--disable-missing':: +* '--enable-compiler-warnings='LEVEL:: +* '--enable-cxx-runtime-hack':: +* '--enable-maintainer-mode':: +* '--enable-multiplatform':: +* '--enable-shared':: +* '--enable-silent-rules':: +* '--without-ln-s':: +* '--without-x':: + + +File: tlbuild.info, Node: '--disable-native-texlive-build', Next: '--prefix' '--bindir' ..., Up: Global configure options + +7.1.1 '--disable-native-texlive-build' +-------------------------------------- + +If enabled (the default), build for a TL binary distribution as shipped +by the TeX user groups. This requires GNU 'make' and implies +'--enable-multiplatform' and '--enable-cxx-runtime-hack' (unless they +are explicitly disabled), and enforces '--disable-shared'. + + If building TL for a GNU/Linux or other distribution, this should be +disabled and system versions of most libraries would be used (*note +Distro builds::). This may fail without GNU 'make', but will be tried +regardless. + + A related option, '--enable-texlive-build', is automatically passed +to all subdirectories (and cannot be disabled). Subdirectories that can +also be built independently from the TL tree (such as 'utils/xindy' and +'texk/dvipng') can use this option, e.g., to choose TL-specific +installation paths. + + +File: tlbuild.info, Node: '--prefix' '--bindir' ..., Next: '--disable-largefile', Prev: '--disable-native-texlive-build', Up: Global configure options + +7.1.2 '--prefix', '--bindir', ... +--------------------------------- + +These standard Autoconf options specify various installation directories +as usual. For the complete list, *note Installation directories::. + + Also as usual, all values are prefixed by the value of 'DESTDIR', if +set, on the 'make' command line (*note Installation in a temporary +location: (automake)Staged Installs.). + + +File: tlbuild.info, Node: '--disable-largefile', Next: '--disable-missing', Prev: '--prefix' '--bindir' ..., Up: Global configure options + +7.1.3 '--disable-largefile' +--------------------------- + +Omit large file support (LFS), needed on most 32-bit Unix systems for +files with 2GB or more. Regardless of this, the size of 'DVI' and 'GF' +files must always be <2GB, due to the file format specifications. + + With LFS, there is no fixed limit on the size of PDF files created by +'pdftex' or PostScript files created by 'dvips'. The size of PDF images +included by 'pdftex' must, however, be <4GB when using 'xpdf' and <2GB +when using older versions of 'poppler' (even on 64-bit systems with +LFS), whereas 'poppler' versions 0.23 and later impose no such limit. + + +File: tlbuild.info, Node: '--disable-missing', Next: '--enable-compiler-warnings='LEVEL, Prev: '--disable-largefile', Up: Global configure options + +7.1.4 '--disable-missing' +------------------------- + +Immediately terminate the build process if a requested program or +feature must be disabled, e.g., due to missing libraries. This can help +when figuring out a specific (sub)set of modules to enable. + + +File: tlbuild.info, Node: '--enable-compiler-warnings='LEVEL, Next: '--enable-cxx-runtime-hack', Prev: '--disable-missing', Up: Global configure options + +7.1.5 '--enable-compiler-warnings='LEVEL +---------------------------------------- + +Enable various levels of compiler warnings for (Objective) C and C++: +the LEVEL value can be one of: 'no min yes max all'. The default is +'yes' in 'maintainer-mode' (see below) and 'min' otherwise. This option +defines 'WARNING_[OBJ]C[XX]FLAGS' but these flags are not used in all +library and program modules. Using them should help to resolve +portability problems. + + At present, these warning flags are only defined for the GNU +compilers but flags for other compilers could be added when needed. + + +File: tlbuild.info, Node: '--enable-cxx-runtime-hack', Next: '--enable-maintainer-mode', Prev: '--enable-compiler-warnings='LEVEL, Up: Global configure options + +7.1.6 '--enable-cxx-runtime-hack' +--------------------------------- + +If enabled (as it is for the native TL build) and when using 'g++', try +to statically link with 'libstdc++', somewhat improving portability of +the resulting binary. *Note Macros for compilers::. + + +File: tlbuild.info, Node: '--enable-maintainer-mode', Next: '--enable-multiplatform', Prev: '--enable-cxx-runtime-hack', Up: Global configure options + +7.1.7 '--enable-maintainer-mode' +-------------------------------- + +Enable 'make' rules and dependencies not useful (and sometimes +confusing) to the casual user. This requires current versions of the +GNU build tools (*note Build system tools::), as it automatically +rebuilds infrastructure files as needed. *Note 'missing' and +'AM_MAINTAINER_MODE': (automake)maintainer-mode. + + +File: tlbuild.info, Node: '--enable-multiplatform', Next: '--enable-shared', Prev: '--enable-maintainer-mode', Up: Global configure options + +7.1.8 '--enable-multiplatform' +------------------------------ + +If enabled, install executables and libraries in per-platform +subdirectories of 'EPREFIX/bin' and 'EPREFIX/lib' where EPREFIX is the +value given or implied for 'exec_prefix'. This can be overridden by +explicitly '--bindir=DIR' or '--libdir=DIR'. In any case, the values +for 'bindir' and 'libdir' are automatically propagated to all +subdirectories. + + +File: tlbuild.info, Node: '--enable-shared', Next: '--enable-silent-rules', Prev: '--enable-multiplatform', Up: Global configure options + +7.1.9 '--enable-shared' +----------------------- + +Build shared versions of the TeX-specific libraries such as +'libkpathsea'. This is not allowed for a native TL build (i.e., +'--disable-native-texlive-build' must also be specified). + + +File: tlbuild.info, Node: '--enable-silent-rules', Next: '--without-ln-s', Prev: '--enable-shared', Up: Global configure options + +7.1.10 '--enable-silent-rules' +------------------------------ + +Enable the use of less verbose build rules. When using GNU 'make' (or +another 'make' implementation supporting nested variable expansions), +you can specify 'V=1' on the 'make' command line to get more verbosity, +or 'V=0' to get less, regardless of this option. + + +File: tlbuild.info, Node: '--without-ln-s', Next: '--without-x', Prev: '--enable-silent-rules', Up: Global configure options + +7.1.11 '--without-ln-s' +----------------------- + +Required when using a system without a working 'ln -s' to build binaries +for a Unix-like system. However, 'make install' will not create +anything useful and might even fail. + + +File: tlbuild.info, Node: '--without-x', Prev: '--without-ln-s', Up: Global configure options + +7.1.12 '--without-x' +-------------------- + +Disable all programs using the X Window System. + + +File: tlbuild.info, Node: Program-specific configure options, Next: Library-specific configure options, Prev: Global configure options, Up: Configure options + +7.2 Program-specific configure options +====================================== + +Here are (some of) the program-specific 'configure' options. + +* Menu: + +* '--enable-PROG' '--disable-PROG':: +* '--disable-all-pkgs':: +* Configure options for 'texk/web2c':: +* Configure options for 'texk/bibtex-x':: +* Configure options for 'texk/dvipdfm-x':: +* Configure options for 'texk/dvisvgm':: +* Configure options for 'texk/texlive':: +* Configure options for 'texk/xdvik':: +* Configure options for 'utils/xindy':: + + +File: tlbuild.info, Node: '--enable-PROG' '--disable-PROG', Next: '--disable-all-pkgs', Up: Program-specific configure options + +7.2.1 '--enable-PROG', '--disable-PROG' +--------------------------------------- + +Do or do not build and install the program(s) of the module 'PROG'. + + +File: tlbuild.info, Node: '--disable-all-pkgs', Next: Configure options for 'texk/web2c', Prev: '--enable-PROG' '--disable-PROG', Up: Program-specific configure options + +7.2.2 '--disable-all-pkgs' +-------------------------- + +Do not build any program modules by default--only those explicitly +enabled. This is useful when one wants to work on only a single +program, which is specified with an additional '--enable' option, e.g., +'--enable-dvipdfm-x'. It's still simplest to check out and configure +the whole source tree, but at least only the program you are interested +in, and its dependencies, are built. The 'configure' will generally +take less than a minute with everything disabled. (It is a good idea to +run 'make check' after doing this, and after making any changes, to +ensure that whatever tests have been written still pass.) + + Without this option, all modules are built except those that are +explicitly disabled or specify 'disable' in their 'ac/withenable.ac' +fragment. + + +File: tlbuild.info, Node: Configure options for 'texk/web2c', Next: Configure options for 'texk/bibtex-x', Prev: '--disable-all-pkgs', Up: Program-specific configure options + +7.2.3 Configure options for 'texk/web2c' +---------------------------------------- + +'--with-banner-add=STR' +Add 'STR' to the default version string ('TeX Live YEAR' or 'Web2C +YEAR') appended to banner lines. This is ignored for a native TL build, +but distro builds should specify, e.g., '/SOMEDISTRO'. + +'--with-editor=CMD' +Specify the command 'CMD' to invoke from the 'e' option of TeX-like +engines, replacing the default 'vi +%d '%s'' for Unix or 'texworks +--position=%d "%s"' for Windows. + +'--with-fontconfig-includes=DIR', '--with-fontconfig-libdir=DIR' +Building XeTeX on non-Mac systems requires the 'fontconfig' library +headers and code. If one or both of these options are given, the +required flags are derived from them; otherwise, they are determined via +'pkg-config' (if present). + +'--with-mf-x-toolkit' +Use the X toolkit ('libXt') for Metafont (the default is to use the +lowest-level 'Xlib' support; it seems this has the best chance of +working across X installations nowadays). + +'--disable-dump-share' +Make the 'fmt'/'base' dump files architecture dependent (somewhat faster +on LittleEndian architectures). + +'--disable-ipc' +Disable TeX's '--ipc' option. + +'--disable-mf-nowin' +Do not build a separate non-graphically-capable Metafont ('mf-nowin'). + +'--disable-omfonts' +Build the WEB versions of the Omega font utilities 'ofm2opl', 'opl2ofm', +'ovf2ovp', and 'ovp2ovf' instead of the C version 'omfonts'. The WEB +and C versions should be roughly equivalent. + +'--disable-tex', '--enable-etex', ... +Do not or do build the various TeX, Metafont, and MetaPost engines +(defaults are defined in the fragment 'texk/web2c/ac/web2c.ac'). + +'--disable-web-progs' +Do not build the core WEB programs 'bibtex', ..., 'weave'. Useful if, +e.g., you only want to (re)build some engines. + +'--enable-auto-core' +This option causes TeX and Metafont to produce a core dump when a +particular hacky filename is encountered, for use in creating preloaded +binaries. This is rarely done nowadays. + +'--enable-libtool-hack' +If enabled (which is the default for all platforms), prevents 'libtool' +from linking explicitly with dependencies of 'libfontconfig' such as +'libexpat'. + +'--enable-*win' +Include various types of other window support for Metafont (EPSF output, +'mftalk', old terminals, ...). + +'--enable-tex-synctex', '--disable-etex-synctex', ... +Build the TeX engines with or without 'SyncTeX' support; ignored for a +native TeX Live build, defaults are again defined in +'texk/web2c/ac/web2c.ac'. + + +File: tlbuild.info, Node: Configure options for 'texk/bibtex-x', Next: Configure options for 'texk/dvipdfm-x', Prev: Configure options for 'texk/web2c', Up: Program-specific configure options + +7.2.4 Configure options for 'texk/bibtex-x' +------------------------------------------- + +The former programs 'bibtex8' and 'bibtexu' have been merged into the +module 'bibtex-x' (extended BibTeX). + +'--disable-bibtex8' +Do not build the 'bibtex8' program. + + -disable-bibtexu '--disable-bibtexu' +Do not build the 'bibtexu' program (building 'bibtexu' requires 'ICU' +libraries). + + +File: tlbuild.info, Node: Configure options for 'texk/dvipdfm-x', Next: Configure options for 'texk/dvisvgm', Prev: Configure options for 'texk/bibtex-x', Up: Program-specific configure options + +7.2.5 Configure options for 'texk/dvipdfm-x' +-------------------------------------------- + +The former modules 'dvipdfmx' (extended DVI to PDF converter) and +'xdvipdfmx' (the same, as used by XeTeX) have been merged into +'dvipdfm-x' at the source level. Two separate binaries are still +created by default. In addition, 'dvipdfm' is created as a symlink to +'dvipdfmx', with backward-compatible (very slightly different) behavior. + +'--disable-dvipdfmx' +Do not build the 'dvipdfmx' program or create the 'dvipdfm' symlink. + +'--disable-xdvipdfmx' +Do not build the 'xdvipdfmx' program (building 'xdvipdfmx' requires the +'freetype' library). + + +File: tlbuild.info, Node: Configure options for 'texk/dvisvgm', Next: Configure options for 'texk/texlive', Prev: Configure options for 'texk/dvipdfm-x', Up: Program-specific configure options + +7.2.6 Configure options for 'texk/dvisvgm' +------------------------------------------ + +'--with-system-libgs' +Build 'dvisvgm' using installed Ghostscript ('gs') headers and library +(not allowed for a native TL build). The default is to load the 'gs' +library at runtime if possible, or otherwise disable support for +PostScript specials. + +'--without-libgs' +Build 'dvisvgm' without PostScript support at all. Because the dynamic +loading just mention defeats all attempts at static linking, the result +can crash due to library incompatibilities, e.g., on CentOS 5. + +'--with-libgs-includes=DIR', '--with-libgs-libdir=DIR' +Specify non-standard locations of the Ghostscript headers and library. + + +File: tlbuild.info, Node: Configure options for 'texk/texlive', Next: Configure options for 'texk/xdvik', Prev: Configure options for 'texk/dvisvgm', Up: Program-specific configure options + +7.2.7 Configure options for 'texk/texlive' +------------------------------------------ + +'--disable-linked-scripts' +Do not install the "linked scripts" (*note Linked scripts::), except for +the TL scripts required to run 'texlinks'. + + +File: tlbuild.info, Node: Configure options for 'texk/xdvik', Next: Configure options for 'utils/xindy', Prev: Configure options for 'texk/texlive', Up: Program-specific configure options + +7.2.8 Configure options for 'texk/xdvik' +---------------------------------------- + +'--with-gs=FILENAME' +Hardwire the location of Ghostscript ('gs'). + +'--with-xdvi-x-toolkit=KIT' +Use toolkit 'KIT' for 'xdvik', one of: 'motif xaw xaw3d neXtaw'. The +default is 'motif' if available, else 'xaw'. + +'--enable-xi2-scrolling' +Use XInput 2.1 "smooth scrolling" if available. (default: yes, except +for a native TL build). + + +File: tlbuild.info, Node: Configure options for 'utils/xindy', Prev: Configure options for 'texk/xdvik', Up: Program-specific configure options + +7.2.9 Configure options for 'utils/xindy' +----------------------------------------- + +'--enable-xindy-rules' +Build and install 'xindy' rules (default: yes, except for a native TL +build). + +'--enable-xindy-docs' +Build and install 'xindy' documentation (default: yes, except for a +native TL build). + +'--with-clisp-runtime=FILENAME' +Specifies the Full path for the CLISP runtime file ('lisp.run' or +'lisp.exe') to be installed. When specified as 'default' (the default +for a native TL build) the path is determined by the CLISP executable; +the value 'system' (not allowed for a native TL build, but the default +for a non-native one) indicates that 'xindy' will use the installed +version of 'clisp' (which must be identical to the one used to build +'xindy'). + +'--with-recode' +Use 'recode' instead of 'iconv' to build the 'xindy' rules and +documentation, required for some systems where 'iconv' is missing or +broken. + + +File: tlbuild.info, Node: Library-specific configure options, Next: Variables for configure, Prev: Program-specific configure options, Up: Configure options + +7.3 Library-specific configure options +====================================== + +Here are (some of) the library-specific 'configure' options, starting +with this generic one: + +'--with-system-LIB' + + Use an installed (system) version of the library 'LIB'; this option +exists for most libraries, but is not allowed for a native TL build. +Using a system version implies also using the system versions of all +libraries (if any) that LIB depends on. + + For many libraries '--with-LIB-includes=DIR' and +'--with-LIB-libdir=DIR' to specify non-standard search locations; others +use 'pkg-config' or similar to determine the required flags. + + The top-level 'configure' script performs a consistency check for all +required system libraries and bails out if tests fail. + +* Menu: + +* Configure options for 'kpathsea':: +* Configure options for system 'poppler':: + + +File: tlbuild.info, Node: Configure options for 'kpathsea', Next: Configure options for system 'poppler', Up: Library-specific configure options + +7.3.1 Configure options for 'kpathsea' +-------------------------------------- + +'--enable-CMD-default', '--disable-CMD-default' +Determine the compile time default whether or not to run CMD, one of: +'mkocp' + (Omega compiled translation process file) +'mkofm' + (Omega font metrics file) +'mktexfmt' + (format/base dump file) +'mktexmf' + (Metafont source) +'mktexpk' + (PK bitmap font) +'mktextex' + (TeX source) +'mktextfm' + (TFM file) + +to generate the specified type of file dynamically. The default can be +overridden by the user in any case. + + +File: tlbuild.info, Node: Configure options for system 'poppler', Prev: Configure options for 'kpathsea', Up: Library-specific configure options + +7.3.2 Configure options for system 'poppler' +-------------------------------------------- + +Building LuaTeX and XeTeX requires 'poppler', either from the TL tree or +system headers and library. Building pdfTeX requires either 'xpdf' from +the TeX Live tree or system 'poppler' headers and library. + +'--with-system-poppler' +Use a system version (0.18 or newer) of 'poppler' for LuaTeX and XeTeX, +and use 'pkg-config' to obtain the required flags. + +'--with-system-xpdf' +Use a system version (0.12 or better) of 'poppler' (and 'pkg-config') +for pdfTeX instead of 'xpdf' from the TL tree. *Note +'--disable-largefile'::. + + +File: tlbuild.info, Node: Variables for configure, Prev: Library-specific configure options, Up: Configure options + +7.4 Variables for configure +=========================== + +The values for these variables can be specified as 'configure' arguments +of the form 'VAR=VALUE'. They can also be defined in the environment, +but that might not work for cross compilations. + +'CC' +'CXX' +'CPPFLAGS' + And plenty more. As usual with Autoconf, these variables specify + the name (or full path) of compilers, preprocessor flags, and + similar. *Note autoconf: (GNU Autoconf)Preset Output Variables. + +'CLISP' + Name (or full path) of the 'clisp' executable, used to build + 'xindy'. + +'FT2_CONFIG' +'ICU_CONFIG' +'PKG_CONFIG' + These specify the name (or path) for the 'freetype-config', + 'icu-config', and 'pkg-config' commands used to determine the flags + required for system versions of 'libfreetype', the ICU libraries, + or many other libraries. + +'KPSEWHICH' + Name (or path) of an installed 'kpsewhich' binary, used by 'make + check' to determine the location of, e.g., 'cmbx10.tfm'. + +'MAKE' +'SED' + And more. Name (or path) of the 'make', 'sed', and similar + programs; used at the top level and propagated to all + subdirectories. + +'PERL' +'LATEX' +'PDFLATEX' + Name (or full path) for the 'perl', 'latex', and 'pdflatex' + commands used, e.g., to build the 'xindy' documentation. + + +File: tlbuild.info, Node: Cross compilation, Next: Coding conventions, Prev: Configure options, Up: Top + +8 Cross compilation +******************* + +In a cross compilation a "build" system is used to create binaries to be +executed on a "host" system with different hardware and/or operating +system. + + In simple cases, the build system can execute binaries for the host +system. This typically occurs for bi-arch systems where, e.g., +'i386-linux' binaries can run on 'x86_64-linux' systems and 'win32' +binaries can run on 'win64' systems. Although sometimes called "native +cross", technically this is not cross compilation at all. In most such +cases it suffices to specify suitable compiler flags. It might be +useful to add the configure option '--build=HOST' to get the correct +canonical host name, but note that this should _not_ be '--host=HOST' +(*note (autoconf)Hosts and Cross-Compilation::). + + In order to build, e.g., 32-bit binaries with 'clang' on a 64-bit OSX +system one could use + './Build --build=i386-apple-darwin CC='clang -arch i386'' \ + 'CXX='clang++ -arch i386' OBJCXX='clang++ -arch i386'' + +* Menu: + +* Cross configuring:: Configuring for cross compilation. +* Cross problems:: Cross compilation problems. + + +File: tlbuild.info, Node: Cross configuring, Next: Cross problems, Up: Cross compilation + +8.1 Cross configuring +===================== + +In a standard cross compilation, binaries for the host system cannot +execute on the build system and it is necessary to specify the configure +options '--host=HOST' and '--build=BUILD' with two different values. + + Building binaries requires suitable "cross" tools, e.g., compiler, +linker, and archiver, and perhaps a "cross" version of 'pkg-config' and +similar to locate host system libraries. Autoconf expects that these +cross tools are given by their usual variables or found under their +usual name prefixed with 'HOST-'. Here a list of such tools and +corresponding variables: + + ar AR + freetype-config FT2_CONFIG + g++ CXX + gcc CC + icu-config ICU_CONFIG + objdump OBJDUMP + pkg-config PKG_CONFIG + ranlib RANLIB + strip STRIP + +In order to, e.g., build 'mingw32' binaries on 'x86_64-linux' with a +cross compiler found as 'i386-pc-mingw32-gcc' one would specify + + --host=i386-pc-mingw32 --build=x86_64-linux-gnu + +or perhaps + + --host=mingw32 --build=x86_64-linux CC=i386-pc-mingw32-gcc + +but this latter, especially, might require adding 'CXX' and others. + + Configure arguments such as 'CFLAGS=...' refer to the cross compiler. +If necessary, you can specify compilers and flags for the few auxiliary +C and C++ programs required for the build process as configure arguments + + BUILDCC=... + BUILDCPPFLAGS=... + BUILDCFLAGS=... + BUILDCXX=... + BUILDCXXFLAGS=... + BUILDLDFLAGS=... + + +File: tlbuild.info, Node: Cross problems, Prev: Cross configuring, Up: Cross compilation + +8.2 Cross problems +================== + +The fact that binaries for the host system cannot be executed on the +build system causes some problems. + + One problem is that configure tests using 'AC_RUN_IFELSE' can compile +and link the test program but cannot execute it. Such tests should be +avoided if possible and otherwise must supply a pessimistic test result. + + Another problem arises if the build process must execute some +(auxiliary or installable) programs. Auxiliary programs can be placed +into a subdirectory that is configured natively as is done for +'texk/web2c/web2c', 'texk/dvipsk/squeeze', and 'texk/xdvik/squeeze'. +The module 'libs/freetype2' uses the value of 'CC_BUILD', 'BUILD-gcc', +'gcc', or 'cc' as compiler for the auxiliary program. + + Building LuaTeX (or LuaJITTeX) uses the auxiliary program 'txt2zlib' +to create 'pdflua.c' and, if necessary, update the distributed version +of that file. In a cross compilation we simply use that distributed +file. + + The situation for installable programs needed by the build process is +somewhat different. A quite expensive possibility, chosen for the ICU +libraries in module 'libs/icu', is to first compile natively for the +build system and in a second step to use these (uninstalled) programs +during the cross compilation. + + This approach would also be possible for the tools such as 'tangle' +used in the module 'texk/web2c' to build the WEB programs, but that +would require first building a native 'kpathsea' library. To avoid this +complication, cross compilation of the WEB or CWEB programs requires +sufficiently recent installed versions of 'tangle', 'ctangle', +'otangle', and 'tie'. + + Building 'xindy' requires running the host system 'clisp' binary, +thus cross compilation is not possible. + + +File: tlbuild.info, Node: Coding conventions, Next: install-tl, Prev: Cross compilation, Up: Top + +9 Coding conventions +******************** + +Ideally, building all of TeX Live with '--enable-compiler-warnings=max' +should produce no (GCC) compiler warnings at all. In spite of +considerable efforts into that direction we are still far from that goal +and there are reasons that we may never fully reach it. Below are some +rules about declarations of functions or variables and the use of +'const'. These rules should be applied to all parts of the TeX Live +tree, except some of those maintained independently. + +* Menu: + +* Declarations and definitions:: +* Const:: + + +File: tlbuild.info, Node: Declarations and definitions, Next: Const, Up: Coding conventions + +9.1 Declarations and definitions +================================ + +C standards +........... + +The TeX Live build system no longer supports pre-ANSI C compilers. Thus +all function prototypes and definitions must conform to the ANSI C +standard (including 'void' in the declaration of C functions with no +parameters). On the other hand, TL is built for a wide variety of +systems, not all of which support the C99 standard. Therefore using C99 +features should be avoided if that can easily be done. In particular C +code must not contain declarations after statements or C++-style +comments. + + If some C99 (or later) constructs must be used, the module should +verify that they are available and otherwise provide an alternative. +For example, the module 'texk/chktex' uses the C99 function 'stpcpy()' +that may or may not be available on a particular system. It uses +'AC_CHECK_DECLS([stpcpy])' in 'configure.ac' to test this, and provides +the perhaps slightly less efficient alternative + + #if !(defined HAVE_DECL_STPCPY && HAVE_DECL_STPCPY) + #static inline char *stpcpy(char *dest, const char *src) + { + return strcpy(dest, src) + strlen(src); + } + #endif + +in the file 'Utility.h'. + +Static functions +................ + +Functions used in only one file should be declared 'static'; they +require no prototype except as forward declaration. + +Extern functions +................ + +Functions not declared 'static', usually because they are used in +several files, require an ('extern') prototype in exactly one header +file, which is included in the file defining the function and in all +files using that function--this is the only way to guarantee consistency +between definition and use. There should be no 'extern' declarations +sprinkled throughout the C code (with or without comments as to where +that function is defined). + +Variable declarations +..................... + +The declaration of global variables follows analogous rules: they are +either declared 'static' if used in only one file or declared 'extern' +in exactly one header and instantiated in exactly one file. + + +File: tlbuild.info, Node: Const, Prev: Declarations and definitions, Up: Coding conventions + +9.2 Const +========= + +The 'const' feature of C is valuable, but easy to mis-use. + +Function parameters +................... + +Ideally, a function parameter not modified by the function should be +declared as 'const'. This is important in particular for strings +('char*') because the actual arguments are often string literals. It is +perfectly legitimate and safe to use a type 'char*' value for a type +'const char*' variable (in an assignment, as initializer, as function +argument, or as return value). It is equally safe to use a type +'char**' value for a type 'const char*const*' variable, but not for a +type 'const char**' variable since that might cause modification of a +quantity supposed to be constant. + + Getting all 'const' qualifiers right can get quite involved but can +almost always be done. There are only a couple notable exceptions: the +X11 headers are full of declarations that ought to use 'const' but do +not, and the same is true to some extent for 'libfreetype' (but, +thankfully, not for 'zlib' nowadays). + +What must be avoided with 'const' +................................. + +The GCC compiler warnings "assignment discards qualifiers..." and +analogous warnings for "initialization", "passing arg", or "return" must +be strenously avoided in our own code. The only exception is when they +are caused by X11 headers or macros or other third party code. + +What should be avoided with 'const' +................................... + +A type cast, e.g., from 'const char*' to 'char*' does not solve any +problems; depending on warning options, it may only hide them. +Therefore such casts should be avoided whenever possible and otherwise +must be carefully analyzed to make sure that they cannot cause the +modification of quantities supposed to be constant. + + +File: tlbuild.info, Node: install-tl, Next: tlmgr, Prev: Coding conventions, Up: Top + +Appendix A install-tl +********************* + +* Menu: + +* install-tl NAME:: +* install-tl SYNOPSIS:: +* install-tl DESCRIPTION:: +* install-tl REFERENCES:: +* install-tl OPTIONS:: +* install-tl ENVIRONMENT VARIABLES:: +* install-tl AUTHORS AND COPYRIGHT:: + + +File: tlbuild.info, Node: install-tl NAME, Next: install-tl SYNOPSIS, Up: install-tl + +A.1 NAME +======== + +install-tl - TeX Live cross-platform installer + + +File: tlbuild.info, Node: install-tl SYNOPSIS, Next: install-tl DESCRIPTION, Prev: install-tl NAME, Up: install-tl + +A.2 SYNOPSIS +============ + +install-tl [_option_]... + + install-tl.bat [_option_]... + + +File: tlbuild.info, Node: install-tl DESCRIPTION, Next: install-tl REFERENCES, Prev: install-tl SYNOPSIS, Up: install-tl + +A.3 DESCRIPTION +=============== + +This installer creates a runnable TeX Live installation from various +media, including over the network. The installer works across all +platforms supported by TeX Live. For information on initially +downloading the TeX Live, see <http://tug.org/texlive/acquire.html>. + + The basic idea of TeX Live installation is to choose one of the +top-level _schemes_, each of which is defined as a different set of +_collections_ and _packages_, where a collection is a set of packages, +and a package is what contains actual files. + + Within the installer, you can choose a scheme, and further customize +the set of collections to install, but not the set of the packages. To +do that, use 'tlmgr' (reference below) after the initial installation is +completely. + + The default is 'scheme-full', to install everything, and this is +highly recommended. + + +File: tlbuild.info, Node: install-tl REFERENCES, Next: install-tl OPTIONS, Prev: install-tl DESCRIPTION, Up: install-tl + +A.4 REFERENCES +============== + +Post-installation configuration, package updates, and much more, are +handled through *tlmgr*(1), the TeX Live Manager +(<http://tug.org/texlive/tlmgr.html>). + + The most up-to-date version of this documentation is on the Internet +at <http://tug.org/texlive/doc/install-tl.html>. + + For the full documentation of TeX Live, see +<http://tug.org/texlive/doc>. + + +File: tlbuild.info, Node: install-tl OPTIONS, Next: install-tl ENVIRONMENT VARIABLES, Prev: install-tl REFERENCES, Up: install-tl + +A.5 OPTIONS +=========== + +As usual, all options can be specified in any order, and with either a +leading '-' or '--'. An argument value can be separated from its option +by either a space or '='. + +*-gui* [[=]_module_] + + If no _module_ is given starts the 'perltk' (see below) GUI + installer. + + If _module_ is given loads the given installer module. Currently + the following modules are supported: + + 'text' + + The text mode user interface (default on Unix systems). Same + as the '-no-gui' option. + + 'wizard' + + The wizard mode user interface (default on Windows), asking + only minimal questions before installing all of TeX Live. + + 'perltk' + + The expert GUI installer, providing access to more options. + Can also be invoked on Windows by running + 'install-tl-advanced.bat'. + + The 'perltk' and 'wizard' modules, and thus also when calling with + a bare '-gui' (without _module_), requires the Perl/Tk module + (<http://tug.org/texlive/distro.html#perltk>); if Perl/Tk is not + available, installation continues in text mode. + +*-no-gui* + + Use the text mode installer (default except on Windows). + +*-lang* _llcode_ + + By default, the GUI tries to deduce your language from the + environment (on Windows via the registry, on Unix via + 'LC_MESSAGES'). If that fails you can select a different language + by giving this option with a language code (based on ISO 639-1). + Currently supported (but not necessarily completely translated) + are: English (en, default), Czech (cs), German (de), French (fr), + Italian (it), Japanese (ja), Dutch (nl), Polish (pl), Brazilian + Portuguese (pt_BR), Russian (ru), Slovak (sk), Slovenian (sl), + Serbian (sr), Ukrainian (uk), Vietnamese (vi), simplified Chinese + (zh_CN), and traditional Chinese (zh_TW). + +*-repository* _url|path_ + + Specify the package repository to be used as the source of the + installation, either a local directory via '/path/to/directory' or + a 'file:/' url, or a network location via a 'http://' or 'ftp://' + url. (No other protocols are supported.) + + The default is to pick a mirror automatically, using + <http://mirror.ctan.org/systems/texlive/tlnet>; the chosen mirror + is used for the entire download. You can use the special argument + 'ctan' as an abbreviation for this. See <http://ctan.org> for more + about CTAN and its mirrors. + + If the repository is on the network, trailing '/' characters and/or + trailing '/tlpkg' and '/archive' components are ignored. For + example, you could choose a particular CTAN mirror with something + like this: + + -repository http://ctan.example.org/its/ctan/dir/systems/texlive/tlnet + + Of course a real hostname and its particular top-level CTAN path + have to be specified. The list of CTAN mirrors is available at + <http://ctan.org/mirrors>. + + If the repository is local, the installation type (compressed or + live) is automatically determined, by checking for the presence of + a 'archive' directory relative to the root. Compressed is + preferred if both are available, since it is faster. Here's an + example of using a local directory: + + -repository /local/TL/repository + + After installation is complete, you can use that installation as + the repository for another installation. If you chose to install + less than the full scheme containing all packages, the list of + available schemes will be adjusted accordingly. + + For backward compatibility and convenience, '--location' and + '--repo' are accepted as aliases for this option. + +*-select-repository* + + This option allows manual selection of a mirror from the current + list of active CTAN mirrors. This option is supported in all + installer modes (text, wizard, perltk), and will also offer to + install from local media if available, or from a repository + specified on the command line (see above). It's useful when the + (default) automatic redirection does not choose a good host for + you. + +*-all-options* + + Normally options not relevant to the current platform are not shown + (i.e., when running on Unix, Windows-specific options are omitted). + Giving this command line option allows configuring settings in the + final 'texlive.tlpdb' that do not have any immediate effect. + +*-custom-bin* _path_ + + If you have built your own set of TeX Live binaries (perhaps + because your platform was not supported by TeX Live out of the + box), this option allows you to specify the _path_ to a directory + where the binaries for the current system are present. The + installation will continue as usual, but at the end all files from + _path_ are copied over to 'bin/custom/' under your installation + directory and this 'bin/custom/' directory is what will be added to + the path for the post-install actions. (By the way, for + information on building TeX Live, see + <http://tug.org/texlive/build.html>). + +*-debug-translation* + + In GUI mode, this switch makes 'tlmgr' report any missing, or more + likely untranslated, messages to standard error. Helpful for + translators to see what remains to be done. + +*-force-platform* _platform_ + + Instead of auto-detecting the current platform, use _platform_. + Binaries for this platform must be present and they must actually + be runnable, or installation will fail. '-force-arch' is a + synonym. + +*-help*, *-help*, *-?* + + Display this help and exit (on the web via + <http://tug.org/texlive/doc/install-tl.html>). Sometimes the + 'perldoc' and/or 'PAGER' programs on the system have problems, + possibly resulting in control characters being literally output. + This can't always be detected, but you can set the 'NOPERLDOC' + environment variable and 'perldoc' will not be used. + +*-in-place* + + This is a quick-and-dirty installation option in case you already + have an rsync or svn checkout of TeX Live. It will use the + checkout as-is and will just do the necessary post-install. Be + warned that the file 'tlpkg/texlive.tlpdb' may be rewritten, that + removal has to be done manually, and that the only realistic way to + maintain this installation is to redo it from time to time. This + option is not available via the installer interfaces. USE AT YOUR + OWN RISK. + +*-logfile* _file_ + + Write both all messages (informational, debugging, warnings) to + _file_, in addition to standard output or standard error. + + If this option is not given, the installer will create a log file + in the root of the writable installation tree, for example, + '/usr/local/texlive/YYYY/install-tl.log' for the _YYYY_ release. + +*-no-cls* + + (only for text mode installer) do not clear the screen when + entering a new menu (for debugging purposes). + +*-non-admin* + + For Windows only: configure for the current user, not for all + users. + +*-persistent-downloads* + +*-no-persistent-downloads* + + For network installs, activating this option makes the installer + try to set up a persistent connection using the 'Net::LWP' Perl + module. This opens only one connection between your computer and + the server per session and reuses it, instead of initiating a new + download for each package, which typically yields a significant + speed-up. + + This option is turned on by default, and the installation program + will fall back to using 'wget' if this is not possible. To disable + usage of LWP and persistent connections, use + '--no-persistent-downloads'. + +*-portable* + + Install for portable use, e.g., on a USB stick. Also selectable + from within the perltk and text installers. + +*-print-platform* + + Print the TeX Live identifier for the detected platform + (hardware/operating system) combination to standard output, and + exit. '-print-arch' is a synonym. + +*-profile* _profile_ + + Load the file _profile_ and do the installation with no user + interaction, that is, a batch (unattended) install. + + A _profile_ file contains all the values needed to perform an + installation. After a normal installation has finished, a profile + for that exact installation is written to the file + DEST/tlpkg/texlive.profile. That file can be given as the argument + to '-profile' to redo the exact same installation on a different + system, for example. Alternatively, you can use a custom profile, + most easily created by starting from a generated one and changing + values, or an empty file, which will take all the defaults. + + Normally a profile has to specify the value '1' for each collection + to be installed, even if the scheme is specified. This follows + from the logic of the installer in that you can first select a + scheme and then change the collections being installed. But for + convenience there is an exception to this within profiles: If the + profile contains a variable for 'selected_scheme' and _no_ + collection variables at all are defined in the profile, then the + collections which the specified scheme requires are installed. + + Thus, a line 'selected_scheme scheme-medium' together with the + definitions of the installation directories ('TEXDIR', 'TEXMFHOME', + 'TEXMFLOCAL', 'TEXMFSYSCONFIG', 'TEXMFSYSVAR') suffices to install + the medium scheme with all default options. + +*-q* + + Omit normal informational messages. + +*-scheme* _scheme_ + + Schemes are the highest level of package grouping in TeX Live; the + default is to use the 'full' scheme, which includes everything. + This option overrides that default. You can change the scheme + again before the actual installation with the usual menu. The + _scheme_ argument may optionally have a prefix 'scheme-'. The list + of supported scheme names depends on what your package repository + provides; see the interactive menu list. + +*-v* + + Include verbose debugging messages; repeat for maximum debugging, + as in '-v -v'. (Further repeats are accepted but ignored.) + +*-version*, *-version* + + Output version information and exit. If '-v' has also been given + the revisions of the used modules are reported, too. + + +File: tlbuild.info, Node: install-tl ENVIRONMENT VARIABLES, Next: install-tl AUTHORS AND COPYRIGHT, Prev: install-tl OPTIONS, Up: install-tl + +A.6 ENVIRONMENT VARIABLES +========================= + +For ease in scripting and debugging, 'install-tl' will look for the +following environment variables. They are not of interest in normal +user installations. + +'TEXLIVE_INSTALL_ENV_NOCHECK' + + Omit the check for environment variables containing the string + 'tex'. People developing TeX-related software are likely to have + many such variables. + +'TEXLIVE_INSTALL_NO_CONTEXT_CACHE' + + Omit creating the ConTeXt cache. This is useful for + redistributors. + +'TEXLIVE_INSTALL_PREFIX' + +'TEXLIVE_INSTALL_TEXMFCONFIG' + +'TEXLIVE_INSTALL_TEXMFHOME' + +'TEXLIVE_INSTALL_TEXMFLOCAL' + +'TEXLIVE_INSTALL_TEXMFSYSCONFIG' + +'TEXLIVE_INSTALL_TEXMFSYSVAR' + +'TEXLIVE_INSTALL_TEXMFVAR' + + Specify the respective directories. + +'NOPERLDOC' + + Don't try to run the '--help' message through 'perldoc'. + + +File: tlbuild.info, Node: install-tl AUTHORS AND COPYRIGHT, Prev: install-tl ENVIRONMENT VARIABLES, Up: install-tl + +A.7 AUTHORS AND COPYRIGHT +========================= + +This script and its documentation were written for the TeX Live +distribution (<http://tug.org/texlive>) and both are licensed under the +GNU General Public License Version 2 or later. + + +File: tlbuild.info, Node: tlmgr, Next: Index, Prev: install-tl, Up: Top + +Appendix B tlmgr +**************** + +* Menu: + +* tlmgr NAME:: +* tlmgr SYNOPSIS:: +* tlmgr DESCRIPTION:: +* tlmgr EXAMPLES:: +* tlmgr OPTIONS:: +* tlmgr ACTIONS:: +* tlmgr USER MODE:: +* tlmgr CONFIGURATION FILE FOR TLMGR:: +* tlmgr TAXONOMIES:: +* tlmgr MULTIPLE REPOSITORIES:: +* tlmgr GUI FOR TLMGR:: +* tlmgr MACHINE-READABLE OUTPUT:: +* tlmgr AUTHORS AND COPYRIGHT:: + + +File: tlbuild.info, Node: tlmgr NAME, Next: tlmgr SYNOPSIS, Up: tlmgr + +B.1 NAME +======== + +tlmgr - the TeX Live Manager + + +File: tlbuild.info, Node: tlmgr SYNOPSIS, Next: tlmgr DESCRIPTION, Prev: tlmgr NAME, Up: tlmgr + +B.2 SYNOPSIS +============ + +tlmgr [_option_]... _action_ [_option_]... [_operand_]... + + +File: tlbuild.info, Node: tlmgr DESCRIPTION, Next: tlmgr EXAMPLES, Prev: tlmgr SYNOPSIS, Up: tlmgr + +B.3 DESCRIPTION +=============== + +*tlmgr* manages an existing TeX Live installation, both packages and +configuration options. For information on initially downloading and +installing TeX Live, see <http://tug.org/texlive/acquire.html>. + + The most up-to-date version of this documentation (updated nightly +from the development sources) is available at +<http://tug.org/texlive/tlmgr.html>, along with procedures for updating +'tlmgr' itself and information about test versions. + + TeX Live is organized into a few top-level _schemes_, each of which +is specified as a different set of _collections_ and _packages_, where a +collection is a set of packages, and a package is what contains actual +files. Schemes typically contain a mix of collections and packages, but +each package is included in exactly one collection, no more and no less. +A TeX Live installation can be customized and managed at any level. + + See <http://tug.org/texlive/doc> for all the TeX Live documentation +available. + + +File: tlbuild.info, Node: tlmgr EXAMPLES, Next: tlmgr OPTIONS, Prev: tlmgr DESCRIPTION, Up: tlmgr + +B.4 EXAMPLES +============ + +After successfully installing TeX Live, here are a few common operations +with 'tlmgr': + +'tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet' + + Tell 'tlmgr' to use a nearby CTAN mirror for future updates; useful + if you installed TeX Live from the DVD image and want continuing + updates. + +'tlmgr update --list' + + Report what would be updated without actually updating anything. + +'tlmgr update --all' + + Make your local TeX installation correspond to what is in the + package repository (typically useful when updating from CTAN). + +'tlmgr info' _pkg_ + + Display detailed information about _pkg_, such as the installation + status and description. + + For all the capabilities and details of 'tlmgr', please read the +following voluminous information. + + +File: tlbuild.info, Node: tlmgr OPTIONS, Next: tlmgr ACTIONS, Prev: tlmgr EXAMPLES, Up: tlmgr + +B.5 OPTIONS +=========== + +The following options to 'tlmgr' are global options, not specific to any +action. All options, whether global or action-specific, can be given +anywhere on the command line, and in any order. The first non-option +argument will be the main action. In all cases, '--'_option_ and +'-'_option_ are equivalent, and an '=' is optional between an option +name and its value. + +*-repository* _url|path_ + + Specifies the package repository from which packages should be + installed or updated, overriding the default package repository + found in the installation's TeX Live Package Database (a.k.a. the + TLPDB, defined entirely in the file 'tlpkg/texlive.tlpdb'). The + documentation for 'install-tl' has more details about this + (<http://tug.org/texlive/doc/install-tl.html>). + + '--repository' changes the repository location only for the current + run; to make a permanent change, use 'option repository' (see the + *note option: tlmgr option. action). + + For backward compatibility and convenience, '--location' and + '--repo' are accepted as aliases for this option. + +*-gui* [_action_] + + 'tlmgr' has a graphical interface as well as the command line + interface. You can give this option, '--gui', together with an + action to be brought directly into the respective screen of the + GUI. For example, running + + tlmgr --gui update + + starts you directly at the update screen. If no action is given, + the GUI will be started at the main screen. + +*-gui-lang* _llcode_ + + By default, the GUI tries to deduce your language from the + environment (on Windows via the registry, on Unix via + 'LC_MESSAGES'). If that fails you can select a different language + by giving this option with a language code (based on ISO 639-1). + Currently supported (but not necessarily completely translated) + are: English (en, default), Czech (cs), German (de), French (fr), + Italian (it), Japanese (ja), Dutch (nl), Polish (pl), Brazilian + Portuguese (pt_BR), Russian (ru), Slovak (sk), Slovenian (sl), + Serbian (sr), Ukrainian (uk), Vietnamese (vi), simplified Chinese + (zh_CN), and traditional Chinese (zh_TW). + +*-debug-translation* + + In GUI mode, this switch tells 'tlmgr' to report any untranslated + (or missing) messages to standard error. This can help translators + to see what remains to be done. + +*-machine-readable* + + Instead of the normal output intended for human consumption, write + (to standard output) a fixed format more suitable for machine + parsing. See the *note MACHINE-READABLE OUTPUT: tlmgr + MACHINE-READABLE OUTPUT. section below. + +*-no-execute-actions* + + Suppress the execution of the execute actions as defined in the + tlpsrc files. Documented only for completeness, as this is only + useful in debugging. + +*-package-logfile* _file_ + + 'tlmgr' logs all package actions (install, remove, update, failed + updates, failed restores) to a separate log file, by default + 'TEXMFSYSVAR/web2c/tlmgr.log'. This option allows you to specific + a different file for the log. + +*-pause* + + This option makes 'tlmgr' wait for user input before exiting. + Useful on Windows to avoid disappearing command windows. + +*-persistent-downloads* + +*-no-persistent-downloads* + + For network-based installations, this option (on by default) makes + 'tlmgr' try to set up a persistent connection (using the 'LWP' Perl + module). The idea is to open and reuse only one connection per + session between your computer and the server, instead of initiating + a new download for each package. + + If this is not possible, 'tlmgr' will fall back to using 'wget'. + To disable these persistent connections, use + '--no-persistent-downloads'. + +*-pin-file* + + Change the pinning file location from + 'TEXMFLOCAL/tlpkg/pinning.txt' (see *note Pinning: tlmgr Pinning. + below). Documented only for completeness, as this is only useful + in debugging. + +*-usermode* + + Activates user mode for this run of 'tlmgr'; see *note USER MODE: + tlmgr USER MODE. below. + +*-usertree* _dir_ + + Uses _dir_ for the tree in user mode; see *note USER MODE: tlmgr + USER MODE. below. + + The standard options for TeX Live programs are also accepted: +'--help/-h/-?', '--version', '-q' (no informational messages), '-v' +(debugging messages, can be repeated). For the details about these, see +the 'TeXLive::TLUtils' documentation. + + The '--version' option shows version information about the TeX Live +release and about the 'tlmgr' script itself. If '-v' is also given, +revision number for the loaded TeX Live Perl modules are shown, too. + + +File: tlbuild.info, Node: tlmgr ACTIONS, Next: tlmgr USER MODE, Prev: tlmgr OPTIONS, Up: tlmgr + +B.6 ACTIONS +=========== + +* Menu: + +* tlmgr help:: +* tlmgr version:: +* tlmgr backup [--clean[=_N_]] [--backupdir _dir_] [--all | _pkg_]...:: +* tlmgr candidates _pkg_:: +* tlmgr check [_option_]... [files|depends|executes|runfiles|all]:: +* tlmgr conf [texmf|tlmgr|updmap [--conffile _file_] [--delete] [_key_ [_value_]]]:: +* tlmgr dump-tlpdb [--local|--remote]:: +* tlmgr generate [_option_]... _what_:: +* tlmgr gui:: +* tlmgr info [_option_...] [collections|schemes|_pkg_...]:: +* tlmgr init-usertree:: +* tlmgr install [_option_]... _pkg_...:: +* tlmgr option:: +* tlmgr paper:: +* tlmgr path [--w32mode=user|admin] [add|remove]:: +* tlmgr pinning:: +* tlmgr platform list|add|remove _platform_...:: +* tlmgr platform set _platform_:: +* tlmgr platform set auto:: +* tlmgr postaction [--w32mode=user|admin] [--fileassocmode=1|2] [--all] [install|remove] [shortcut|fileassoc|script] [_pkg_]...:: +* tlmgr print-platform:: +* tlmgr restore [--backupdir _dir_] [--all | _pkg_ [_rev_]]:: +* tlmgr remove [_option_]... _pkg_...:: +* tlmgr repository:: +* tlmgr search [_option_...] _what_:: +* tlmgr uninstall:: +* tlmgr update [_option_]... [_pkg_]...:: + + +File: tlbuild.info, Node: tlmgr help, Next: tlmgr version, Up: tlmgr ACTIONS + +B.6.1 help +---------- + +Display this help information and exit (same as '--help', and on the web +at <http://tug.org/texlive/doc/tlmgr.html>). Sometimes the 'perldoc' +and/or 'PAGER' programs on the system have problems, resulting in +control characters being literally output. This can't always be +detected, but you can set the 'NOPERLDOC' environment variable and +'perldoc' will not be used. + + +File: tlbuild.info, Node: tlmgr version, Next: tlmgr backup [--clean[=_N_]] [--backupdir _dir_] [--all | _pkg_]..., Prev: tlmgr help, Up: tlmgr ACTIONS + +B.6.2 version +------------- + +Gives version information (same as '--version'). + + If '-v' has been given the revisions of the used modules are +reported, too. + + +File: tlbuild.info, Node: tlmgr backup [--clean[=_N_]] [--backupdir _dir_] [--all | _pkg_]..., Next: tlmgr candidates _pkg_, Prev: tlmgr version, Up: tlmgr ACTIONS + +B.6.3 backup [-clean[=_N_]] [-backupdir _dir_] [-all | _pkg_]... +---------------------------------------------------------------- + +If the '--clean' option is not specified, this action makes a backup of +the given packages, or all packages given '--all'. These backups are +saved to the value of the '--backupdir' option, if that is an existing +and writable directory. If '--backupdir' is not given, the 'backupdir' +option setting in the TLPDB is used, if present. If both are missing, +no backups are made. + + If the '--clean' option is specified, backups are pruned (removed) +instead of saved. The optional integer value _N_ may be specified to +set the number of backups that will be retained when cleaning. If 'N' +is not given, the value of the 'autobackup' option is used. If both are +missing, an error is issued. For more details of backup pruning, see +the 'option' action. + + Options: + +*-backupdir* _directory_ + + Overrides the 'backupdir' option setting in the TLPDB. The + _directory_ argument is required and must specify an existing, + writable directory where backups are to be placed. + +*-all* + + If '--clean' is not specified, make a backup of all packages in the + TeX Live installation; this will take quite a lot of space and + time. If '--clean' is specified, all packages are pruned. + +*-clean*[=_N_] + + Instead of making backups, prune the backup directory of old + backups, as explained above. The optional integer argument _N_ + overrides the 'autobackup' option set in the TLPDB. You must use + '--all' or a list of packages together with this option, as + desired. + +*-dry-run* + + Nothing is actually backed up or removed; instead, the actions to + be performed are written to the terminal. + + +File: tlbuild.info, Node: tlmgr candidates _pkg_, Next: tlmgr check [_option_]... [files|depends|executes|runfiles|all], Prev: tlmgr backup [--clean[=_N_]] [--backupdir _dir_] [--all | _pkg_]..., Up: tlmgr ACTIONS + +B.6.4 candidates _pkg_ +---------------------- + +*candidates _pkg_* + + Shows the available candidate repositories for package _pkg_. See + *note MULTIPLE REPOSITORIES: tlmgr MULTIPLE REPOSITORIES. below. + + +File: tlbuild.info, Node: tlmgr check [_option_]... [files|depends|executes|runfiles|all], Next: tlmgr conf [texmf|tlmgr|updmap [--conffile _file_] [--delete] [_key_ [_value_]]], Prev: tlmgr candidates _pkg_, Up: tlmgr ACTIONS + +B.6.5 check [_option_]... [files|depends|executes|runfiles|all] +--------------------------------------------------------------- + +Executes one (or all) check(s) on the consistency of the installation. + +*files* + + Checks that all files listed in the local TLPDB ('texlive.tlpdb') + are actually present, and lists those missing. + +*depends* + + Lists those packages which occur as dependencies in an installed + collections, but are themselves not installed, and those packages + that are not contained in any collection. + + If you call 'tlmgr check collections' this test will be carried out + instead since former versions for 'tlmgr' called it that way. + +*executes* + + Check that the files referred to by 'execute' directives in the TeX + Live Database are present. + +*runfiles* + + List those filenames that are occurring more than one time in the + runfiles. + + Options: + +*-use-svn* + + Use the output of 'svn status' instead of listing the files; for + checking the TL development repository. + + +File: tlbuild.info, Node: tlmgr conf [texmf|tlmgr|updmap [--conffile _file_] [--delete] [_key_ [_value_]]], Next: tlmgr dump-tlpdb [--local|--remote], Prev: tlmgr check [_option_]... [files|depends|executes|runfiles|all], Up: tlmgr ACTIONS + +B.6.6 conf [texmf|tlmgr|updmap [-conffile _file_] [-delete] [_key_ [_value_]]] +------------------------------------------------------------------------------ + +With only 'conf', show general configuration information for TeX Live, +including active configuration files, path settings, and more. This is +like the 'texconfig conf' call, but works on all supported platforms. + + With either 'conf texmf', 'conf tlmgr', or 'conf updmap' given in +addition, shows all key/value pairs (i.e., all settings) as saved in +'ROOT/texmf.cnf', the tlmgr configuration file (see below), or the first +found (via kpsewhich) 'updmap.cfg' file, respectively. + + If _key_ is given in addition, shows the value of only that _key_ in +the respective file. If option _-delete_ is also given, the +configuration file - it is removed, not just commented out! + + If _value_ is given in addition, _key_ is set to _value_ in the +respective file. _No error checking is done!_ + + In all cases the file used can be explicitly specified via the option +'--conffile _file_', in case one wants to operate on a different file. + + Practical application: if the execution of (some or all) system +commands via '\write18' was left enabled during installation, you can +disable it afterwards: + + tlmgr conf texmf shell_escape 0 + + A more complicated example: the 'TEXMFHOME' tree (see the main TeX +Live guide, <http://tug.org/texlive/doc.html>) can be set to multiple +directories, but they must be enclosed in braces and separated by +commas, so quoting the value to the shell is a good idea. Thus: + + tlmgr conf texmf TEXMFHOME "{~/texmf,~/texmfbis}" + + Warning: The general facility is here, but tinkering with settings in +this way is very strongly discouraged. Again, no error checking on +either keys or values is done, so any sort of breakage is possible. + + +File: tlbuild.info, Node: tlmgr dump-tlpdb [--local|--remote], Next: tlmgr generate [_option_]... _what_, Prev: tlmgr conf [texmf|tlmgr|updmap [--conffile _file_] [--delete] [_key_ [_value_]]], Up: tlmgr ACTIONS + +B.6.7 dump-tlpdb [-local|-remote] +--------------------------------- + +Dump complete local or remote TLPDB to standard output, as-is. The +output is analogous to the '--machine-readable' output; see *note +MACHINE-READABLE OUTPUT: tlmgr MACHINE-READABLE OUTPUT. section. + + Options: + +*-local* + + Dump the local tlpdb. + +*-remote* + + Dump the remote tlpdb. + + Exactly one of '--local' and '--remote' must be given. + + In either case, the first line of the output specifies the repository +location, in this format: + + "location-url" "\t" location + + where 'location-url' is the literal field name, followed by a tab, +and _location_ is the file or url to the repository. + + Line endings may be either LF or CRLF depending on the current +platform. + + +File: tlbuild.info, Node: tlmgr generate [_option_]... _what_, Next: tlmgr gui, Prev: tlmgr dump-tlpdb [--local|--remote], Up: tlmgr ACTIONS + +B.6.8 generate [_option_]... _what_ +----------------------------------- + +*generate language* + +*generate language.dat* + +*generate language.def* + +*generate language.dat.lua* + +*generate fmtutil* + + The 'generate' action overwrites any manual changes made in the +respective files: it recreates them from scratch based on the +information of the installed packages, plus local adaptions. The TeX +Live installer and 'tlmgr' routinely call 'generate' for all of these +files. + + For managing your own fonts, please read the 'updmap --help' +information and/or <http://tug.org/fonts/fontinstall.html>. + + In more detail: 'generate' remakes any of the configuration files +'language.dat', 'language.def', 'language.dat.lua', and 'fmtutil.cnf', +from the information present in the local TLPDB, plus locally-maintained +files. + + The locally-maintained files are 'language-local.dat', +'language-local.def', 'language-local.dat.lua', or 'fmtutil-local.cnf', +searched for in 'TEXMFLOCAL' in the respective directories. If local +additions are present, the final file is made by starting with the main +file, omitting any entries that the local file specifies to be disabled, +and finally appending the local file. + + (Historical note: The formerly supported 'updmap-local.cfg' is no +longer read, since 'updmap' now supports multiple 'updmap.cfg' files. +Thus, local additions can and should be put into an 'updmap.cfg' file in +'TEXMFLOCAL'. The 'generate updmap' action no longer exists.) + + Local files specify entries to be disabled with a comment line, +namely one of these: + + #!NAME + %!NAME + --!NAME + + where 'fmtutil.cnf' uses '#', 'language.dat' and 'language.def' use +'%', and 'language.dat.lua' use '--'. In all cases, the _name_ is the +respective format name or hyphenation pattern identifier. Examples: + + #!pdflatex + %!german + --!usenglishmax + + (Of course, you're not likely to actually want to disable those +particular items. They're just examples.) + + After such a disabling line, the local file can include another entry +for the same item, if a different definition is desired. In general, +except for the special disabling lines, the local files follow the same +syntax as the master files. + + The form 'generate language' recreates all three files +'language.dat', 'language.def', and 'language.dat.lua', while the forms +with an extension recreates only that given language file. + + Options: + +*-dest* _output_file_ + + specifies the output file (defaults to the respective location in + 'TEXMFSYSVAR'). If '--dest' is given to 'generate language', it + serves as a basename onto which '.dat' will be appended for the + name of the 'language.dat' output file, '.def' will be appended to + the value for the name of the 'language.def' output file, and + '.dat.lua' to the name of the 'language.dat.lua' file. (This is + just to avoid overwriting; if you want a specific name for each + output file, we recommend invoking 'tlmgr' twice.) + +*-localcfg* _local_conf_file_ + + specifies the (optional) local additions (defaults to the + respective location in 'TEXMFLOCAL'). + +*-rebuild-sys* + + tells tlmgr to run necessary programs after config files have been + regenerated. These are: 'fmtutil-sys --all' after 'generate + fmtutil', 'fmtutil-sys --byhyphen .../language.dat' after 'generate + language.dat', and 'fmtutil-sys --byhyphen .../language.def' after + 'generate language.def'. + + These subsequent calls cause the newly-generated files to actually + take effect. This is not done by default since those calls are + lengthy processes and one might want to made several related + changes in succession before invoking these programs. + + The respective locations are as follows: + + tex/generic/config/language.dat (and language-local.dat); + tex/generic/config/language.def (and language-local.def); + tex/generic/config/language.dat.lua (and language-local.dat.lua); + web2c/fmtutil.cnf (and fmtutil-local.cnf); + + +File: tlbuild.info, Node: tlmgr gui, Next: tlmgr info [_option_...] [collections|schemes|_pkg_...], Prev: tlmgr generate [_option_]... _what_, Up: tlmgr ACTIONS + +B.6.9 gui +--------- + +Start the graphical user interface. See *GUI* below. + + +File: tlbuild.info, Node: tlmgr info [_option_...] [collections|schemes|_pkg_...], Next: tlmgr init-usertree, Prev: tlmgr gui, Up: tlmgr ACTIONS + +B.6.10 info [_option_...] [collections|schemes|_pkg_...] +-------------------------------------------------------- + +With no argument, lists all packages available at the package +repository, prefixing those already installed with 'i'. + + With the single word 'collections' or 'schemes' as the argument, +lists the request type instead of all packages. + + With any other arguments, display information about _pkg_: the name, +category, short and long description, installation status, and TeX Live +revision number. If _pkg_ is not locally installed, searches in the +remote installation source. + + It also displays information taken from the TeX Catalogue, namely the +package version, date, and license. Consider these, especially the +package version, as approximations only, due to timing skew of the +updates of the different pieces. By contrast, the 'revision' value +comes directly from TL and is reliable. + + The former actions 'show' and 'list' are merged into this action, but +are still supported for backward compatibility. + + Options: + +*-list* + + If the option '--list' is given with a package, the list of + contained files is also shown, including those for + platform-specific dependencies. When given with schemes and + collections, '--list' outputs their dependencies in a similar way. + +*-only-installed* + + If this options is given, the installation source will not be used; + only locally installed packages, collections, or schemes are + listed. (Does not work for listing of packages for now) + +*-taxonomy* + +*-keyword* + +*-functionality* + +*-characterization* + + In addition to the normal data displayed, also display information + for given packages from the corresponding taxonomy (or all of + them). See *note TAXONOMIES: tlmgr TAXONOMIES. below for details. + + +File: tlbuild.info, Node: tlmgr init-usertree, Next: tlmgr install [_option_]... _pkg_..., Prev: tlmgr info [_option_...] [collections|schemes|_pkg_...], Up: tlmgr ACTIONS + +B.6.11 init-usertree +-------------------- + +Sets up a texmf tree for so-called user mode management, either the +default user tree ('TEXMFHOME'), or one specified on the command line +with '--usertree'. See *note USER MODE: tlmgr USER MODE. below. + + +File: tlbuild.info, Node: tlmgr install [_option_]... _pkg_..., Next: tlmgr option, Prev: tlmgr init-usertree, Up: tlmgr ACTIONS + +B.6.12 install [_option_]... _pkg_... +------------------------------------- + +Install each _pkg_ given on the command line. By default this installs +all packages on which the given _pkg_s are dependent, also. Options: + +*-file* + + Instead of fetching a package from the installation repository, use + the package files given on the command line. These files must be + standard TeX Live package files (with contained tlpobj file). + +*-reinstall* + + Reinstall a package (including dependencies for collections) even + if it already seems to be installed (i.e, is present in the TLPDB). + This is useful to recover from accidental removal of files in the + hierarchy. + + When re-installing, only dependencies on normal packages are + followed (i.e., not those of category Scheme or Collection). + +*-no-depends* + + Do not install dependencies. (By default, installing a package + ensures that all dependencies of this package are fulfilled.) + +*-no-depends-at-all* + + Normally, when you install a package which ships binary files the + respective binary package will also be installed. That is, for a + package 'foo', the package 'foo.i386-linux' will also be installed + on an 'i386-linux' system. This option suppresses this behavior, + and also implies '--no-depends'. Don't use it unless you are sure + of what you are doing. + +*-dry-run* + + Nothing is actually installed; instead, the actions to be performed + are written to the terminal. + +*-force* + + If updates to 'tlmgr' itself (or other parts of the basic + infrastructure) are present, 'tlmgr' will bail out and not perform + the installation unless this option is given. Not recommended. + + +File: tlbuild.info, Node: tlmgr option, Next: tlmgr paper, Prev: tlmgr install [_option_]... _pkg_..., Up: tlmgr ACTIONS + +B.6.13 option +------------- + +*option [show]* + +*option showall* + +*option _key_ [_value_]* + + The first form shows the global TeX Live settings currently saved in +the TLPDB with a short description and the 'key' used for changing it in +parentheses. + + The second form is similar, but also shows options which can be +defined but are not currently set to any value. + + In the third form, if _value_ is not given, the setting for _key_ is +displayed. If _value_ is present, _key_ is set to _value_. + + Possible values for _key_ are (run 'tlmgr option showall' for the +definitive list): + + repository (default package repository), + formats (create formats at installation time), + postcode (run postinst code blobs) + docfiles (install documentation files), + srcfiles (install source files), + backupdir (default directory for backups), + autobackup (number of backups to keep). + sys_bin (directory to which executables are linked by the path action) + sys_man (directory to which man pages are linked by the path action) + sys_info (directory to which Info files are linked by the path action) + desktop_integration (Windows-only: create Start menu shortcuts) + fileassocs (Windows-only: change file associations) + multiuser (Windows-only: install for all users) + + One common use of 'option' is to permanently change the installation +to get further updates from the Internet, after originally installing +from DVD. To do this, you can run + + tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet + + The 'install-tl' documentation has more information about the +possible values for 'repository'. (For backward compatibility, +'location' can be used as alternative name for 'repository'.) + + If 'formats' is set (this is the default), then formats are +regenerated when either the engine or the format files have changed. +Disable this only when you know what you are doing. + + The 'postcode' option controls execution of per-package +postinstallation action code. It is set by default, and again disabling +is not likely to be of interest except perhaps to developers. + + The 'docfiles' and 'srcfiles' options control the installation of +their respective files of a package. By default both are enabled (1). +This can be disabled (set to 0) if disk space is (very) limited. + + The options 'autobackup' and 'backupdir' determine the defaults for +the actions 'update', 'backup' and 'restore'. These three actions need +a directory in which to read or write the backups. If '--backupdir' is +not specified on the command line, the 'backupdir' option value is used +(if set). + + The 'autobackup' option (de)activates automatic generation of +backups. Its value is an integer. If the 'autobackup' value is '-1', +no backups are removed. If 'autobackup' is 0 or more, it specifies the +number of backups to keep. Thus, backups are disabled if the value is +0. In the '--clean' mode of the 'backup' action this option also +specifies the number to be kept. + + To setup 'autobackup' to '-1' on the command line, use: + + tlmgr option -- autobackup -1 + + The '--' avoids having the '-1' treated as an option. ('--' stops +parsing for options at the point where it appears; this is a general +feature across most Unix programs.) + + The 'sys_bin', 'sys_man', and 'sys_info' options are used on +Unix-like systems to control the generation of links for executables, +info files and man pages. See the 'path' action for details. + + The last three options control behaviour on Windows installations. +If 'desktop_integration' is set, then some packages will install items +in a sub-folder of the Start menu for 'tlmgr gui', documentation, etc. +If 'fileassocs' is set, Windows file associations are made (see also the +'postaction' action). Finally, if 'multiuser' is set, then adaptions to +the registry and the menus are done for all users on the system instead +of only the current user. All three options are on by default. + + +File: tlbuild.info, Node: tlmgr paper, Next: tlmgr path [--w32mode=user|admin] [add|remove], Prev: tlmgr option, Up: tlmgr ACTIONS + +B.6.14 paper +------------ + +*paper [a4|letter]* + +*[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [_papersize_|-list]* + + With no arguments ('tlmgr paper'), shows the default paper size +setting for all known programs. + + With one argument (e.g., 'tlmgr paper a4'), sets the default for all +known programs to that paper size. + + With a program given as the first argument and no paper size +specified (e.g., 'tlmgr dvips paper'), shows the default paper size for +that program. + + With a program given as the first argument and a paper size as the +last argument (e.g., 'tlmgr dvips paper a4'), set the default for that +program to that paper size. + + With a program given as the first argument and '--list' given as the +last argument (e.g., 'tlmgr dvips paper --list'), shows all valid paper +sizes for that program. The first size shown is the default. + + Incidentally, this syntax of having a specific program name before +the 'paper' keyword is unusual. It is inherited from the longstanding +'texconfig' script, which supports other configuration settings for some +programs, notably 'dvips'. 'tlmgr' does not support those extra +settings. + + +File: tlbuild.info, Node: tlmgr path [--w32mode=user|admin] [add|remove], Next: tlmgr pinning, Prev: tlmgr paper, Up: tlmgr ACTIONS + +B.6.15 path [-w32mode=user|admin] [add|remove] +---------------------------------------------- + +On Unix, merely adds or removes symlinks for binaries, man pages, and +info pages in the system directories specified by the respective options +(see the *note option: tlmgr option. description above). Does not +change any initialization files, either system or personal. + + On Windows, the registry part where the binary directory is added or +removed is determined in the following way: + + If the user has admin rights, and the option '--w32mode' is not +given, the setting _w32_multi_user_ determines the location (i.e., if it +is on then the system path, otherwise the user path is changed). + + If the user has admin rights, and the option '--w32mode' is given, +this option determines the path to be adjusted. + + If the user does not have admin rights, and the option '--w32mode' is +not given, and the setting _w32_multi_user_ is off, the user path is +changed, while if the setting _w32_multi_user_ is on, a warning is +issued that the caller does not have enough privileges. + + If the user does not have admin rights, and the option '--w32mode' is +given, it must be *user* and the user path will be adjusted. If a user +without admin rights uses the option '--w32mode admin' a warning is +issued that the caller does not have enough privileges. + + +File: tlbuild.info, Node: tlmgr pinning, Next: tlmgr platform list|add|remove _platform_..., Prev: tlmgr path [--w32mode=user|admin] [add|remove], Up: tlmgr ACTIONS + +B.6.16 pinning +-------------- + +The 'pinning' action manages the pinning file, see *note Pinning: tlmgr +Pinning. below. + +'pinning show' + + Shows the current pinning data. + +'pinning add' _repo_ _pkgglob_... + + Pins the packages matching the _pkgglob_(s) to the repository + _repo_. + +'pinning remove' _repo_ _pkgglob_... + + Any packages recorded in the pinning file matching the <pkgglob>s + for the given repository _repo_ are removed. + +'pinning remove _repo_ --all' + + Remove all pinning data for repository _repo_. + + +File: tlbuild.info, Node: tlmgr platform list|add|remove _platform_..., Next: tlmgr platform set _platform_, Prev: tlmgr pinning, Up: tlmgr ACTIONS + +B.6.17 platform list|add|remove _platform_... +--------------------------------------------- + + +File: tlbuild.info, Node: tlmgr platform set _platform_, Next: tlmgr platform set auto, Prev: tlmgr platform list|add|remove _platform_..., Up: tlmgr ACTIONS + +B.6.18 platform set _platform_ +------------------------------ + + +File: tlbuild.info, Node: tlmgr platform set auto, Next: tlmgr postaction [--w32mode=user|admin] [--fileassocmode=1|2] [--all] [install|remove] [shortcut|fileassoc|script] [_pkg_]..., Prev: tlmgr platform set _platform_, Up: tlmgr ACTIONS + +B.6.19 platform set auto +------------------------ + +'platform list' lists the TeX Live names of all the platforms (a.k.a. +architectures), ('i386-linux', ...) available at the package +repository. + + 'platform add' _platform_... adds the executables for each given +platform _platform_ to the installation from the repository. + + 'platform remove' _platform_... removes the executables for each +given platform _platform_ from the installation, but keeps the currently +running platform in any case. + + 'platform set' _platform_ switches TeX Live to always use the given +platform instead of auto detection. + + 'platform set auto' switches TeX Live to auto detection mode for +platform. + + Platform detection is needed to select the proper 'xz', 'xzdec' and +'wget' binaries that are shipped with TeX Live. + + 'arch' is a synonym for 'platform'. + + Options: + +*-dry-run* + + Nothing is actually installed; instead, the actions to be performed + are written to the terminal. + + +File: tlbuild.info, Node: tlmgr postaction [--w32mode=user|admin] [--fileassocmode=1|2] [--all] [install|remove] [shortcut|fileassoc|script] [_pkg_]..., Next: tlmgr print-platform, Prev: tlmgr platform set auto, Up: tlmgr ACTIONS + +B.6.20 postaction [-w32mode=user|admin] [-fileassocmode=1|2] [-all] [install|remove] [shortcut|fileassoc|script] [_pkg_]... +--------------------------------------------------------------------------------------------------------------------------- + +Carry out the postaction 'shortcut', 'fileassoc', or 'script' given as +the second required argument in install or remove mode (which is the +first required argument), for either the packages given on the command +line, or for all if '--all' is given. + + If the option '--w32mode' is given the value 'user', all actions will +only be carried out in the user-accessible parts of the +registry/filesystem, while the value 'admin' selects the system-wide +parts of the registry for the file associations. If you do not have +enough permissions, using '--w32mode=admin' will not succeed. + + '--fileassocmode' specifies the action for file associations. If it +is set to 1 (the default), only new associations are added; if it is set +to 2, all associations are set to the TeX Live programs. (See also +'option fileassocs'.) + + +File: tlbuild.info, Node: tlmgr print-platform, Next: tlmgr restore [--backupdir _dir_] [--all | _pkg_ [_rev_]], Prev: tlmgr postaction [--w32mode=user|admin] [--fileassocmode=1|2] [--all] [install|remove] [shortcut|fileassoc|script] [_pkg_]..., Up: tlmgr ACTIONS + +B.6.21 print-platform +--------------------- + +Print the TeX Live identifier for the detected platform +(hardware/operating system) combination to standard output, and exit. +'--print-arch' is a synonym. + + +File: tlbuild.info, Node: tlmgr restore [--backupdir _dir_] [--all | _pkg_ [_rev_]], Next: tlmgr remove [_option_]... _pkg_..., Prev: tlmgr print-platform, Up: tlmgr ACTIONS + +B.6.22 restore [-backupdir _dir_] [-all | _pkg_ [_rev_]] +-------------------------------------------------------- + +Restore a package from a previously-made backup. + + If '--all' is given, try to restore the latest revision of all +package backups found in the backup directory. + + Otherwise, if neither _pkg_ nor _rev_ are given, list the available +backup revisions for all packages. + + With _pkg_ given but no _rev_, list all available backup revisions of +_pkg_. + + When listing available packages tlmgr shows the revision and in +parenthesis the creation time if available (in format yyyy-mm-dd hh:mm). + + With both _pkg_ and _rev_, tries to restore the package from the +specified backup. + + Options: + +*-all* + + Try to restore the latest revision of all package backups found in + the backup directory. Additional non-option arguments (like _pkg_) + are not allowed. + +*-backupdir* _directory_ + + Specify the directory where the backups are to be found. If not + given it will be taken from the configuration setting in the TLPDB. + +*-dry-run* + + Nothing is actually restored; instead, the actions to be performed + are written to the terminal. + +*-force* + + Don't ask questions. + + +File: tlbuild.info, Node: tlmgr remove [_option_]... _pkg_..., Next: tlmgr repository, Prev: tlmgr restore [--backupdir _dir_] [--all | _pkg_ [_rev_]], Up: tlmgr ACTIONS + +B.6.23 remove [_option_]... _pkg_... +------------------------------------ + +Remove each _pkg_ specified. Removing a collection removes all package +dependencies (unless '--no-depends' is specified), but not any +collection dependencies of that collection. However, when removing a +package, dependencies are never removed. Options: + +*-no-depends* + + Do not remove dependent packages. + +*-no-depends-at-all* + + See above under *install* (and beware). + +*-force* + + By default, removal of a package or collection that is a dependency + of another collection or scheme is not allowed. With this option, + the package will be removed unconditionally. Use with care. + + A package that has been removed using the '--force' option because + it is still listed in an installed collection or scheme will not be + updated, and will be mentioned as *forcibly removed* in the output + of *tlmgr update -list*. + +*-dry-run* + + Nothing is actually removed; instead, the actions to be performed + are written to the terminal. + + +File: tlbuild.info, Node: tlmgr repository, Next: tlmgr search [_option_...] _what_, Prev: tlmgr remove [_option_]... _pkg_..., Up: tlmgr ACTIONS + +B.6.24 repository +----------------- + +*repository list* + +*repository list _path|tag_* + +*repository add _path_ [_tag_]* + +*repository remove _path|tag_* + +*repository set _path_[#_tag_] [_path_[#_tag_] ...]* + + This action manages the list of repositories. See *note MULTIPLE + REPOSITORIES: tlmgr MULTIPLE REPOSITORIES. below for detailed + explanations. + + The first form ('list') lists all configured repositories and the + respective tags if set. If a path, url, or tag is given after the + 'list' keyword, it is interpreted as source from where to + initialize a TeX Live Database and lists the contained packages. + This can also be an up-to-now not used repository, both locally and + remote. If one pass in addition '--with-platforms', for each + package the available platforms (if any) are listed, too. + + The third form ('add') adds a repository (optionally attaching a + tag) to the list of repositories. The forth form ('remove') + removes a repository, either by full path/url, or by tag. The last + form ('set') sets the list of repositories to the items given on + the command line, not keeping previous settings + + In all cases, one of the repositories must be tagged as 'main'; + otherwise, all operations will fail! + + +File: tlbuild.info, Node: tlmgr search [_option_...] _what_, Next: tlmgr uninstall, Prev: tlmgr repository, Up: tlmgr ACTIONS + +B.6.25 search [_option_...] _what_ +---------------------------------- + +* Menu: + +* tlmgr search [_option_...] --file _what_:: +* tlmgr search [_option_...] --taxonomy _what_:: +* tlmgr search [_option_...] --keyword _what_:: +* tlmgr search [_option_...] --functionality _what_:: +* tlmgr search [_option_...] --characterization _what_:: +* tlmgr search [_option_...] --all _what_:: + + +File: tlbuild.info, Node: tlmgr search [_option_...] --file _what_, Next: tlmgr search [_option_...] --taxonomy _what_, Up: tlmgr search [_option_...] _what_ + +B.6.25.1 search [_option_...] -file _what_ +.......................................... + + +File: tlbuild.info, Node: tlmgr search [_option_...] --taxonomy _what_, Next: tlmgr search [_option_...] --keyword _what_, Prev: tlmgr search [_option_...] --file _what_, Up: tlmgr search [_option_...] _what_ + +B.6.25.2 search [_option_...] -taxonomy _what_ +.............................................. + + +File: tlbuild.info, Node: tlmgr search [_option_...] --keyword _what_, Next: tlmgr search [_option_...] --functionality _what_, Prev: tlmgr search [_option_...] --taxonomy _what_, Up: tlmgr search [_option_...] _what_ + +B.6.25.3 search [_option_...] -keyword _what_ +............................................. + + +File: tlbuild.info, Node: tlmgr search [_option_...] --functionality _what_, Next: tlmgr search [_option_...] --characterization _what_, Prev: tlmgr search [_option_...] --keyword _what_, Up: tlmgr search [_option_...] _what_ + +B.6.25.4 search [_option_...] -functionality _what_ +................................................... + + +File: tlbuild.info, Node: tlmgr search [_option_...] --characterization _what_, Next: tlmgr search [_option_...] --all _what_, Prev: tlmgr search [_option_...] --functionality _what_, Up: tlmgr search [_option_...] _what_ + +B.6.25.5 search [_option_...] -characterization _what_ +...................................................... + + +File: tlbuild.info, Node: tlmgr search [_option_...] --all _what_, Prev: tlmgr search [_option_...] --characterization _what_, Up: tlmgr search [_option_...] _what_ + +B.6.25.6 search [_option_...] -all _what_ +......................................... + +By default, search the names, short descriptions, and long descriptions +of all locally installed packages for the argument _what_, interpreted +as a regular expression. + + Options: + +*-global* + + Search the TeX Live Database of the installation medium, instead of + the local installation. + +*-word* + + Restrict the search to match only full words. For example, + searching for 'table' with this option will not output packages + containing the word 'tables' (unless they also contain the word + 'table' on its own). + +*-list* + + If a search for any (or all) taxonomies is done, by specifying one + of the taxonomy options below, then instead of searching for + packages, list the entire corresponding taxonomy (or all of them). + See *note TAXONOMIES: tlmgr TAXONOMIES. below. + + Other search options are selected by specifying one of the following: + +*-file* + + List all filenames containing _what_. + +*-taxonomy* + +*-keyword* + +*-functionality* + +*-characterization* + + Search in the corresponding taxonomy (or all) instead of the + package descriptions. See *note TAXONOMIES: tlmgr TAXONOMIES. + below. + +*-all* + + Search for package names, descriptions, and taxonomies, but not + files. + + +File: tlbuild.info, Node: tlmgr uninstall, Next: tlmgr update [_option_]... [_pkg_]..., Prev: tlmgr search [_option_...] _what_, Up: tlmgr ACTIONS + +B.6.26 uninstall +---------------- + +Uninstalls the entire TeX Live installation. Options: + +*-force* + + Do not ask for confirmation, remove immediately. + + +File: tlbuild.info, Node: tlmgr update [_option_]... [_pkg_]..., Prev: tlmgr uninstall, Up: tlmgr ACTIONS + +B.6.27 update [_option_]... [_pkg_]... +-------------------------------------- + +Updates the packages given as arguments to the latest version available +at the installation source. Either '--all' or at least one _pkg_ name +must be specified. Options: + +*-all* + + Update all installed packages except for 'tlmgr' itself. Thus, if + updates to 'tlmgr' itself are present, this will simply give an + error, unless also the option '--force' or '--self' is given. (See + below.) + + In addition to updating the installed packages, during the update + of a collection the local installation is (by default) synchronized + to the status of the collection on the server, for both additions + and removals. + + This means that if a package has been removed on the server (and + thus has also been removed from the respective collection), 'tlmgr' + will remove the package in the local installation. This is called + "auto-remove" and is announced as such when using the option + '--list'. This auto-removal can be suppressed using the option + '--no-auto-remove' (not recommended, see option description). + + Analogously, if a package has been added to a collection on the + server that is also installed locally, it will be added to the + local installation. This is called "auto-install" and is announced + as such when using the option '--list'. This auto-installation can + be suppressed using the option '--no-auto-install'. + + An exception to the collection dependency checks (including the + auto-installation of packages just mentioned) are those that have + been "forcibly removed" by you, that is, you called 'tlmgr remove + --force' on them. (See the 'remove' action documentation.) To + reinstall any such forcibly removed packages use + '--reinstall-forcibly-removed'. + + If you want to exclude some packages from the current update run + (e.g., due to a slow link), see the '--exclude' option below. + +*-self* + + Update 'tlmgr' itself (that is, the infrastructure packages) if + updates to it are present. On Windows this includes updates to the + private Perl interpreter shipped inside TeX Live. + + If this option is given together with either '--all' or a list of + packages, then 'tlmgr' will be updated first and, if this update + succeeds, the new version will be restarted to complete the rest of + the updates. + + In short: + + tlmgr update --self # update infrastructure only + tlmgr update --self --all # update infrastructure and all packages + tlmgr update --force --all # update all packages but *not* infrastructure + # ... this last at your own risk, not recommended! + +*-dry-run* + + Nothing is actually installed; instead, the actions to be performed + are written to the terminal. This is a more detailed report than + '--list'. + +*-list* [_pkg_] + + Concisely list the packages which would be updated, newly + installed, or removed, without actually changing anything. If + '--all' is also given, all available updates are listed. If + '--self' is given, but not '--all', only updates to the critical + packages (tlmgr, texlive infrastructure, perl on Windows, etc.) + are listed. If neither '--all' nor '--self' is given, and in + addition no _pkg_ is given, then '--all' is assumed (thus, 'tlmgr + update --list' is the same as 'tlmgr update --list --all'). If + neither '--all' nor '--self' is given, but specific package names + are given, those packages are checked for updates. + +*-exclude* _pkg_ + + Exclude _pkg_ from the update process. If this option is given + more than once, its arguments accumulate. + + An argument _pkg_ excludes both the package _pkg_ itself and all + its related platform-specific packages _pkg.ARCH_. For example, + + tlmgr update --all --exclude a2ping + + will not update 'a2ping', 'a2ping.i386-linux', or any other + 'a2ping.'_ARCH_ package. + + If this option specifies a package that would otherwise be a + candidate for auto-installation, auto-removal, or reinstallation of + a forcibly removed package, 'tlmgr' quits with an error message. + Excludes are not supported in these circumstances. + +*-no-auto-remove* [_pkg_]... + + By default, 'tlmgr' tries to remove packages which have disappeared + on the server, as described above under '--all'. This option + prevents such removals, either for all packages (with '--all'), or + for just the given _pkg_ names. This can lead to an inconsistent + TeX installation, since packages are not infrequently renamed or + replaced by their authors. Therefore this is not recommend. + +*-no-auto-install* [_pkg_]... + + Under normal circumstances 'tlmgr' will install packages which are + new on the server, as described above under '--all'. This option + prevents any such automatic installation, either for all packages + (with '--all'), or the given _pkg_ names. + + Furthermore, after the 'tlmgr' run using this has finished, the + packages that would have been auto-installed _will be considered as + forcibly removed_. So, if 'foobar' is the only new package on the + server, then + + tlmgr update --all --no-auto-install + + is equivalent to + + tlmgr update --all + tlmgr remove --force foobar + +*-reinstall-forcibly-removed* + + Under normal circumstances 'tlmgr' will not install packages that + have been forcibly removed by the user; that is, removed with + 'remove --force', or whose installation was prohibited by + '--no-auto-install' during an earlier update. + + This option makes 'tlmgr' ignore the forcible removals and + re-install all such packages. This can be used to completely + synchronize an installation with the server's idea of what is + available: + + tlmgr update --reinstall-forcibly-removed --all + +*-backup* and *-backupdir* _directory_ + + These two options control the creation of backups of packages + _before_ updating; that is, backup of packages as currently + installed. If neither of these options are given, no backup + package will be saved. If '--backupdir' is given and specifies a + writable directory then a backup will be made in that location. If + only '--backup' is given, then a backup will be made to the + directory previously set via the 'option' action (see below). If + both are given then a backup will be made to the specified + _directory_. + + You can set options via the 'option' action to automatically create + backups for all packages, and/or keep only a certain number of + backups. Please see the 'option' action for details. + + 'tlmgr' always makes a temporary backup when updating packages, in + case of download or other failure during an update. In contrast, + the purpose of this '--backup' option is to allow you to save a + persistent backup in case the actual _content_ of the update causes + problems, e.g., introduces an incompatibility. + + The 'restore' action explains how to restore from a backup. + +*-no-depends* + + If you call for updating a package normally all depending packages + will also be checked for updates and updated if necessary. This + switch suppresses this behavior. + +*-no-depends-at-all* + + See above under *install* (and beware). + +*-force* + + Force update of normal packages, without updating 'tlmgr' itself + (unless the '--self' option is also given). Not recommended. + + Also, 'update --list' is still performed regardless of this option. + + If the package on the server is older than the package already +installed (e.g., if the selected mirror is out of date), 'tlmgr' does +not downgrade. Also, packages for uninstalled platforms are not +installed. + + +File: tlbuild.info, Node: tlmgr USER MODE, Next: tlmgr CONFIGURATION FILE FOR TLMGR, Prev: tlmgr ACTIONS, Up: tlmgr + +B.7 USER MODE +============= + +'tlmgr' provides a restricted way, called "user mode", to manage +arbitrary texmf trees in the same way as the main installation. For +example, this allows people without write permissions on the +installation location to update/install packages into a tree of their +own. + + 'tlmgr' is switched into user mode with the command line option +'--usermode'. It does not switch automatically, nor is there any +configuration file setting for it. Thus, this option has to be +explicitly given every time user mode is to be activated. + + This mode of 'tlmgr' works on a user tree, by default the value of +the 'TEXMFHOME' variable. This can be overridden with the command line +option '--usertree'. In the following when we speak of the user tree we +mean either 'TEXMFHOME' or the one given on the command line. + + Not all actions are allowed in user mode; 'tlmgr' will warn you and +not carry out any problematic actions. Currently not supported (and +probably will never be) is the 'platform' action. The 'gui' action is +currently not supported, but may be in a future release. + + Some 'tlmgr' actions don't need any write permissions and thus work +the same in user mode and normal mode. Currently these are: 'check', +'help', 'list', 'print-platform', 'search', 'show', 'version'. + + On the other hand, most of the actions dealing with package +management do need write permissions, and thus behave differently in +user mode, as described below: 'install', 'update', 'remove', 'option', +'paper', 'generate', 'backup', 'restore', 'uninstall', 'symlinks'. + + Before using 'tlmgr' in user mode, you have to set up the user tree +with the 'init-usertree' action. This creates _usertree_'/web2c' and +_usertree_'/tlpkg/tlpobj', and a minimal +_usertree_'/tlpkg/texlive.tlpdb'. At that point, you can tell 'tlmgr' +to do the (supported) actions by adding the '--usermode' command line +option. + + In user mode the file _usertree_'/tlpkg/texlive.tlpdb' contains only +the packages that have been installed into the user tree using 'tlmgr', +plus additional options from the "virtual" package +'00texlive.installation' (similar to the main installation's +'texlive.tlpdb'). + + All actions on packages in user mode can only be carried out on +packages that are known as 'relocatable'. This excludes all packages +containing executables and a few other core packages. Of the 2500 or so +packages currently in TeX Live the vast majority are relocatable and can +be installed into a user tree. + + Description of changes of actions in user mode: + +* Menu: + +* tlmgr user mode install:: +* tlmgr user mode backup; restore; remove; update:: +* tlmgr user mode generate; option; paper:: + + +File: tlbuild.info, Node: tlmgr user mode install, Next: tlmgr user mode backup; restore; remove; update, Up: tlmgr USER MODE + +B.7.1 user mode install +----------------------- + +In user mode, the 'install' action checks that the package and all +dependencies are all either relocated or already installed in the system +installation. If this is the case, it unpacks all containers to be +installed into the user tree (to repeat, that's either 'TEXMFHOME' or +the value of '--usertree') and add the respective packages to the user +tree's 'texlive.tlpdb' (creating it if need be). + + Currently installing a collection in user mode installs all dependent +packages, but in contrast to normal mode, does _not_ install dependent +collections. For example, in normal mode 'tlmgr install +collection-context' would install 'collection-basic' and other +collections, while in user mode, _only_ the packages mentioned in +'collection-context' are installed. + + +File: tlbuild.info, Node: tlmgr user mode backup; restore; remove; update, Next: tlmgr user mode generate; option; paper, Prev: tlmgr user mode install, Up: tlmgr USER MODE + +B.7.2 user mode backup; restore; remove; update +----------------------------------------------- + +In user mode, these actions check that all packages to be acted on are +installed in the user tree before proceeding; otherwise, they behave +just as in normal mode. + + +File: tlbuild.info, Node: tlmgr user mode generate; option; paper, Prev: tlmgr user mode backup; restore; remove; update, Up: tlmgr USER MODE + +B.7.3 user mode generate; option; paper +--------------------------------------- + +In user mode, these actions operate only on the user tree's +configuration files and/or 'texlive.tlpdb'. creates configuration files +in user tree + + +File: tlbuild.info, Node: tlmgr CONFIGURATION FILE FOR TLMGR, Next: tlmgr TAXONOMIES, Prev: tlmgr USER MODE, Up: tlmgr + +B.8 CONFIGURATION FILE FOR TLMGR +================================ + +A small subset of the command line options can be set in a config file +for 'tlmgr' which resides in 'TEXMFCONFIG/tlmgr/config'. By default, +the config file is in '~/.texliveYYYY/texmf-config/tlmgr/config' +(replacing 'YYYY' with the year of your TeX Live installation). This is +_not_ 'TEXMFSYSVAR', so that the file is specific to a single user. + + In this file, empty lines and lines starting with # are ignored. All +other lines must look like + + key = value + + where the allowed keys are 'gui-expertmode' (value 0 or 1), +'persistent-downloads' (value 0 or 1), 'auto-remove' (value 0 or 1), and +'gui-lang' (value like in the command line option). + + 'persistent-downloads', 'gui-lang', and 'auto-remove' correspond to +the respective command line options of the same name. 'gui-expertmode' +switches between the full GUI and a simplified GUI with only the +important and mostly used settings. + + +File: tlbuild.info, Node: tlmgr TAXONOMIES, Next: tlmgr MULTIPLE REPOSITORIES, Prev: tlmgr CONFIGURATION FILE FOR TLMGR, Up: tlmgr + +B.9 TAXONOMIES +============== + +tlmgr allows searching and listing of various categorizations, which we +call _taxonomies_, as provided by an enhanced TeX Catalogue (available +for testing at <http://az.ctan.org>). This is useful when, for example, +you don't know a specific package name but have an idea of the +functionality you need; or when you want to see all packages relating to +a given area. + + There are three different taxonomies, specified by the following +options: + +'--keyword' + + The keywords, as specified at <http://az.ctan.org/keyword>. + +'--functionality' + + The "by-topic" categorization created by J\"urgen Fenn, as + specified at <http://az.ctan.org/characterization/by-function>. + +'--characterization' + + Both the primary and secondary functionalities, as specified at + <http://az.ctan.org/characterization/choose_dimen>. + +'--taxonomy' + + Operate on all the taxonomies. + + The taxonomies are updated nightly and stored within TeX Live, so +Internet access is not required to search them. + + Examples: + + tlmgr search --taxonomy exercise # check all taxonomies for "exercise" + tlmgr search --taxonomy --word table # check for "table" on its own + tlmgr search --list --keyword # dump entire keyword taxonomy + tlmgr show --taxonomy pdftex # show pdftex package information, + # including all taxonomy entries + + +File: tlbuild.info, Node: tlmgr MULTIPLE REPOSITORIES, Next: tlmgr GUI FOR TLMGR, Prev: tlmgr TAXONOMIES, Up: tlmgr + +B.10 MULTIPLE REPOSITORIES +========================== + +The main TeX Live repository contains a vast array of packages. +Nevertheless, additional local repositories can be useful to provide +locally-installed resources, such as proprietary fonts and house styles. +Also, alternative package repositories distribute packages that cannot +or should not be included in TeX Live, for whatever reason. + + The simplest and most reliable method is to temporarily set the +installation source to any repository (with the '-repository' or 'option +repository' command line options), and perform your operations. + + When you are using multiple repositories over a sustained time, +however, explicitly switching between them becomes inconvenient. Thus, +it's possible to tell 'tlmgr' about additional repositories you want to +use. The basic command is 'tlmgr repository add'. The rest of this +section explains further. + + When using multiple repositories, one of them has to be set as the +main repository, which distributes most of the installed packages. When +you switch from a single repository installation to a multiple +repository installation, the previous sole repository will be set as the +main repository. + + By default, even if multiple repositories are configured, packages +are _still_ _only_ installed from the main repository. Thus, simply +adding a second repository does not actually enable installation of +anything from there. You also have to specify which packages should be +taken from the new repository, by specifying so-called "pinning" rules, +described next. + +* Menu: + +* tlmgr Pinning:: + + +File: tlbuild.info, Node: tlmgr Pinning, Up: tlmgr MULTIPLE REPOSITORIES + +B.10.1 Pinning +-------------- + +When a package 'foo' is pinned to a repository, a package 'foo' in any +other repository, even if it has a higher revision number, will not be +considered an installable candidate. + + As mentioned above, by default everything is pinned to the main +repository. Let's now go through an example of setting up a second +repository and enabling updates of a package from it. + + First, check that we have support for multiple repositories, and have +only one enabled (as is the case by default): + + $ tlmgr repository list + List of repositories (with tags if set): + /var/www/norbert/tlnet + + Ok. Let's add the 'tlcontrib' repository (this is a real repository, +hosted at <http://tlcontrib.metatex.org>, maintained by Taco Hoekwater +et al.), with the tag 'tlcontrib': + + $ tlmgr repository add http://tlcontrib.metatex.org/2012 tlcontrib + + Check the repository list again: + + $ tlmgr repository list + List of repositories (with tags if set): + http://tlcontrib.metatex.org/2012 (tlcontrib) + /var/www/norbert/tlnet (main) + + Now we specify a pinning entry to get the package 'context' from +'tlcontrib': + + $ tlmgr pinning add tlcontrib context + + Check that we can find 'context': + + $ tlmgr show context + tlmgr: package repositories: + ... + package: context + repository: tlcontrib/26867 + ... + + - install 'context': + + $ tlmgr install context + tlmgr: package repositories: + ... + [1/1, ??:??/??:??] install: context @tlcontrib [ + + In the output here you can see that the 'context' package has been +installed from the 'tlcontrib' repository ('@tlcontrib'). + + Finally, 'tlmgr pinning' also supports removing certain or all +packages from a given repository: + + $ tlmgr pinning remove tlcontrib context # remove just context + $ tlmgr pinning remove tlcontrib --all # take nothing from tlcontrib + + A summary of the 'tlmgr pinning' actions is given above. + + +File: tlbuild.info, Node: tlmgr GUI FOR TLMGR, Next: tlmgr MACHINE-READABLE OUTPUT, Prev: tlmgr MULTIPLE REPOSITORIES, Up: tlmgr + +B.11 GUI FOR TLMGR +================== + +The graphical user interface for 'tlmgr' needs Perl/Tk to be installed. +For Windows the necessary modules are shipped within TeX Live, for all +other (i.e., Unix-based) systems Perl/Tk (as well as Perl of course) has +to be installed. <http://tug.org/texlive/distro.html#perltk> has a list +of invocations for some distros. + + When started with 'tlmgr gui' the graphical user interface will be +shown. The main window contains a menu bar, the main display, and a +status area where messages normally shown on the console are displayed. + + Within the main display there are three main parts: the 'Display +configuration' area, the list of packages, and the action buttons. + + Also, at the top right the currently loaded repository is shown; this +also acts as a button and when clicked will try to load the default +repository. To load a different repository, see the 'tlmgr' menu item. + + Finally, the status area at the bottom of the window gives additional +information about what is going on. + +* Menu: + +* tlmgr Main display:: +* tlmgr Menu bar:: + + +File: tlbuild.info, Node: tlmgr Main display, Next: tlmgr Menu bar, Up: tlmgr GUI FOR TLMGR + +B.11.1 Main display +------------------- + +* Menu: + +* tlmgr Display configuration area:: +* tlmgr Package list area:: +* tlmgr Main display action buttons:: + + +File: tlbuild.info, Node: tlmgr Display configuration area, Next: tlmgr Package list area, Up: tlmgr Main display + +B.11.1.1 Display configuration area +................................... + +The first part of the main display allows you to specify (filter) which +packages are shown. By default, all are shown. Changes here are +reflected right away. + +Status + + Select whether to show all packages (the default), only those + installed, only those _not_ installed, or only those with update + available. + +Category + + Select which categories are shown: packages, collections, and/or + schemes. These are briefly explained in the *note DESCRIPTION: + tlmgr DESCRIPTION. section above. + +Match + + Select packages matching for a specific pattern. By default, this + uses the same algorithm as 'tlmgr search', i.e., searches + everything: descriptions, taxonomies, and/or filenames. You can + also select any subset for searching. + +Selection + + Select packages to those selected, those not selected, or all. + Here, "selected" means that the checkbox in the beginning of the + line of a package is ticked. + +Display configuration buttons + + To the right there are three buttons: select all packages, select + none (a.k.a. deselect all), and reset all these filters to the + defaults, i.e., show all available. + + +File: tlbuild.info, Node: tlmgr Package list area, Next: tlmgr Main display action buttons, Prev: tlmgr Display configuration area, Up: tlmgr Main display + +B.11.1.2 Package list area +.......................... + +The second are of the main display lists all installed packages. If a +repository is loaded, those that are available but not installed are +also listed. + + Double clicking on a package line pops up an informational window +with further details: the long description, included files, etc. + + Each line of the package list consists of the following items: + +a checkbox + + Used to select particular packages; some of the action buttons (see + below) work only on the selected packages. + +package name + + The name (identifier) of the package as given in the database. + +local revision (and version) + + If the package is installed the TeX Live revision number for the + installed package will be shown. If there is a catalogue version + given in the database for this package, it will be shown in + parentheses. However, the catalogue version, unlike the TL + revision, is not guaranteed to reflect what is actually installed. + +remote revision (and version) + + If a repository has been loaded the revision of the package in the + repository (if present) is shown. As with the local column, if a + catalogue version is provided it will be displayed. And also as + with the local column, the catalogue version may be stale. + +short description + + The short description of the package. + + +File: tlbuild.info, Node: tlmgr Main display action buttons, Prev: tlmgr Package list area, Up: tlmgr Main display + +B.11.1.3 Main display action buttons +.................................... + +Below the list of packages are several buttons: + +Update all installed + + This calls 'tlmgr update --all', i.e., tries to update all + available packages. Below this button is a toggle to allow + reinstallation of previously removed packages as part of this + action. + + The other four buttons only work on the selected packages, i.e., + those where the checkbox at the beginning of the package line is + ticked. + +Update + + Update only the selected packages. + +Install + + Install the selected packages; acts like 'tlmgr install', i.e., + also installs dependencies. Thus, installing a collection installs + all its constituent packages. + +Remove + + Removes the selected packages; acts like 'tlmgr remove', i.e., it + will also remove dependencies of collections (but not dependencies + of normal packages). + +Backup + + Makes a backup of the selected packages; acts like 'tlmgr backup'. + This action needs the option 'backupdir' set (see 'Options -' + General>). + + +File: tlbuild.info, Node: tlmgr Menu bar, Prev: tlmgr Main display, Up: tlmgr GUI FOR TLMGR + +B.11.2 Menu bar +--------------- + +The following entries can be found in the menu bar: + +'tlmgr' menu + + The items here load various repositories: the default as specified + in the TeX Live database, the default network repository, the + repository specified on the command line (if any), and an + arbitrarily manually-entered one. Also has the so-necessary 'quit' + operation. + +'Options menu' + + Provides access to several groups of options: 'Paper' + (configuration of default paper sizes), 'Platforms' (only on Unix, + configuration of the supported/installed platforms), 'GUI Language' + (select language used in the GUI interface), and 'General' + (everything else). + + Several toggles are also here. The first is 'Expert options', + which is set by default. If you turn this off, the next time you + start the GUI a simplified screen will be shown that display only + the most important functionality. This setting is saved in the + configuration file of 'tlmgr'; see *note CONFIGURATION FILE FOR + TLMGR: tlmgr CONFIGURATION FILE FOR TLMGR. for details. + + The other toggles are all off by default: for debugging output, to + disable the automatic installation of new packages, and to disable + the automatic removal of packages deleted from the server. Playing + with the choices of what is or isn't installed may lead to an + inconsistent TeX Live installation; e.g., when a package is + renamed. + +'Actions menu' + + Provides access to several actions: update the filename database + (aka 'ls-R', 'mktexlsr', 'texhash'), rebuild all formats + ('fmtutil-sys --all'), update the font map database ('updmap-sys'), + restore from a backup of a package, and use of symbolic links in + system directories (not on Windows). + + The final action is to remove the entire TeX Live installation + (also not on Windows). + +'Help menu' + + Provides access to the TeX Live manual (also on the web at + <http://tug.org/texlive/doc.html>) and the usual "About" box. + + +File: tlbuild.info, Node: tlmgr MACHINE-READABLE OUTPUT, Next: tlmgr AUTHORS AND COPYRIGHT, Prev: tlmgr GUI FOR TLMGR, Up: tlmgr + +B.12 MACHINE-READABLE OUTPUT +============================ + +With the '--machine-readable' option, 'tlmgr' writes to stdout in the +fixed line-oriented format described here, and the usual informational +messages for human consumption are written to stderr (normally they are +written to stdout). The idea is that a program can get all the +information it needs by reading stdout. + + Currently this option only applies to the *note update: tlmgr update +[_option_]... [_pkg_]..., *note install: tlmgr install [_option_]... +_pkg_..., and *note option: tlmgr option. actions. + +* Menu: + +* tlmgr Machine-readable 'update' and 'install' output:: +* tlmgr Machine-readable 'option' output:: + + +File: tlbuild.info, Node: tlmgr Machine-readable 'update' and 'install' output, Next: tlmgr Machine-readable 'option' output, Up: tlmgr MACHINE-READABLE OUTPUT + +B.12.1 Machine-readable 'update' and 'install' output +----------------------------------------------------- + +The output format is as follows: + + fieldname "\t" value + ... + "end-of-header" + pkgname status localrev serverrev size runtime esttot + ... + "end-of-updates" + other output from post actions, not in machine readable form + + The header section currently has two fields: 'location-url' (the +repository source from which updates are being drawn), and 'total-bytes' +(the total number of bytes to be downloaded). + + The _localrev_ and _serverrev_ fields for each package are the +revision numbers in the local installation and server repository, +respectively. The _size_ field is the number of bytes to be downloaded, +i.e., the size of the compressed tar file for a network installation, +not the unpacked size. The runtime and esttot fields are only present +for updated and auto-install packages, and contain the currently passed +time since start of installation/updates and the estimated total time. + + Line endings may be either LF or CRLF depending on the current +platform. + +'location-url' _location_ + + The _location_ may be a url (including 'file:///foo/bar/...'), or a + directory name ('/foo/bar'). It is the package repository from + which the new package information was drawn. + +'total-bytes' _count_ + + The _count_ is simply a decimal number, the sum of the sizes of all + the packages that need updating or installing (which are listed + subsequently). + + Then comes a line with only the literal string 'end-of-header'. + + Each following line until a line with literal string 'end-of-updates' +reports on one package. The fields on each line are separated by a tab. +Here are the fields. + +_pkgname_ + + The TeX Live package identifier, with a possible platform suffix + for executables. For instance, 'pdftex' and 'pdftex.i386-linux' + are given as two separate packages, one on each line. + +_status_ + + The status of the package update. One character, as follows: + + 'd' + + The package was removed on the server. + + 'f' + + The package was removed in the local installation, even though + a collection depended on it. (E.g., the user ran 'tlmgr + remove --force'.) + + 'u' + + Normal update is needed. + + 'r' + + Reversed non-update: the locally-installed version is newer + than the version on the server. + + 'a' + + Automatically-determined need for installation, the package is + new on the server and is (most probably) part of an installed + collection. + + 'i' + + Package will be installed and isn't present in the local + installation (action install). + + 'I' + + Package is already present but will be reinstalled (action + install). + +_localrev_ + + The revision number of the installed package, or '-' if it is not + present locally. + +_serverrev_ + + The revision number of the package on the server, or '-' if it is + not present on the server. + +_size_ + + The size in bytes of the package on the server. The sum of all the + package sizes is given in the 'total-bytes' header field mentioned + above. + +_runtime_ + + The run time since start of installations or updates. + +_esttot_ + + The estimated total time. + + +File: tlbuild.info, Node: tlmgr Machine-readable 'option' output, Prev: tlmgr Machine-readable 'update' and 'install' output, Up: tlmgr MACHINE-READABLE OUTPUT + +B.12.2 Machine-readable 'option' output +--------------------------------------- + +The output format is as follows: + + key "\t" value + + If a value is not saved in the database the string '(not set)' is +shown. + + If you are developing a program that uses this output, and find that +changes would be helpful, do not hesitate to write the mailing list. + + +File: tlbuild.info, Node: tlmgr AUTHORS AND COPYRIGHT, Prev: tlmgr MACHINE-READABLE OUTPUT, Up: tlmgr + +B.13 AUTHORS AND COPYRIGHT +========================== + +This script and its documentation were written for the TeX Live +distribution (<http://tug.org/texlive>) and both are licensed under the +GNU General Public License Version 2 or later. + + +File: tlbuild.info, Node: Index, Prev: tlmgr, Up: Top + +Index +***** + + +* Menu: + +* --bindir configure option: '--prefix' '--bindir' .... + (line 6) +* --build=HOST: Cross configuring. (line 6) +* --disable-all-packages configure option: Build one package. (line 6) +* --disable-all-pkgs: '--disable-all-pkgs'. (line 6) +* --disable-bibtex8: Configure options for 'texk/bibtex-x'. + (line 9) +* --disable-dump-share: Configure options for 'texk/web2c'. + (line 27) +* --disable-dvipdfmx: Configure options for 'texk/dvipdfm-x'. + (line 12) +* --disable-etex-synctex: Configure options for 'texk/web2c'. + (line 64) +* --disable-ipc: Configure options for 'texk/web2c'. + (line 31) +* --disable-largefile: '--disable-largefile'. + (line 6) +* --disable-linked-scripts: Configure options for 'texk/texlive'. + (line 6) +* --disable-mf-nowin: Configure options for 'texk/web2c'. + (line 34) +* --disable-missing: '--disable-missing'. (line 6) +* --disable-native-texlive-build: '--disable-native-texlive-build'. + (line 6) +* --disable-omfonts: Configure options for 'texk/web2c'. + (line 37) +* --disable-PROG: '--enable-PROG' '--disable-PROG'. + (line 6) +* --disable-tex: Configure options for 'texk/web2c'. + (line 42) +* --disable-web-progs: Configure options for 'texk/web2c'. + (line 46) +* --disable-xdvipdfmx: Configure options for 'texk/dvipdfm-x'. + (line 15) +* --enable-*win for Metafont window support: Configure options for 'texk/web2c'. + (line 60) +* --enable-auto-core: Configure options for 'texk/web2c'. + (line 50) +* --enable-compiler-warnings=LEVEL: '--enable-compiler-warnings='LEVEL. + (line 6) +* --enable-cxx-runtime-hack configure option: Macros for compilers. + (line 29) +* --enable-etex: Configure options for 'texk/web2c'. + (line 42) +* --enable-libtool-hack: Configure options for 'texk/web2c'. + (line 55) +* --enable-maintainer-mode: '--enable-maintainer-mode'. + (line 6) +* --enable-maintainer-mode configure option: Build system tools. + (line 28) +* --enable-mktextfm-default: 'kpathsea' library. (line 20) +* --enable-multiplatform: '--enable-multiplatform'. + (line 6) +* --enable-PROG: '--enable-PROG' '--disable-PROG'. + (line 6) +* --enable-shared: '--enable-shared'. (line 6) +* --enable-silent-rules: '--enable-silent-rules'. + (line 6) +* --enable-tex-synctex: Configure options for 'texk/web2c'. + (line 64) +* --enable-texlive-build: '--disable-native-texlive-build'. + (line 16) +* --enable-xi2-scrolling: Configure options for 'texk/xdvik'. + (line 13) +* --enable-xindy-docs: Configure options for 'utils/xindy'. + (line 10) +* --enable-xindy-rules: Configure options for 'utils/xindy'. + (line 6) +* --host=HOST: Cross configuring. (line 6) +* --libdir: '--enable-multiplatform'. + (line 6) +* --no-clean Build option: Build problems. (line 6) +* --prefix configure option: '--prefix' '--bindir' .... + (line 6) +* --with-banner-add=STR: Configure options for 'texk/web2c'. + (line 6) +* --with-clisp-runtime=FILENAME: Configure options for 'utils/xindy'. + (line 14) +* --with-editor=CMD: Configure options for 'texk/web2c'. + (line 11) +* --with-fontconfig-includes=DIR: Configure options for 'texk/web2c'. + (line 16) +* --with-fontconfig-libdir=DIR: Configure options for 'texk/web2c'. + (line 16) +* --with-gs=FILENAME: Configure options for 'texk/xdvik'. + (line 6) +* --with-LIB-includes=DIR, -libdir: Library-specific configure options. + (line 16) +* --with-libgs-includes, -libdir: Configure options for 'texk/dvisvgm'. + (line 17) +* --with-recode: Configure options for 'utils/xindy'. + (line 23) +* --with-system-kpathsea: 'kpathsea' library. (line 14) +* --with-system-LIB: Adding a new generic library module. + (line 34) +* --with-system-LIB <1>: Library-specific configure options. + (line 9) +* --with-system-libgs: Configure options for 'texk/dvisvgm'. + (line 6) +* --with-system-poppler: Configure options for system 'poppler'. + (line 10) +* --with-system-xpdf: Configure options for system 'poppler'. + (line 14) +* --with-xdvi-x-toolkit: 'xdvik' package. (line 21) +* --with-xdvi-x-toolkit=KIT: Configure options for 'texk/xdvik'. + (line 9) +* --without-libgs: Configure options for 'texk/dvisvgm'. + (line 12) +* --without-ln-s: '--without-ln-s'. (line 6) +* --without-x: '--without-x'. (line 6) +* -C configure option: Build in parallel. (line 11) +* -j make option: Build in parallel. (line 6) +* adapting TeX Live for distros: Distro builds. (line 54) +* adding a new generic library: Adding a new generic library module. + (line 6) +* adding a new program: Adding a new program module. + (line 6) +* adding a new TeX-specific library: Adding a new TeX-specific library module. + (line 6) +* adding to TeX Live: Extending TeX Live. (line 6) +* 'am/' top-level directory: Top-level directories. + (line 14) +* ANSI C: Declarations and definitions. + (line 6) +* asymptote: Linked scripts. (line 22) +* asymptote <1>: 'asymptote'. (line 6) +* Autoconf: Overview of build system. + (line 6) +* autoconf macros: Autoconf macros. (line 6) +* Automake: Overview of build system. + (line 6) +* biber: Linked scripts. (line 22) +* bibtex-x: Configure options for 'texk/bibtex-x'. + (line 6) +* bibtex8: Configure options for 'texk/bibtex-x'. + (line 6) +* bibtexu: Configure options for 'texk/bibtex-x'. + (line 6) +* BSD distro: Distro builds. (line 6) +* build directory, required: Building. (line 17) +* build iteration: Build iteration. (line 6) +* build on demand: Build one package. (line 6) +* build one package: Build one package. (line 6) +* build problems: Build problems. (line 6) +* Build script: Building. (line 6) +* build system, design of: Overview of build system. + (line 6) +* BUILDCC, BUILDCFLAGS, ...: Cross configuring. (line 42) +* building: Building. (line 6) +* building a distribution: Build distribution. (line 6) +* building in parallel: Build in parallel. (line 6) +* C, ANSI, required: Declarations and definitions. + (line 6) +* C99, avoided: Declarations and definitions. + (line 6) +* cache file, for 'configure': Build in parallel. (line 11) +* cache for 'configure': Build in parallel. (line 6) +* callexe.c: Macros for Windows. (line 32) +* CC: Variables for configure. + (line 10) +* CC_BUILD: Cross problems. (line 13) +* chktex: Declarations and definitions. + (line 18) +* clisp: Variables for configure. + (line 18) +* CLISP: Variables for configure. + (line 17) +* CLISP <1>: Configure options for 'utils/xindy'. + (line 14) +* 'clisp', required by 'xindy': Prerequisites. (line 30) +* coding conventions: Coding conventions. (line 6) +* compilers, C and C++: Prerequisites. (line 6) +* config.guess, config.sub: Top-level directories. + (line 30) +* 'configure' options: Configure options. (line 6) +* 'configure' options, for 'bibtex-x': Configure options for 'texk/bibtex-x'. + (line 6) +* 'configure' options, for 'dvipdfm-x': Configure options for 'texk/dvipdfm-x'. + (line 6) +* 'configure' options, for 'dvisvgm': Configure options for 'texk/dvisvgm'. + (line 6) +* 'configure' options, for 'kpathsea': Configure options for 'kpathsea'. + (line 6) +* 'configure' options, for system 'poppler': Configure options for system 'poppler'. + (line 6) +* 'configure' options, for 'texk/texlive': Configure options for 'texk/texlive'. + (line 6) +* 'configure' options, for 'web2c': Configure options for 'texk/web2c'. + (line 6) +* 'configure' options, for 'xdvik': Configure options for 'texk/xdvik'. + (line 6) +* 'configure' options, for 'xindy': Configure options for 'utils/xindy'. + (line 6) +* 'configure' options, global: Global configure options. + (line 6) +* 'configure' options, library-specific: Library-specific configure options. + (line 6) +* 'configure' options, program-specific: Program-specific configure options. + (line 6) +* 'configure' variables: Variables for configure. + (line 6) +* configuring, for cross compilation: Cross configuring. (line 6) +* 'const': Const. (line 6) +* conventions, coding: Coding conventions. (line 6) +* CPPFLAGS: Variables for configure. + (line 12) +* cross compilation: Cross compilation. (line 6) +* cross compilation configuring: Cross configuring. (line 6) +* cross compilation problems: Cross problems. (line 6) +* cross compilation, with host binary: 'xdvik' package. (line 14) +* ctangle: Cross problems. (line 31) +* CXX: Variables for configure. + (line 11) +* declarations and definitions, in source code: Declarations and definitions. + (line 6) +* dependencies, with several output files: Build in parallel. (line 6) +* DESTDIR: '--prefix' '--bindir' .... + (line 9) +* directories, for installation: Installation directories. + (line 6) +* directories, top-level: Top-level directories. + (line 6) +* discards qualifiers warning: Const. (line 30) +* 'dist' and 'distcheck' targets for 'make': Build distribution. + (line 6) +* distribution tarball, making: Build distribution. (line 6) +* distro, building for: Distro builds. (line 6) +* dvipdfmx: Configure options for 'texk/dvipdfm-x'. + (line 6) +* dvisvgm: Configure options for 'texk/dvisvgm'. + (line 6) +* environment variables, for 'configure': Configure options. (line 16) +* exec_prefix: '--enable-multiplatform'. + (line 6) +* extending TeX Live: Extending TeX Live. (line 6) +* 'extern' functions: Declarations and definitions. + (line 43) +* 'extra/' top-level directory: Top-level directories. + (line 39) +* failure to build: Build problems. (line 6) +* 'ffcall', required by 'xindy': Prerequisites. (line 30) +* flags, macros for library and header: Macros for library and header flags. + (line 6) +* 'fontconfig' library, required by 'xetex': Prerequisites. (line 27) +* FreeType: Prerequisites. (line 11) +* 'freetype' cross compiling: Cross problems. (line 13) +* freetype library: 'freetype' library. (line 6) +* freetype-config: 'freetype' library. (line 6) +* freetype-config <1>: Variables for configure. + (line 24) +* FT2_CONFIG: Variables for configure. + (line 21) +* general setup macros: General setup macros. (line 6) +* generic library module, adding: Adding a new generic library module. + (line 6) +* global 'configure' options: Global configure options. + (line 6) +* 'gmake', required: Prerequisites. (line 11) +* GNU 'make', required: Prerequisites. (line 11) +* GNU tools, needed for building: Build system tools. (line 6) +* GNU/Linux distro: Distro builds. (line 6) +* Gnulib, used for common files: Top-level directories. + (line 30) +* iconv: Configure options for 'utils/xindy'. + (line 23) +* ICU cross compiling: Cross problems. (line 25) +* ICU libraries: Variables for configure. + (line 24) +* icu-config: Variables for configure. + (line 24) +* ICU_CONFIG: Variables for configure. + (line 22) +* infrastructure, tools needed for: Build system tools. (line 6) +* install-tl, TeX Live installer: Installing. (line 8) +* installation directories: Installation directories. + (line 6) +* installing: Installing. (line 6) +* interprocess communication: Configure options for 'texk/web2c'. + (line 31) +* introduction: Introduction. (line 6) +* iteration through sources, by 'configure' and 'make': Build iteration. + (line 6) +* kpathsea library: 'kpathsea' library. (line 6) +* kpathsea.ac: 'kpathsea' library. (line 20) +* kpse-libpng-flags.m4: 'png' library. (line 43) +* kpse-pkgs.m4: Overview of build system. + (line 30) +* kpse-zlib-flags.m4: 'zlib' library. (line 6) +* kpsewhich: Variables for configure. + (line 30) +* KPSEWHICH: Variables for configure. + (line 29) +* KPSE_ADD_FLAGS: Macros for library and header flags. + (line 18) +* KPSE_ALL_SYSTEM_FLAGS: Adding a new generic library module. + (line 34) +* KPSE_BASIC: General setup macros. (line 8) +* KPSE_CHECK_LATEX: Macros for programs. (line 8) +* KPSE_CHECK_PDFLATEX: Macros for programs. (line 15) +* KPSE_CHECK_PERL: Macros for programs. (line 18) +* KPSE_CHECK_WIN32: Macros for Windows. (line 9) +* KPSE_COMMON: General setup macros. (line 16) +* KPSE_COMPILER_VISIBILITY: Macros for compilers. (line 18) +* KPSE_COMPILER_WARNINGS: Macros for compilers. (line 8) +* KPSE_COND_MINGW32: Macros for Windows. (line 19) +* KPSE_COND_WIN32: Macros for Windows. (line 15) +* KPSE_COND_WIN32_WRAP: Macros for Windows. (line 24) +* kpse_cv_cxx_hack: Macros for compilers. (line 34) +* kpse_cv_have_win32: Macros for Windows. (line 10) +* kpse_cv_visibility_c[xx]flags: Macros for compilers. (line 25) +* kpse_cv_warning_cflags: Macros for compilers. (line 15) +* KPSE_CXX_HACK: Macros for compilers. (line 28) +* KPSE_ENABLE_PROG: Adding a new program module. + (line 14) +* KPSE_LARGEFILE: Macros for libraries. (line 8) +* KPSE_LIBPNG_FLAGS: Macros for library and header flags. + (line 10) +* KPSE_LIBPNG_FLAGS <1>: 'png' library. (line 43) +* kpse_libs_pkgs: Adding a new generic library module. + (line 6) +* KPSE_LIB_FLAGS: Macros for library and header flags. + (line 6) +* KPSE_LIB_FLAGS <1>: Adding a new generic library module. + (line 26) +* KPSE_LIB_SYSTEM_FLAGS: Adding a new generic library module. + (line 34) +* KPSE_PROG_LEX: Macros for programs. (line 21) +* KPSE_RESTORE_FLAGS: Macros for library and header flags. + (line 22) +* kpse_texk_pkgs: Adding a new program module. + (line 6) +* kpse_texlibs_pkgs: Adding a new TeX-specific library module. + (line 11) +* KPSE_TRY_LIB: 'png' library. (line 18) +* KPSE_TRY_LIB <1>: Adding a new generic library module. + (line 20) +* KPSE_TRY_LIBXX: 'png' library. (line 31) +* KPSE_TRY_LIBXX <1>: Adding a new generic library module. + (line 20) +* kpse_utils_pkgs: Adding a new program module. + (line 10) +* KPSE_WIN32_CALL: Macros for Windows. (line 31) +* KPSE_WITH_LIB: Adding a new generic library module. + (line 11) +* KPSE_WITH_TEXLIB: Adding a new TeX-specific library module. + (line 14) +* large file support: '--disable-largefile'. + (line 6) +* LATEX: Variables for configure. + (line 40) +* layout of sources: Layout and infrastructure. + (line 6) +* LFS (large file support): '--disable-largefile'. + (line 6) +* libfreetype: Variables for configure. + (line 24) +* 'libfreetype', and 'const': Const. (line 21) +* libpng library: 'png' library. (line 6) +* library module, generic, adding: Adding a new generic library module. + (line 6) +* library module, TeX-specific, adding: Adding a new TeX-specific library module. + (line 6) +* library modules: Library modules. (line 6) +* library-specific 'configure' options: Library-specific configure options. + (line 6) +* libstc++, statically linking: Macros for compilers. (line 29) +* Libtool: Overview of build system. + (line 6) +* libtool, hack for avoiding excessive linking: Configure options for 'texk/web2c'. + (line 55) +* libXt: Configure options for 'texk/web2c'. + (line 22) +* linked scripts: Linked scripts. (line 6) +* linking C++ libraries statically: Macros for compilers. (line 29) +* lisp.run, lisp.exe: Configure options for 'utils/xindy'. + (line 14) +* LittleEndian architectures: Configure options for 'texk/web2c'. + (line 27) +* 'm4/' top-level directory: Top-level directories. + (line 14) +* macros, for compilers: Macros for compilers. (line 6) +* macros, for libraries: Macros for libraries. (line 6) +* macros, for library and header flags: Macros for library and header flags. + (line 6) +* macros, for programs: Macros for programs. (line 6) +* macros, for Windows: Macros for Windows. (line 6) +* macros, general setup: General setup macros. (line 6) +* MAKE: Variables for configure. + (line 33) +* make -t: Build system tools. (line 39) +* mf-nowin: Configure options for 'texk/web2c'. + (line 34) +* 'mingw32': Cross configuring. (line 27) +* MINGW32, Automake conditional: Macros for Windows. (line 20) +* mktex.ac: 'kpathsea' library. (line 20) +* mktextfm: 'kpathsea' library. (line 20) +* modules, for libraries: Library modules. (line 6) +* modules, for programs: Program modules. (line 6) +* motif: Configure options for 'texk/xdvik'. + (line 9) +* native cross compilation: Cross compilation. (line 10) +* one package, building: Build one package. (line 6) +* OpenGL, required for Asymptote: 'asymptote'. (line 6) +* operating system distribution, building for: Distro builds. (line 6) +* opl2ofm, et al.: Configure options for 'texk/web2c'. + (line 37) +* otangle: Cross problems. (line 31) +* overall build process: Building. (line 6) +* parallel build: Build in parallel. (line 6) +* paths, for installation: Installation directories. + (line 6) +* PDF files, size of: '--disable-largefile'. + (line 10) +* PDFLATEX: Variables for configure. + (line 41) +* PERL: Variables for configure. + (line 39) +* 'perl', required by 'web2c', etc.: Prerequisites. (line 19) +* PKG_CONFIG: Variables for configure. + (line 23) +* plain.tex, not in source tree: Installing. (line 8) +* png library: 'png' library. (line 6) +* poppler: Configure options for system 'poppler'. + (line 6) +* PostScript files, size of: '--disable-largefile'. + (line 10) +* Preining, Norbert: Distro builds. (line 54) +* preloaded binaries: Configure options for 'texk/web2c'. + (line 50) +* prerequisites for building: Prerequisites. (line 6) +* problems with build: Build problems. (line 6) +* program module, adding: Adding a new program module. + (line 6) +* program modules: Program modules. (line 6) +* program-specific 'configure' options: Program-specific configure options. + (line 6) +* reautoconf: Build system tools. (line 28) +* recode: Configure options for 'utils/xindy'. + (line 23) +* requirements for building: Prerequisites. (line 6) +* runscript.exe: Macros for Windows. (line 25) +* scripts, linked and not maintained: Linked scripts. (line 6) +* scrolling: Configure options for 'texk/xdvik'. + (line 13) +* SED: Variables for configure. + (line 34) +* setup macros, general: General setup macros. (line 6) +* shared libraries, using vs. avoiding: Distro builds. (line 11) +* size of PDF and PS files: '--disable-largefile'. + (line 10) +* size of source tree: Build one package. (line 57) +* source code declarations: Declarations and definitions. + (line 6) +* source directory building, not supported: Building. (line 17) +* source tree: Layout and infrastructure. + (line 6) +* squeeze: Cross problems. (line 13) +* squeeze/configure.ac: 'xdvik' package. (line 14) +* 'static' functions: Declarations and definitions. + (line 37) +* static linking for C++: Macros for compilers. (line 29) +* stpcpy: Declarations and definitions. + (line 18) +* Subversion repository: Build system tools. (line 34) +* support files, separate from build: Installing. (line 8) +* symlinks, used for scripts: Linked scripts. (line 6) +* synctex: Configure options for 'texk/web2c'. + (line 64) +* system distribution, building for: Distro builds. (line 6) +* t1utils package: 't1utils' package. (line 6) +* tangle: Cross problems. (line 31) +* tests, running: Overview of build system. + (line 6) +* TeX-specific library module, adding: Adding a new TeX-specific library module. + (line 6) +* texlive.tlpdb, TeX Live database: Installing. (line 8) +* tie: Cross problems. (line 31) +* timestamps, in repository: Build system tools. (line 34) +* tools, for building: Build system tools. (line 6) +* top-level directories: Top-level directories. + (line 6) +* touching files to avoid rerunning: Build system tools. (line 39) +* txt2zlib: Cross problems. (line 20) +* type cast, avoiding: Const. (line 38) +* use-commit-times, Subversion: Build system tools. (line 34) +* variable declarations, in source code: Declarations and definitions. + (line 54) +* variables for 'configure': Variables for configure. + (line 6) +* warning, discards qualifiers: Const. (line 30) +* WARNING_C[XX]FLAGS: Macros for compilers. (line 9) +* web2c program: Cross problems. (line 13) +* web2c.ac: Configure options for 'texk/web2c'. + (line 42) +* wget: Linked scripts. (line 22) +* WIN32, Automake conditional: Macros for Windows. (line 16) +* WIN32_WRAP, Automake conditional: Macros for Windows. (line 25) +* Windows, invoking scripts on: Linked scripts. (line 6) +* Windows, macros for: Macros for Windows. (line 6) +* withenable.ac, for new modules: Adding a new program module. + (line 14) +* wrapper binary for scripts on Windows: Linked scripts. (line 6) +* X toolkit: Configure options for 'texk/web2c'. + (line 22) +* X11 headers, and 'const': Const. (line 21) +* X11, required by X clients: Prerequisites. (line 23) +* xasy: 'asymptote'. (line 6) +* xaw: Configure options for 'texk/xdvik'. + (line 9) +* xdvik: 'xdvik' package. (line 6) +* xdvik <1>: Configure options for 'texk/xdvik'. + (line 6) +* xdvipdfmx: Configure options for 'texk/dvipdfm-x'. + (line 6) +* xindy: Linked scripts. (line 22) +* xindy <1>: 'xindy' package. (line 6) +* xindy <2>: Configure options for 'utils/xindy'. + (line 6) +* 'xindy' cross compiling impossible: Cross problems. (line 38) +* XInput: Configure options for 'texk/xdvik'. + (line 13) +* Xlib: Configure options for 'texk/web2c'. + (line 22) +* xpdf as library: Configure options for system 'poppler'. + (line 6) +* xz: Linked scripts. (line 22) +* zlib library: 'zlib' library. (line 6) + + + +Tag Table: +Node: Top993 +Node: Introduction1911 +Node: Overview of build system3384 +Node: Prerequisites5448 +Node: Building7510 +Node: Build iteration8729 +Node: Build problems9801 +Node: Build in parallel10194 +Node: Build distribution10786 +Node: Build one package11357 +Node: Installing14130 +Node: Installation directories15145 +Node: Linked scripts16965 +Node: Distro builds18446 +Node: Layout and infrastructure20836 +Node: Build system tools21625 +Node: Top-level directories23637 +Node: Autoconf macros25691 +Node: General setup macros26392 +Node: Macros for programs27259 +Node: Macros for compilers28071 +Node: Macros for libraries29505 +Node: Macros for library and header flags29931 +Node: Macros for Windows31800 +Node: Library modules33377 +Node: 'png' library33874 +Node: 'zlib' library36167 +Node: 'freetype' library36688 +Node: 'kpathsea' library37222 +Node: Program modules38646 +Node: 't1utils' package39082 +Node: 'xindy' package39649 +Node: 'xdvik' package40828 +Node: 'asymptote'41907 +Node: Extending TeX Live42362 +Node: Adding a new program module42730 +Node: Adding a new generic library module44249 +Node: Adding a new TeX-specific library module46462 +Node: Configure options47149 +Node: Global configure options48540 +Node: '--disable-native-texlive-build'49108 +Node: '--prefix' '--bindir' ...50104 +Node: '--disable-largefile'50652 +Node: '--disable-missing'51419 +Node: '--enable-compiler-warnings='LEVEL51826 +Node: '--enable-cxx-runtime-hack'52571 +Node: '--enable-maintainer-mode'53004 +Node: '--enable-multiplatform'53539 +Node: '--enable-shared'54100 +Node: '--enable-silent-rules'54477 +Node: '--without-ln-s'54939 +Node: '--without-x'55296 +Node: Program-specific configure options55488 +Node: '--enable-PROG' '--disable-PROG'56151 +Node: '--disable-all-pkgs'56434 +Node: Configure options for 'texk/web2c'57428 +Node: Configure options for 'texk/bibtex-x'60095 +Node: Configure options for 'texk/dvipdfm-x'60671 +Node: Configure options for 'texk/dvisvgm'61510 +Node: Configure options for 'texk/texlive'62400 +Node: Configure options for 'texk/xdvik'62827 +Node: Configure options for 'utils/xindy'63437 +Node: Library-specific configure options64499 +Node: Configure options for 'kpathsea'65513 +Node: Configure options for system 'poppler'66226 +Node: Variables for configure66993 +Node: Cross compilation68421 +Node: Cross configuring69686 +Node: Cross problems71359 +Node: Coding conventions73220 +Node: Declarations and definitions73889 +Node: Const76072 +Node: install-tl77935 +Node: install-tl NAME78276 +Node: install-tl SYNOPSIS78434 +Node: install-tl DESCRIPTION78642 +Node: install-tl REFERENCES79643 +Node: install-tl OPTIONS80159 +Ref: install-tl *-gui* [[=]_module_]80513 +Ref: install-tl 'text'80722 +Ref: install-tl 'wizard'80845 +Ref: install-tl 'perltk'80999 +Ref: install-tl *-no-gui*81433 +Ref: install-tl *-lang* _llcode_81514 +Ref: install-tl *-repository* _url|path_82201 +Ref: install-tl *-select-repository*84012 +Ref: install-tl *-all-options*84448 +Ref: install-tl *-custom-bin* _path_84755 +Ref: install-tl *-debug-translation*85410 +Ref: install-tl *-force-platform* _platform_85629 +Ref: install-tl *-help*, *--help*, *-?*85873 +Ref: install-tl *-in-place*86266 +Ref: install-tl *-logfile* _file_86793 +Ref: install-tl *-no-cls*87144 +Ref: install-tl *-non-admin*87275 +Ref: install-tl *--persistent-downloads*87380 +Ref: install-tl *--no-persistent-downloads*87408 +Ref: install-tl *-portable*88016 +Ref: install-tl *-print-platform*88155 +Ref: install-tl *-profile* _profile_88348 +Ref: install-tl *-q*89842 +Ref: install-tl *-scheme* _scheme_89904 +Ref: install-tl *-v*90378 +Ref: install-tl *-version*, *--version*90539 +Node: install-tl ENVIRONMENT VARIABLES90670 +Ref: install-tl 'TEXLIVE_INSTALL_ENV_NOCHECK'91059 +Ref: install-tl 'TEXLIVE_INSTALL_NO_CONTEXT_CACHE'91261 +Ref: install-tl 'TEXLIVE_INSTALL_PREFIX'91367 +Ref: install-tl 'TEXLIVE_INSTALL_TEXMFCONFIG'91398 +Ref: install-tl 'TEXLIVE_INSTALL_TEXMFHOME'91427 +Ref: install-tl 'TEXLIVE_INSTALL_TEXMFLOCAL'91457 +Ref: install-tl 'TEXLIVE_INSTALL_TEXMFSYSCONFIG'91491 +Ref: install-tl 'TEXLIVE_INSTALL_TEXMFSYSVAR'91522 +Ref: install-tl 'TEXLIVE_INSTALL_TEXMFVAR'91550 +Ref: install-tl 'NOPERLDOC'91605 +Node: install-tl AUTHORS AND COPYRIGHT91669 +Node: tlmgr92027 +Node: tlmgr NAME92464 +Node: tlmgr SYNOPSIS92589 +Node: tlmgr DESCRIPTION92779 +Node: tlmgr EXAMPLES93875 +Ref: tlmgr 'tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet'94166 +Ref: tlmgr 'tlmgr update --list'94347 +Ref: tlmgr 'tlmgr update --all'94440 +Ref: tlmgr 'tlmgr info' _pkg_94596 +Node: tlmgr OPTIONS94802 +Ref: tlmgr *--repository* _url|path_95322 +Ref: tlmgr *--gui* [_action_]96047 +Ref: tlmgr *--gui-lang* _llcode_96454 +Ref: tlmgr *--debug-translation*97137 +Ref: tlmgr *--machine-readable*97340 +Ref: tlmgr *--no-execute-actions*97608 +Ref: tlmgr *--package-logfile* _file_97801 +Ref: tlmgr *--pause*98056 +Ref: tlmgr *--persistent-downloads*98211 +Ref: tlmgr *--no-persistent-downloads*98239 +Ref: tlmgr *--pin-file*98733 +Ref: tlmgr *--usermode*98951 +Ref: tlmgr *--usertree* _dir_99071 +Node: tlmgr ACTIONS99621 +Node: tlmgr help100853 +Node: tlmgr version101329 +Node: tlmgr backup [--clean[=_N_]] [--backupdir _dir_] [--all | _pkg_]...101647 +Ref: tlmgr *--backupdir* _directory_102741 +Ref: tlmgr *--all*102938 +Ref: tlmgr *--clean*[=_N_]103160 +Ref: tlmgr *--dry-run*103457 +Node: tlmgr candidates _pkg_103577 +Ref: tlmgr *candidates _pkg_* 1103864 +Node: tlmgr check [_option_]... [files|depends|executes|runfiles|all]104008 +Ref: tlmgr *files*104451 +Ref: tlmgr *depends*104586 +Ref: tlmgr *executes*104928 +Ref: tlmgr *runfiles*105046 +Ref: tlmgr *--use-svn*105158 +Node: tlmgr conf [texmf|tlmgr|updmap [--conffile _file_] [--delete] [_key_ [_value_]]]105275 +Node: tlmgr dump-tlpdb [--local|--remote]107347 +Ref: tlmgr *--local*107857 +Ref: tlmgr *--remote*107896 +Node: tlmgr generate [_option_]... _what_108318 +Ref: tlmgr *generate language*108559 +Ref: tlmgr *generate language.dat*108584 +Ref: tlmgr *generate language.def*108609 +Ref: tlmgr *generate language.dat.lua*108638 +Ref: tlmgr *generate fmtutil*108658 +Ref: tlmgr *--dest* _output_file_110895 +Ref: tlmgr *--localcfg* _local_conf_file_111471 +Ref: tlmgr *--rebuild-sys*111594 +Node: tlmgr gui112455 +Node: tlmgr info [_option_...] [collections|schemes|_pkg_...]112699 +Ref: tlmgr *--list*113904 +Ref: tlmgr *--only-installed*114183 +Ref: tlmgr *--taxonomy*114398 +Ref: tlmgr *--keyword*114410 +Ref: tlmgr *--functionality*114428 +Ref: tlmgr *--characterization*114449 +Node: tlmgr init-usertree114662 +Node: tlmgr install [_option_]... _pkg_...115088 +Ref: tlmgr *--file*115452 +Ref: tlmgr *--reinstall*115678 +Ref: tlmgr *--no-depends*116058 +Ref: tlmgr *--no-depends-at-all*116217 +Ref: tlmgr *--dry-run* 1116615 +Ref: tlmgr *--force*116733 +Node: tlmgr option116939 +Ref: tlmgr *option [show]*117112 +Ref: tlmgr *option showall*117130 +Ref: tlmgr *option _key_ [_value_]*117156 +Node: tlmgr paper121004 +Ref: tlmgr *paper [a4|letter]*121189 +Ref: tlmgr *[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [_papersize_|--list]*121263 +Node: tlmgr path [--w32mode=user|admin] [add|remove]122290 +Node: tlmgr pinning123773 +Ref: tlmgr 'pinning show'124080 +Ref: tlmgr 'pinning add' _repo_ _pkgglob_...124153 +Ref: tlmgr 'pinning remove' _repo_ _pkgglob_...124272 +Ref: tlmgr 'pinning remove _repo_ --all'124425 +Node: tlmgr platform list|add|remove _platform_...124479 +Node: tlmgr platform set _platform_124727 +Node: tlmgr platform set auto124955 +Ref: tlmgr *--dry-run* 2126072 +Node: tlmgr postaction [--w32mode=user|admin] [--fileassocmode=1|2] [--all] [install|remove] [shortcut|fileassoc|script] [_pkg_]...126181 +Node: tlmgr print-platform127483 +Node: tlmgr restore [--backupdir _dir_] [--all | _pkg_ [_rev_]]127955 +Ref: tlmgr *--all* 1128851 +Ref: tlmgr *--backupdir* _directory_ 1129045 +Ref: tlmgr *--dry-run* 3129201 +Ref: tlmgr *--force* 1129318 +Node: tlmgr remove [_option_]... _pkg_...129346 +Ref: tlmgr *--no-depends* 1129869 +Ref: tlmgr *--no-depends-at-all* 1129931 +Ref: tlmgr *--force* 2129987 +Ref: tlmgr *--dry-run* 4130459 +Node: tlmgr repository130566 +Ref: tlmgr *repository list*130774 +Ref: tlmgr *repository list _path|tag_*130804 +Ref: tlmgr *repository add _path_ [_tag_]*130837 +Ref: tlmgr *repository remove _path|tag_*130869 +Ref: tlmgr *repository set _path_[#_tag_] [_path_[#_tag_] ...]*130923 +Node: tlmgr search [_option_...] _what_132007 +Node: tlmgr search [_option_...] --file _what_132518 +Node: tlmgr search [_option_...] --taxonomy _what_132769 +Node: tlmgr search [_option_...] --keyword _what_133080 +Node: tlmgr search [_option_...] --functionality _what_133398 +Node: tlmgr search [_option_...] --characterization _what_133736 +Node: tlmgr search [_option_...] --all _what_134076 +Ref: tlmgr *--global*134524 +Ref: tlmgr *--word*134636 +Ref: tlmgr *--list* 1134875 +Ref: tlmgr *--file* 1135221 +Ref: tlmgr *--taxonomy* 1135278 +Ref: tlmgr *--keyword* 1135290 +Ref: tlmgr *--functionality* 1135308 +Ref: tlmgr *--characterization* 1135329 +Ref: tlmgr *--all* 2135484 +Node: tlmgr uninstall135567 +Ref: tlmgr *--force* 3135821 +Node: tlmgr update [_option_]... [_pkg_]...135877 +Ref: tlmgr *--all* 3136248 +Ref: tlmgr *--self*137989 +Ref: tlmgr *--dry-run* 5138753 +Ref: tlmgr *--list* [_pkg_]138930 +Ref: tlmgr *--exclude* _pkg_139619 +Ref: tlmgr *--no-auto-remove* [_pkg_]...140312 +Ref: tlmgr *--no-auto-install* [_pkg_]...140763 +Ref: tlmgr *--reinstall-forcibly-removed*141419 +Ref: tlmgr *--backup* and *--backupdir* _directory_141983 +Ref: tlmgr *--no-depends* 2143164 +Ref: tlmgr *--no-depends-at-all* 2143367 +Ref: tlmgr *--force* 4143423 +Node: tlmgr USER MODE143849 +Node: tlmgr user mode install146660 +Node: tlmgr user mode backup; restore; remove; update147607 +Node: tlmgr user mode generate; option; paper148049 +Node: tlmgr CONFIGURATION FILE FOR TLMGR148425 +Node: tlmgr TAXONOMIES149516 +Ref: tlmgr '--keyword' 2150142 +Ref: tlmgr '--functionality' 2150227 +Ref: tlmgr '--characterization' 2150383 +Ref: tlmgr '--taxonomy' 2150524 +Node: tlmgr MULTIPLE REPOSITORIES151065 +Node: tlmgr Pinning152786 +Node: tlmgr GUI FOR TLMGR154761 +Node: tlmgr Main display155983 +Node: tlmgr Display configuration area156235 +Ref: tlmgr Status156596 +Ref: tlmgr Category156760 +Ref: tlmgr Match156946 +Ref: tlmgr Selection157206 +Ref: tlmgr Display configuration buttons157410 +Node: tlmgr Package list area157593 +Ref: tlmgr a checkbox158177 +Ref: tlmgr package name158313 +Ref: tlmgr local revision (and version)158412 +Ref: tlmgr remote revision (and version)158787 +Ref: tlmgr short description159084 +Node: tlmgr Main display action buttons159129 +Ref: tlmgr Update all installed159395 +Ref: tlmgr Update159767 +Ref: tlmgr Install159817 +Ref: tlmgr Remove160003 +Ref: tlmgr Backup160181 +Node: tlmgr Menu bar160338 +Ref: tlmgr 'tlmgr' menu160535 +Ref: tlmgr 'Options menu'160843 +Ref: tlmgr 'Actions menu'161926 +Ref: tlmgr 'Help menu'162354 +Node: tlmgr MACHINE-READABLE OUTPUT162487 +Node: tlmgr Machine-readable 'update' and 'install' output163303 +Ref: tlmgr 'location-url' _location_164585 +Ref: tlmgr 'total-bytes' _count_164801 +Ref: tlmgr _pkgname_165211 +Ref: tlmgr _status_165421 +Ref: tlmgr 'd'165499 +Ref: tlmgr 'f'165559 +Ref: tlmgr 'u'165738 +Ref: tlmgr 'r'165784 +Ref: tlmgr 'a'165907 +Ref: tlmgr 'i'166085 +Ref: tlmgr 'I'166204 +Ref: tlmgr _localrev_166306 +Ref: tlmgr _serverrev_166413 +Ref: tlmgr _size_166525 +Ref: tlmgr _runtime_166694 +Ref: tlmgr _esttot_166764 +Node: tlmgr Machine-readable 'option' output166797 +Node: tlmgr AUTHORS AND COPYRIGHT167315 +Node: Index167662 + +End Tag Table diff --git a/Master/texmf-dist/doc/info/web2c.info b/Master/texmf-dist/doc/info/web2c.info index a0349985ccc..2466881f3cc 100644 --- a/Master/texmf-dist/doc/info/web2c.info +++ b/Master/texmf-dist/doc/info/web2c.info @@ -1,4 +1,4 @@ -This is web2c.info, produced by makeinfo version 5.1 from web2c.texi. +This is web2c.info, produced by makeinfo version 5.2 from web2c.texi. This file documents the installation and use of the programs in Web2c, an implementation of Donald Knuth's TeX system. @@ -58,7 +58,7 @@ Web2c This document describes how to install and use the programs in the Web2c implementation of the TeX system, especially for Unix systems. It -corresponds to Web2c version 2013, released in April 2013. +corresponds to Web2c version 2014, released in May 2014. * Menu: @@ -82,8 +82,7 @@ File: web2c.info, Node: Introduction, Next: Installation, Prev: Top, Up: Top 1 Introduction ************** -This manual corresponds to version 2013 of Web2c, released in April -2013. +This manual corresponds to version 2014 of Web2c, released in May 2014. "Web2c" is the name of a TeX implementation, originally for Unix, but now also running under DOS, Amiga, and other operating systems. By "TeX @@ -1182,8 +1181,8 @@ extensions. * Menu: * MLTeX:: Multi-lingual TeX. -* patgen invocation:: Creating hyphenation patterns. * TCX files:: Support for different character sets & fonts. +* patgen invocation:: Creating hyphenation patterns. File: web2c.info, Node: MLTeX, Next: TCX files, Up: Languages and hyphenation @@ -1406,7 +1405,7 @@ characters become printable by default. from the dump is ignored and the data from the file used instead. -File: web2c.info, Node: patgen invocation, Next: TCX files, Prev: TCX files, Up: Languages and hyphenation +File: web2c.info, Node: patgen invocation, Prev: TCX files, Up: Languages and hyphenation 4.4.3 Patgen: Creating hyphenation patterns ------------------------------------------- @@ -3585,7 +3584,7 @@ Index (line 16) * accented character: TCX files. (line 6) * accents, hyphenating words with: MLTeX. (line 6) -* acknowledgements: Introduction. (line 52) +* acknowledgements: Introduction. (line 51) * acm.bst: Basic BibTeX style files. (line 19) * Ada, WEB for: WEB. (line 12) @@ -3628,7 +3627,7 @@ Index * BDF and GF conversion: Font utilities available elsewhere. (line 15) * beginfig: mpost invocation. (line 35) -* Berry, Karl: Introduction. (line 42) +* Berry, Karl: Introduction. (line 41) * BIBINPUTS, search path for bib files: bibtex invocation. (line 18) * bibliographies, creating: BibTeX. (line 6) * bibliography: References. (line 6) @@ -3644,7 +3643,7 @@ Index * blank lines, in TCX files: TCX files. (line 66) * boxes, memory for: Runtime options. (line 20) * breakpoints, memory for: Runtime options. (line 20) -* Breitenlohner, Peter: Introduction. (line 9) +* Breitenlohner, Peter: Introduction. (line 8) * BSTINPUTS, search path for bst files: bibtex invocation. (line 18) * btex for MetaPost labels: mpost invocation. (line 48) * btxdoc.bib: bibtex invocation. (line 48) @@ -3714,7 +3713,7 @@ Index * cross-references, omitting: weave invocation. (line 22) * current directory, used for output: Output file location. (line 6) -* Curtis, Pavel: Introduction. (line 42) +* Curtis, Pavel: Introduction. (line 41) * Cweb: WEB. (line 12) * CWEB: WEB. (line 12) * date and time, in memory dumps: Hardware and memory dumps. @@ -3829,7 +3828,7 @@ Index * fraction routines: Compile-time options. (line 21) * Free Software Foundation documentation system: Formats. (line 47) -* freedom of Web2c: Introduction. (line 23) +* freedom of Web2c: Introduction. (line 22) * ftp.math.utah.edu: bibtex invocation. (line 54) * generating source specials: tex invocation. (line 133) * geometric designs: Metafont. (line 6) @@ -3866,12 +3865,12 @@ Index * headerbyte information: tftopl invocation. (line 95) * height, in pixels: pktype invocation. (line 62) * help, online: Common options. (line 11) -* Henry, Patrick: Introduction. (line 23) +* Henry, Patrick: Introduction. (line 22) * Herberts, Mathias: Online Metafont graphics. (line 20) * hex character codes, in TCX files: TCX files. (line 77) -* history: Introduction. (line 42) -* Hobby, John: Introduction. (line 9) +* history: Introduction. (line 41) +* Hobby, John: Introduction. (line 8) * horizontal escapement: pktype invocation. (line 57) * horizontal escapement <1>: gftype invocation. (line 106) * hp2627: Online Metafont graphics. @@ -3887,7 +3886,7 @@ Index * hyphenation and languages: Languages and hyphenation. (line 6) * hyphenation patterns, creating: patgen invocation. (line 6) -* ice cream: Introduction. (line 23) +* ice cream: Introduction. (line 22) * identifier case: tangle invocation. (line 35) * identifier collisions: tangle invocation. (line 46) * identifier length: tangle invocation. (line 27) @@ -3920,7 +3919,7 @@ Index * job name: Common options. (line 55) * kerning table, in TFM files: tftopl invocation. (line 101) * keyboard character code, translating: TCX files. (line 101) -* Knuth, Donald E.: Introduction. (line 9) +* Knuth, Donald E.: Introduction. (line 8) * Knuth, Donald E. <1>: mft invocation. (line 56) * KPATHSEA_DEBUG: Common options. (line 59) * KRN property: tftopl invocation. (line 101) @@ -3935,7 +3934,7 @@ Index * left side bearing: pktype invocation. (line 66) * left side bearing <1>: gftype invocation. (line 82) * legalisms: Legalisms. (line 6) -* licensing terms: Introduction. (line 23) +* licensing terms: Introduction. (line 22) * LIG property: tftopl invocation. (line 101) * ligature table, in TFM files: tftopl invocation. (line 101) * LIGTABLE property: tftopl invocation. (line 101) @@ -3962,7 +3961,7 @@ Index * magnification <1>: dvitype invocation. (line 28) * main_memory: Runtime options. (line 15) * Make targets, additional: Additional targets. (line 6) -* Martin, Rick: Introduction. (line 52) +* Martin, Rick: Introduction. (line 51) * Mathematical Reviews: Formats. (line 39) * mathematical typesetting: TeX. (line 6) * mem file, determining: Determining the memory dump to use. @@ -4025,8 +4024,8 @@ Index * modes.mf recommended modes file: Modes. (line 10) * mode_def: Modes. (line 15) * mode_setup: Modes. (line 15) -* Morgan, Tim: Introduction. (line 42) -* Morris, Bob: Introduction. (line 52) +* Morgan, Tim: Introduction. (line 41) +* Morris, Bob: Introduction. (line 51) * MPEDIT: Editor invocation. (line 10) * mpgraph.ps: mpost invocation. (line 18) * mpman.ps: mpost invocation. (line 6) @@ -4152,7 +4151,7 @@ Index * pxtoch: Font utilities available elsewhere. (line 23) * Raichle, Bernd: MLTeX. (line 6) -* reading, additional: Introduction. (line 60) +* reading, additional: Introduction. (line 59) * readonly directory, running TeX in: Output file location. (line 15) * readonly directory, running TeX in <1>: Output file location. @@ -4171,7 +4170,7 @@ Index * restricted shell escapes: Shell escapes. (line 6) * right side bearing: pktype invocation. (line 66) * right side bearing <1>: gftype invocation. (line 82) -* Rokicki, Tomas: Introduction. (line 42) +* Rokicki, Tomas: Introduction. (line 41) * run length encoded bitmaps: pktype invocation. (line 76) * run length encoded bitmaps <1>: gftype invocation. (line 89) * runtime options: Runtime options. (line 6) @@ -4202,13 +4201,13 @@ Index * sockets: IPC and TeX. (line 6) * space-terminated filenames: \input filenames. (line 10) * Spiderweb: WEB. (line 12) -* Stallman, Richard: Introduction. (line 52) +* Stallman, Richard: Introduction. (line 51) * starting page: dvicopy invocation. (line 28) * starting page <1>: dvitype invocation. (line 46) * Steele Jr., Guy L.: Hardware and memory dumps. (line 34) * stopping at the first error: Common options. (line 41) -* strategy, overall: Introduction. (line 17) +* strategy, overall: Introduction. (line 16) * string numbers, displaying: pooltype invocation. (line 6) * string pool, writing: tangle invocation. (line 16) * string representation: pooltype invocation. (line 30) @@ -4255,7 +4254,7 @@ Index * TeX, input files found: tex invocation. (line 20) * TeX, invocation: tex invocation. (line 6) * TeX, Metafont, and MetaPost: Three programs. (line 6) -* TeX, Web2c implementation of: Introduction. (line 9) +* TeX, Web2c implementation of: Introduction. (line 8) * tex.fmt: Initial TeX. (line 13) * TEXBIB, search path for bib files: bibtex invocation. (line 18) * TEXEDIT: Editor invocation. (line 10) @@ -4285,11 +4284,11 @@ Index (line 59) * torture tests: Triptrap. (line 6) * translation file for TeX, specifying: Common options. (line 98) -* translation from WEB to C: Introduction. (line 17) +* translation from WEB to C: Introduction. (line 16) * trap Make target: Additional targets. (line 41) * trap test: Triptrap. (line 6) * trapman.tex: Triptrap. (line 6) -* Trickey, Howard: Introduction. (line 42) +* Trickey, Howard: Introduction. (line 41) * trip Make target: Additional targets. (line 41) * trip test: Triptrap. (line 6) * tripman.tex: Triptrap. (line 6) @@ -4342,7 +4341,7 @@ Index * WEB programs, compiling: tangle invocation. (line 6) * WEB programs, typesetting: weave invocation. (line 6) * WEB2C, search path for TCX files: TCX files. (line 35) -* Weber, Olaf: Introduction. (line 42) +* Weber, Olaf: Introduction. (line 41) * webmac.tex: weave invocation. (line 22) * webman.tex: WEB. (line 12) * whitespace, in TCX files: TCX files. (line 68) @@ -4386,74 +4385,74 @@ Index Tag Table: Node: Top2754 -Node: Introduction3749 -Node: Installation6907 -Node: configure options9009 -Node: Compile-time options11031 -Node: Additional targets12133 -Node: Triptrap13410 -Node: Runtime options14937 -Node: Commonalities16695 -Node: Option conventions17296 -Node: Common options18519 -Node: Path searching22899 -Node: Output file location23871 -Node: Three programs25196 -Node: Initial and virgin25950 -Node: Memory dumps26879 -Node: Creating memory dumps27335 -Node: Determining the memory dump to use28546 -Node: Hardware and memory dumps30127 -Node: Editor invocation32577 -Node: \input filenames33444 -Node: TeX36437 -Node: tex invocation37588 -Node: Initial TeX44491 -Node: Formats45855 -Node: Languages and hyphenation48781 -Node: MLTeX49211 -Node: \charsubdef50699 -Node: \tracingcharsubdef53022 -Node: TCX files53597 -Node: patgen invocation59037 -Node: Shell escapes59761 -Node: IPC and TeX63325 -Node: TeX extensions63895 -Node: Metafont65026 -Node: mf invocation66314 -Node: Initial Metafont70151 -Node: Modes71781 -Node: Online Metafont graphics74031 -Node: gftodvi invocation77456 -Node: mft invocation80276 -Node: MetaPost84274 -Node: mpost invocation85036 -Node: Initial MetaPost90212 -Node: dvitomp invocation91134 -Node: BibTeX91799 -Node: bibtex invocation92160 -Node: Basic BibTeX style files94458 -Node: WEB95788 -Node: tangle invocation97029 -Node: weave invocation99152 -Node: pooltype invocation100559 -Node: DVI utilities101689 -Node: dvicopy invocation102621 -Node: dvitype invocation103904 -Node: dvitype output example106239 -Node: Font utilities109290 -Node: Font file formats110470 -Node: gftopk invocation113739 -Node: pktogf invocation114930 -Node: pktype invocation116096 -Node: gftype invocation118919 -Node: tftopl invocation123422 -Node: pltotf invocation128015 -Node: vftovp invocation129066 -Node: vptovf invocation131301 -Node: Font utilities available elsewhere132328 -Node: Legalisms134708 -Node: References136862 -Node: Index141429 +Node: Introduction3747 +Node: Installation6903 +Node: configure options9005 +Node: Compile-time options11027 +Node: Additional targets12129 +Node: Triptrap13406 +Node: Runtime options14933 +Node: Commonalities16691 +Node: Option conventions17292 +Node: Common options18515 +Node: Path searching22895 +Node: Output file location23867 +Node: Three programs25192 +Node: Initial and virgin25946 +Node: Memory dumps26875 +Node: Creating memory dumps27331 +Node: Determining the memory dump to use28542 +Node: Hardware and memory dumps30123 +Node: Editor invocation32573 +Node: \input filenames33440 +Node: TeX36433 +Node: tex invocation37584 +Node: Initial TeX44487 +Node: Formats45851 +Node: Languages and hyphenation48777 +Node: MLTeX49207 +Node: \charsubdef50695 +Node: \tracingcharsubdef53018 +Node: TCX files53593 +Node: patgen invocation59033 +Node: Shell escapes59739 +Node: IPC and TeX63303 +Node: TeX extensions63873 +Node: Metafont65004 +Node: mf invocation66292 +Node: Initial Metafont70129 +Node: Modes71759 +Node: Online Metafont graphics74009 +Node: gftodvi invocation77434 +Node: mft invocation80254 +Node: MetaPost84252 +Node: mpost invocation85014 +Node: Initial MetaPost90190 +Node: dvitomp invocation91112 +Node: BibTeX91777 +Node: bibtex invocation92138 +Node: Basic BibTeX style files94436 +Node: WEB95766 +Node: tangle invocation97007 +Node: weave invocation99130 +Node: pooltype invocation100537 +Node: DVI utilities101667 +Node: dvicopy invocation102599 +Node: dvitype invocation103882 +Node: dvitype output example106217 +Node: Font utilities109268 +Node: Font file formats110448 +Node: gftopk invocation113717 +Node: pktogf invocation114908 +Node: pktype invocation116074 +Node: gftype invocation118897 +Node: tftopl invocation123400 +Node: pltotf invocation127993 +Node: vftovp invocation129044 +Node: vptovf invocation131279 +Node: Font utilities available elsewhere132306 +Node: Legalisms134686 +Node: References136840 +Node: Index141407 End Tag Table diff --git a/Master/texmf-dist/doc/kpathsea/kpathsea.html b/Master/texmf-dist/doc/kpathsea/kpathsea.html index 31a3165aa7a..d66988000e0 100644 --- a/Master/texmf-dist/doc/kpathsea/kpathsea.html +++ b/Master/texmf-dist/doc/kpathsea/kpathsea.html @@ -1,16 +1,8 @@ -<html lang="en"> -<head> -<title>Kpathsea: A library for path searching</title> -<meta http-equiv="Content-Type" content="text/html"> -<meta name="description" content="Kpathsea: A library for path searching"> -<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 Kpathsea library for path searching. +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- This file documents the Kpathsea library for path searching. -Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, -2004, 2005, 2007, 2008, 2009, 2010, 2011, 2012 Karl Berry & Olaf Weber. +Copyright (C) 1996-2014 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 @@ -25,4024 +17,3355 @@ 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 -approved by the TeX Users Group.--> -<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">Kpathsea: A library for path searching</h1> -<div class="contents"> -<h2>Table of Contents</h2> -<ul> -<li><a name="toc_Top" href="#Top">Kpathsea library</a> -<li><a name="toc_Introduction" href="#Introduction">1 Introduction</a> -<ul> -<li><a href="#History">1.1 History</a> -</li></ul> -<li><a name="toc_Installation" href="#Installation">2 Installation</a> -<ul> -<li><a href="#Simple-installation">2.1 Simple installation</a> -<li><a href="#Custom-installation">2.2 Custom installation</a> -<ul> -<li><a href="#Disk-space">2.2.1 Disk space</a> -<li><a href="#Kpathsea-application-distributions">2.2.2 Kpathsea application distributions</a> -<li><a href="#Changing-search-paths">2.2.3 Changing search paths</a> -<ul> -<li><a href="#Default-path-features">2.2.3.1 Default path features</a> -<li><a href="#Default-path-generation">2.2.3.2 Default path generation</a> -</li></ul> -<li><a href="#Running-configure">2.2.4 Running <code>configure</code></a> -<ul> -<li><a href="#configure-shells">2.2.4.1 <code>configure</code> shells</a> -<li><a href="#configure-options">2.2.4.2 <code>configure</code> options</a> -<li><a href="#configure-environment">2.2.4.3 <code>configure</code> environment</a> -<li><a href="#configure-scenarios">2.2.4.4 <code>configure</code> scenarios</a> -<li><a href="#Shared-library">2.2.4.5 Shared library</a> -</li></ul> -<li><a href="#Running-make">2.2.5 Running <code>make</code></a> -<li><a href="#Installing-files">2.2.6 Installing files</a> -<li><a href="#Cleaning-up">2.2.7 Cleaning up</a> -<li><a href="#Filename-database-generation">2.2.8 Filename database generation</a> -<li><a href="#mktex-scripts">2.2.9 <samp><span class="file">mktex</span></samp> scripts</a> -<ul> -<li><a href="#mktex-configuration">2.2.9.1 <samp><span class="file">mktex</span></samp> configuration</a> -<li><a href="#mktex-script-names">2.2.9.2 <samp><span class="file">mktex</span></samp> script names</a> -<li><a href="#mktex-script-arguments">2.2.9.3 <samp><span class="file">mktex</span></samp> script arguments</a> -</li></ul> -<li><a href="#Installation-testing">2.2.10 Installation testing</a> -</li></ul> -<li><a href="#Security">2.3 Security</a> -<li><a href="#TeX-directory-structure">2.4 TeX directory structure</a> -<li><a href="#unixtex_002eftp">2.5 <samp><span class="file">unixtex.ftp</span></samp>: Obtaining TeX</a> -<li><a href="#Reporting-bugs">2.6 Reporting bugs</a> -<ul> -<li><a href="#Bug-checklist">2.6.1 Bug checklist</a> -<li><a href="#Mailing-lists">2.6.2 Mailing lists</a> -<li><a href="#Debugging">2.6.3 Debugging</a> -<li><a href="#Logging">2.6.4 Logging</a> -<li><a href="#Common-problems">2.6.5 Common problems</a> -<ul> -<li><a href="#Unable-to-find-files">2.6.5.1 Unable to find files</a> -<li><a href="#Slow-path-searching">2.6.5.2 Slow path searching</a> -<li><a href="#Unable-to-generate-fonts">2.6.5.3 Unable to generate fonts</a> -<li><a href="#TeX-or-Metafont-failing">2.6.5.4 TeX or Metafont failing</a> -<li><a href="#Empty-Makefiles">2.6.5.5 Empty Makefiles</a> -<li><a href="#XtStrings">2.6.5.6 <code>XtStrings</code></a> -<li><a href="#dlopen">2.6.5.7 <code>dlopen</code></a> -<li><a href="#ShellWidgetClass">2.6.5.8 <code>ShellWidgetClass</code></a> -<li><a href="#Pointer-combination-warnings">2.6.5.9 Pointer combination warnings</a> -</li></ul> -</li></ul> -</li></ul> -<li><a name="toc_Path-searching" href="#Path-searching">3 Path searching</a> -<ul> -<li><a href="#Searching-overview">3.1 Searching overview</a> -<li><a href="#Path-sources">3.2 Path sources</a> -<ul> -<li><a href="#Config-files">3.2.1 Config files</a> -</li></ul> -<li><a href="#Path-expansion">3.3 Path expansion</a> -<ul> -<li><a href="#Default-expansion">3.3.1 Default expansion</a> -<li><a href="#Variable-expansion">3.3.2 Variable expansion</a> -<li><a href="#Tilde-expansion">3.3.3 Tilde expansion</a> -<li><a href="#Brace-expansion">3.3.4 Brace expansion</a> -<li><a href="#KPSE_005fDOT-expansion">3.3.5 <code>KPSE_DOT</code> expansion</a> -<li><a href="#Subdirectory-expansion">3.3.6 Subdirectory expansion</a> -</li></ul> -<li><a href="#Filename-database">3.4 Filename database (<code>ls-R</code>)</a> -<ul> -<li><a href="#ls_002dR">3.4.1 <samp><span class="file">ls-R</span></samp></a> -<li><a href="#Filename-aliases">3.4.2 Filename aliases</a> -<li><a href="#Database-format">3.4.3 Database format</a> -</li></ul> -<li><a href="#Invoking-kpsewhich">3.5 <code>kpsewhich</code>: Standalone path searching</a> -<ul> -<li><a href="#Path-searching-options">3.5.1 Path searching options</a> -<li><a href="#Specially_002drecognized-files">3.5.2 Specially-recognized files for <samp><span class="command">kpsewhich</span></samp></a> -<li><a href="#Auxiliary-tasks">3.5.3 Auxiliary tasks</a> -<li><a href="#Standard-options">3.5.4 Standard options</a> -</li></ul> -</li></ul> -<li><a name="toc_TeX-support" href="#TeX-support">4 TeX support</a> -<ul> -<li><a href="#Supported-file-formats">4.1 Supported file formats</a> -<li><a href="#File-lookup">4.2 File lookup</a> -<li><a href="#Glyph-lookup">4.3 Glyph lookup</a> -<ul> -<li><a href="#Basic-glyph-lookup">4.3.1 Basic glyph lookup</a> -<li><a href="#Fontmap">4.3.2 Fontmap</a> -<li><a href="#Fallback-font">4.3.3 Fallback font</a> -</li></ul> -<li><a href="#Suppressing-warnings">4.4 Suppressing warnings</a> -</li></ul> -<li><a name="toc_Programming" href="#Programming">5 Programming</a> -<ul> -<li><a href="#Programming-overview">5.1 Programming overview</a> -<li><a href="#Calling-sequence">5.2 Calling sequence</a> -<li><a href="#Program_002dspecific-files">5.3 Program-specific files</a> -<li><a href="#Programming-with-config-files">5.4 Programming with config files</a> -</li></ul> -<li><a name="toc_Index" href="#Index">Index</a> -</li></ul> -</div> +approved by the TeX Users Group. --> +<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Kpathsea: A library for path searching</title> +<meta name="description" content="Kpathsea: A library for path searching"> +<meta name="keywords" content="Kpathsea: A library for path searching"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<link href="#Top" rel="start" title="Top"> +<link href="#Index" rel="index" title="Index"> +<link href="#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="dir.html#Top" rel="up" title="(dir)"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.indentedblock {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smallindentedblock {margin-left: 3.2em; font-size: smaller} +div.smalllisp {margin-left: 3.2em} +kbd {font-style:oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space:nowrap} +span.nolinebreak {white-space:nowrap} +span.roman {font-family:serif; font-weight:normal} +span.sansserif {font-family:sans-serif; font-weight:normal} +ul.no-bullet {list-style: none} +--> +</style> -<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> +</head> -</div> +<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000"> +<h1 class="settitle" align="center">Kpathsea: A library for path searching</h1> -<h2 class="unnumbered">Kpathsea library</h2> -<p>This manual documents how to install and use the Kpathsea library for -filename lookup. It corresponds to version 6.1.0, -released in May 2012. -<ul class="menu"> -<li><a accesskey="1" href="#Introduction">Introduction</a>: Overview. -<li><a accesskey="2" href="#Installation">Installation</a>: Compilation, installation, and bug reporting. -<li><a accesskey="3" href="#Path-searching">Path searching</a>: How filename lookups work. -<li><a accesskey="4" href="#TeX-support">TeX support</a>: Special support for TeX-related file lookups. -<li><a accesskey="5" href="#Programming">Programming</a>: How to use Kpathsea features in your program. -<li><a accesskey="6" 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> +<a name="SEC_Contents"></a> +<h2 class="contents-heading">Table of Contents</h2> -<p><a name="index-introduction-1"></a><a name="index-fundamental-purpose-of-Kpathsea-2"></a> -This manual corresponds to version 6.1.0 of the Kpathsea -library, released in May 2012. +<div class="contents"> - <p>The library's fundamental purpose is to return a filename from a list of -directories specified by the user, similar to what shells do when -looking up program names to execute. +<ul class="no-bullet"> + <li><a name="toc-Introduction-1" href="#Introduction">1 Introduction</a> + <ul class="no-bullet"> + <li><a name="toc-History-1" href="#History">1.1 History</a></li> + </ul></li> + <li><a name="toc-unixtex_002eftp_003a-Obtaining-TeX" href="#unixtex_002eftp">2 <samp>unixtex.ftp</samp>: Obtaining TeX</a></li> + <li><a name="toc-Security-1" href="#Security">3 Security</a></li> + <li><a name="toc-TeX-directory-structure-1" href="#TeX-directory-structure">4 TeX directory structure</a></li> + <li><a name="toc-Path-searching-1" href="#Path-searching">5 Path searching</a> + <ul class="no-bullet"> + <li><a name="toc-Searching-overview-1" href="#Searching-overview">5.1 Searching overview</a></li> + <li><a name="toc-Path-sources-1" href="#Path-sources">5.2 Path sources</a> + <ul class="no-bullet"> + <li><a name="toc-Config-files-1" href="#Config-files">5.2.1 Config files</a></li> + </ul></li> + <li><a name="toc-Path-expansion-1" href="#Path-expansion">5.3 Path expansion</a> + <ul class="no-bullet"> + <li><a name="toc-Default-expansion-1" href="#Default-expansion">5.3.1 Default expansion</a></li> + <li><a name="toc-Variable-expansion-1" href="#Variable-expansion">5.3.2 Variable expansion</a></li> + <li><a name="toc-Tilde-expansion-1" href="#Tilde-expansion">5.3.3 Tilde expansion</a></li> + <li><a name="toc-Brace-expansion-1" href="#Brace-expansion">5.3.4 Brace expansion</a></li> + <li><a name="toc-KPSE_005fDOT-expansion-1" href="#KPSE_005fDOT-expansion">5.3.5 <code>KPSE_DOT</code> expansion</a></li> + <li><a name="toc-Subdirectory-expansion-1" href="#Subdirectory-expansion">5.3.6 Subdirectory expansion</a></li> + </ul></li> + <li><a name="toc-Filename-database-_0028ls_002dR_0029" href="#Filename-database">5.4 Filename database (<code>ls-R</code>)</a> + <ul class="no-bullet"> + <li><a name="toc-ls_002dR-1" href="#ls_002dR">5.4.1 <samp>ls-R</samp></a></li> + <li><a name="toc-Filename-aliases-1" href="#Filename-aliases">5.4.2 Filename aliases</a></li> + <li><a name="toc-Database-format-1" href="#Database-format">5.4.3 Database format</a></li> + </ul></li> + <li><a name="toc-kpsewhich_003a-Standalone-path-searching" href="#Invoking-kpsewhich">5.5 <code>kpsewhich</code>: Standalone path searching</a> + <ul class="no-bullet"> + <li><a name="toc-Path-searching-options-1" href="#Path-searching-options">5.5.1 Path searching options</a></li> + <li><a name="toc-Specially_002drecognized-files-for-kpsewhich" href="#Specially_002drecognized-files">5.5.2 Specially-recognized files for <code>kpsewhich</code></a></li> + <li><a name="toc-Auxiliary-tasks-1" href="#Auxiliary-tasks">5.5.3 Auxiliary tasks</a></li> + <li><a name="toc-Standard-options-1" href="#Standard-options">5.5.4 Standard options</a></li> + </ul></li> + </ul></li> + <li><a name="toc-TeX-support-1" href="#TeX-support">6 TeX support</a> + <ul class="no-bullet"> + <li><a name="toc-Supported-file-formats-1" href="#Supported-file-formats">6.1 Supported file formats</a></li> + <li><a name="toc-File-lookup-1" href="#File-lookup">6.2 File lookup</a></li> + <li><a name="toc-Glyph-lookup-1" href="#Glyph-lookup">6.3 Glyph lookup</a> + <ul class="no-bullet"> + <li><a name="toc-Basic-glyph-lookup-1" href="#Basic-glyph-lookup">6.3.1 Basic glyph lookup</a></li> + <li><a name="toc-Fontmap-1" href="#Fontmap">6.3.2 Fontmap</a></li> + <li><a name="toc-Fallback-font-1" href="#Fallback-font">6.3.3 Fallback font</a></li> + </ul></li> + <li><a name="toc-Suppressing-warnings-1" href="#Suppressing-warnings">6.4 Suppressing warnings</a></li> + <li><a name="toc-mktex-scripts-1" href="#mktex-scripts">6.5 <samp>mktex</samp> scripts</a> + <ul class="no-bullet"> + <li><a name="toc-mktex-configuration-1" href="#mktex-configuration">6.5.1 <samp>mktex</samp> configuration</a></li> + <li><a name="toc-mktex-script-names-1" href="#mktex-script-names">6.5.2 <samp>mktex</samp> script names</a></li> + <li><a name="toc-mktex-script-arguments-1" href="#mktex-script-arguments">6.5.3 <samp>mktex</samp> script arguments</a></li> + </ul></li> + </ul></li> + <li><a name="toc-Programming-1" href="#Programming">7 Programming</a> + <ul class="no-bullet"> + <li><a name="toc-Programming-overview-1" href="#Programming-overview">7.1 Programming overview</a></li> + <li><a name="toc-Calling-sequence-1" href="#Calling-sequence">7.2 Calling sequence</a></li> + <li><a name="toc-Program_002dspecific-files-1" href="#Program_002dspecific-files">7.3 Program-specific files</a></li> + <li><a name="toc-Programming-with-config-files-1" href="#Programming-with-config-files">7.4 Programming with config files</a></li> + </ul></li> + <li><a name="toc-Reporting-bugs-1" href="#Reporting-bugs">8 Reporting bugs</a> + <ul class="no-bullet"> + <li><a name="toc-Bug-checklist-1" href="#Bug-checklist">8.1 Bug checklist</a></li> + <li><a name="toc-Mailing-lists-1" href="#Mailing-lists">8.2 Mailing lists</a></li> + <li><a name="toc-Debugging-1" href="#Debugging">8.3 Debugging</a></li> + <li><a name="toc-Logging-1" href="#Logging">8.4 Logging</a></li> + <li><a name="toc-Common-problems-1" href="#Common-problems">8.5 Common problems</a> + <ul class="no-bullet"> + <li><a name="toc-Unable-to-find-files-1" href="#Unable-to-find-files">8.5.1 Unable to find files</a></li> + <li><a name="toc-Slow-path-searching-1" href="#Slow-path-searching">8.5.2 Slow path searching</a></li> + <li><a name="toc-Unable-to-generate-fonts-1" href="#Unable-to-generate-fonts">8.5.3 Unable to generate fonts</a></li> + <li><a name="toc-TeX-or-Metafont-failing-1" href="#TeX-or-Metafont-failing">8.5.4 TeX or Metafont failing</a></li> + </ul></li> + </ul></li> + <li><a name="toc-Index-1" href="#Index">Index</a></li> +</ul> +</div> - <p><a name="index-programs-using-the-library-3"></a>The following software, all of which we maintain, uses this library: - <ul> -<li>Dviljk (see the ‘<samp><span class="samp">dvilj</span></samp>’ man page) -<li>Dvipsk (see <a href="dvips.html#Top">Introduction</a>) -<li>GNU font utilities (see <a href="fontu.html#Top">Introduction</a>) -<li>Web2c (see <a href="web2c.html#Top">Introduction</a>) -<li>Xdvik (see the ‘<samp><span class="samp">xdvi</span></samp>’ man page) -</ul> -<p class="noindent">Other software that we do not maintain also uses it. +<a name="Top"></a> +<div class="header"> +<p> +Next: <a href="#Introduction" accesskey="n" rel="next">Introduction</a>, Up: <a href="dir.html#Top" accesskey="u" rel="up">(dir)</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Kpathsea-library"></a> +<h1 class="top">Kpathsea library</h1> + +<p>This manual documents the Kpathsea library for path searching. It +corresponds to version 6.2.0, released in +May 2014. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Introduction" accesskey="1">Introduction</a>:</td><td> </td><td align="left" valign="top">Overview and history. +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> +</pre></th></tr><tr><td align="left" valign="top">• <a href="#unixtex_002eftp" accesskey="2">unixtex.ftp</a>:</td><td> </td><td align="left" valign="top">Obtaining TeX software. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Security" accesskey="3">Security</a>:</td><td> </td><td align="left" valign="top">Who can write what files, etc. +</td></tr> +<tr><td align="left" valign="top">• <a href="#TeX-directory-structure" accesskey="4">TeX directory structure</a>:</td><td> </td><td align="left" valign="top">Managing the horde of TeX input files. +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> +</pre></th></tr><tr><td align="left" valign="top">• <a href="#Path-searching" accesskey="5">Path searching</a>:</td><td> </td><td align="left" valign="top">How filename lookups work. +</td></tr> +<tr><td align="left" valign="top">• <a href="#TeX-support" accesskey="6">TeX support</a>:</td><td> </td><td align="left" valign="top">Special support for TeX-related file lookups. +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> +</pre></th></tr><tr><td align="left" valign="top">• <a href="#Programming" accesskey="7">Programming</a>:</td><td> </td><td align="left" valign="top">How to use Kpathsea features in your program. +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> +</pre></th></tr><tr><td align="left" valign="top">• <a href="#Reporting-bugs" accesskey="8">Reporting bugs</a>:</td><td> </td><td align="left" valign="top">Where and how to report bugs. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Index" accesskey="9">Index</a>:</td><td> </td><td align="left" valign="top">General index. +</td></tr> +</table> + + +<hr> +<a name="Introduction"></a> +<div class="header"> +<p> +Next: <a href="#unixtex_002eftp" accesskey="n" rel="next">unixtex.ftp</a>, Previous: <a href="#Top" accesskey="p" rel="prev">Top</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Introduction-1"></a> +<h2 class="chapter">1 Introduction</h2> - <p><a name="index-interface_002c-not-frozen-4"></a><a name="index-comments_002c-making-5"></a><a name="index-suggestions_002c-making-6"></a>We are still actively maintaining the library (and probably always will -be, despite our hopes). If you have comments or suggestions, please send -them to us (see <a href="#Reporting-bugs">Reporting bugs</a>). +<a name="index-introduction"></a> +<a name="index-fundamental-purpose-of-Kpathsea"></a> - <p><a name="index-conditions-for-use-7"></a><a name="index-license-for-using-the-library-8"></a><a name="index-GNU-General-Public-License-9"></a>We distribute the library under the GNU Library General Public License -(LGPL). In short, this means if you write a program using the library, -you must (offer to) distribute the source to the library, along with any -changes you have made, and allow anyone to modify the library source and -distribute their modifications. It does not mean you have to distribute -the source to your program, although we hope you will. See the -accompanying files for the text of the GNU licenses. +<p>This manual corresponds to version 6.2.0 of the Kpathsea +library, released in May 2014. +</p> +<p>The library’s fundamental purpose is to return a filename from a list of +directories specified by the user, similar to what shells do when +looking up program names to execute. +</p> +<a name="index-programs-using-the-library"></a> +<p>The following software, all of which is maintained in parallel, uses +this library: +</p> +<ul> +<li> Dviljk (see the ‘<samp>dvilj</samp>’ man page) +</li><li> Dvipsk (see <cite><a href="dvips.html#Top">Dvips: A DVI driver</a></cite>) +</li><li> GNU font utilities (see <cite><a href="fontu.html#Top">GNU font utilities</a></cite>) +</li><li> Web2c (see <cite><a href="web2c.html#Top">Web2c: A TeX implementation</a></cite>) +</li><li> Xdvik (see the ‘<samp>xdvi</samp>’ man page) +</li></ul> - <p><a name="index-g_t_0040TeX_007b_007d-Users-Group-10"></a>If you know enough about TeX to be reading this manual, then you (or +<p>Other software that we do not maintain also uses it. +</p> +<p>Kpathsea is now maintained as part of the TeX Live distribution +(<a href="http://tug.org/texlive">http://tug.org/texlive</a>). For information on configuration, +building, installing, and more, see <cite><a href="tlbuild.html#Top">Building TeX +Live</a></cite>. +</p> +<a name="index-interface_002c-not-frozen"></a> +<a name="index-comments_002c-making"></a> +<a name="index-suggestions_002c-making"></a> +<p>The library is still actively maintained. If you have comments or +suggestions, please send along (see <a href="#Reporting-bugs">Reporting bugs</a>). +</p> +<a name="index-conditions-for-use"></a> +<a name="index-license-for-using-the-library"></a> +<a name="index-GNU-General-Public-License"></a> +<p>The Kpathsea library is distributed under the GNU Library General +Public License (LGPL). In short, this means if you write a program +using the library, you must (offer to) distribute the source to the +library, along with any changes you have made, and allow anyone to +modify the library source and distribute their modifications. It does +not mean you have to distribute the source to your program, although +we hope you will. See accompanying files for the text of the GNU +licenses, or <a href="http://www.gnu.org/licenses">http://www.gnu.org/licenses</a>. +</p> +<a name="index-TeX-Users-Group"></a> +<p>If you know enough about TeX to be reading this manual, then you (or your institution) should consider joining the TeX Users Group (if -you're already a member, thanks!). TUG produces the periodical +you’re already a member, thanks!). TUG produces the periodical <cite>TUGboat</cite>, sponsors an annual meeting and publishes the proceedings, and arranges courses on TeX for all levels of users throughout the world. See <a href="http://tug.org">http://tug.org</a> for information. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#History" accesskey="1">History</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> -<ul class="menu"> -<li><a accesskey="1" href="#History">History</a> -</ul> -<div class="node"> +<hr> <a name="History"></a> -<p><hr> -Up: <a rel="up" accesskey="u" href="#Introduction">Introduction</a> - +<div class="header"> +<p> +Up: <a href="#Introduction" accesskey="u" rel="up">Introduction</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="History-1"></a> <h3 class="section">1.1 History</h3> -<p><a name="index-history-of-Kpathsea-11"></a> -<a name="index-Knuth_002c-Donald-E_002e-12"></a>(This section is for those people who are curious about how the library -came about.) (If you like to read historical accounts of software, we +<a name="index-history-of-Kpathsea"></a> + +<a name="index-Knuth_002c-Donald-E_002e"></a> +<p>This section is for those people who are curious about how the library +came about. If you like to read historical accounts of software, we urge you to seek out the GNU Autoconf manual and the “Errors of -TeX” paper by Don Knuth, published in <cite>Software—Practice and -Experience</cite> 19(7), July 1989.) - - <p><a name="index-Morgan_002c-Tim-13"></a><a name="index-Rokicki_002c-Tom-14"></a><a name="index-Berry_002c-Karl-15"></a><a name="index-VAX-11_002f750-16"></a><a name="index-Sun-2-17"></a><a name="index-pxp-_0040r_007bPascal-preprocessor_007d-18"></a><a name="index-pc-_0040r_007bPascal-compiler_007d-19"></a>[Karl writes.] My first ChangeLog entry for Web2c seems to be February -1990, but I may have done some work before then. In any case, Tim -Morgan and I were jointly maintaining it for a time. (I should mention -here that Tim had made Web2c into a real distribution long before I had -ever used it or even heard of it, and Tom Rokicki did the original -implementation. I was using <code>pxp</code> and <code>pc</code> on VAX 11/750's -and the hot new Sun 2 machines.) - - <p>It must have been later in 1990 and 1991 that I started working on +TeX” paper by Don Knuth, published in his book <cite>Digital +Typography</cite>, among other places. +</p> +<a name="index-Morgan_002c-Tim"></a> +<a name="index-Rokicki_002c-Tom"></a> +<a name="index-Berry_002c-Karl"></a> +<a name="index-VAX-11_002f750"></a> +<a name="index-Sun-2"></a> +<a name="index-pxp-Pascal-preprocessor"></a> +<a name="index-pc-Pascal-compiler"></a> +<p>[Karl writes.] My first ChangeLog entry for Web2c seems to be +February 1990, but I may have done some work before then. In any +case, Tim Morgan and I were jointly maintaining it for a time. (I +should mention here that Tim had made Web2c into a real distribution +long before I had ever used it or even heard of it, and Tom Rokicki +did the original implementation. When I started, I was using +<code>pxp</code> and <code>pc</code> on VAX 11/750’s and the hot new Sun 2 +machines.) +</p> +<p>It must have been later in 1990 and 1991 that I started working on <cite>TeX for the Impatient</cite>. Dvips, Xdvi, Web2c, and the GNU fontutils (which I was also writing at the time) all used different environment variables, and, more importantly, had different bugs in their path searching. This became extremely painful, as I was stressing everything to the limit working on the book. I also desperately wanted -to implement subdirectory searching, since I couldn't stand putting -everything in one big directory, and also couldn't stand having to -explicitly specify <samp><span class="file">cm</span></samp>, <samp><span class="file">pandora</span></samp>, <small class="dots">...</small> in a path. - - <p><a name="index-Vojta_002c-Paul-20"></a>In the first incarnation, I just hacked separately on each -program—that was the original subdirectory searching code in both Xdvi -and Dvips, though I think Paul Vojta has completely rewritten Xdvi's -support by now. That is, I tried to go with the flow in each program, -rather than changing the program's calling sequences to conform to -common routines. - - <p>Then, as bugs inevitably appeared, I found I was fixing the same thing -three times (Web2c and fontutils were always sharing code, since I -maintained those—there was no Dvipsk or Xdvik or Dviljk at this -point). After a while, I finally started sharing source files. They -weren't yet a library, though. I just kept things up to date with shell -scripts. (I was developing on a 386 running ISC 2.2 at the time, and so -didn't have symbolic links. An awful experience.) - - <p><a name="index-MacKenzie_002c-David-21"></a>The ChangeLogs for Xdvik and Dvipsk record initial releases of those +to implement subdirectory searching, since I couldn’t stand putting +everything in one big directory, and also couldn’t stand having to +explicitly specify <samp>cm</samp>, <samp>pandora</samp>, … in a path. +</p> +<a name="index-Vojta_002c-Paul"></a> +<p>In the first incarnation, I just hacked separately on each +program—that was the original subdirectory searching code in both +Xdvi and Dvips. That is, I tried to go with the flow in each program, +rather than changing the program’s calling sequences to conform to new +routines. +</p> +<p>Then, as bugs inevitably appeared, I found I was fixing the same thing +three times (Web2c and fontutils were already sharing code, since I +maintained both of those—there was no Dvipsk or Xdvik or Dviljk at +this point). After a while, I finally started sharing source files. +They weren’t yet a library, though. I just kept things up to date +with shell scripts. (I was developing on a 386 running ISC 2.2 at the +time, and so didn’t have symbolic links. An awful experience.) +</p> +<a name="index-MacKenzie_002c-David"></a> +<p>The ChangeLogs for Xdvik and Dvipsk record initial releases of those distributions in May and June 1992. I think it was because I was tired of the different configuration strategies of each program, not so much -because of the path searching. (Autoconf was being developed by David -MacKenzie and others, and I was adapting it to TeX and friends.) - - <p><a name="index-zuhn_002c-david-22"></a>I started to make a separate library that other programs could link with -on my birthday in April 1993, according to the ChangeLog. I don't +because of the path searching. Autoconf was being developed by David +MacKenzie and others, and I was adapting it to TeX and friends. +</p> +<a name="index-zuhn_002c-david"></a> +<p>I started to make a separate library that other programs could link with +on my birthday in April 1993, according to the ChangeLog. I don’t remember exactly why I finally took the time to make it a separate -library; a conversation with david zuhn that initiated it. Just seemed +library; a conversation with david zuhn initiated it. Just seemed like it was time. - - <p><a name="index-Walsh_002c-Norman-23"></a><a name="index-Neumann_002c-Gustaf-24"></a>Dviljk got started in March 1994 after I bought a Laserjet 4. (Kpathsea -work got suspended while Norm Walsh and I, with Gustaf Neumann's help, +</p> +<a name="index-Walsh_002c-Norman"></a> +<a name="index-Neumann_002c-Gustaf"></a> +<p>Dviljk got started in March 1994 after I bought a Laserjet 4. (Kpathsea +work got suspended while Norm Walsh and I, with Gustaf Neumann’s help, implemented a way for TeX to get at all those neat builtin LJ4 fonts -<small class="dots">...</small> such a treat to have something to typeset in besides Palatino!) - - <p>By spring of 1995, I had implemented just about all the path-searching +… such a treat to have something to typeset in besides Palatino!) +</p> +<p>By spring of 1995, I had implemented just about all the path-searching features in Kpathsea that I plan to, driven beyond my initial goals by Thomas Esser and others. I then started to integrate Web2c with Kpathsea. After the release of a stable Web2c, I hope to be able to stop -development, and turn most of my attention back to making fonts for GNU. -(Always assuming Micros**t hasn't completely obliterated Unix by then, -or that software patents haven't stopped software development by anybody +development, and turn most of my attention back to making fonts for GNU. +(Always assuming Micros**t hasn’t completely obliterated Unix by then, +or that software patents haven’t stopped software development by anybody smaller than a company with a million-dollar-a-year legal budget. Which -is actually what I think is likely to happen, but that's another -story<small class="dots">...</small>) - - <p><a name="index-Weber_002c-Olaf-25"></a>[Olaf writes.] At the end of 1997, UNIX is still alive and kicking, +is actually what I think is likely to happen, but that’s another +story…) +</p> +<a name="index-Weber_002c-Olaf"></a> +<p>[Olaf writes.] At the end of 1997, Unix is still alive and kicking, individuals still develop software, and Web2c development still continues. Karl had been looking for some time for someone to take up part of the burden, and I volunteered. - -<div class="node"> -<a name="Installation"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Path-searching">Path searching</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-installation-26"></a><a name="index-configuration-27"></a><a name="index-compilation-28"></a> -(A copy of this chapter is in the distribution file <samp><span class="file">kpathsea/INSTALL</span></samp>.) - - <p>The procedure for Kpathsea (and Web2c, etc.) configuration and -installation follows. If you encounter trouble, see <a href="#Common-problems">Common problems</a>, a copy of which is in the file <samp><span class="file">kpathsea/BUGS</span></samp>. - -<ul class="menu"> -<li><a accesskey="1" href="#Simple-installation">Simple installation</a>: If you just want to do it. -<li><a accesskey="2" href="#Custom-installation">Custom installation</a>: If you want to change things around. -<li><a accesskey="3" href="#Security">Security</a>: Who can write what files, etc. -<li><a accesskey="4" href="#TeX-directory-structure">TeX directory structure</a>: Managing the horde of TeX input files. -<li><a accesskey="5" href="#unixtex_002eftp">unixtex.ftp</a>: Getting software via FTP, on CD-ROM, or on tape. -<li><a accesskey="6" href="#Reporting-bugs">Reporting bugs</a>: Where and how to report bugs. -</ul> - -<div class="node"> -<a name="Simple-installation"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Custom-installation">Custom installation</a>, -Up: <a rel="up" accesskey="u" href="#Installation">Installation</a> - -</div> - -<h3 class="section">2.1 Simple installation</h3> - -<p><a name="index-simple-installation-29"></a><a name="index-installation_002c-simple-30"></a> -<a name="index-precompiled-executables_002c-instead-of-installation-31"></a><a name="index-installation_002c-getting-executables-instead-of-32"></a>Installing TeX and friends for the first time can be a daunting -experience. Thus, you may prefer to skip this whole thing and just get -precompiled executables: see <a href="#unixtex_002eftp">unixtex.ftp</a>. - - <p>This section explains what to do if you wish to take the defaults for -everything, and generally to install in the simplest possible way. Most -steps here refer to corresponding subsection in the next section which -explains how to override defaults and generally gives more details. - - <p>By default everything will be installed under <samp><span class="file">/usr/local</span></samp> and the -following discussion assumes this. However, if you already have TeX -installed, its location is used to derive the directory under which -everything is to be installed. - - <ol type=1 start=1> -<li>Be sure you have enough disk space: approximately 8 megabytes for the -compressed archives, 15MB for sources, 50MB for compilation, 40MB for -the (initial) installed system (including library files). See <a href="#Disk-space">Disk space</a>. - - <li>Retrieve these distribution archives: - <dl> -<dt><a href="ftp://ftp.tug.org/tex/texk.tar.gz">ftp://ftp.tug.org/tex/texk.tar.gz</a><dd>These are the sources, which you will be compiling. - - <br><dt><a href="ftp://ftp.tug.org/tex/texklib.tar.gz">ftp://ftp.tug.org/tex/texklib.tar.gz</a><dd>This is a basic set of input files. You should unpack it in the -directory <samp><span class="file">/usr/local/share</span></samp>; doing so will create a <samp><span class="file">texmf</span></samp> -subdirectory there. -</dl> - - <p>These archives are mirrored on the CTAN hosts, in the -<samp><span class="file">systems/web2c</span></samp> directory. - - <p class="noindent">See <a href="#Kpathsea-application-distributions">Kpathsea application distributions</a>. - - <li>When using the default search paths, there is no need to edit any -distribution files. See <a href="#Changing-search-paths">Changing search paths</a>. - - <li>At the top level of the distribution, run ‘<samp><span class="samp">sh configure</span></samp>’. (If you -have the GNU Bash shell installed, run ‘<samp><span class="samp">bash configure</span></samp>’.) -See <a href="#Running-configure">Running configure</a>. - - <li>‘<samp><span class="samp">make</span></samp>’. See <a href="#Running-make">Running make</a>. If you are using a BSD 4.4 system -such as FreeBSD or NetBSD, you may have to use GNU make (often installed -in <samp><span class="file">/usr/local/bin</span></samp>), not the BSD make. - - <li>‘<samp><span class="samp">make install</span></samp>’. See <a href="#Installing-files">Installing files</a>. - - <li>‘<samp><span class="samp">make distclean</span></samp>’. See <a href="#Cleaning-up">Cleaning up</a>. - - <li>Set up a cron job to rebuild the filename database that makes searching -faster. This line will rebuild it every midnight: - <pre class="example"> 0 0 * * * cd /usr/local/share/texmf && <var>/bindir</var>/mktexlsr -</pre> - <p>See <a href="#Filename-database-generation">Filename database generation</a>, and <a href="#Filename-database">Filename database</a>. - - <li><a name="index-printer-configuration-files-33"></a><a name="index-PostScript-fonts_002c-additional-34"></a><a name="index-color-printers_002c-configuring-35"></a>If you're installing Dvips, you also need to set up configuration files -for your printers and make any additional PostScript fonts available. -See <a href="dvips.html#Installation">Installation</a>. If you have any color printers, -see <a href="dvips.html#Color-device-configuration">Color device configuration</a>. - - <li>The first time you run a DVI driver, a bunch of PK fonts will be built -by Metafont via <code>mktexpk</code> (and added to the filename database). -This will take some time. Don't be alarmed; they will created only this -first time (unless something is wrong with your path definitions). - - <p>By default, <code>mktexpk</code> will create these fonts in a hierarchy -under <samp><span class="file">/var/tmp/texfonts</span></samp>; it simply assumes that <samp><span class="file">/var/tmp</span></samp> -exists and is globally writable. If you need a different arrangement, -see <a href="#mktex-configuration">mktex configuration</a>. - - <p>See <a href="#mktex-scripts">mktex scripts</a>. - - <li><a name="index-fonts_002c-being-created-36"></a><a name="index-mktexpk-_0040r_007b_002c-initial-runs_007d-37"></a><a name="index-tests_002c-simple-38"></a>For some simple tests, try ‘<samp><span class="samp">tex story \\bye</span></samp>’ and ‘<samp><span class="samp">latex -sample2e</span></samp>’. Then run <samp><span class="file">xdvi story</span></samp> or <samp><span class="file">dvips sample2e</span></samp> on the -resulting DVI files to preview/print the documents. See <a href="#Installation-testing">Installation testing</a>. - </ol> - -<div class="node"> -<a name="Custom-installation"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Security">Security</a>, -Previous: <a rel="previous" accesskey="p" href="#Simple-installation">Simple installation</a>, -Up: <a rel="up" accesskey="u" href="#Installation">Installation</a> - -</div> - -<h3 class="section">2.2 Custom installation</h3> - -<p><a name="index-custom-installation-39"></a><a name="index-installation_002c-customized-40"></a> -Most sites need to modify the default installation procedure in some -way, perhaps merely changing the prefix from ‘<samp><span class="samp">/usr/local</span></samp>’, perhaps -adding extra compiler or loader options to work around <code>configure</code> -bugs. This section explains how to override default choices. For -additional distribution-specific information: - <ul> -<li><samp><span class="file">dviljk/INSTALL</span></samp>. -<li>See <a href="dvips.html#Installation">Installation</a>. -<li>See <a href="web2c.html#Installation">Installation</a>. -<li><samp><span class="file">xdvik/INSTALL</span></samp>. -</ul> - - <p><a name="index-non_002dUnix-operating-systems-41"></a><a name="index-Amiga-support-42"></a><a name="index-DOS-support-43"></a><a name="index-OS_002f2-support-44"></a><a name="index-VMS-support-45"></a>These instructions are for Unix systems. Other operating-system -specific distributions have their own instructions. The code base -itself supports Amiga, DOS, OS/2, and VMS. - - <p>Following are the same steps as in the previous section (which describes -the simplest installation), but with much more detail. - -<ul class="menu"> -<li><a accesskey="1" href="#Disk-space">Disk space</a> -<li><a accesskey="2" href="#Kpathsea-application-distributions">Kpathsea application distributions</a> -<li><a accesskey="3" href="#Changing-search-paths">Changing search paths</a> -<li><a accesskey="4" href="#Running-configure">Running configure</a> -<li><a accesskey="5" href="#Running-make">Running make</a> -<li><a accesskey="6" href="#Installing-files">Installing files</a> -<li><a accesskey="7" href="#Cleaning-up">Cleaning up</a> -<li><a accesskey="8" href="#Filename-database-generation">Filename database generation</a> -<li><a accesskey="9" href="#mktex-scripts">mktex scripts</a> -<li><a href="#Installation-testing">Installation testing</a> -</ul> - -<div class="node"> -<a name="Disk-space"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Kpathsea-application-distributions">Kpathsea application distributions</a>, -Up: <a rel="up" accesskey="u" href="#Custom-installation">Custom installation</a> - -</div> - -<h4 class="subsection">2.2.1 Disk space</h4> - -<p><a name="index-disk-space_002c-needed-46"></a><a name="index-total-disk-space-47"></a><a name="index-size-of-distribution-archives-48"></a>Here is a table showing the disk space needed for each distribution -(described in the next section). The `(totals)' line reflects the -‘<samp><span class="samp">texk</span></samp>’ source distribution and ‘<samp><span class="samp">texklib</span></samp>’; the individual -distributions don't enter into it. Sizes are in megabytes. All numbers -are approximate. - - <p><table summary=""><tr align="left"><td valign="top">Distribution </td><td valign="top">.tar.gz </td><td valign="top">Unpacked </td><td valign="top">Compiled </td><td valign="top">Installed -<br></td></tr><tr align="left"><td valign="top">dviljk </td><td valign="top">.9 </td><td valign="top">3.8 </td><td valign="top"> -<br></td></tr><tr align="left"><td valign="top">dvipsk </td><td valign="top">.9 </td><td valign="top">3.2 </td><td valign="top"> -<br></td></tr><tr align="left"><td valign="top">xdvik </td><td valign="top">.7 </td><td valign="top">2.5 </td><td valign="top"> -<br></td></tr><tr align="left"><td valign="top">web2c </td><td valign="top">1.3 </td><td valign="top">5.0 </td><td valign="top"> -<br></td></tr><tr align="left"><td valign="top">web </td><td valign="top">1.9 </td><td valign="top">6.5 </td><td valign="top">- </td><td valign="top">- -<br></td></tr><tr align="left"><td valign="top">texk </td><td valign="top">7.5 </td><td valign="top">32.1 </td><td valign="top">95.3 </td><td valign="top">33.5 -<br></td></tr><tr align="left"><td valign="top">texklib </td><td valign="top">6.3 </td><td valign="top">15.0 </td><td valign="top">- </td><td valign="top">15.0 -<br></td></tr><tr align="left"><td valign="top">(totals) </td><td valign="top">14.6 </td><td valign="top">47.1 </td><td valign="top">95.3 </td><td valign="top">48.5 - <br></td></tr></table> - -<div class="node"> -<a name="Kpathsea-application-distributions"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Changing-search-paths">Changing search paths</a>, -Previous: <a rel="previous" accesskey="p" href="#Disk-space">Disk space</a>, -Up: <a rel="up" accesskey="u" href="#Custom-installation">Custom installation</a> - -</div> - -<h4 class="subsection">2.2.2 Kpathsea application distributions</h4> - -<p><a name="index-distributions_002c-compiling-simultaneously-49"></a><a name="index-version-number_002c-of-Kpathsea-50"></a><a name="index-Kpathsea-version-number-51"></a> -<a name="index-distributions_002c-not-compiling-52"></a><a name="index-NeXT_002c-lacking-X11-53"></a><a name="index-X11_002c-lacking-on-NeXT-54"></a>The archive <a href="ftp://ftp.tug.org/tex/texk.tar.gz">ftp://ftp.tug.org/tex/texk.tar.gz</a> contains all of the -Kpathsea applications I maintain, and the library itself. For example, -since NeXT does not generally support X11, you'd probably want to skip -‘<samp><span class="samp">xdvik</span></samp>’ (or simply remove it after unpacking <samp><span class="file">texk.tar.gz</span></samp>. -If you are not interested in all of them, you can also retrieve them -separately: - - <p><a name="index-DVI-drivers-55"></a> - <dl> -<dt><samp><span class="file">dviljk.tar.gz</span></samp><dd><a name="index-PCL-driver-56"></a><a name="index-LaserJet-drive-57"></a>DVI to PCL, for LaserJet printers. - - <br><dt><samp><span class="file">dvipsk.tar.gz</span></samp><dd><a name="index-PDF-generation-58"></a><a name="index-PostScript-driver-59"></a>DVI to PostScript, for previewers, printers, or PDF generation. - - <br><dt><samp><span class="file">web2c.tar.gz</span></samp><dd>The software needed to compile TeX and friends. - - <br><dt><samp><span class="file">web.tar.gz</span></samp><dd>The original WEB source files, also used in compilation. - - <br><dt><samp><span class="file">xdvik.tar.gz</span></samp><dd><a name="index-X11-previewer-60"></a>DVI previewing under the X window system. - - </dl> - - <p><a name="index-Babel-61"></a><a name="index-non_002dEnglish-typesetting-62"></a>If you want to use the Babel LaTeX package for support of non-English -typesetting, you may need to retrieve additional files. See the file -<samp><span class="file">install.txt</span></samp> in the Babel distribution. - -<div class="node"> -<a name="Changing-search-paths"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Running-configure">Running configure</a>, -Previous: <a rel="previous" accesskey="p" href="#Kpathsea-application-distributions">Kpathsea application distributions</a>, -Up: <a rel="up" accesskey="u" href="#Custom-installation">Custom installation</a> - -</div> - -<h4 class="subsection">2.2.3 Changing search paths</h4> - -<p><a name="index-search-paths_002c-changing-default-63"></a><a name="index-paths_002c-changing-default-64"></a><a name="index-texmf_002ein_0040r_007b_002c-editing_007d-65"></a>If the search paths for your installation differ from the standard -TeX directory structure (see <a href="tds.html#Top">Introduction</a>), edit the file <samp><span class="file">kpathsea/texmf.in</span></samp> -as desired, before running <code>configure</code>. For example, if you have -all your fonts or macros in one big directory. - - <p>You may also wish to edit the file <samp><span class="file">mktex.cnf</span></samp>, either before or -after installation, to control various aspects of <code>mktexpk</code> and -friends. See <a href="#mktex-configuration">mktex configuration</a>. - - <p>You do not need to edit <samp><span class="file">texmf.in</span></samp> to change the default -top-level or other installation <em>directories</em> (only the paths). -You can and should do that when you run <code>configure</code> (next step). - - <p>You also do not need to edit <samp><span class="file">texmf.in</span></samp> if you are willing to -rely on <samp><span class="file">texmf.cnf</span></samp> at runtime to define the paths, and let the -compile-time default paths be incorrect. Usually there is no harm in -doing this. - - <p>The section below explains default generation in more detail. - -<ul class="menu"> -<li><a accesskey="1" href="#Default-path-features">Default path features</a> -<li><a accesskey="2" href="#Default-path-generation">Default path generation</a> -</ul> - -<div class="node"> -<a name="Default-path-features"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Default-path-generation">Default path generation</a>, -Up: <a rel="up" accesskey="u" href="#Changing-search-paths">Changing search paths</a> - -</div> - -<h5 class="subsubsection">2.2.3.1 Default path features</h5> - -<p><a name="index-default-path-features-66"></a><a name="index-features_002c-of-default-paths-67"></a> -The purpose of having all the different files described in the section -above is to avoid having the same information in more than one place. If -you change the installation directories or top-level prefix at -<code>configure</code>-time, those changes will propagate through the whole -sequence. And if you change the default paths in <samp><span class="file">texmf.in</span></samp>, -those changes are propagated to the compile-time defaults. - - <p>The Make definitions are all repeated in several <tt>Makefile</tt>'s; but -changing the top-level <samp><span class="file">Makefile</span></samp> should suffice, as it passes down -all the variable definitions, thus overriding the submakes. (The -definitions are repeated so you can run Make in the subdirectories, if -you should have occasion to.) - - <p><a name="index-MAKETEX_005fMODE-68"></a><a name="index-paths_002c-device-name-included-in-69"></a>By default, the bitmap font paths end with ‘<samp><span class="samp">/$MAKETEX_MODE</span></samp>’, thus -including the device name (usually a Metafont mode name such as -‘<samp><span class="samp">ljfour</span></samp>’). This distinguishes two different devices with the same -resolution—a write/white from a write/black 300<span class="dmn">dpi</span> printer, for -example. - - <p><a name="index-kpse_005finit_005fprog_0040r_007b_002c-and-_0040code_007bMAKETEX_005fMODE_007d_007d-70"></a><a name="index-proginit_002ec-71"></a>However, since most sites don't have this complication, Kpathsea -(specifically, the <code>kpse_init_prog</code> function in -<samp><span class="file">kpathsea/proginit.c</span></samp>) has a special case: if the mode has not been -explicitly set by the user (or in a configuration file), it sets -<code>MAKETEX_MODE</code> to <code>/</code>. This makes the default PK path, for -example, expand into <code>.../pk//</code>, so fonts will be found even if -there is no subdirectory for the mode (if you arranged things that way -because your site has only one printer, for example) or if the program -is mode-independent (e.g., <code>pktype</code>). - - <p>To make the paths independent of the mode, simply edit -<samp><span class="file">texmf.in</span></samp> before installation, or the installed -<samp><span class="file">texmf.cnf</span></samp>, and remove the ‘<samp><span class="samp">$MAKETEX_MODE</span></samp>’. - - <p>See <a href="#mktex-script-arguments">mktex script arguments</a>, for how this interacts with <code>mktexpk</code>. - - <p><a name="index-TDS-72"></a><a name="index-g_t_0040TeX_007b_007d-directory-structure-73"></a>See <a href="#TeX-directory-structure">TeX directory structure</a>, for a -description of the default arrangement of the input files that comprise -the TeX system. - -<div class="node"> -<a name="Default-path-generation"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Default-path-features">Default path features</a>, -Up: <a rel="up" accesskey="u" href="#Changing-search-paths">Changing search paths</a> - -</div> - -<h5 class="subsubsection">2.2.3.2 Default path generation</h5> - -<p><a name="index-default-paths_002c-changing-74"></a><a name="index-paths_002c-changing-default-75"></a><a name="index-installation_002c-changing-default-directories-76"></a><a name="index-directories_002c-changing-default-installation-77"></a> -This section describes how the default paths are constructed. - - <p>You may wish to ignore the whole mess and simply edit <samp><span class="file">texmf.cnf</span></samp> -after it is installed, perhaps even copying it into place beforehand so -you can complete the installation, if it seems necessary. - - <p><a name="index-default-paths_002c-how-they_0027re-made-78"></a>To summarize the chain of events that go into defining the default paths: - - <ol type=1 start=1> -<li>‘<samp><span class="samp">configure</span></samp>’ creates a <samp><span class="file">Makefile</span></samp> from each <samp><span class="file">Makefile.in</span></samp>. - - <li><a name="index-texmf_002esed-79"></a>When Make runs in the <samp><span class="file">kpathsea</span></samp> directory, it creates a file -<samp><span class="file">texmf.sed</span></samp> that substitutes the Make value of <code>$(var)</code> for a -string <code>@var@</code>. The variables in question are the one that -define the installation directories. - - <li><a name="index-texmf_002ein-80"></a><a name="index-texmf_002ecnf_0040r_007b_002c-generated_007d-81"></a><samp><span class="file">texmf.sed</span></samp> (together with a little extra magic—see -<samp><span class="file">kpathsea/Makefile</span></samp>) is applied to <samp><span class="file">texmf.in</span></samp> to generate -<samp><span class="file">texmf.cnf</span></samp>. This is the file that will eventually be installed -and used. - - <li><a name="index-paths_002eh-82"></a>The definitions in <samp><span class="file">texmf.cnf</span></samp> are recast as C <code>#define</code>'s in -<samp><span class="file">paths.h</span></samp>. These values will be the compile-time defaults; they -are not used at runtime unless no <samp><span class="file">texmf.cnf</span></samp> file can be found. - - <p>(That's a lie: the compile-time defaults are what any extra <tt>:</tt>'s in -<samp><span class="file">texmf.cnf</span></samp> expand into; but the paths as distributed have no extra -<tt>:</tt>'s, and there's no particular reason for them to.) - </ol> - -<div class="node"> -<a name="Running-configure"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Running-make">Running make</a>, -Previous: <a rel="previous" accesskey="p" href="#Changing-search-paths">Changing search paths</a>, -Up: <a rel="up" accesskey="u" href="#Custom-installation">Custom installation</a> - -</div> - -<h4 class="subsection">2.2.4 Running <code>configure</code></h4> - -<p><a name="index-configure_0040r_007b_002c-running_007d-83"></a><a name="index-c_002dauto_002ein-84"></a><a name="index-Makefile_002ein-85"></a><a name="index-ac_005finclude_0040r_007b_002c-Autoconf-extension_007d-86"></a><a name="index-g_t_0040_0040_0040var_007bvar_007d_0040_0040-substitutions-87"></a><a name="index-system-dependencies-88"></a>Run <code>sh configure </code><var>options</var> (in the top-level directory, the -one containing <samp><span class="file">kpathsea/</span></samp>), possibly using a shell other than -<code>sh</code> (see <a href="#configure-shells">configure shells</a>). - - <p><code>configure</code> adapts the source distribution to the present system -via <code>#define</code>'s in <samp><span class="file">*/c-auto.h</span></samp>, which are created from the -corresponding <samp><span class="file">c-auto.in</span></samp>. It also creates a <samp><span class="file">Makefile</span></samp> from -the corresponding <samp><span class="file">Makefile.in</span></samp>, doing ‘<samp><span class="samp">@</span><var>var</var><span class="samp">@</span></samp>’ and -‘<samp><span class="samp">ac_include</span></samp>’ substitutions). - - <p><a name="index-README_002eCONFIGURE-89"></a><a name="index-kpathsea_002fREADME_002eCONFIGURE-90"></a><code>configure</code> is the best place to control the configuration, -compilation, and installed location of the software, either via -command-line options, or by setting environment variables before -invoking it. For example, you can disable <code>mktexpk</code> by default -with the option ‘<samp><span class="samp">--disable-mktexpk</span></samp>’. -See <a href="#configure-options">configure options</a>. - -<ul class="menu"> -<li><a accesskey="1" href="#configure-shells">configure shells</a> -<li><a accesskey="2" href="#configure-options">configure options</a> -<li><a accesskey="3" href="#configure-environment">configure environment</a> -<li><a accesskey="4" href="#configure-scenarios">configure scenarios</a> -<li><a accesskey="5" href="#Shared-library">Shared library</a> -</ul> - -<div class="node"> -<a name="configure-shells"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#configure-options">configure options</a>, -Up: <a rel="up" accesskey="u" href="#Running-configure">Running configure</a> - -</div> - -<h5 class="subsubsection">2.2.4.1 <code>configure</code> shells</h5> - -<p><a name="index-shells-and-_0040code_007bconfigure_007d-91"></a><a name="index-bash_0040r_007b_002c-recommended-for-running-_0040code_007bconfigure_007d_007d-92"></a> -Considerable effort has gone into trying to ensure that the -<code>configure</code> scripts can be run by most Bourne shell variants. -If <code>sh</code> runs into trouble, your best bet is to use Bash, the GNU -Bourne-again shell (see <a href="bash.html#Top">Top</a>). - - <p>Bourne shell variants for which problems have been reported in the past -are: - <dl> -<dt><code>ksh</code><dd><a name="index-ksh_0040r_007b_002c-losing-with-_0040code_007bconfigure_007d_007d-93"></a><a name="index-bsh_0040r_007b_002c-ok-with-_0040code_007bconfigure_007d_007d-94"></a><a name="index-Korn-shell_0040r_007b_002c-losing-with-_0040code_007bconfigure_007d_007d-95"></a><a name="index-AIX-shells-and-_0040code_007bconfigure_007d-96"></a>Old versions of the Korn shell may fail to handle the scripts. The Korn -shell may be installed as <samp><span class="file">/bin/sh</span></samp> on AIX, in which case -<samp><span class="file">/bin/bsh</span></samp> may serve instead. - - <br><dt><code>ash</code><dd><a name="index-ash_0040r_007b_002c-losing-with-_0040code_007bconfigure_007d_007d-97"></a><a name="index-NetBSD-shells-and-_0040code_007bconfigure_007d-98"></a><a name="index-FreeBSD-shells-and-_0040code_007bconfigure_007d-99"></a><a name="index-Linux-shells-and-_0040code_007bconfigure_007d-100"></a>Old versions of ash are unable to handle the scripts. Ash is sometimes -installed as <samp><span class="file">/bin/sh</span></samp> on NetBSD, FreeBSD, and Linux systems. -<samp><span class="file">/bin/bash</span></samp> should be available for those systems, but might not be -part of a default installation. - - <br><dt><span class="roman">Ultrix</span><code> /bin/sh</code><dd><a name="index-DEC-shells-and-_0040code_007bconfigure_007d-101"></a><a name="index-Ultrix-shells-and-_0040code_007bconfigure_007d-102"></a><a name="index-sh5_0040r_007b_002c-ok-with-_0040code_007bconfigure_007d_007d-103"></a><samp><span class="file">/bin/sh</span></samp> under Ultrix is a DEC-grown shell that is notably -deficient in many ways. <samp><span class="file">/bin/sh5</span></samp> may be necessary. -</dl> - -<div class="node"> -<a name="configure-options"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#configure-environment">configure environment</a>, -Previous: <a rel="previous" accesskey="p" href="#configure-shells">configure shells</a>, -Up: <a rel="up" accesskey="u" href="#Running-configure">Running configure</a> - -</div> - -<h5 class="subsubsection">2.2.4.2 <code>configure</code> options</h5> - -<p><a name="index-g_t_0040code_007bconfigure_007d-options-104"></a> -For a complete list of all <code>configure</code> options, run ‘<samp><span class="samp">configure ---help</span></samp>’ or see <a href="autoconf.html#Invoking-configure">Running <code>configure</code> scripts</a>, (a copy is in the file <samp><span class="file">kpathsea/README.CONFIGURE</span></samp>). -The generic options are listed first in the ‘<samp><span class="samp">--help</span></samp>’ output, and -the package-specific options come last. The environment variables -<code>configure</code> pays attention to are listed below. - - <p>Options particularly likely to be useful are ‘<samp><span class="samp">--prefix</span></samp>’, -‘<samp><span class="samp">--datadir</span></samp>’, and the like; see <a href="#configure-scenarios">configure scenarios</a>. - - <p><a name="index-g_t_002d_002dwith-_0040r_007boptions_007d-105"></a><a name="index-g_t_002d_002denable-_0040r_007boptions_007d-106"></a><a name="index-configuration-of-optional-features-107"></a><a name="index-options-to-_0040code_007bconfigure_007d-108"></a>This section gives pointers to descriptions of the ‘<samp><span class="samp">--with</span></samp>’ and -‘<samp><span class="samp">--enable</span></samp>’ options to <code>configure</code> that Kpathsea-using programs -accept. - - <dl> -<dt>‘<samp><span class="samp">--without-mktexmf-default</span></samp>’<dt>‘<samp><span class="samp">--without-mktexpk-default</span></samp>’<dt>‘<samp><span class="samp">--without-mktextfm-default</span></samp>’<dt>‘<samp><span class="samp">--with-mktextex-default</span></samp>’<dd>Enable or disable the dynamic generation programs. See <a href="#mktex-configuration">mktex configuration</a>. - - <br><dt>‘<samp><span class="samp">--enable-shared</span></samp>’<dd><a name="index-g_t_002d_002denable_002dshared-109"></a>Build Kpathsea as a shared library, and link against it. Also build the -usual static library. See <a href="#Shared-library">Shared library</a>. - - <br><dt>‘<samp><span class="samp">--disable-static</span></samp>’<dd><a name="index-g_t_002d_002ddisable_002dstatic-110"></a>Build only the shared library. Implies ‘<samp><span class="samp">--enable-shared</span></samp>’. - - <br><dt>‘<samp><span class="samp">--enable-maintainer-mode</span></samp>’<dd><a name="index-g_t_002d_002denable_002dmaintainer_002dmode-111"></a>Enables make targets that are useful for the maintainer and likely to be -a pain for anyone else; the makefiles created when this option is -enabled may not work at all for you. You have been warned. -</dl> - -<div class="node"> -<a name="configure-environment"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#configure-scenarios">configure scenarios</a>, -Previous: <a rel="previous" accesskey="p" href="#configure-options">configure options</a>, -Up: <a rel="up" accesskey="u" href="#Running-configure">Running configure</a> - -</div> - -<h5 class="subsubsection">2.2.4.3 <code>configure</code> environment</h5> - -<p><code>configure</code> uses the value of the following environment variables in -determining your system's characteristics, and substitutes for them in -<tt>Makefile</tt>'s: - - <dl> -<dt>‘<samp><span class="samp">CC</span></samp>’<a name="index-CC-112"></a><dd><a name="index-gcc_0040r_007b_002c-compiling-with_007d-113"></a><a name="index-cc_0040r_007b_002c-compiling-with_007d-114"></a>The compiler to use: default is <code>gcc</code> if it's installed, otherwise -<code>cc</code>. - - <br><dt>‘<samp><span class="samp">CFLAGS</span></samp>’<a name="index-CFLAGS-115"></a><dd><a name="index-compiler-options_002c-specifying-116"></a>Options to give the compiler: default is ‘<samp><span class="samp">-g -O2</span></samp>’ for <code>gcc</code>, -‘<samp><span class="samp">-g</span></samp>’ otherwise. <code>CFLAGS</code> comes after any other options. You -may need to include <code>-w</code> here if your compilations commonly have -useless warnings (e.g., <code>NULL redefined</code>), or <code>configure</code> may -fail to detect the presence of header files (it takes the messages on -standard error to mean the header file doesn't exist). - - <br><dt>‘<samp><span class="samp">CPPFLAGS</span></samp>’<a name="index-CPPFLAGS-117"></a><dd><a name="index-configuration-compiler-options-118"></a>Options to pass to the compiler preprocessor; this matters most for -configuration, not the actual source compilation. The <code>configure</code> -script often does only preprocessing (e.g., to check for the existence -of <tt>#include</tt> files), and <code>CFLAGS</code> is not used for this. You may -need to set this to something like -‘<samp><span class="samp">-I/usr/local/include/wwwhatever</span></samp>’ if you have the libwww library -installed for hyper-xdvik (see <samp><span class="file">xdvik/INSTALL</span></samp>). - - <br><dt>‘<samp><span class="samp">DEFS</span></samp>’<a name="index-DEFS-119"></a><dd><a name="index-preprocessor-options-120"></a>Additional preprocessor options, but not used by <code>configure</code>. -Provided for enabling or disabling program features, as documented in -the various program-specific installation instructions. <code>DEFS</code> -comes before any compiler options included by the distribution -<samp><span class="file">Makefile</span></samp>s or by <code>configure</code>. - - <br><dt>‘<samp><span class="samp">LDFLAGS</span></samp>’<a name="index-LDFLAGS-121"></a><dd><a name="index-loader-options-122"></a>Additional options to give to the loader. <code>LDFLAGS</code> comes before -any other linker options. - - <br><dt>‘<samp><span class="samp">LIBS</span></samp>’<a name="index-LIBS-123"></a><dd><a name="index-libraries_002c-specifying-additional-124"></a>Additional libraries to link with. -</dl> - -<div class="node"> -<a name="configure-scenarios"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Shared-library">Shared library</a>, -Previous: <a rel="previous" accesskey="p" href="#configure-environment">configure environment</a>, -Up: <a rel="up" accesskey="u" href="#Running-configure">Running configure</a> - -</div> - -<h5 class="subsubsection">2.2.4.4 <code>configure</code> scenarios</h5> - -<p>Here are some common installation scenarios: - - <ul> -<li>Including X support in Metafont. This is disabled by default, since -many sites have no use for it, and it's a leading cause of configuration -problems. - <pre class="example"> configure --with-x -</pre> - <li><a name="index-g_t_0040TeX_007b_007d-hierarchy_002c-one-125"></a>Putting the binaries, TeX files, GNU info files, etc. into a single -TeX hierarchy, say <samp><span class="file">/here/texmf</span></samp>, requires overriding defaults in -<code>configure</code>: - <pre class="example"> configure --prefix=/here/texmf --datadir=/here -</pre> - <li><a name="index-multiple-architectures_002c-compiling-on-126"></a><a name="index-architectures_002c-compiling-multiple-127"></a><a name="index-symbolic-link-trees_002c-for-multiple-architectures-128"></a><a name="index-g_t_002d_002dsrcdir_0040r_007b_002c-for-building-multiple-architectures_007d-129"></a><a name="index-lndir-_0040r_007bfor-building-symlink-trees_007d-130"></a>You can compile on multiple architectures simultaneously either by -building symbolic link trees with the <code>lndir</code> script from the X11 -distribution, or with the ‘<samp><span class="samp">--srcdir</span></samp>’ option: - <pre class="example"> configure --srcdir=<var>srcdir</var> -</pre> - <li><a name="index-multiple-architectures_002c-directories-for-131"></a>If you are installing binaries for multiple architectures into a single -hierarchy, you will probably want to override the default <samp><span class="file">bin</span></samp> and -<samp><span class="file">lib</span></samp> directories, something like this: - <pre class="example"> configure --prefix=<var>texmf</var> --datadir=<var>texmf</var> \ - --bindir=<var>texmf</var>/<var>arch</var>/bin --libdir=<var>texmf</var>/<var>arch</var>/lib - make texmf=<var>texmf</var> -</pre> - <p><a name="index-depot-132"></a><a name="index-automounter_002c-and-configuration-133"></a>(Unless you make provisions for architecture-specific files in -other ways, e.g., with Depot or an automounter.) - - <li><a name="index-g_t_002dO_0040r_007b_002c-compiling-with_007d-134"></a><a name="index-g_t_002dg_0040r_007b_002c-compiling-without_007d-135"></a><a name="index-optimization_002c-enabling-136"></a><a name="index-debugging-with-_0040samp_007b_002dg_007d_002c-disabling-137"></a>To compile with optimization (to compile without debugging, remove the -‘<samp><span class="samp">-g</span></samp>’): - <pre class="example"> env CFLAGS="-g -O" sh configure ... -</pre> - <p class="noindent">For a potential problem if you optimize, see <a href="#TeX-or-Metafont-failing">TeX or Metafont failing</a>. -</ul> - -<div class="node"> -<a name="Shared-library"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#configure-scenarios">configure scenarios</a>, -Up: <a rel="up" accesskey="u" href="#Running-configure">Running configure</a> - -</div> - -<h5 class="subsubsection">2.2.4.5 Shared library</h5> - -<p><a name="index-shared-library_002c-making-138"></a> -<a name="index-g_t_002d_002denable_002dshared-139"></a>You can compile Kpathsea as a shared library on a few systems, by -specifying the option ‘<samp><span class="samp">--enable-shared</span></samp>’ when you run -‘<samp><span class="samp">configure</span></samp>’. - - <p><a name="index-code-sharing-140"></a>The main advantage in doing this is that the executables can then share -the code, thus decreasing memory and disk space requirements. - - <p>On some systems, you can record the location of shared libraries in a -binary, usually by giving certain options to the linker. Then -individual users do not need to set their system's environment variable -(e.g., <code>LD_LIBRARY_PATH</code>) to find shared libraries. If you want to -do this, you will need to add the necessary options to <code>LDFLAGS</code> -yourself; for example, on Solaris, include something like -‘<samp><span class="samp">-R${prefix}/lib</span></samp>’, on IRIX or Linux, use -‘<samp><span class="samp">-rpath${prefix}/lib</span></samp>’. (Unfortunately, making this happen by -default is very difficult, because of interactions with an existing -installed shared library.) - -<div class="node"> -<a name="Running-make"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Installing-files">Installing files</a>, -Previous: <a rel="previous" accesskey="p" href="#Running-configure">Running configure</a>, -Up: <a rel="up" accesskey="u" href="#Custom-installation">Custom installation</a> - -</div> - -<h4 class="subsection">2.2.5 Running <code>make</code></h4> - -<p><a name="index-make_0040r_007b_002c-running_007d-141"></a> -<a name="index-texmf_002ecnf_0040r_007b_002c-creating_007d-142"></a><a name="index-paths_002eh_0040r_007b_002c-creating_007d-143"></a><code>make</code> (still in the top-level directory). This also creates the -<samp><span class="file">texmf.cnf</span></samp> and <samp><span class="file">paths.h</span></samp> files that define the default search -paths, and (by default) the ‘<samp><span class="samp">plain</span></samp>’ and ‘<samp><span class="samp">latex</span></samp>’ TeX formats. - - <p><a name="index-fallback-resolutions_002c-overriding-144"></a>You can override directory names and other values at <code>make</code>-time. -<samp><span class="file">make/paths.make</span></samp> lists the variables most commonly reset. For -example, ‘<samp><span class="samp">make default_texsizes=600</span></samp>’ changes the list of fallback -resolutions. - - <p>You can also override each of <code>configure</code>'s environment variables -(see <a href="#configure-environment">configure environment</a>). The Make variables have the same names. - - <p>Finally, you can supply additional options via the following variables. -(<code>configure</code> does not use these.) - - <dl> -<dt>‘<samp><span class="samp">XCPPFLAGS</span></samp>’<a name="index-XCPPFLAGS-145"></a><dt>‘<samp><span class="samp">XDEFS</span></samp>’<a name="index-XDEFS-146"></a><dd><a name="index-preprocessor-options_002c-additional-147"></a>Preprocessor options. - - <br><dt>‘<samp><span class="samp">XCFLAGS</span></samp>’<a name="index-XCFLAGS-148"></a><dd><a name="index-compiler-options_002c-additional-149"></a>Compiler options. - - <br><dt>‘<samp><span class="samp">XLDFLAGS</span></samp>’<a name="index-XLDFLAGS-150"></a><dd><a name="index-loader-options_002c-initial-151"></a>Loader options (included at beginning of link commands). - - <br><dt>‘<samp><span class="samp">XLOADLIBES</span></samp>’<a name="index-XLOADLIBES-152"></a><dd><a name="index-loader-options_002c-final-153"></a>More loader options (included at end of link commands). - - <br><dt>‘<samp><span class="samp">XMAKEARGS</span></samp>’<a name="index-XMAKEARGS-154"></a><dd><a name="index-Make-arguments_002c-additional-155"></a>Additional Make arguments passed to all sub-<code>make</code>'s. You may need -to include assignments to the other variables here via <code>XMAKEARGS</code>; -for example: ‘<samp><span class="samp">make XMAKEARGS="CFLAGS=-O XDEFS=-DA4"</span></samp>’. -</dl> - - <p><a name="index-compiler_002c-changing-156"></a><a name="index-libraries_002c-changing-157"></a>It's generally a bad idea to use a different compiler (‘<samp><span class="samp">CC</span></samp>’) or -libraries (<code>LIBS</code>) for compilation than you did for configuration, -since the values <code>configure</code> determined may then be incorrect. - - <p><a name="index-universe_002c-BSD-vs_002e_0040_003a-system-V-158"></a><a name="index-BSD-universe-159"></a><a name="index-system-V-universe-160"></a><a name="index-Solaris-BSD-compatibility_002c-not-161"></a><a name="index-libucb_0040r_007b_002c-avoiding_007d-162"></a><a name="index-ucbinclude_0040r_007b_002c-avoiding_007d-163"></a>Adding compiler options to change the “universe” you are using -(typically BSD vs. system V) is generally a cause of trouble. It's -best to use the native environment, whatever that is; <code>configure</code> -and the software usually adapt best to that. In particular, under -Solaris 2.x, you should not use the BSD-compatibility library -(<samp><span class="file">libucb</span></samp>) or include files (<samp><span class="file">ucbinclude</span></samp>). - - <p><a name="index-Babel-164"></a>If you want to use the Babel LaTeX package for support of non-English -typesetting, you need to modify some files before making the LaTeX -format. See the file <samp><span class="file">install.txt</span></samp> in the Babel distribution. - -<div class="node"> -<a name="Installing-files"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Cleaning-up">Cleaning up</a>, -Previous: <a rel="previous" accesskey="p" href="#Running-make">Running make</a>, -Up: <a rel="up" accesskey="u" href="#Custom-installation">Custom installation</a> - -</div> - -<h4 class="subsection">2.2.6 Installing files</h4> - -<p><a name="index-installing-files-165"></a> -The basic command is the usual <code>make install</code>. For security -issues, see <a href="#Security">Security</a>. - - <p>The first time you install any manual in the GNU Info system, you should -add a line (you choose where) to the file <samp><span class="file">dir</span></samp> in your -‘<samp><span class="samp">$(infodir)</span></samp>’ directory. Sample text for this is given near the top -of the Texinfo source files (<samp><span class="file">kpathsea/kpathsea.texi</span></samp>, -<samp><span class="file">dvipsk/dvips.texi</span></samp>, and <samp><span class="file">web2c/doc/web2c.texi</span></samp>). -If you have a recent version of the GNU Texinfo distribution installed -(<a href="ftp://prep.ai.mit.edu/pub/gnu/texinfo-3.9.tar.gz">ftp://prep.ai.mit.edu/pub/gnu/texinfo-3.9.tar.gz</a> or later), this -should happen automatically. - - <p>On the offchance that this is your first Info installation, the -<samp><span class="file">dir</span></samp> file I use is included in the distribution as -<samp><span class="file">etc/dir-example</span></samp>. - - <p><a name="index-multiple-architectures_002c-installing-on-166"></a><a name="index-architecture_002d_0028in_0029dependent-files_002c-installing-only-167"></a><a name="index-installation_002c-architecture_002d_0028in_0029dependent-files-only-168"></a>You may wish to use one of the following targets, especially if you are -installing on multiple architectures: - <ul> -<li><a name="index-install_002dexec-_0040r_007bMake-target_007d-169"></a><code>make install-exec</code> to install in architecture-dependent -directories, i.e., ones that depend on the <code>$(exec_prefix)</code> Make -variable. This includes links to binaries, libraries, etc., not just -“executables”. - - <li><a name="index-install_002ddata-_0040r_007bMake-target_007d-170"></a><code>make install-data</code> to install in architecture-independent -directories, such as documentation, configuration files, pool files, etc. -</ul> - - <p><a name="index-AFS-171"></a><a name="index-Andrew-File-System_002c-installing-with-172"></a><a name="index-g_t_002fafs_002f_0040dots_007b_007d-_0040r_007b_002c-installing-into_007d-173"></a>If you use the Andrew File System, the normal path (e.g., -<var>prefix</var>/bin) only gets you to a read-only copy of the files, and -you must specify a different path for installation. The best way to do this -is by setting the ‘<samp><span class="samp">prefix</span></samp>’ variable on the <code>make</code> command -line. The sequence becomes something like this: -<pre class="example"> configure --prefix=/whatever - make - make install prefix=/afs/.<var>system.name</var>/system/1.3/@sys/whatever -</pre> - <p><a name="index-ls_002dR-_0040r_007band-AFS_007d-174"></a><a name="index-relative-filenames-in-_0040file_007bls_002dR_007d-175"></a>With AFS, you will definitely want to use relative filenames in -<samp><span class="file">ls-R</span></samp> (see <a href="#Filename-database">Filename database</a>), not absolute filenames. This -is done by default, but check anyway. - -<div class="node"> -<a name="Cleaning-up"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Filename-database-generation">Filename database generation</a>, -Previous: <a rel="previous" accesskey="p" href="#Installing-files">Installing files</a>, -Up: <a rel="up" accesskey="u" href="#Custom-installation">Custom installation</a> - -</div> - -<h4 class="subsection">2.2.7 Cleaning up</h4> - -<p><a name="index-distclean-_0040r_007bMake-target_007d-176"></a>The basic command is <code>make distclean</code>. This removes all files -created by the build. - - <p>Alternatively, - <ul> -<li><a name="index-mostlyclean-_0040r_007bMake-target_007d-177"></a><code>make mostlyclean</code> if you intend to compile on another -architecture. For Web2C, since the generated C files are portable, -they are not removed. If the <code>lex</code> vs. <code>flex</code> situation -is going to be different on the next machine, <code>rm -web2c/lex.yy.c</code>. - - <li><a name="index-clean-_0040r_007bMake-target_007d-178"></a><code>make clean</code> to remove files created by compiling, but leave -configuration files and Makefiles. - - <li><a name="index-maintainer_002dclean-_0040r_007bMake-target_007d-179"></a><code>make maintainer-clean</code> to remove everything that the Makefiles can -rebuild. This is more than ‘<samp><span class="samp">distclean</span></samp>’ removes, and you should -only use it if you are thoroughly conversant with (and have the necessary -versions of) Autoconf. - - <li><a name="index-extraclean-_0040r_007bMake-target_007d-180"></a><code>make extraclean</code> to remove other junk, e.g., core files, log -files, patch rejects. This is independent of the other ‘<samp><span class="samp">clean</span></samp>’ -targets. -</ul> - -<div class="node"> -<a name="Filename-database-generation"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#mktex-scripts">mktex scripts</a>, -Previous: <a rel="previous" accesskey="p" href="#Cleaning-up">Cleaning up</a>, -Up: <a rel="up" accesskey="u" href="#Custom-installation">Custom installation</a> - -</div> - -<h4 class="subsection">2.2.8 Filename database generation</h4> - -<p><a name="index-filename-database-generation-181"></a><a name="index-generation-of-filename-database-182"></a> -You will probably want to set up a <code>cron</code> entry on the appropriate -machine(s) to rebuild the filename database nightly or so, as in: -<pre class="example"> 0 0 * * * cd <var>texmf</var> && <var>/bindir</var>/mktexlsr -</pre> - <p class="noindent">See <a href="#Filename-database">Filename database</a>. - - <p>Although the <code>mktex...</code> scripts make every effort to add -newly-created files on the fly, it can't hurt to make sure you get a -fresh version every so often. - -<div class="node"> -<a name="mktex-scripts"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Installation-testing">Installation testing</a>, -Previous: <a rel="previous" accesskey="p" href="#Filename-database-generation">Filename database generation</a>, -Up: <a rel="up" accesskey="u" href="#Custom-installation">Custom installation</a> - -</div> - -<h4 class="subsection">2.2.9 <samp><span class="file">mktex</span></samp> scripts</h4> - -<p><a name="index-g_t_0040file_007bmktex_007d-scripts-183"></a><a name="index-scripts-for-file-creation-184"></a> -<a name="index-font-set_002c-infinite-185"></a><a name="index-dynamic-creation-of-files-186"></a><a name="index-Sauter-fonts_002c-and-dynamic-source-creation-187"></a><a name="index-EC-fonts_002c-and-dynamic-source-creation-188"></a>If Kpathsea cannot otherwise find a file, for some file types it is -configured by default to invoke an external program to create it -dynamically (see <a href="#mktex-configuration">mktex configuration</a>). These are collectively -known as <code>mktex</code><dfn> scripts</dfn>, since most of them are named -<code>mktex...</code>. - - <p>For example, this is useful for fonts (bitmaps, TFM's, and -arbitrarily-sizable Metafont sources such as the Sauter and EC fonts), -since any given document can use fonts never before referenced. -Building all fonts in advance is therefore impractical, if not -impossible. - - <p>It is also useful for the TeX ‘<samp><span class="samp">.fmt</span></samp>’ (and Metafont -‘<samp><span class="samp">.base</span></samp>’ and Metapost ‘<samp><span class="samp">.mem</span></samp>’ files, see <a href="Web2c.html#Memory-dumps">Memory dumps</a>), where pre-generating every format consumes a -lot of both time and space. - - <p>The script is passed the name of the file to create and possibly other -arguments, as explained below. It must echo the full pathname of the -file it created (and nothing else) to standard output; it can write -diagnostics to standard error. - -<ul class="menu"> -<li><a accesskey="1" href="#mktex-configuration">config</a> -<li><a accesskey="2" href="#mktex-script-names">names</a> -<li><a accesskey="3" href="#mktex-script-arguments">args</a> -</ul> - -<div class="node"> -<a name="mktex-configuration"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#mktex-script-names">mktex script names</a>, -Up: <a rel="up" accesskey="u" href="#mktex-scripts">mktex scripts</a> - -</div> - -<h5 class="subsubsection">2.2.9.1 <samp><span class="file">mktex</span></samp> configuration</h5> - -<p><a name="index-g_t_0040file_007bmktex_007d-script-configuration-189"></a><a name="index-configuration-of-_0040file_007bmktex_007d-scripts-190"></a><a name="index-enabling-_0040file_007bmktex_007d-scripts-191"></a><a name="index-disabling-_0040file_007bmktex_007d-scripts-192"></a> -The list of file types and program names that can run an external -program to create missing files is listed in the next section. In the -absence of <code>configure</code> options specifying otherwise, everything -but <samp><span class="file">mktextex</span></samp> will be enabled by default. The <code>configure</code> -options to change the defaults are: - - <p><a name="index-g_t_0040code_007bconfigure_007d-options-for-_0040file_007bmktex_007d-scripts-193"></a><a name="index-g_t_002d_002dwithout_002dmktexfmt_002ddefault-194"></a><a name="index-g_t_002d_002dwithout_002dmktexmf_002ddefault-195"></a><a name="index-g_t_002d_002dwithout_002dmktexocp_002ddefault-196"></a><a name="index-g_t_002d_002dwithout_002dmktexofm_002ddefault-197"></a><a name="index-g_t_002d_002dwithout_002dmktexpk_002ddefault-198"></a><a name="index-g_t_002d_002dwithout_002dmktextfm_002ddefault-199"></a><a name="index-g_t_002d_002dwith_002dmktextex_002ddefault-200"></a> -<pre class="example"> --without-mktexfmt-default - --without-mktexmf-default - --without-mktexocp-default - --without-mktexofm-default - --without-mktexpk-default - --without-mktextfm-default - --with-mktextex-default -</pre> - <p>The <code>configure</code> setting is overridden if the environment variable -or configuration file value named for the script is set; e.g., -<samp><span class="file">MKTEXPK</span></samp> (see <a href="#mktex-script-arguments">mktex script arguments</a>). - - <p><a name="index-fmtutils_002ecnf-201"></a><code>mktexfmt</code> reads a file <samp><span class="file">fmtutil.cnf</span></samp>, typically located in -<samp><span class="file">texmf/web2c/</span></samp> to glean its configuration information. The rest -of the files and features in this section are primarily intended for -the font generation scripts. - - <p><a name="index-mktex_002ecnf-202"></a><a name="index-mktex_002eopt-203"></a><a name="index-site-overrides-for-_0040code_007bmktex_0040dots_007b_007d_007d-204"></a>As distributed, all the scripts source a file -<samp><span class="file">texmf/web2c/mktex.cnf</span></samp> if it exists, so you can override various -defaults. -See <samp><span class="file">mktex.opt</span></samp>, for instance, which defines the default mode, -resolution, some special directory names, etc. If you prefer not to -change the distributed scripts, you can simply create <samp><span class="file">mktex.cnf</span></samp> -with the appropriate definitions (you do not need to create it if you -have nothing to put in it). <samp><span class="file">mktex.cnf</span></samp> has no special syntax; -it's an arbitrary Bourne shell script. The distribution contains a -sample <samp><span class="file">mktex.cnf</span></samp> for you to copy and modify as you please (it -is not installed anywhere). - - <p><a name="index-mktex_002eopt-205"></a><a name="index-MT_005fFEATURES-206"></a>In addition, you can configure a number of features with the -<code>MT_FEATURES</code> variable, which you can define: - - <ul> -<li>in <samp><span class="file">mktex.opt</span></samp>, as just mentioned; - - <li>by editing the file <samp><span class="file">mktex.opt</span></samp>, either before ‘<samp><span class="samp">make -install</span></samp>’ (in the source hierarchy) or after (in the installed -hierarchy); - - <li>or in the environment. -</ul> - - <p>If none of the options below are enabled, <code>mktexpk</code>, -<code>mktextfm</code>, and <code>mktexmf</code> follow the following procedure to -decide where fonts should be installed. Find the tree where the font's -sources are, and test the permissions of the ‘<samp><span class="samp">fonts</span></samp>’ directory of -that tree to determine whether it is writable. If it is, put the files -in the tree in appropriate locations. If it isn't writable, see whether -the tree is a system tree (named in <code>SYSTEXMF</code>). If so, the -<code>VARTEXFONTS</code> tree is used. In all other cases the working -directory is used. - - <p>The ‘<samp><span class="samp">appendonlydir</span></samp>’ option is enabled by default. - - <dl> -<dt>‘<samp><span class="samp">appendonlydir</span></samp>’<a name="index-appendonlydir-207"></a><dd><a name="index-directories_002c-making-append_002donly-208"></a><a name="index-mktexdir-209"></a>Tell <code>mktexdir</code> to create directories append-only, i.e., set -their sticky bit (see <a href="coreutils.html#Mode-Structure">Mode Structure</a>). This feature is silently ignored on non-Unix platforms -(e.g. Windows/NT and MS-DOS) which don't support similar functionality. -This feature is enabled by default. - - <br><dt>‘<samp><span class="samp">dosnames</span></samp>’<a name="index-dosnames-210"></a><dd><a name="index-g_t8_002e3-filenames_002c-using-211"></a><a name="index-DOS-compatible-names-212"></a><a name="index-dpi_0040var_007bnnn_007d-directories-213"></a>Use 8.3 names; e.g., <samp><span class="file">dpi600/cmr10.pk</span></samp> instead of -<samp><span class="file">cmr10.600pk</span></samp>. Note that this feature only affects filenames that -would otherwise clash with other TeX-related filenames; <samp><span class="file">mktex</span></samp> -scripts do nothing about filenames which exceed the 8+3 MS-DOS limits -but remain unique when truncated (by the OS) to these limits, and nether -do the scripts care about possible clashes with files which aren't -related with TeX. For example, <samp><span class="file">cmr10.600pk</span></samp> would clash with -<samp><span class="file">cmr10.600gf</span></samp> and is therefore changed when ‘<samp><span class="samp">dosnames</span></samp>’ is in -effect, but <samp><span class="file">mf.pool</span></samp> and <samp><span class="file">mp.base</span></samp> don't clash with any -TeX-related files and are therefore unchanged. - - <p>This feature is turned on by default on MS-DOS. If you do not wish -‘<samp><span class="samp">dosnames</span></samp>’ to be set on an MS-DOS platform, you need to set the -<code>MT_FEATURES</code> environment variable to a value that doesn't include -‘<samp><span class="samp">dosnames</span></samp>’. You can also change the default setting by editing -<samp><span class="file">mktex.opt</span></samp>, but only if you use the <samp><span class="file">mktex</span></samp> shell scripts; -the emulation programs don't consult <samp><span class="file">mktex.opt</span></samp>. - - <br><dt>‘<samp><span class="samp">fontmaps</span></samp>’<a name="index-fontmaps-214"></a><dd><a name="index-fontmaps-215"></a><a name="index-fontname-216"></a>Instead of deriving the location of a font in the destination tree from -the location of the sources, the aliases and directory names from the -Fontname distribution are used. (see <a href="fontname.html#Top">Introduction</a>). - - <br><dt>‘<samp><span class="samp">nomfdrivers</span></samp>’<a name="index-nomfdrivers-217"></a><dd><a name="index-metafont-driver-files-218"></a>Let mktexpk and mktextfm create metafont driver files in a temporary -directory. These will be used for just one metafont run and not -installed permanently. - - <br><dt>‘<samp><span class="samp">nomode</span></samp>’<a name="index-nomode-219"></a><dd><a name="index-mode-directory_002c-omitting-220"></a>Omit the directory level for the mode name; this is fine as long as -you generate fonts for only one mode. - - <br><dt>‘<samp><span class="samp">stripsupplier</span></samp>’<a name="index-stripsupplier-221"></a><dd><a name="index-supplier-directory_002c-omitting-222"></a>Omit the font supplier name directory level. - - <br><dt>‘<samp><span class="samp">striptypeface</span></samp>’<a name="index-striptypeface-223"></a><dd><a name="index-typeface-directory_002c-omitting-224"></a>Omit the font typeface name directory level. - - <br><dt>‘<samp><span class="samp">strip</span></samp>’<a name="index-strip-225"></a><dd><a name="index-supplier-directory_002c-omitting-226"></a><a name="index-typeface-directory_002c-omitting-227"></a>Omit the font supplier and typeface name directory levels. This feature -is deprecated in favour of ‘<samp><span class="samp">stripsupplier</span></samp>’ and ‘<samp><span class="samp">striptypeface</span></samp>’. - - <br><dt>‘<samp><span class="samp">varfonts</span></samp>’<a name="index-varfonts-228"></a><dd><a name="index-g_t_002fvar_002ftmp_002ftexfonts-229"></a><a name="index-VARTEXFONTS-230"></a><a name="index-Linux-File-System-Standard-231"></a>When this option is enabled, fonts that would otherwise be written in -system texmf tree go to the <code>VARTEXFONTS</code> tree instead. The -default value in <samp><span class="file">kpathsea/Makefile.in</span></samp> is -<samp><span class="file">/var/tmp/texfonts</span></samp>. The <cite>Linux File System Standard</cite> -recommends <samp><span class="file">/var/tex/fonts</span></samp>. - - <p><a name="index-USE_005fVARTEXFONTS-232"></a>The ‘<samp><span class="samp">varfonts</span></samp>’ setting in <code>MT_FEATURES</code> is overridden by the -<code>USE_VARTEXFONTS</code> environment variable: if set to ‘<samp><span class="samp">1</span></samp>’, the -feature is enabled, and if set to ‘<samp><span class="samp">0</span></samp>’, the feature is disabled. - - <br><dt>‘<samp><span class="samp">texmfvar</span></samp>’<a name="index-texmfvar-233"></a><dd><a name="index-TEXMFVAR-234"></a>Force generated files that would go into a system tree (as defined by -<code>SYSTEXMF</code>) into <code>TEXMFVAR</code>. Starting with teTeX-3.0, the -variable <code>TEXMFVAR</code> is always set. The ‘<samp><span class="samp">varfonts</span></samp>’ feature takes -precedence if also set. - - <p><a name="index-USE_005fTEXMFVAR-235"></a>The ‘<samp><span class="samp">texmfvar</span></samp>’ setting in <code>MT_FEATURES</code> is overridden by the -<code>USE_TEXMFVAR</code> environment variable: if set to ‘<samp><span class="samp">1</span></samp>’, the -feature is enabled, and if set to ‘<samp><span class="samp">0</span></samp>’, the feature is disabled. -</dl> - -<div class="node"> -<a name="mktex-script-names"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#mktex-script-arguments">mktex script arguments</a>, -Previous: <a rel="previous" accesskey="p" href="#mktex-configuration">mktex configuration</a>, -Up: <a rel="up" accesskey="u" href="#mktex-scripts">mktex scripts</a> - -</div> - -<h5 class="subsubsection">2.2.9.2 <samp><span class="file">mktex</span></samp> script names</h5> - -<p><a name="index-g_t_0040file_007bmktex_007d-script-names-236"></a><a name="index-names-for-_0040file_007bmktex_007d-scripts-237"></a> -The following table shows the default name of the script for each -of the file types which support runtime generation. - - <dl> -<dt><samp><span class="file">mktexfmt</span></samp><dd><a name="index-mktexfmt-238"></a><a name="index-fmtutil-239"></a>(‘<samp><span class="samp">.fmt</span></samp>’, ‘<samp><span class="samp">.base</span></samp>’, ‘<samp><span class="samp">.mem</span></samp>’) TeX/Metafont/MetaPost -formats. This script is also named <samp><span class="command">fmtutil</span></samp>, and reads -<samp><span class="file">fmtutil.cnf</span></samp> for configuration information. - - <br><dt><samp><span class="file">mktexmf</span></samp><dd><a name="index-mktexmf-240"></a>(‘<samp><span class="samp">.mf</span></samp>’) Metafont input files. - - <br><dt><samp><span class="file">mkocp</span></samp><dd><a name="index-mkocp-241"></a>(‘<samp><span class="samp">.ocp</span></samp>’) Omega compiled process files. - - <br><dt><samp><span class="file">mkofm</span></samp><dd><a name="index-mkofm-242"></a>(‘<samp><span class="samp">.ofm</span></samp>’) Omega font metric files. - - <br><dt><samp><span class="file">mktexpk</span></samp><dd><a name="index-mktexpk-243"></a>(‘<samp><span class="samp">pk</span></samp>’) Glyph fonts. - - <br><dt><samp><span class="file">mktextex</span></samp><dd><a name="index-mktextex-244"></a>(‘<samp><span class="samp">.tex</span></samp>’) TeX input files (disabled by default). - - <br><dt><samp><span class="file">mktextfm</span></samp><dd><a name="index-mktextfm-245"></a>(‘<samp><span class="samp">.tfm</span></samp>’) TFM files. -</dl> - - <p><a name="index-DVIPSMAKEPK-246"></a><a name="index-XDVIMAKEPK-247"></a><a name="index-DVILJMAKEPK-248"></a>These names can be overridden by an environment variable specific -to the program—for example, <code>DVIPSMAKEPK</code> for Dvipsk. - -<!-- next two paragraphs are repeated in dvips.texi --> - <p><a name="index-missfont_002elog-249"></a><a name="index-failed-_0040code_007bmktex_0040dots_007b_007d_007d-script-invocation-250"></a>If a <code>mktex...</code> script fails, the invocation is appended to a -file <samp><span class="file">missfont.log</span></samp> (by default) in the current directory. You can -then execute the log file to create the missing files after fixing the -problem. - - <p><a name="index-TEXMFOUTPUT-251"></a><a name="index-MISSFONT_005fLOG-252"></a>If the current directory is not writable and the environment variable or -configuration file value <code>TEXMFOUTPUT</code> is set, its value is -used. Otherwise, nothing is written. The name ‘<samp><span class="samp">missfont.log</span></samp>’ is -overridden by the <code>MISSFONT_LOG</code> environment variable or -configuration file value. - -<div class="node"> -<a name="mktex-script-arguments"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#mktex-script-names">mktex script names</a>, -Up: <a rel="up" accesskey="u" href="#mktex-scripts">mktex scripts</a> - -</div> - -<h5 class="subsubsection">2.2.9.3 <samp><span class="file">mktex</span></samp> script arguments</h5> - -<p><a name="index-arguments-to-_0040file_007bmktex_007d-253"></a> -The first argument to a <samp><span class="file">mktex</span></samp> script is always the name -of the file to be created. - - <p>In the default <samp><span class="file">mktexpk</span></samp> implementation, additional arguments may -also be passed: - - <dl> -<dt>‘<samp><span class="samp">--dpi </span><var>num</var></samp>’<dd>Sets the resolution of the generated font to <var>num</var>. -<br><dt>‘<samp><span class="samp">--mfmode </span><var>name</var></samp>’<dd>Sets the Metafont mode to <var>name</var>. -<br><dt>‘<samp><span class="samp">--bdpi </span><var>num</var></samp>’<dd>Sets the “base dpi” for the font. This must match the mode being -used. -<br><dt>‘<samp><span class="samp">--mag </span><var>string</var></samp>’<dd>A “magstep” string suitable for the Metafont <code>mag</code> variable. -This must match the combination of <var>bdpi</var> and <var>dpi</var> being used. -<br><dt>‘<samp><span class="samp">--destdir </span><var>string</var></samp>’<dd>A directory name. If the directory is absolute, it is used as-is. -Otherwise, it is appended to the root destination directory set in the -script. -</dl> - -<div class="node"> -<a name="Installation-testing"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#mktex-scripts">mktex scripts</a>, -Up: <a rel="up" accesskey="u" href="#Custom-installation">Custom installation</a> - +</p> +<a name="index-Hoekwater_002c-Taco"></a> +<a name="index-Breitenlohner_002c-Peter"></a> +<p>[Karl writes again.] Indeed, time goes on. As of 2006 or so, Olaf’s +available time for Kpathsea became rather reduced, and I started +taking overall care of it again, although I did not do any significant +new development. In 2009, Taco Hoekwater made a major rearrangement +to make the library suitable for use within the MetaPost library +(see <a href="#Programming-overview">Programming overview</a>). Also, for some years now, Peter +Breitenlohner has made many improvements to the infrastructure and +kept up-to-date with respect to the overall TeX Live build, where +Kpathsea is now maintained. +</p> + + +<hr> +<a name="unixtex_002eftp"></a> +<div class="header"> +<p> +Next: <a href="#Security" accesskey="n" rel="next">Security</a>, Previous: <a href="#Introduction" accesskey="p" rel="prev">Introduction</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="unixtex_002eftp_003a-Obtaining-TeX"></a> +<h2 class="chapter">2 <samp>unixtex.ftp</samp>: Obtaining TeX</h2> -<h4 class="subsection">2.2.10 Installation testing</h4> +<a name="index-obtaining-TeX"></a> +<a name="index-retrieving-TeX"></a> -<p><a name="index-testing_002c-post_002dinstallation-254"></a><a name="index-installation-testing-255"></a> -Besides the tests listed in <a href="#Simple-installation">Simple installation</a>, you can try -running ‘<samp><span class="samp">make check</span></samp>’. This includes the torture tests (trip, trap, -and mptrap) that come with Web2c (see <a href="web2c.html#Triptrap">Triptrap</a>). - -<div class="node"> +<a name="index-unixtex_002eftp"></a> +<a name="index-tug_002eorg"></a> +<a name="index-www_002etug_002eorg"></a> +<a name="index-ftp_002etug_002eorg"></a> +<p>This +is <a href="ftp://ftp.tug.org/tex/unixtex.ftp">ftp://ftp.tug.org/tex/unixtex.ftp</a>, last updated 13 June +2010. Also available as <a href="http://www.tug.org/unixtex.ftp">http://www.tug.org/unixtex.ftp</a>. Email +<a href="mailto:tex-k@tug.org">tex-k@tug.org</a> with comments or questions. +</p> +<p>The principal free TeX distribution for Unix-like systems is TeX +Live, on the web at <a href="http://tug.org/texlive">http://tug.org/texlive</a>. The pages there +describe many ways to acquire and build TeX, over the Internet or +on physical media, both the sources and precompiled binaries for many +systems, either standalone or as part of various operating system +distributions. +</p> +<p>Web2C, Kpathsea, Dvips, and Dviljk are no longer released as a +separate packages. Their sources are now maintained as part of TeX +Live. +</p> +<a name="index-ftp_002ecs_002estanford_002eedu"></a> +<a name="index-tex_002eweb"></a> +<a name="index-Knuth_002c-Donald-E_002e_002c-archive-of-programs-by"></a> +<p>The host <tt>ftp.cs.stanford.edu</tt> is the original source for the files +for which Donald Knuth is directly responsible: <samp>tex.web</samp>, +<samp>plain.tex</samp>, etc. However, unless you want to undertake the very +significant project of building your TeX installation from scratch, +it is far more reliable and less work to retrieve these files as part +of a larger package +</p> +<p>In any case, the Stanford ftp site is not the canonical source for +anything except what was created as part of Knuth’s original TeX, +so do not rely on any other files available there being up-to-date. +The best place to check for up-to-date files is CTAN (the +Comprehensive TeX Archive Network), <a href="http://www.ctan.org">http://www.ctan.org</a>. +</p> + + +<hr> <a name="Security"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#TeX-directory-structure">TeX directory structure</a>, -Previous: <a rel="previous" accesskey="p" href="#Custom-installation">Custom installation</a>, -Up: <a rel="up" accesskey="u" href="#Installation">Installation</a> - +<div class="header"> +<p> +Next: <a href="#TeX-directory-structure" accesskey="n" rel="next">TeX directory structure</a>, Previous: <a href="#unixtex_002eftp" accesskey="p" rel="prev">unixtex.ftp</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Security-1"></a> +<h2 class="chapter">3 Security</h2> -<h3 class="section">2.3 Security</h3> +<a name="index-security-considerations"></a> -<p><a name="index-security-considerations-256"></a> -None of the programs in the TeX system require any special system -privileges, so there's no first-level security concern of people gaining +<p>None of the programs in the TeX system require any special system +privileges, so there’s no first-level security concern of people gaining illegitimate root access. - - <p><a name="index-trojan-horse-attack-257"></a><a name="index-g_t_002erhosts_0040r_007b_002c-writable-by-_0040TeX_007b_007d_007d-258"></a>A TeX document, however, can write to arbitrary files, e.g., -<samp><span class="file">~/.rhosts</span></samp>, and thus an unwitting user who runs TeX on a random +</p> +<a name="index-trojan-horse-attack"></a> +<a name="index-_002erhosts_002c-writable-by-TeX"></a> +<p>A TeX document, however, can write to arbitrary files, e.g., +<samp>~/.rhosts</samp>, and thus an unwitting user who runs TeX on a random document is vulnerable to a trojan horse attack. This loophole is closed by default, but you can be permissive if you so desire in -<samp><span class="file">texmf.cnf</span></samp>. See <a href="web2c.html#tex-invocation">tex invocation</a>. MetaPost has +<samp>texmf.cnf</samp>. See <a href="web2c.html#tex-invocation">tex invocation</a> in <cite>Web2c</cite>. MetaPost has the same issue. - - <p>Dvips, Xdvi, and TeX can also execute shell commands under some -circumstances. To disable this, see the ‘<samp><span class="samp">-R</span></samp>’ option in <a href="dvips.html#Option-details">Option details</a>, the xdvi man page, and <a href="web2c.html#tex-invocation">tex invocation</a>, respectively. - - <p><a name="index-local-cache-of-fonts-259"></a><a name="index-cache-of-fonts_002c-local-260"></a>Another security issue arises because it's very useful—almost +</p> +<p>Dvips, Xdvi, and TeX can also execute shell commands under some +circumstances. To disable this, see the ‘<samp>-R</samp>’ option in <a href="dvips.html#Option-details">Option +details</a> in <cite>Dvips</cite>, the xdvi man page, and <a href="web2c.html#tex-invocation">tex +invocation</a> in <cite>Web2c</cite>, respectively. +</p> +<a name="index-local-cache-of-fonts"></a> +<a name="index-cache-of-fonts_002c-local"></a> +<p>Another security issue arises because it’s very useful—almost necessary—to make arbitrary fonts on user demand with <code>mktexpk</code> and friends. Where do these files get installed? By default, the <code>mktexpk</code> distributed with Kpathsea assumes a world-writable -<samp><span class="file">/var/tmp</span></samp> directory; this is a simple and convenient approach, but +<samp>/var/tmp</samp> directory; this is a simple and convenient approach, but it may not suit your situation because it means that a local cache of fonts is created on every machine. - - <p><a name="index-globally-writable-directories-261"></a>To avoid this duplication, many people consider a shared, globally +</p> +<a name="index-globally-writable-directories"></a> +<p>To avoid this duplication, many people consider a shared, globally writable font tree desirable, in spite of the potential security problems. To do this you should change the value of <code>VARTEXFONTS</code> -in <samp><span class="file">texmf.cnf</span></samp> to refer to some globally known directory. +in <samp>texmf.cnf</samp> to refer to some globally known directory. See <a href="#mktex-configuration">mktex configuration</a>. - - <p><a name="index-append_002donly-directories-and-_0040code_007bmktexpk_007d-262"></a>The first restriction you can apply is to make newly-created directories -under <samp><span class="file">texmf</span></samp> be append-only with an option in <samp><span class="file">mktex.cnf</span></samp>. +</p> +<a name="index-append_002donly-directories-and-mktexpk"></a> +<p>The first restriction you can apply is to make newly-created directories +under <samp>texmf</samp> be append-only with an option in <samp>mktex.cnf</samp>. See <a href="#mktex-configuration">mktex configuration</a>. - - <p><a name="index-group_002dwritable-directories-263"></a><a name="index-setgid-scripts-264"></a>Another approach is to establish a group (or user) for TeX files, -make the <samp><span class="file">texmf</span></samp> tree writable only to that group (or user), and +</p> +<a name="index-group_002dwritable-directories"></a> +<a name="index-setgid-scripts"></a> +<p>Another approach is to establish a group (or user) for TeX files, +make the <samp>texmf</samp> tree writable only to that group (or user), and make <code>mktexpk</code> et al. setgid to that group (or setuid to that user). Then users must invoke the scripts to install things. (If -you're worried about the inevitable security holes in scripts, then you +you’re worried about the inevitable security holes in scripts, then you could write a C wrapper to exec the script.) - - <p><a name="index-file-permissions-265"></a><a name="index-permissions_002c-file-266"></a>The <samp><span class="file">mktex...</span></samp> scripts install files with the same read and +</p> +<a name="index-file-permissions"></a> +<a name="index-permissions_002c-file"></a> +<p>The <samp>mktex…</samp> scripts install files with the same read and write permissions as the directory they are installed in. The executable, sgid, suid, and sticky bits are always cleared. - - <p><a name="index-directory-permissions-267"></a><a name="index-permissions_002c-directory-268"></a>Any directories created by the <samp><span class="file">mktex...</span></samp> scripts have the +</p> +<a name="index-directory-permissions"></a> +<a name="index-permissions_002c-directory"></a> +<p>Any directories created by the <samp>mktex…</samp> scripts have the same permissions as their parent directory, unless the <code>appendonlydir</code> feature is used, in which case the sticky bit is always set. +</p> -<div class="node"> +<hr> <a name="TeX-directory-structure"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#unixtex_002eftp">unixtex.ftp</a>, -Previous: <a rel="previous" accesskey="p" href="#Security">Security</a>, -Up: <a rel="up" accesskey="u" href="#Installation">Installation</a> - +<div class="header"> +<p> +Next: <a href="#Path-searching" accesskey="n" rel="next">Path searching</a>, Previous: <a href="#Security" accesskey="p" rel="prev">Security</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="TeX-directory-structure-1"></a> +<h2 class="chapter">4 TeX directory structure</h2> -<h3 class="section">2.4 TeX directory structure</h3> +<a name="index-TEXMF"></a> +<a name="index-TeX-directory-structure"></a> +<a name="index-directory-structure_002c-for-TeX-files"></a> +<a name="index-skeleton-TeX-directory"></a> +<a name="index-TDS"></a> -<p><a name="index-TEXMF-269"></a><a name="index-g_t_0040TeX_007b_007d-directory-structure-270"></a><a name="index-directory-structure_002c-for-_0040TeX_007b_007d-files-271"></a><a name="index-skeleton-_0040TeX_007b_007d-directory-272"></a><a name="index-TDS-273"></a> -This section describes the default installation hierarchy of the +<p>This section describes the default installation hierarchy of the distribution. It conforms to both the GNU coding standards and the TeX directory structure (TDS) standard. For rationale and further -explanation, please see those documents. The GNU standard is available -as <a href="ftp://prep.ai.mit.edu/pub/gnu/standards/standards.texi">ftp://prep.ai.mit.edu/pub/gnu/standards/standards.texi</a> and -mirrors. The TDS document is available from -<samp><var>CTAN:</var><span class="file">/tex-archive/tds</span></samp> (see <a href="#unixtex_002eftp">unixtex.ftp</a>). - - <p>You can change the default paths in many ways (see <a href="#Changing-search-paths">Changing search paths</a>). One common desire is to put everything (binaries and all) -under a single top-level directory such as <samp><span class="file">/usr/local/texmf</span></samp> or -<samp><span class="file">/opt/texmf</span></samp>—in the terms used below, make <var>prefix</var> and -<var>texmf</var> the same. For specific instructions on doing that, -see <a href="#configure-scenarios">configure scenarios</a>. - - <p>Here is a skeleton of the default directory structure, extracted from -the TDS document: - -<pre class="example"> <var>prefix</var>/ <span class="roman">installation root (</span><samp><span class="file">/usr/local</span></samp><span class="roman"> by default)</span> - bin/ <span class="roman">executables</span> - man/ <span class="roman">man pages</span> - include/ <span class="roman">C header files</span> - info/ <span class="roman">GNU info files</span> - lib/ <span class="roman">libraries (</span><samp><span class="file">libkpathsea.*</span></samp><span class="roman">)</span> - share/ <span class="roman">architecture-independent files</span> - texmf/ <span class="roman">TDS root</span> - bibtex/ <span class="roman">BibTeX input files</span> - bib/ <span class="roman">BibTeX databases</span> - base/ <span class="roman">base distribution (e.g., ‘</span><samp><span class="samp">xampl.bib</span></samp><span class="roman">’)</span> - misc/ <span class="roman">single-file databases</span> - <var>pkg</var>/ <span class="roman">name of a package</span> - bst/ <span class="roman">BibTeX style files</span> - base/ <span class="roman">base distribution (e.g., ‘</span><samp><span class="samp">plain.bst</span></samp><span class="roman">’, ‘</span><samp><span class="samp">acm.bst</span></samp><span class="roman">’)</span> - misc/ <span class="roman">single-file styles</span> - <var>pkg</var>/ <span class="roman">name of a package</span> - doc/ <span class="roman">additional documentation</span> - dvips/ <span class="roman">‘</span><samp><span class="samp">.pro</span></samp><span class="roman">’, ‘</span><samp><span class="samp">.ps</span></samp><span class="roman">’, ‘</span><samp><span class="samp">psfonts.map</span></samp><span class="roman">’</span> - fonts/ <span class="roman">font-related files</span> - <var>type</var>/ <span class="roman">file type (e.g., ‘</span><samp><span class="samp">tfm</span></samp><span class="roman">’, ‘</span><samp><span class="samp">pk</span></samp><span class="roman">’)</span> - <var>mode</var>/ <span class="roman">type of output device (types ‘</span><samp><span class="samp">pk</span></samp><span class="roman">’ and ‘</span><samp><span class="samp">gf</span></samp><span class="roman">’ only)</span> - <var>supplier</var>/ <span class="roman">name of a font supplier (e.g., ‘</span><samp><span class="samp">public</span></samp><span class="roman">’)</span> - <var>typeface</var>/ <span class="roman">name of a typeface (e.g., ‘</span><samp><span class="samp">cm</span></samp><span class="roman">’)</span> - dpi<var>nnn</var>/ <span class="roman">font resolution (types ‘</span><samp><span class="samp">pk</span></samp><span class="roman">’ and ‘</span><samp><span class="samp">gf</span></samp><span class="roman">’ only)</span> - metafont/ <span class="roman">Metafont (non-font) input files</span> - base/ <span class="roman">base distribution (e.g., ‘</span><samp><span class="samp">plain.mf</span></samp><span class="roman">’)</span> - misc/ <span class="roman">single-file packages (e.g., ‘</span><samp><span class="samp">modes.mf</span></samp><span class="roman">’)</span> - <var>pkg</var>/ <span class="roman">name of a package (e.g., ‘</span><samp><span class="samp">mfpic</span></samp><span class="roman">’)</span> - metapost/ <span class="roman">MetaPost input files</span> - base/ <span class="roman">base distribution (e.g., ‘</span><samp><span class="samp">plain.mp</span></samp><span class="roman">’)</span> - misc/ <span class="roman">single-file packages</span> - <var>pkg</var>/ <span class="roman">name of a package</span> - support/ <span class="roman">support files for MetaPost-related utilities (e.g., ‘</span><samp><span class="samp">trfonts.map</span></samp><span class="roman">’)</span> - mft/ <span class="roman">‘</span><samp><span class="samp">MFT</span></samp><span class="roman">’ inputs (e.g., ‘</span><samp><span class="samp">plain.mft</span></samp><span class="roman">’)</span> - tex/ <span class="roman">TeX input files</span> - <var>format</var>/ <span class="roman">name of a format (e.g., ‘</span><samp><span class="samp">plain</span></samp><span class="roman">’)</span> - base/ <span class="roman">base distribution for </span><var>format</var><span class="roman"> (e.g., ‘</span><samp><span class="samp">plain.tex</span></samp><span class="roman">’)</span> - misc/ <span class="roman">single-file packages (e.g., ‘</span><samp><span class="samp">webmac.tex</span></samp><span class="roman">’)</span> - local/ <span class="roman">local additions to or local configuration files for </span><var>format</var> - <var>pkg</var>/ <span class="roman">name of a package (e.g., ‘</span><samp><span class="samp">graphics</span></samp><span class="roman">’, ‘</span><samp><span class="samp">mfnfss</span></samp><span class="roman">’)</span> - generic/ <span class="roman">format-independent packages</span> - hyphen/ <span class="roman">hyphenation patterns (e.g., ‘</span><samp><span class="samp">hyphen.tex</span></samp><span class="roman">’)</span> - images/ <span class="roman">image input files (e.g., Encapsulated PostScript)</span> - misc/ <span class="roman">single-file format-independent packages (e.g., ‘</span><samp><span class="samp">null.tex</span></samp><span class="roman">’).</span> - <var>pkg</var>/ <span class="roman">name of a package (e.g., ‘</span><samp><span class="samp">babel</span></samp><span class="roman">’)</span> - web2c/ <span class="roman">implementation-dependent files (</span><samp><span class="file">.pool</span></samp><span class="roman">, </span><samp><span class="file">.fmt</span></samp><span class="roman">, </span><samp><span class="file">texmf.cnf</span></samp><span class="roman">, etc.)</span> -</pre> - <p>Some concrete examples for most file types: - -<pre class="example"> /usr/local/bin/tex - /usr/local/man/man1/xdvi.1 - /usr/local/info/kpathsea.info - /usr/local/lib/libkpathsea.a - /usr/local/share/texmf/bibtex/bst/base/plain.bst - /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmr10.600pk - /usr/local/share/texmf/fonts/source/public/pandora/pnr10.mf - /usr/local/share/texmf/fonts/tfm/public/cm/cmr10.tfm - /usr/local/share/texmf/fonts/type1/adobe/utopia/putr.pfa - /usr/local/share/texmf/metafont/base/plain.mf - /usr/local/share/texmf/metapost/base/plain.mp - /usr/local/share/texmf/tex/plain/base/plain.tex - /usr/local/share/texmf/tex/generic/hyphen/hyphen.tex - /usr/local/share/texmf/web2c/tex.pool - /usr/local/share/texmf/web2c/tex.fmt - /usr/local/share/texmf/web2c/texmf.cnf -</pre> - <div class="node"> -<a name="unixtex.ftp"></a> -<a name="unixtex_002eftp"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Reporting-bugs">Reporting bugs</a>, -Previous: <a rel="previous" accesskey="p" href="#TeX-directory-structure">TeX directory structure</a>, -Up: <a rel="up" accesskey="u" href="#Installation">Installation</a> - -</div> - -<h3 class="section">2.5 <samp><span class="file">unixtex.ftp</span></samp>: Obtaining TeX</h3> - -<p><a name="index-obtaining-_0040TeX_007b_007d-274"></a><a name="index-retrieving-_0040TeX_007b_007d-275"></a> -<a name="index-unixtex_002eftp-276"></a><a name="index-tug_002eorg-277"></a><a name="index-www_002etug_002eorg-278"></a><a name="index-ftp_002etug_002eorg-279"></a>This -is <a href="ftp://ftp.tug.org/tex/unixtex.ftp">ftp://ftp.tug.org/tex/unixtex.ftp</a>, last updated 13 June -2010. Also available as <a href="http://www.tug.org/unixtex.ftp">http://www.tug.org/unixtex.ftp</a>. Email -<a href="mailto:tex-k@tug.org">tex-k@tug.org</a> with comments or questions. - - <p>The principal free TeX distribution for Unix-like systems is TeX -Live, on the web at <a href="http://tug.org/texlive">http://tug.org/texlive</a>. The pages there -describe many ways to acquire TeX, over the Internet or on physical -media, both the sources and precompiled binaries for many systems, -either standalone or as part of various operating system -distributions. - - <p>Web2C, Kpathsea, Dvips, and Dviljk are no longer released as a -separate packages. Their sources are now maintained as part of TeX -Live. - - <p><a name="index-ftp_002ecs_002estanford_002eedu-280"></a><a name="index-tex_002eweb-281"></a><a name="index-Knuth_002c-Donald-E_002e_002c-archive-of-programs-by-282"></a>The host <tt>ftp.cs.stanford.edu</tt> is the original source for the files -for which Donald Knuth is directly responsible: <samp><span class="file">tex.web</span></samp>, -<samp><span class="file">plain.tex</span></samp>, etc. However, unless you want to build your TeX -library tree ab initio, it is more reliable and less work to retrieve -these files as part of a larger package. In any case, that ftp site is -not the canonical source for anything except what was created as part -of Stanford TeX project, so do not rely on the other files available -there being up-to-date. - -<div class="node"> -<a name="Reporting-bugs"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#unixtex_002eftp">unixtex.ftp</a>, -Up: <a rel="up" accesskey="u" href="#Installation">Installation</a> - -</div> - -<h3 class="section">2.6 Reporting bugs</h3> - -<p><a name="index-reporting-bugs-283"></a><a name="index-bugs_002c-reporting-284"></a> -(A copy of this chapter is in the file <samp><span class="file">kpathsea/BUGS</span></samp>.) - - <p><a name="index-tex_002dk_0040_0040tug_002eorg-_0040r_007b_0028bug-address_0029_007d-285"></a><a name="index-bug-address-286"></a>If you have problems or suggestions, please report them to -<a href="mailto:tex-k@tug.org">tex-k@tug.org</a> using the bug checklist below. - - <p>Please report bugs in the documentation; not only factual errors or -inconsistent behavior, but unclear or incomplete explanations, typos, -wrong fonts, <small class="dots">...</small> - -<ul class="menu"> -<li><a accesskey="1" href="#Bug-checklist">Bug checklist</a>: What to include in a good bug report. -<li><a accesskey="2" href="#Mailing-lists">Mailing lists</a>: Joining the bugs or announcements mailing lists. -<li><a accesskey="3" href="#Debugging">Debugging</a>: Analyzing runtime problems. -<li><a accesskey="4" href="#Logging">Logging</a>: Recording searches. -<li><a accesskey="5" href="#Common-problems">Common problems</a>: When things go wrong. -</ul> - -<div class="node"> -<a name="Bug-checklist"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Mailing-lists">Mailing lists</a>, -Up: <a rel="up" accesskey="u" href="#Reporting-bugs">Reporting bugs</a> - -</div> - -<h4 class="subsection">2.6.1 Bug checklist</h4> - -<p><a name="index-checklist-for-bug-reports-287"></a><a name="index-bug-checklist-288"></a> -Before reporting a bug, please check below to be sure it isn't already -known (see <a href="#Common-problems">Common problems</a>). - - <p>Bug reports should be sent via electronic mail to -<a href="mailto:tex-k@tug.org">tex-k@tug.org</a>. - - <p>The general principle is that a good bug report includes all the -information necessary for reproduction. Therefore, to enable -investigation, your report should include the following: - - <ul> -<li><a name="index-version-numbers_002c-determining-289"></a>The version number(s) of the program(s) involved, and of Kpathsea -itself. You can get the former by giving a sole option ‘<samp><span class="samp">--version</span></samp>’ -to the program, and the latter by running ‘<samp><span class="samp">kpsewhich --version</span></samp>’. -The <samp><span class="file">NEWS</span></samp> and <samp><span class="file">ChangeLog</span></samp> files also contain the version -number. - - <li><a name="index-uname-290"></a>The hardware, operating system (including version number), compiler, and -<code>make</code> program you are using (the output of <code>uname -a</code> is a -start on the first two, though often incomplete). If the bug involves -the X window system, include X version and supplier information as well -(examples: X11R6 from MIT; X11R4 from HP; OpenWindows 3.3 bundled with -SunOS 4.1.4). - - <li><a name="index-config_002elog-291"></a>Any options you gave to <code>configure</code>. This is recorded in the -<samp><span class="file">config.status</span></samp> files. - - <p><a name="index-configuration-bugs-292"></a><a name="index-config_002estatus-293"></a>If you are reporting a bug in ‘<samp><span class="samp">configure</span></samp>’ itself, it's probably -system-dependent, and it will be unlikely the maintainers can do -anything useful if you merely report that thus-and-such is broken. -Therefore, you need to do some additional work: for some bugs, you can -look in the file <samp><span class="file">config.log</span></samp> where the test that failed should -appear, along with the compiler invocation and source program in -question. You can then compile it yourself by hand, and discover why -the test failed. Other ‘<samp><span class="samp">configure</span></samp>’ bugs do not involve the -compiler; in that case, the only recourse is to inspect the -<code>configure</code> shell script itself, or the Autoconf macros that -generated <code>configure</code>. - - <li>The log of all debugging output, if the bug is in path searching. You -can get this by setting the environment variable <code>KPATHSEA_DEBUG</code> -to ‘<samp><span class="samp">-1</span></samp>’ before running the program. Please look at the log -yourself to make sure the behavior is really a bug before reporting it; -perhaps “old” environment variable settings are causing files not to -be found, for example. - - <li>The contents of any input files necessary to reproduce the bug. For -bugs in DVI-reading programs, for example, this generally means a DVI -file (and any EPS or other files it uses)—TeX source files are -helpful, but the DVI file is necessary, because that's the actual -program input. - - <li><a name="index-context-diff-294"></a><a name="index-sending-patches-295"></a><a name="index-ChangeLog-_0040r_007bentry_007d-296"></a>If you are sending a patch (do so if you can!), please do so in the form -of a context diff (‘<samp><span class="samp">diff -c</span></samp>’) against the original distribution -source. Any other form of diff is either not as complete or harder for -me to understand. Please also include a <samp><span class="file">ChangeLog</span></samp> entry. - - <li><a name="index-stack-trace-297"></a><a name="index-debugger-298"></a><a name="index-crashes_002c-reporting-299"></a><a name="index-core-dumps_002c-reporting-300"></a><a name="index-null-pointers_002c-dereferencing-301"></a><a name="index-gdb_0040r_007b_002c-recommended_007d-302"></a>If the bug involved is an actual crash (i.e., core dump), it is easy and -useful to include a stack trace from a debugger (I recommend the GNU -debugger GDB, available from <a href="ftp://prep.ai.mit.edu/pub/gnu">ftp://prep.ai.mit.edu/pub/gnu</a>). If -the cause is apparent (a <code>NULL</code> value being dereferenced, for -example), please send the details along. If the program involved is -TeX or Metafont, and the crash is happening at apparently-sound code, -however, the bug may well be in the compiler, rather than in the program -or the library (see <a href="#TeX-or-Metafont-failing">TeX or Metafont failing</a>). - - <li>Any additional information that will be helpful in reproducing, -diagnosing, or fixing the bug. -</ul> - -<div class="node"> -<a name="Mailing-lists"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Debugging">Debugging</a>, -Previous: <a rel="previous" accesskey="p" href="#Bug-checklist">Bug checklist</a>, -Up: <a rel="up" accesskey="u" href="#Reporting-bugs">Reporting bugs</a> - -</div> - -<h4 class="subsection">2.6.2 Mailing lists</h4> - -<p><a name="index-mailing-lists-303"></a><a name="index-bug-mailing-list-304"></a><a name="index-announcement-mailing-list-305"></a> -Web2c and Kpathsea in general are discussed on the mailing list -<a href="mailto:tex-k@tug.org">tex-k@tug.org</a>. -<a name="index-tex_002dk_002drequest_0040_0040tug_002eorg-306"></a>To join, email <a href="mailto:tex-k-request@tug.org">tex-k-request@tug.org</a> with a line -consisting of - -<pre class="example"> subscribe <var>you</var>@<var>your.preferred.email.address</var> -</pre> - <p class="noindent">in the body of the message. - - <p>You do not need to join to submit a report, nor will it affect whether -you get a response. There is no Usenet newsgroup equivalent (if you can -be the one to set this up, email ‘<samp><span class="samp">tex-k-request</span></samp>’). Traffic on the -list is fairly light, and is mainly bug reports and enhancement requests -to the software. The best way to decide if you want to join or not is -read some of the archives from <a href="ftp://ftp.tug.org/mail/archives/tex-k/">ftp://ftp.tug.org/mail/archives/tex-k/</a>. - - <p>Be aware that large data files are sometimes included in bug reports. -If this is a problem for you, do not join the list. - - <p><a name="index-g_t_0040TeX_007b_007d-help-mailing-list-307"></a><a name="index-La_0040TeX_007b_007d-help-mailing-list-308"></a><a name="index-Usenet-_0040TeX_007b_007d-newsgroup-309"></a><a name="index-newsgroup-for-_0040TeX_007b_007d-310"></a><a name="index-help_002c-mailing-list-for-general-_0040TeX_007b_007d-311"></a><a name="index-info_002dtex_0040_0040shsu_002eedu-312"></a><a name="index-comp_002etext_002etex-313"></a>If you are looking for general TeX help, such as how to use -LaTeX, please use the mailing list <a href="mailto:texhax@tug.org">texhax@tug.org</a> mailing -list (<a href="http://lists.tug.org/texhax">http://lists.tug.org/texhax</a>) which is gatewayed to the -‘<samp><span class="samp">comp.text.tex</span></samp>’ Usenet newsgroup (or post to the newsgroup; the -gateway is bidirectional). - -<div class="node"> -<a name="Debugging"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Logging">Logging</a>, -Previous: <a rel="previous" accesskey="p" href="#Mailing-lists">Mailing lists</a>, -Up: <a rel="up" accesskey="u" href="#Reporting-bugs">Reporting bugs</a> - -</div> - -<h4 class="subsection">2.6.3 Debugging</h4> - -<p><a name="index-debugging-314"></a><a name="index-runtime-debugging-315"></a><a name="index-options-for-debugging-316"></a> -<a name="index-kpse_002d_003edebug-317"></a><a name="index-debug_002eh-318"></a>Kpathsea provides a number of runtime debugging options, detailed below -by their names and corresponding numeric values. When the files you -expect aren't being found, the thing to do is enable these options and -examine the output. - - <p>You can set these with some runtime argument (e.g., ‘<samp><span class="samp">-d</span></samp>’) to the -program; in that case, you should use the numeric values described in -the program's documentation (which, for Dvipsk and Xdvik, are different -than those below). It's best to give the ‘<samp><span class="samp">-d</span></samp>’ (or whatever) option -first, for maximal output. Dvipsk and Xdvik have additional -program-specific debugging options as well. - - <p><a name="index-KPATHSEA_005fDEBUG-319"></a><a name="index-kpse_002d_003edebug-320"></a>You can also set the environment variable <code>KPATHSEA_DEBUG</code>; in this -case, you should use the numbers below. If you run the program under a -debugger and set the instance variable <code>kpse->debug</code>, also use the numbers -below. - - <p><a name="index-g_t_002d1-_0040r_007bdebugging-value_007d-321"></a>In any case, by far the simplest value to use is ‘<samp><span class="samp">-1</span></samp>’, which will -turn on all debugging output. This is usually better than guessing -which particular values will yield the output you need. - - <p><a name="index-debugging-output-322"></a><a name="index-standard-error-and-debugging-output-323"></a>Debugging output always goes to standard error, so you can redirect it -easily. For example, in Bourne-compatible shells: -<pre class="example"> dvips -d -1 ... 2>/tmp/debug -</pre> - <p><a name="index-Kpsewhich_002c-and-debugging-324"></a>It is sometimes helpful to run the standalone Kpsewhich utility -(see <a href="#Invoking-kpsewhich">Invoking kpsewhich</a>), instead of the original program. - - <p><a name="index-numeric-debugging-values-325"></a>In any case, you can <em>not</em> use the <em>names</em> below; you must -always use somebody's numbers. (Sorry.) To set more than one -option, just sum the corresponding numbers. - - <dl> -<dt><code>KPSE_DEBUG_STAT </code><span class="roman">(1)</span><a name="index-KPSE_005fDEBUG_005fSTAT-_0040r_007b_00281_0029_007d-326"></a><dd>Report ‘<samp><span class="samp">stat</span></samp>’(2) calls. This is useful for verifying that your -directory structure is not forcing Kpathsea to do many additional file -tests (see <a href="#Slow-path-searching">Slow path searching</a>, and see <a href="#Subdirectory-expansion">Subdirectory expansion</a>). If you are using an up-to-date <samp><span class="file">ls-R</span></samp> database -(see <a href="#Filename-database">Filename database</a>), this should produce no output unless a -nonexistent file that must exist is searched for. - - <br><dt><code>KPSE_DEBUG_HASH </code><span class="roman">(2)</span><a name="index-KPSE_005fDEBUG_005fHASH-_0040r_007b_00282_0029_007d-327"></a><dd>Report lookups in all hash tables: <samp><span class="file">ls-R</span></samp> and <samp><span class="file">aliases</span></samp> -(see <a href="#Filename-database">Filename database</a>); font aliases (see <a href="#Fontmap">Fontmap</a>); and config -file values (see <a href="#Config-files">Config files</a>). Useful when expected values are not -being found, e.g.., file searches are looking at the disk instead of -using <samp><span class="file">ls-R</span></samp>. - - <br><dt><code>KPSE_DEBUG_FOPEN </code><span class="roman">(4)</span><a name="index-KPSE_005fDEBUG_005fFOPEN-_0040r_007b_00284_0029_007d-328"></a><dd><a name="index-fopen_0040r_007b_002c-redefined_007d-329"></a>Report file openings and closings. Especially useful when your system's -file table is full, for seeing which files have been opened but never -closed. In case you want to set breakpoints in a debugger: this works by -redefining ‘<samp><span class="samp">fopen</span></samp>’ (‘<samp><span class="samp">fclose</span></samp>’) to be ‘<samp><span class="samp">kpse_fopen_trace</span></samp>’ -(‘<samp><span class="samp">kpse_fclose_trace</span></samp>’). - - <br><dt><code>KPSE_DEBUG_PATHS </code><span class="roman">(8)</span><a name="index-KPSE_005fDEBUG_005fPATHS-_0040r_007b_00288_0029_007d-330"></a><dd><a name="index-kpse_005fformat_005finfo_005ftype-331"></a>Report general path information for each file type Kpathsea is asked to -search. This is useful when you are trying to track down how a -particular path got defined—from <samp><span class="file">texmf.cnf</span></samp>, <samp><span class="file">config.ps</span></samp>, -an environment variable, the compile-time default, etc. This is the -contents of the <code>kpse_format_info_type</code> structure defined in -<samp><span class="file">tex-file.h</span></samp>. - - <br><dt><code>KPSE_DEBUG_EXPAND </code><span class="roman">(16)</span><a name="index-KPSE_005fDEBUG_005fEXPAND-_0040r_007b_002816_0029_007d-332"></a><dd>Report the directory list corresponding to each path element Kpathsea -searches. This is only relevant when Kpathsea searches the disk, since -<samp><span class="file">ls-R</span></samp> searches don't look through directory lists in this way. - - <br><dt><code>KPSE_DEBUG_SEARCH </code><span class="roman">(32)</span><a name="index-KPSE_005fDEBUG_005fSEARCH-_0040r_007b_002832_0029_007d-333"></a><dd>Report on each file search: the name of the file searched for, the path -searched in, whether or not the file must exist (when drivers search for -<samp><span class="file">cmr10.vf</span></samp>, it need not exist), and whether or not we are -collecting all occurrences of the file in the path (as with, e.g., -<samp><span class="file">texmf.cnf</span></samp> and <samp><span class="file">texfonts.map</span></samp>), or just the first (as with -most lookups). This can help you correlate what Kpathsea is doing with -what is in your input file. - - <br><dt><code>KPSE_DEBUG_VARS </code><span class="roman">(64)</span><a name="index-KPSE_005fDEBUG_005fVARS-_0040r_007b_002864_0029_007d-334"></a><dd>Report the value of each variable Kpathsea looks up. This is useful for -verifying that variables do indeed obtain their correct values. - - <br><dt><code>GSFTOPK_DEBUG </code><span class="roman">(128)</span><a name="index-GSFTOPK_005fDEBUG-_0040r_007b_0028128_0029_007d-335"></a><dd>Activates debugging printout specific to <code>gsftopk</code> program. - - <br><dt><code>MAKETEX_DEBUG </code><span class="roman">(512)</span><a name="index-MAKETEX_005fDEBUG-_0040r_007b_0028512_0029_007d-336"></a><dd>If you use the optional <code>mktex</code> programs instead of the -traditional shell scripts, this will report the name of the site file -(<samp><span class="file">mktex.cnf</span></samp> by default) which is read, directories created by -<code>mktexdir</code>, the full path of the <samp><span class="file">ls-R</span></samp> database built by -<code>mktexlsr</code>, font map searches, <code>MT_FEATURES</code> in effect, -parameters from <code>mktexnam</code>, filenames added by -<code>mktexupd</code>, and some subsidiary commands run by the programs. - - <br><dt><code>MAKETEX_FINE_DEBUG </code><span class="roman">(1024)</span><a name="index-MAKETEX_005fFINE_005fDEBUG-_0040r_007b_00281024_0029_007d-337"></a><dd>When the optional <code>mktex</code> programs are used, this will print -additional debugging info from functions internal to these programs. -</dl> - - <p><a name="index-g_t_0040samp_007bkdebug_003a_007d-338"></a><a name="index-hash_005fsummary_005fonly-_0040r_007bvariable-for-debugging_007d-339"></a><a name="index-hash-table-buckets_002c-printing-340"></a>Debugging output from Kpathsea is always written to standard error, and -begins with the string ‘<samp><span class="samp">kdebug:</span></samp>’. (Except for hash table buckets, -which just start with the number, but you can only get that output -running under a debugger. See comments at the <code>hash_summary_only</code> -variable in <samp><span class="file">kpathsea/db.c</span></samp>.) - -<div class="node"> -<a name="Logging"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Common-problems">Common problems</a>, -Previous: <a rel="previous" accesskey="p" href="#Debugging">Debugging</a>, -Up: <a rel="up" accesskey="u" href="#Reporting-bugs">Reporting bugs</a> - -</div> - -<h4 class="subsection">2.6.4 Logging</h4> - -<p><a name="index-log-file-341"></a> -<a name="index-logging-successful-searches-342"></a><a name="index-recording-successful-searches-343"></a><a name="index-usage-patterns_002c-finding-344"></a><a name="index-disk-usage_002c-reducing-345"></a>Kpathsea can record the time and filename found for each successful -search. This may be useful in finding good candidates for deletion when -your filesystem is full, or in discovering usage patterns -at your site. - - <p><a name="index-TEXMFLOG-346"></a>To do this, define the environment or config file variable -<code>TEXMFLOG</code>. The value is the name of the file to append the -information to. The file is created if it doesn't exist, and appended -to if it does. - - <p><a name="index-epoch_002c-seconds-since-347"></a><a name="index-time-_0040r_007bsystem-call_007d-348"></a>Each successful search turns into one line in the log file: two words -separated by a space. The first word is the time of the search, as the -integer number of seconds since “the epoch”, i.e., UTC midnight 1 -January 1970 (more precisely, the result of the <code>time</code> system -call). The second word is the filename. - - <p>For example, after <code>setenv TEXMFLOG /tmp/log</code>, running Dvips on -<samp><span class="file">story.dvi</span></samp> appends the following lines: - -<pre class="example"> 774455887 /usr/local/share/texmf/dvips/config.ps - 774455887 /usr/local/share/texmf/dvips/psfonts.map - 774455888 /usr/local/share/texmf/dvips/texc.pro - 774455888 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmbx10.600pk - 774455889 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmsl10.600pk - 774455889 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmr10.600pk - 774455889 /usr/local/share/texmf/dvips/texc.pro -</pre> - <p><a name="index-privacy_002c-semblance-of-349"></a>Only filenames that are absolute are recorded, to preserve -some semblance of privacy. - - <p>In addition to this Kpathsea-specific logging, <samp><span class="command">pdftex</span></samp> -provides an option <samp><span class="option">-recorder</span></samp> to write the names of all files -accessed during a run to the file <samp><var>basefile</var><span class="file">.fls</span></samp>. - - <p>Finally, most systems provide a general tool to output each system -call, thus including opening and closing files. It might be named -<samp><span class="command">strace</span></samp>, <samp><span class="command">truss</span></samp>, <samp><span class="command">struss</span></samp>, or something -else. - -<div class="node"> -<a name="Common-problems"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Logging">Logging</a>, -Up: <a rel="up" accesskey="u" href="#Reporting-bugs">Reporting bugs</a> - -</div> - -<h4 class="subsection">2.6.5 Common problems</h4> - -<p><a name="index-common-problems-350"></a><a name="index-problems_002c-common-351"></a><a name="index-FAQ_002c-Kpathsea-352"></a> -Here are some common problems with configuration, compilation, linking, -execution, <small class="dots">...</small> - -<ul class="menu"> -<li><a accesskey="1" href="#Unable-to-find-files">Unable to find files</a>: If your program can't find fonts (or whatever). -<li><a accesskey="2" href="#Slow-path-searching">Slow path searching</a>: If it takes forever to find anything. -<li><a accesskey="3" href="#Unable-to-generate-fonts">Unable to generate fonts</a>: If mktexpk fails. -<li><a accesskey="4" href="#TeX-or-Metafont-failing">TeX or Metafont failing</a>: Likely compiler bugs. - -<li><a accesskey="5" href="#Empty-Makefiles">Empty Makefiles</a>: When configure produces empty makefiles. -<li><a accesskey="6" href="#XtStrings">XtStrings</a>: When _XtStrings is undefined. -<li><a accesskey="7" href="#dlopen">dlopen</a>: When dlopen is undefined. -<li><a accesskey="8" href="#ShellWidgetClass">ShellWidgetClass</a>: For dynamic linking troubles under OpenWindows. -<li><a accesskey="9" href="#Pointer-combination-warnings">Pointer combination warnings</a>: For old compilers that don't grok char *. -</ul> - -<div class="node"> -<a name="Unable-to-find-files"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Slow-path-searching">Slow path searching</a>, -Up: <a rel="up" accesskey="u" href="#Common-problems">Common problems</a> - -</div> - -<h5 class="subsubsection">2.6.5.1 Unable to find files</h5> - -<p><a name="index-unable-to-find-files-353"></a><a name="index-files_002c-unable-to-find-354"></a> -If a program complains it cannot find fonts (or other input files), any -of several things might be wrong. In any case, you may find the -debugging options helpful. See <a href="#Debugging">Debugging</a>. - - <ul> -<li>Perhaps you simply haven't installed all the necessary files; the basic -fonts and input files are distributed separately from the programs. -See <a href="#unixtex_002eftp">unixtex.ftp</a>. - - <li><a name="index-g_t_002fetc_002fprofile-355"></a><a name="index-environment-variables_002c-old-356"></a>You have (perhaps unknowingly) told Kpathsea to use search paths that -don't reflect where the files actually are. One common cause is having -environment variables set from a previous installation, thus overriding -what you carefully set in <samp><span class="file">texmf.cnf</span></samp> (see <a href="#Supported-file-formats">Supported file formats</a>). System <samp><span class="file">/etc/profile</span></samp> or other files such may be the -culprit. - - <li><a name="index-symbolic-links-not-found-357"></a><a name="index-leaf-directories-wrongly-guessed-358"></a>Your files reside in a directory that is only pointed to via a symbolic -link, in a leaf directory and is not listed in <samp><span class="file">ls-R</span></samp>. - - <p>Unfortunately, Kpathsea's subdirectory searching has an irremediable -deficiency: If a directory <var>d</var> being searched for subdirectories -contains plain files and symbolic links to other directories, but no -true subdirectories, <var>d</var> will be considered a leaf directory, i.e., -the symbolic links will not be followed. See <a href="#Subdirectory-expansion">Subdirectory expansion</a>. - - <p>You can work around this problem by creating an empty dummy subdirectory -in <var>d</var>. Then <var>d</var> will no longer be a leaf, and the symlinks will -be followed. - - <p>The directory immediately followed by the ‘<samp><span class="samp">//</span></samp>’ in the path -specification, however, is always searched for subdirectories, even if -it is a leaf. Presumably you would not have asked for the directory to -be searched for subdirectories if you didn't want it to be. - - <li>If the fonts (or whatever) don't already exist, <code>mktexpk</code> (or -<code>mktexmf</code> or <code>mktextfm</code>) will try to create them. If -these rather complicated shell scripts fail, you'll eventually get an -error message saying something like ‘<samp><span class="samp">Can't find font -</span><var>fontname</var></samp>’. The best solution is to fix (or at least report) the -bug in <code>mktexpk</code>; the workaround is to generate the necessary -fonts by hand with Metafont, or to grab them from a CTAN site +explanation, please see those documents. The GNU document is +available from <a href="http://www.gnu.org/prep/standards">http://www.gnu.org/prep/standards</a>. The TDS +document is available from <a href="http://www.mirror.ctan.org/tds">http://www.mirror.ctan.org/tds</a> (see <a href="#unixtex_002eftp">unixtex.ftp</a>). - - <li>There is a bug in the library. See <a href="#Reporting-bugs">Reporting bugs</a>. -</ul> - -<div class="node"> -<a name="Slow-path-searching"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Unable-to-generate-fonts">Unable to generate fonts</a>, -Previous: <a rel="previous" accesskey="p" href="#Unable-to-find-files">Unable to find files</a>, -Up: <a rel="up" accesskey="u" href="#Common-problems">Common problems</a> - -</div> - -<h5 class="subsubsection">2.6.5.2 Slow path searching</h5> - -<p><a name="index-excessive-startup-time-359"></a><a name="index-slow-startup-time-360"></a><a name="index-startup-time_002c-excessive-361"></a> -If your program takes an excessively long time to find fonts or other -input files, but does eventually succeed, here are some possible culprits: - - <ul> -<li>Most likely, you just have a lot of directories to search, and that -takes a noticeable time. The solution is to create and maintain a -separate <samp><span class="file">ls-R</span></samp> file that lists all the files in your main TeX -hierarchy. See <a href="#Filename-database">Filename database</a>. Kpathsea always uses <samp><span class="file">ls-R</span></samp> -if it's present; there's no need to recompile or reconfigure any of the -programs. - - <li>Your recursively-searched directories (e.g., -<samp><span class="file">/usr/local/share/texmf/fonts//</span></samp>), contain a mixture of files and -directories. This prevents Kpathsea from using a useful optimization -(see <a href="#Subdirectory-expansion">Subdirectory expansion</a>). - - <p>It is best to have only directories (and perhaps a <samp><span class="file">README</span></samp>) in the -upper levels of the directory structure, and it's very important to have -<em>only</em> files, and no subdirectories, in the leaf directories where -the dozens of TFM, PK, or whatever files reside. -</ul> - - <p>In any case, you may find the debugging options helpful in determining -precisely when the disk or network is being pounded. See <a href="#Debugging">Debugging</a>. - -<div class="node"> -<a name="Unable-to-generate-fonts"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#TeX-or-Metafont-failing">TeX or Metafont failing</a>, -Previous: <a rel="previous" accesskey="p" href="#Slow-path-searching">Slow path searching</a>, -Up: <a rel="up" accesskey="u" href="#Common-problems">Common problems</a> - -</div> - -<h5 class="subsubsection">2.6.5.3 Unable to generate fonts</h5> - -<p><a name="index-unable-to-generate-fonts-362"></a><a name="index-font-generation-failures-363"></a> -Metafont outputs fonts in bitmap format, tuned for a particular -device at a particular resolution, in order to allow for the -highest-possible quality of output. Some DVI-to-whatever programs, -such as Dvips, try to generate these on the fly when they are needed, -but this generation may fail in several cases. - - <p><a name="index-g_t_0040code_007bmktexpk_007d-can_0027t-guess-mode-364"></a>If <code>mktexpk</code> runs, but fails with this error: -<pre class="example"> mktexpk: Can't guess mode for <var>nnn</var> dpi devices. - mktexpk: Use a config file to specify the mode, or update me. -</pre> - <p>you need to ensure the resolution and mode match; just -specifying the resolution, as in <code>-D 360</code>, is not enough. - - <p>You can specify the mode name with the <code>-mode</code> option on the -Dvips command line, or in a Dvips configuration file (see <a href="dvips.html#Config-files">Config files</a>), such as <samp><span class="file">config.ps</span></samp> in your document -directory, <samp><span class="file">~/.dvipsrc</span></samp> in your home directory, or in a system -directory (again named <samp><span class="file">config.ps</span></samp>). (Other drivers use other -files, naturally.) - - <p>For example, if you need 360<span class="dmn">dpi</span> fonts, you could include this in -a configuration file: -<pre class="example"> D 360 - M lqmed -</pre> - <p><a name="index-Metafont-using-the-wrong-device-365"></a><a name="index-device_002c-wrong-366"></a>If Metafont runs, but generates fonts at the wrong resolution or for -the wrong device, most likely <code>mktexpk</code>'s built-in guess for the -mode is wrong, and you should override it as above. - - <p>See <a href="ftp://ftp.tug.org/tex/modes.mf">ftp://ftp.tug.org/tex/modes.mf</a> for a list of resolutions and -mode names for most devices (additional submissions are welcome). - - <p><a name="index-g_t_002e2602gf-367"></a><a name="index-g_t2602gf-368"></a><a name="index-Metafont-making-too_002dlarge-fonts-369"></a><a name="index-proof-mode-370"></a><a name="index-online-Metafont-display_002c-spurious-371"></a>If Metafont runs but generates fonts at a resolution of 2602<span class="dmn">dpi</span> -(and prints out the name of each character as well as just a character -number, and maybe tries to display the characters), then your Metafont -base file probably hasn't been made properly. (It's using the default -<code>proof</code> mode, instead of an actual device mode.) To make a proper -<samp><span class="file">plain.base</span></samp>, assuming the local mode definitions are contained in -a file <samp><span class="file">modes.mf</span></samp>, run the following command (assuming Unix): - -<pre class="example"> inimf "plain; input modes; dump" -</pre> - <p class="noindent"><a name="index-plain_002ebase-372"></a>Then copy the <samp><span class="file">plain.base</span></samp> file from the current directory to where -the base files are stored on your system -(<samp><span class="file">/usr/local/share/texmf/web2c</span></samp> by default), and make a link -(either hard or soft) from <samp><span class="file">plain.base</span></samp> to <samp><span class="file">mf.base</span></samp> in that -directory. -See <a href="web2c.html#inimf-invocation">inimf invocation</a>. - - <p><a name="index-Metafont-installation-373"></a>If <code>mf</code> is a command not found at all by <code>mktexpk</code>, then you -need to install Metafont (see <a href="#unixtex_002eftp">unixtex.ftp</a>). - -<div class="node"> -<a name="TeX-or-Metafont-failing"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Empty-Makefiles">Empty Makefiles</a>, -Previous: <a rel="previous" accesskey="p" href="#Unable-to-generate-fonts">Unable to generate fonts</a>, -Up: <a rel="up" accesskey="u" href="#Common-problems">Common problems</a> - -</div> - -<h5 class="subsubsection">2.6.5.4 TeX or Metafont failing</h5> - -<p><a name="index-g_t_0040TeX_007b_007d-failures-374"></a><a name="index-Metafont-failures-375"></a><a name="index-compiler-bugs-376"></a>If TeX or Metafont get a segmentation fault or otherwise fail while -running a normal input file, the problem is usually a compiler bug -(unlikely as that may sound). Even if the trip and trap tests are -passed, problems may lurk. Optimization occasionally causes trouble in -programs other than TeX and Metafont themselves, too. - - <p>Insufficient swap space may also cause core dumps or other erratic -behavior. - - <p><a name="index-optimization-caveat-377"></a>For a workaround, if you enabled any optimization flags, it's best to -omit optimization entirely. In any case, the way to find the facts is -to run the program under the debugger and see where it's failing. - - <p><a name="index-GNU-C-compiler-bugs-378"></a><a name="index-system-C-compiler-bugs-379"></a>Also, if you have trouble with a system C compiler, I advise trying the -GNU C compiler. And vice versa, unfortunately; but in that case I also -recommend reporting a bug to the GCC mailing list; see <a href="gcc.html#Bugs">Bugs</a>. - - <p><a name="index-compiler-bugs_002c-finding-380"></a>To report compiler bugs effectively requires perseverance and -perspicacity: you must find the miscompiled line, and that usually -involves delving backwards in time from the point of error, checking -through TeX's (or whatever program's) data structures. Things are -not helped by all-too-common bugs in the debugger itself. Good luck. - - <p><a name="index-ANSI-C-381"></a><a name="index-HP_002dUX_002c-compiling-on-382"></a><a name="index-compiling-on-HP_002dUX-383"></a>One known cause of trouble is the way arrays are handled. Some of the -Pascal arrays have a lower index other than 0, and the C code will take -the pointer to the allocated memory, subtract the lower index, and use -the resulting pointer for the array. While this trick often works, ANSI -C doesn't guarantee that it will. It it known to fail on HP-UX 10 -machines when the native compiler is used, unless the ‘<samp><span class="samp">+u</span></samp>’ compiler -switch was specified. Using GCC will work on this platform as well. - -<div class="node"> -<a name="Empty-Makefiles"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#XtStrings">XtStrings</a>, -Previous: <a rel="previous" accesskey="p" href="#TeX-or-Metafont-failing">TeX or Metafont failing</a>, -Up: <a rel="up" accesskey="u" href="#Common-problems">Common problems</a> - -</div> - -<h5 class="subsubsection">2.6.5.5 Empty Makefiles</h5> - -<p><a name="index-Makefiles_002c-empty-384"></a><a name="index-sed-_0040r_007berror-from-_0040code_007bconfigure_007d_007d-385"></a><a name="index-configure-_0040r_007berror-from-_0040code_007bsed_007d_007d-386"></a><a name="index-NetBSD-_0040code_007bconfigure_007d-error-387"></a><a name="index-FreeBSD-_0040code_007bconfigure_007d-error-388"></a><a name="index-Mach10-_0040code_007bconfigure_007d-error-389"></a><a name="index-AIX-4_002e1-_0040code_007bconfigure_007d-error-390"></a><a name="index-NeXT-_0040code_007bsed_007d-error-391"></a> -On some systems (NetBSD, FreeBSD, AIX 4.1, and Mach10), <code>configure</code> -may fail to properly create the Makefiles. Instead, you get an error -which looks something like this: - -<pre class="example"> prompt$ ./configure - ... - creating Makefile - sed: 1: "\\@^ac_include make/pat ...": \ can not - be used as a string delimiter -</pre> - <p>So far as I know, the bug here is in <code>/bin/sh</code> on these systems. I -don't have access to a machine running any of them, so if someone can -find a workaround that avoids the quoting bug, I'd be most -grateful. (Search for <code>ac_include</code> in the <code>configure</code> script -to get to the problematic code.) - - <p>It should work to run <code>bash configure</code>, instead of using -<code>/bin/sh</code>. You can get Bash from -<a href="ftp://prep.ai.mit.edu/pub/gnu">ftp://prep.ai.mit.edu/pub/gnu</a> and mirrors. - - <p>Another possible cause (reported for NeXT) is a bug in the <code>sed</code> -command. In that case the error may look like this: - -<pre class="example"> Unrecognized command: \@^ac_include make/paths.make@r make/paths.make -</pre> - <p>In this case, installing GNU <code>sed</code> should solve the problem. You -can get GNU <code>sed</code> from the same places as Bash. - -<div class="node"> -<a name="XtStrings"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#dlopen">dlopen</a>, -Previous: <a rel="previous" accesskey="p" href="#Empty-Makefiles">Empty Makefiles</a>, -Up: <a rel="up" accesskey="u" href="#Common-problems">Common problems</a> - -</div> - -<h5 class="subsubsection">2.6.5.6 <code>XtStrings</code></h5> - -<p><a name="index-XtStrings-392"></a>You may find that linking X programs results in an error from the linker -that ‘<samp><span class="samp">XtStrings</span></samp>’ is undefined, something like this: - -<pre class="example"> gcc -o virmf ... - .../x11.c:130: undefined reference to `XtStrings' -</pre> - <p>This generally happens because of a mismatch between the X include files -with which you compiled and the X libraries with which you linked; -often, the include files are from MIT and the libraries from Sun. - - <p>The solution is to use the same X distribution for compilation and -linking. Probably ‘<samp><span class="samp">configure</span></samp>’ was unable to guess the proper -directories from your installation. You can use the <code>configure</code> -options ‘<samp><span class="samp">--x-includes=</span><var>path</var></samp>’ and -‘<samp><span class="samp">--x-libraries=</span><var>path</var></samp>’ to explicitly specify them. - -<div class="node"> -<a name="dlopen"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#ShellWidgetClass">ShellWidgetClass</a>, -Previous: <a rel="previous" accesskey="p" href="#XtStrings">XtStrings</a>, -Up: <a rel="up" accesskey="u" href="#Common-problems">Common problems</a> - -</div> - -<h5 class="subsubsection">2.6.5.7 <code>dlopen</code></h5> - -<p><a name="index-static-linking-and-_0040code_007bdlsym_007d-393"></a><a name="index-dlopen-394"></a><a name="index-dlsym-395"></a><a name="index-dlclose-396"></a><a name="index-wcstombs-397"></a><a name="index-libdl_002ea-398"></a>(This section adapted from the file <samp><span class="file">dlsym.c</span></samp> in the X distribution.) - - <p>The <code>Xlib</code> library uses the standard C function <code>wcstombs</code>. -Under SunOS 4.1, <code>wcstombs</code> uses the ‘<samp><span class="samp">dlsym</span></samp>’ interface defined -in <samp><span class="file">libdl.so</span></samp>. Unfortunately, the SunOS 4.1 distribution does not -include a static ‘<samp><span class="samp">libdl.a</span></samp>’ library. - - <p>As a result, if you try to link an X program statically under SunOS, you -may get undefined references to <code>dlopen</code>, <code>dlsym</code>, and -<code>dlclose</code>. One workaround is to include these definitions -when you link: - -<pre class="example"> void *dlopen() { return 0; } - void *dlsym() { return 0; } - int dlclose() { return -1; } -</pre> - <p><a name="index-dlsym_002ec-399"></a>These are contained in the <samp><span class="file">dlsym.c</span></samp> file in the MIT X -distribution. - -<div class="node"> -<a name="ShellWidgetClass"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Pointer-combination-warnings">Pointer combination warnings</a>, -Previous: <a rel="previous" accesskey="p" href="#dlopen">dlopen</a>, -Up: <a rel="up" accesskey="u" href="#Common-problems">Common problems</a> - -</div> - -<h5 class="subsubsection">2.6.5.8 <code>ShellWidgetClass</code></h5> - -<p><a name="index-dynamic-linking-problems-with-OpenWin-libraries-400"></a><a name="index-OpenWin-libraries_002c-dynamic-linking-problems-401"></a><a name="index-get_005fwmShellWidgetClass-402"></a><a name="index-get_005fapplicationShellWidgetClass-403"></a> -<a name="index-comp_002esys_002esun_002eadmin-_0040r_007bFAQ_007d-404"></a><a name="index-FAQ_002c-_0040t_007bcomp_002esys_002esun_002eadmin_007d-405"></a>(This section adapted from the <tt>comp.sys.sun.admin</tt> FAQ.) - - <p>If you are linking with Sun's OpenWindows libraries in SunOS 4.1.x, you -may get undefined symbols <code>_get_wmShellWidgetClass</code> and -<code>_get_applicationShellWidgetClass</code> when linking. This problem does -not arise using the standard MIT X libraries under SunOS. - - <p><a name="index-Xmu-_0040r_007blibrary-problems_007d-406"></a>The cause is bugs in the <code>Xmu</code> shared library as shipped from Sun. -There are several fixes: - - <ul> -<li>Install the free MIT distribution from ‘<samp><span class="samp">ftp.x.org</span></samp>’ and mirrors. - - <li>Get the OpenWindows patches listed below. - - <li>Statically link the <code>Xmu</code> library into the executable. - - <li>Avoid using <code>Xmu</code> at all. If you are compiling -Metafont, see <a href="web2c.html#Online-Metafont-graphics">Online Metafont graphics</a>. If you are -compiling Xdvi, see the <code>-DNOTOOL</code> option in <samp><span class="file">xdvik/INSTALL</span></samp>. - - <li>Ignore the errors. The binary runs fine regardless. - - </ul> - - <p><a name="index-Sun-OpenWin-patches-407"></a><a name="index-patches_002c-Sun-OpenWin-408"></a>Here is the information for getting the two patches: - -<pre class="display"> Patch ID: 100512-02 - Bug ID's: 1086793, 1086912, 1074766 - Description: 4.1.x OpenWindows 3.0 <code>libXt</code> jumbo patch - - Patch ID: 100573-03 - Bug ID: 1087332 - Description: 4.1.x OpenWindows 3.0 undefined symbols when using shared <code>libXmu</code>. -</pre> - <p><a name="index-static-linking-409"></a>The way to statically link with <code>libXmu</code> depends on whether you are -using a Sun compiler (e.g., <code>cc</code>) or <code>gcc</code>. If the latter, -alter the <code>x_libs</code> Make variable to include - - <p><a name="index-g_t_002dstatic-410"></a><a name="index-g_t_002ddynamic-411"></a> -<pre class="example"> -static -lXmu -dynamic -</pre> - <p><a name="index-g_t_002dBstatic-412"></a><a name="index-g_t_002dBdynamic-413"></a>If you are using the Sun compiler, use ‘<samp><span class="samp">-Bstatic</span></samp>’ and ‘<samp><span class="samp">-Bdynamic</span></samp>’. - -<div class="node"> -<a name="Pointer-combination-warnings"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#ShellWidgetClass">ShellWidgetClass</a>, -Up: <a rel="up" accesskey="u" href="#Common-problems">Common problems</a> - -</div> - -<h5 class="subsubsection">2.6.5.9 Pointer combination warnings</h5> - -<p><a name="index-warnings_002c-pointer-combinations-414"></a><a name="index-pointer-combination-warnings-415"></a><a name="index-illegal-pointer-combination-warnings-416"></a><a name="index-cc-_0040r_007bwarnings_007d-417"></a>When compiling with old C compilers, you may get some warnings about -“illegal pointer combinations”. These are spurious; just ignore them. -I decline to clutter up the source with casts to get rid of them. - -<!-- This isn't worth including any more, OSF 1.x is too old. --> -<!-- The other XtInherit problem (R4 Xlib on Suns) should never come up, --> -<!-- but the answer from the X faq is included anyway. --> -<!-- @node XtInherit --> -<!-- @subsubsection @code{XtInherit} --> -<!-- @findex XtInherit @r{bug on OSF/1} --> -<!-- @cindex OSF/1 loader bug and @code{XtInherit} --> -<!-- @cindex Alpha OSF/1 loader bug and @code{XtInherit} --> -<!-- On DEC OSF/1 1.x systems, the loader has a bug that manifests itself in --> -<!-- the following error (all on one line, but for the sake of the paper --> -<!-- width it's broken here): --> -<!-- @example --> -<!-- xdvik/xdvi: /sbin/loader: Fatal Error: search_for_undefineds: --> -<!-- symbol _XtInherit should not have any relocation entry --> -<!-- @end example --> -<!-- @noindent According to Michael Rickabaugh @code{<mjr@@quarry.enet.dec.com>}: --> -<!-- @quotation --> -<!-- This is a bug fixed in DEC OSF/1 2.0. --> -<!-- If you know how, installing @file{/sbin/loader} from a 2.0 system onto a --> -<!-- 1.3 system will work. Make sure that @file{/usr} is @emph{not} mounted --> -<!-- when you do this. (If you forget about umounting @code{/usr}, it is --> -<!-- possible most of your filesystems will become corrupted.) --> -<!-- Otherwise, I suggest getting a later CD and running --> -<!-- @file{/usr/sbin/installupdate}. --> -<!-- @end quotation --> -<!-- Alternatively, you may be able to use the freely available X11 libraries --> -<!-- that come with the MIT distribution (on @file{ftp.x.org}, for example). --> -<!-- Linking statically, perhaps only with some of the X libraries, may also --> -<!-- work. --> -<!-- The Sun XtInherit weirdness, from the comp.windows.x FAQ: --> -<!-- Subject: 126)! What are these problems with "*_XtInherit* not found" on the Sun? --> -<!-- When I link a X program that I wrote on a SunOS 4.0.3 or 4.1 machine I get the --> -<!-- error "ld.so: symbol not found *_XtInherit*". --> -<!-- What you are seeing is a side-effect of a kludge in the R4 libXt.a to --> -<!-- get Sun shared libraries working. Apparently, you can't share a function that --> -<!-- is both called and compared, as *_XtInherit* is. This was handled by putting --> -<!-- *_XtInherit* in the same file as a function that is always used, thereby --> -<!-- guaranteeing that it would be loaded - that is, in Initialize.c, where --> -<!-- XtToolkitInitialize() and XtInitialize() reside. These routines would normally --> -<!-- be called. --> -<!-- You are probably seeing this error because your program is not a normal --> -<!-- Xt-based program and does not call XtToolkitInitialize() anywhere. --> -<!-- 1) it may be a program that uses Xt functions but never opens a --> -<!-- connection to the X server. [OSF/Motif's 1.1.0 UIL had this problem; it called --> -<!-- XtMalloc() and other Xt functions.] The solution is to add the call to your --> -<!-- program; the function does not have to be executed, just linked in. --> -<!-- 2) alternatively, your program doesn't need any Xt functions and is --> -<!-- correct in not calling XtToolkitInitialize() - it may be an Xlib or XView --> -<!-- program. In this case, you can remove -lXt from your link command. --> -<!-- It should not be necessary to link the shared libraries statically, --> -<!-- although this will certainly solve the problem. --> -<!-- * Empty Makefiles:: If configure gives you sed errors. --> -<!-- * wchar_t:: For wchar_t difficulties. --> -<div class="node"> +</p> +<p>In short, here is a skeleton of the default directory structure, +extracted from the TDS document: +</p> +<div class="example"> +<pre class="example"><var>prefix</var>/ <span class="roman">installation root (<samp>/usr/local</samp> by default)</span> + bin/ <span class="roman">executables</span> + man/ <span class="roman">man pages</span> + include/ <span class="roman">C header files</span> + info/ <span class="roman">GNU info files</span> + lib/ <span class="roman">libraries (<samp>libkpathsea.*</samp>)</span> + share/ <span class="roman">architecture-independent files</span> + texmf/ <span class="roman">TDS root</span> + bibtex/ <span class="roman">BibTeX input files</span> + bib/ <span class="roman">BibTeX databases</span> + base/ <span class="roman">base distribution (e.g., ‘<samp>xampl.bib</samp>’)</span> + misc/ <span class="roman">single-file databases</span> + <var>pkg</var>/ <span class="roman">name of a package</span> + bst/ <span class="roman">BibTeX style files</span> + base/ <span class="roman">base distribution (e.g., ‘<samp>plain.bst</samp>’, ‘<samp>acm.bst</samp>’)</span> + misc/ <span class="roman">single-file styles</span> + <var>pkg</var>/ <span class="roman">name of a package</span> + doc/ <span class="roman">additional documentation</span> + dvips/ <span class="roman">‘<samp>.pro</samp>’, ‘<samp>.ps</samp>’, ‘<samp>psfonts.map</samp>’</span> + fonts/ <span class="roman">font-related files</span> + <var>type</var>/ <span class="roman">file type (e.g., ‘<samp>tfm</samp>’, ‘<samp>pk</samp>’)</span> + <var>mode</var>/ <span class="roman">type of output device (types ‘<samp>pk</samp>’ and ‘<samp>gf</samp>’ only)</span> + <var>supplier</var>/ <span class="roman">name of a font supplier (e.g., ‘<samp>public</samp>’)</span> + <var>typeface</var>/ <span class="roman">name of a typeface (e.g., ‘<samp>cm</samp>’)</span> + dpi<var>nnn</var>/ <span class="roman">font resolution (types ‘<samp>pk</samp>’ and ‘<samp>gf</samp>’ only)</span> + metafont/ <span class="roman">Metafont (non-font) input files</span> + base/ <span class="roman">base distribution (e.g., ‘<samp>plain.mf</samp>’)</span> + misc/ <span class="roman">single-file packages (e.g., ‘<samp>modes.mf</samp>’)</span> + <var>pkg</var>/ <span class="roman">name of a package (e.g., ‘<samp>mfpic</samp>’)</span> + metapost/ <span class="roman">MetaPost input files</span> + base/ <span class="roman">base distribution (e.g., ‘<samp>plain.mp</samp>’)</span> + misc/ <span class="roman">single-file packages</span> + <var>pkg</var>/ <span class="roman">name of a package</span> + support/ <span class="roman">support files for MetaPost-related utilities (e.g., ‘<samp>trfonts.map</samp>’)</span> + mft/ <span class="roman">‘<samp>MFT</samp>’ inputs (e.g., ‘<samp>plain.mft</samp>’)</span> + tex/ <span class="roman">TeX input files</span> + <var>format</var>/ <span class="roman">name of a format (e.g., ‘<samp>plain</samp>’)</span> + base/ <span class="roman">base distribution for <var>format</var> (e.g., ‘<samp>plain.tex</samp>’)</span> + misc/ <span class="roman">single-file packages (e.g., ‘<samp>webmac.tex</samp>’)</span> + local/ <span class="roman">local additions to or local configuration files for <var>format</var></span> + <var>pkg</var>/ <span class="roman">name of a package (e.g., ‘<samp>graphics</samp>’, ‘<samp>mfnfss</samp>’)</span> + generic/ <span class="roman">format-independent packages</span> + hyphen/ <span class="roman">hyphenation patterns (e.g., ‘<samp>hyphen.tex</samp>’)</span> + images/ <span class="roman">image input files (e.g., Encapsulated PostScript)</span> + misc/ <span class="roman">single-file format-independent packages (e.g., ‘<samp>null.tex</samp>’).</span> + <var>pkg</var>/ <span class="roman">name of a package (e.g., ‘<samp>babel</samp>’)</span> + web2c/ <span class="roman">implementation-dependent files (<samp>.pool</samp>, <samp>.fmt</samp>, <samp>texmf.cnf</samp>, etc.)</span> +</pre></div> + +<p>Some concrete examples for most file types: +</p> +<div class="example"> +<pre class="example">/usr/local/bin/tex +/usr/local/man/man1/xdvi.1 +/usr/local/info/kpathsea.info +/usr/local/lib/libkpathsea.a +/usr/local/share/texmf/bibtex/bst/base/plain.bst +/usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmr10.600pk +/usr/local/share/texmf/fonts/source/public/pandora/pnr10.mf +/usr/local/share/texmf/fonts/tfm/public/cm/cmr10.tfm +/usr/local/share/texmf/fonts/type1/adobe/utopia/putr.pfa +/usr/local/share/texmf/metafont/base/plain.mf +/usr/local/share/texmf/metapost/base/plain.mp +/usr/local/share/texmf/tex/plain/base/plain.tex +/usr/local/share/texmf/tex/generic/hyphen/hyphen.tex +/usr/local/share/texmf/web2c/tex.pool +/usr/local/share/texmf/web2c/tex.fmt +/usr/local/share/texmf/web2c/texmf.cnf +</pre></div> + + +<hr> <a name="Path-searching"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#TeX-support">TeX support</a>, -Previous: <a rel="previous" accesskey="p" href="#Installation">Installation</a>, -Up: <a rel="up" accesskey="u" href="#Top">Top</a> - +<div class="header"> +<p> +Next: <a href="#TeX-support" accesskey="n" rel="next">TeX support</a>, Previous: <a href="#TeX-directory-structure" accesskey="p" rel="prev">TeX directory structure</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Path-searching-1"></a> +<h2 class="chapter">5 Path searching</h2> -<h2 class="chapter">3 Path searching</h2> +<a name="index-path-searching"></a> -<p><a name="index-path-searching-418"></a> -This chapter describes the generic path searching mechanism Kpathsea +<p>This chapter describes the generic path searching mechanism Kpathsea provides. For information about searching for particular file types (e.g., TeX fonts), see the next chapter. - -<ul class="menu"> -<li><a accesskey="1" href="#Searching-overview">Searching overview</a>: Basic scheme for searching. -<li><a accesskey="2" href="#Path-sources">Path sources</a>: Where search paths can be defined. -<li><a accesskey="3" href="#Path-expansion">Path expansion</a>: Special constructs in search paths. -<li><a accesskey="4" href="#Filename-database">Filename database</a>: Using an externally-built list to search. -<li><a accesskey="5" href="#Invoking-kpsewhich">Invoking kpsewhich</a>: Standalone path lookup. -</ul> - -<div class="node"> +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Searching-overview" accesskey="1">Searching overview</a>:</td><td> </td><td align="left" valign="top">Basic scheme for searching. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Path-sources" accesskey="2">Path sources</a>:</td><td> </td><td align="left" valign="top">Where search paths can be defined. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Path-expansion" accesskey="3">Path expansion</a>:</td><td> </td><td align="left" valign="top">Special constructs in search paths. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Filename-database" accesskey="4">Filename database</a>:</td><td> </td><td align="left" valign="top">Using an externally-built list to search. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Invoking-kpsewhich" accesskey="5">Invoking kpsewhich</a>:</td><td> </td><td align="left" valign="top">Standalone path lookup. +</td></tr> +</table> + + +<hr> <a name="Searching-overview"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Path-sources">Path sources</a>, -Up: <a rel="up" accesskey="u" href="#Path-searching">Path searching</a> - +<div class="header"> +<p> +Next: <a href="#Path-sources" accesskey="n" rel="next">Path sources</a>, Up: <a href="#Path-searching" accesskey="u" rel="up">Path searching</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Searching-overview-1"></a> +<h3 class="section">5.1 Searching overview</h3> -<h3 class="section">3.1 Searching overview</h3> +<a name="index-searching-overview"></a> +<a name="index-path-searching_002c-overview"></a> +<a name="index-overview-of-path-searching"></a> -<p><a name="index-searching-overview-419"></a><a name="index-path-searching_002c-overview-420"></a><a name="index-overview-of-path-searching-421"></a> -<a name="index-search-path_002c-defined-422"></a>A <dfn>search path</dfn> is a colon-separated list of <dfn>path elements</dfn>, +<a name="index-search-path_002c-defined"></a> +<p>A <em>search path</em> is a colon-separated list of <em>path elements</em>, which are directory names with a few extra frills. A search path can come from (a combination of) many sources; see below. To look up a file -‘<samp><span class="samp">foo</span></samp>’ along a path ‘<samp><span class="samp">.:/dir</span></samp>’, Kpathsea checks each element of -the path in turn: first <samp><span class="file">./foo</span></samp>, then <samp><span class="file">/dir/foo</span></samp>, returning +‘<samp>foo</samp>’ along a path ‘<samp>.:/dir</samp>’, Kpathsea checks each element of +the path in turn: first <samp>./foo</samp>, then <samp>/dir/foo</samp>, returning the first match (or possibly all matches). - - <p><a name="index-magic-characters-423"></a><a name="index-g_t_003a-_0040r_007bmay-not-be-_003a_007d-424"></a><a name="index-g_t_002f-_0040r_007bmay-not-be-_002f_007d-425"></a>The “colon” and “slash” mentioned here aren't necessarily ‘<samp><span class="samp">:</span></samp>’ -and ‘<samp><span class="samp">/</span></samp>’ on non-Unix systems. Kpathsea tries to adapt to other -operating systems' conventions. - - <p><a name="index-database-search-426"></a><a name="index-searching-the-database-427"></a>To check a particular path element <var>e</var>, Kpathsea first sees if a +</p> +<a name="index-magic-characters"></a> +<a name="index-_003a-may-not-be-_003a"></a> +<a name="index-_002f-may-not-be-_002f"></a> +<p>The “colon” and “slash” mentioned here aren’t necessarily ‘<samp>:</samp>’ +and ‘<samp>/</samp>’ on non-Unix systems. Kpathsea tries to adapt to other +operating systems’ conventions. +</p> +<a name="index-database-search"></a> +<a name="index-searching-the-database"></a> +<p>To check a particular path element <var>e</var>, Kpathsea first sees if a prebuilt database (see <a href="#Filename-database">Filename database</a>) applies to <var>e</var>, i.e., if the database is in a directory that is a prefix of <var>e</var>. If so, the path specification is matched against the contents of the database. - - <p><a name="index-floating-directories-428"></a><a name="index-filesystem-search-429"></a><a name="index-disk-search-430"></a><a name="index-searching-the-disk-431"></a>If the database does not exist, or does not apply to this path element, +</p> +<a name="index-floating-directories"></a> +<a name="index-filesystem-search"></a> +<a name="index-disk-search"></a> +<a name="index-searching-the-disk"></a> +<p>If the database does not exist, or does not apply to this path element, or contains no matches, the filesystem is searched (if this was not -forbidden by the specification with ‘<samp><span class="samp">!!</span></samp>’ and if the file being +forbidden by the specification with ‘<samp>!!</samp>’ and if the file being searched for must exist). Kpathsea constructs the list of directories that correspond to this path element, and then checks in each for the file being searched for. (To help speed future lookups of files in the same directory, the directory in which a file is found is floated to the top of the directory list.) - - <p><a name="index-must-exist-432"></a><a name="index-VF-files_002c-not-found-433"></a><a name="index-cmr10_002evf-434"></a><a name="index-g_t_005copenin-435"></a>The “file must exist” condition comes into play with VF files and -input files read by the TeX ‘<samp><span class="samp">\openin</span></samp>’ command. These files -might very well not exist (consider <samp><span class="file">cmr10.vf</span></samp>), and so it would +</p> +<a name="index-must-exist"></a> +<a name="index-VF-files_002c-not-found"></a> +<a name="index-cmr10_002evf"></a> +<a name="index-_005copenin"></a> +<p>The “file must exist” condition comes into play with VF files and +input files read by the TeX ‘<samp>\openin</samp>’ command. These files +might very well not exist (consider <samp>cmr10.vf</samp>), and so it would be wrong to search the disk for them. Therefore, if you fail to -update <samp><span class="file">ls-R</span></samp> when you install a new VF file, it will not be +update <samp>ls-R</samp> when you install a new VF file, it will not be found. - - <p>Each path element is checked in turn: first the database, then the disk. +</p> +<p>Each path element is checked in turn: first the database, then the disk. If a match is found, the search stops and the result is returned. This avoids possibly-expensive processing of path specifications that are never needed on a particular run. (Unless the search explicitly requested all matches.) - - <p><a name="index-expansion_002c-path-element-436"></a>Although the simplest and most common path element is a directory name, +</p> +<a name="index-expansion_002c-path-element"></a> +<p>Although the simplest and most common path element is a directory name, Kpathsea supports additional features in search paths: layered default -values, environment variable names, config file values, users' home +values, environment variable names, config file values, users’ home directories, and recursive subdirectory searching. Thus, we say that -Kpathsea <dfn>expands</dfn> a path element, meaning transforming all the +Kpathsea <em>expands</em> a path element, meaning transforming all the magic specifications into the basic directory name or names. This process is described in the sections below. It happens in the same order as the sections. - - <p><a name="index-absolute-filenames-437"></a><a name="index-relative-filenames-438"></a><a name="index-explicitly-relative-filenames-439"></a><a name="index-filenames_002c-absolute-or-explicitly-relative-440"></a>Exception to all of the above: If the filename being searched for is -absolute or explicitly relative, i.e., starts with ‘<samp><span class="samp">/</span></samp>’ or ‘<samp><span class="samp">./</span></samp>’ -or ‘<samp><span class="samp">../</span></samp>’, Kpathsea simply checks if that file exists. - - <p><a name="index-permission-denied-441"></a><a name="index-unreadable-files-442"></a><a name="index-access-warnings-443"></a><a name="index-warnings_002c-file-access-444"></a><a name="index-lost_002bfound-_0040r_007bdirectory_007d-445"></a><a name="index-TEX_005fHUSH-446"></a>Ordinarily, if Kpathsea tries to access a file or directory that +</p> +<a name="index-absolute-filenames"></a> +<a name="index-relative-filenames"></a> +<a name="index-explicitly-relative-filenames"></a> +<a name="index-filenames_002c-absolute-or-explicitly-relative"></a> +<p>Exception to all of the above: If the filename being searched for is +absolute or explicitly relative, i.e., starts with ‘<samp>/</samp>’ or ‘<samp>./</samp>’ +or ‘<samp>../</samp>’, Kpathsea simply checks if that file exists. +</p> +<a name="index-permission-denied"></a> +<a name="index-unreadable-files"></a> +<a name="index-access-warnings"></a> +<a name="index-warnings_002c-file-access"></a> +<a name="index-lost_002bfound-directory"></a> +<a name="index-TEX_005fHUSH"></a> +<p>Ordinarily, if Kpathsea tries to access a file or directory that cannot be read, it gives a warning. This is so you will be alerted to directories or files that accidentally lack any read permission (for -example, a <samp><span class="file">lost+found</span></samp> directory). If you prefer not to see -these warnings, include the value ‘<samp><span class="samp">readable</span></samp>’ in the +example, a <samp>lost+found</samp> directory). If you prefer not to see +these warnings, include the value ‘<samp>readable</samp>’ in the <code>TEX_HUSH</code> environment variable or config file value. - - <p>This generic path searching algorithm is implemented in -<samp><span class="file">kpathsea/pathsearch.c</span></samp>. It is employed by a higher-level +</p> +<p>This generic path searching algorithm is implemented in +<samp>kpathsea/pathsearch.c</samp>. It is employed by a higher-level algorithm when searching for a file of a particular type (see <a href="#File-lookup">File lookup</a>, and <a href="#Glyph-lookup">Glyph lookup</a>). +</p> -<div class="node"> +<hr> <a name="Path-sources"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Path-expansion">Path expansion</a>, -Previous: <a rel="previous" accesskey="p" href="#Searching-overview">Searching overview</a>, -Up: <a rel="up" accesskey="u" href="#Path-searching">Path searching</a> - +<div class="header"> +<p> +Next: <a href="#Path-expansion" accesskey="n" rel="next">Path expansion</a>, Previous: <a href="#Searching-overview" accesskey="p" rel="prev">Searching overview</a>, Up: <a href="#Path-searching" accesskey="u" rel="up">Path searching</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Path-sources-1"></a> +<h3 class="section">5.2 Path sources</h3> -<h3 class="section">3.2 Path sources</h3> +<a name="index-path-sources"></a> +<a name="index-sources-for-search-paths"></a> -<p><a name="index-path-sources-447"></a><a name="index-sources-for-search-paths-448"></a> -A search path can come from many sources. In the order in which +<p>A search path can come from many sources. In the order in which Kpathsea uses them: - - <ol type=1 start=1> -<li><a name="index-environment-variable_002c-source-for-path-449"></a>A user-set environment variable, e.g., <code>TEXINPUTS</code>. +</p> +<ol> +<li> <a name="index-environment-variable_002c-source-for-path"></a> +A user-set environment variable, e.g., <code>TEXINPUTS</code>. Environment variables with an underscore and the program name appended override; for example, <code>TEXINPUTS_latex</code> overrides <code>TEXINPUTS</code> -if the program being run is named ‘<samp><span class="samp">latex</span></samp>’. +if the program being run is named ‘<samp>latex</samp>’. - <li>A program-specific configuration file, e.g., an ‘<samp><span class="samp">S /a:/b</span></samp>’ line in -Dvips' <samp><span class="file">config.ps</span></samp> (see <a href="dvips.html#Config-files">Config files</a>). +</li><li> A program-specific configuration file, e.g., an ‘<samp>S /a:/b</samp>’ line in +Dvips’ <samp>config.ps</samp> (see <a href="dvips.html#Config-files">Config files</a> in <cite>Dvips</cite>). - <li><a name="index-configuration-file_002c-source-for-path-450"></a><a name="index-Kpathsea-config-file_002c-source-for-path-451"></a><a name="index-texmf_002ecnf_0040r_007b_002c-source-for-path_007d-452"></a>A line in a Kpathsea configuration file <samp><span class="file">texmf.cnf</span></samp>, e.g., -‘<samp><span class="samp">TEXINPUTS=/c:/d</span></samp>’ (see below). +</li><li> <a name="index-configuration-file_002c-source-for-path"></a> +<a name="index-Kpathsea-config-file_002c-source-for-path"></a> +<a name="index-texmf_002ecnf_002c-source-for-path"></a> +A line in a Kpathsea configuration file <samp>texmf.cnf</samp>, e.g., +‘<samp>TEXINPUTS=/c:/d</samp>’ (see below). - <li><a name="index-compilation-value_002c-source-for-path-453"></a>The compile-time default (specified in <samp><span class="file">kpathsea/paths.h</span></samp>). - </ol> +</li><li> <a name="index-compilation-value_002c-source-for-path"></a> +The compile-time default (specified in <samp>kpathsea/paths.h</samp>). +</li></ol> - <p>You can see each of these values for a given search path by using the +<p>You can see each of these values for a given search path by using the debugging options (see <a href="#Debugging">Debugging</a>). +</p> +<p>These sources may be combined via default expansion (see <a href="#Default-expansion">Default expansion</a>). +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Config-files" accesskey="1">Config files</a>:</td><td> </td><td align="left" valign="top">Kpathsea’s runtime config files (texmf.cnf). +</td></tr> +</table> - <p>These sources may be combined via default expansion (see <a href="#Default-expansion">Default expansion</a>). -<ul class="menu"> -<li><a accesskey="1" href="#Config-files">Config files</a>: Kpathsea's runtime config files (texmf.cnf). -</ul> - -<div class="node"> +<hr> <a name="Config-files"></a> -<p><hr> -Up: <a rel="up" accesskey="u" href="#Path-sources">Path sources</a> - +<div class="header"> +<p> +Up: <a href="#Path-sources" accesskey="u" rel="up">Path sources</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Config-files-1"></a> +<h4 class="subsection">5.2.1 Config files</h4> -<h4 class="subsection">3.2.1 Config files</h4> +<a name="index-config-files"></a> +<a name="index-texmf_002ecnf_002c-definition-for"></a> -<p><a name="index-config-files-454"></a><a name="index-texmf_002ecnf_0040r_007b_002c-definition-for_007d-455"></a> -<a name="index-runtime-configuration-files-456"></a><a name="index-TEXMFCNF-457"></a>As mentioned above, Kpathsea reads <dfn>runtime configuration files</dfn> -named <samp><span class="file">texmf.cnf</span></samp> for search path and other definitions. The +<a name="index-runtime-configuration-files"></a> +<a name="index-TEXMFCNF"></a> +<p>As mentioned above, Kpathsea reads <em>runtime configuration files</em> +named <samp>texmf.cnf</samp> for search path and other definitions. The search path used to look for these configuration files is named <code>TEXMFCNF</code>, and is constructed in the usual way, as described above, except that configuration files cannot be used to define the -path, naturally; also, an <samp><span class="file">ls-R</span></samp> database is not used to search for +path, naturally; also, an <samp>ls-R</samp> database is not used to search for them. - - <p>Kpathsea reads <em>all</em> <samp><span class="file">texmf.cnf</span></samp> files in the search path, not +</p> +<p>Kpathsea reads <em>all</em> <samp>texmf.cnf</samp> files in the search path, not just the first one found; definitions in earlier files override those in -later files. Thus, if the search path is ‘<samp><span class="samp">.:$TEXMF</span></samp>’, values from -<samp><span class="file">./texmf.cnf</span></samp> override those from <samp><span class="file">$TEXMF/texmf.cnf</span></samp>. - - <p><a name="index-KPATHSEA_005fWARNING-458"></a><a name="index-warning_002c-about-missing-_0040file_007btexmf_002ecnf_007d-459"></a><a name="index-g_t_0040file_007btexmf_002ecnf_007d-missing_002c-warning-about-460"></a>If Kpathsea cannot find any <samp><span class="file">texmf.cnf</span></samp> file, it reports a -warning including all the directories it checked. If you don't want +later files. Thus, if the search path is ‘<samp>.:$TEXMF</samp>’, values from +<samp>./texmf.cnf</samp> override those from <samp>$TEXMF/texmf.cnf</samp>. +</p> +<a name="index-KPATHSEA_005fWARNING"></a> +<a name="index-warning_002c-about-missing-texmf_002ecnf"></a> +<a name="index-texmf_002ecnf-missing_002c-warning-about"></a> +<p>If Kpathsea cannot find any <samp>texmf.cnf</samp> file, it reports a +warning including all the directories it checked. If you don’t want to see this warning, set the environment variable -<samp><span class="env">KPATHSEA_WARNING</span></samp> to the single character ‘<samp><span class="samp">0</span></samp>’ (zero, not +<code>KPATHSEA_WARNING</code> to the single character ‘<samp>0</samp>’ (zero, not oh). - - <p>While (or instead of) reading this description, you may find it helpful -to look at the distributed <samp><span class="file">texmf.cnf</span></samp>, which uses or at least -mentions most features. The format of <samp><span class="file">texmf.cnf</span></samp> files follows: - - <ul> -<li><a name="index-comments_002c-in-_0040file_007btexmf_002ecnf_007d-461"></a>Comments start with ‘<samp><span class="samp">%</span></samp>’, either at the beginning of a line or +</p> +<p>While (or instead of) reading this description, you may find it helpful +to look at the distributed <samp>texmf.cnf</samp>, which uses or at least +mentions most features. The format of <samp>texmf.cnf</samp> files follows: +</p> +<ul> +<li> <a name="index-comments_002c-in-texmf_002ecnf"></a> +Comments start with ‘<samp>%</samp>’, either at the beginning of a line or preceded by whitespace, and continue to the end of the line. That is, -as with most shells, a ‘<samp><span class="samp">%</span></samp>’ in the “middle” of a value does not +as with most shells, a ‘<samp>%</samp>’ in the “middle” of a value does not start a comment. Examples: - <pre class="example"> % this is a comment - var = a%b % but the value of var will be "a%b". -</pre> - <li><a name="index-blank-lines_002c-in-_0040file_007btexmf_002ecnf_007d-462"></a>Blank lines are ignored. +<div class="example"> +<pre class="example">% this is a comment +var = a%b % but the value of var will be "a%b". +</pre></div> - <li><a name="index-backslash_002dnewline-463"></a><a name="index-continuation-character-464"></a><a name="index-whitespace_002c-not-ignored-on-continuation-lines-465"></a><a name="index-g_t_005c_0040r_007b_002c-line-continuation-in-_0040file_007btexmf_002ecnf_007d_007d-466"></a>A ‘<samp><span class="samp">\</span></samp>’ at the end of a line acts as a continuation character, i.e., +</li><li> <a name="index-blank-lines_002c-in-texmf_002ecnf"></a> +Blank lines are ignored. + +</li><li> <a name="index-backslash_002dnewline"></a> +<a name="index-continuation-character"></a> +<a name="index-whitespace_002c-not-ignored-on-continuation-lines"></a> +<a name="index-_005c_002c-line-continuation-in-texmf_002ecnf"></a> +A ‘<samp>\</samp>’ at the end of a line acts as a continuation character, i.e., the next line is appended. Whitespace at the beginning of continuation lines is not ignored. - <li>Each remaining line must look like +</li><li> Each remaining line must look like - <pre class="example"> <var>variable</var> <span class="roman">[</span>. <var>progname</var><span class="roman">]</span> <span class="roman">[</span>=<span class="roman">]</span> <var>value</var> -</pre> - <p class="noindent">where the ‘<samp><span class="samp">=</span></samp>’ and surrounding whitespace is optional. +<div class="example"> +<pre class="example"><var>variable</var> <span class="roman">[</span>. <var>progname</var><span class="roman">]</span> <span class="roman">[</span>=<span class="roman">]</span> <var>value</var> +</pre></div> - <li><a name="index-identifiers_002c-characters-valid-in-467"></a>The <var>variable</var> name may contain any character other than whitespace, -‘<samp><span class="samp">=</span></samp>’, or ‘<samp><span class="samp">.</span></samp>’, but sticking to ‘<samp><span class="samp">A-Za-z_</span></samp>’ is safest. +<p>where the ‘<samp>=</samp>’ and surrounding whitespace is optional. +</p> +</li><li> <a name="index-identifiers_002c-characters-valid-in"></a> +The <var>variable</var> name may contain any character other than whitespace, +‘<samp>=</samp>’, or ‘<samp>.</samp>’, but sticking to ‘<samp>A-Za-z_</samp>’ is safest. - <li>If ‘<samp><span class="samp">.</span><var>progname</var></samp>’ is present, the definition only +</li><li> If ‘<samp>.<var>progname</var></samp>’ is present, the definition only applies if the program that is running is named (i.e., the last component of <code>argv[0]</code> is) <var>progname</var> or -<samp><var>progname</var><span class="file">.{exe,bat,cmd,...}</span></samp>. Most notably, this allows +<samp><var>progname</var>.{exe,bat,cmd,...}</samp>. Most notably, this allows different flavors of TeX to have different search paths. - <li><a name="index-right_002dhand-side-of-variable-assignments-468"></a><var>value</var> may contain any characters except ‘<samp><span class="samp">%</span></samp>’ and ‘<samp><span class="samp">@</span></samp>’. +</li><li> <a name="index-right_002dhand-side-of-variable-assignments"></a> +<var>value</var> may contain any characters except ‘<samp>%</samp>’ and ‘<samp>@</samp>’. (These restrictions are only necessary because of the processing done -on <samp><span class="file">texmf.cnf</span></samp> at build time, so you can stick those characters +on <samp>texmf.cnf</samp> at build time, so you can stick those characters in after installation if you have to.) The -‘<samp><span class="samp">$</span><var>var</var><span class="samp">.</span><var>prog</var></samp>’ feature is not available on the +‘<samp>$<var>var</var>.<var>prog</var></samp>’ feature is not available on the right-hand side; instead, you must use an additional variable (see -below for example). A ‘<samp><span class="samp">;</span></samp>’ in <var>value</var> is translated to -‘<samp><span class="samp">:</span></samp>’ if running under Unix; this is useful to write a single -<samp><span class="file">texmf.cnf</span></samp> which can be used under both Unix and Windows. +below for example). A ‘<samp>;</samp>’ in <var>value</var> is translated to +‘<samp>:</samp>’ if running under Unix; this is useful to write a single +<samp>texmf.cnf</samp> which can be used under both Unix and Windows. - <li>All definitions are read before anything is expanded, so you can +</li><li> All definitions are read before anything is expanded, so you can use variables before they are defined (like Make, unlike most other -programs). -</ul> +programs). +</li></ul> -<p class="noindent">Here is a configuration file fragment illustrating most of +<p>Here is a configuration file fragment illustrating most of these points: - -<pre class="example"> % TeX input files -- i.e., anything to be found by \input or \openin ... - latex209_inputs = .:$TEXMF/tex/latex209//:$TEXMF/tex// - latex2e_inputs = .:$TEXMF/tex/latex//:$TEXMF/tex// - TEXINPUTS = .:$TEXMF/tex// - TEXINPUTS.latex209 = $latex209_inputs - TEXINPUTS.latex2e = $latex2e_inputs - TEXINPUTS.latex = $latex2e_inputs -</pre> - <p><a name="index-shell-scripts-as-configuration-files-469"></a><a name="index-configuration-files-as-shell-scripts_002e-470"></a>This format has obvious similarities to Bourne shell scripts—change +</p> +<div class="example"> +<pre class="example">% TeX input files -- i.e., anything to be found by \input or \openin ... +latex209_inputs = .:$TEXMF/tex/latex209//:$TEXMF/tex// +latex2e_inputs = .:$TEXMF/tex/latex//:$TEXMF/tex// +TEXINPUTS = .:$TEXMF/tex// +TEXINPUTS.latex209 = $latex209_inputs +TEXINPUTS.latex2e = $latex2e_inputs +TEXINPUTS.latex = $latex2e_inputs +</pre></div> + +<a name="index-shell-scripts-as-configuration-files"></a> +<a name="index-configuration-files-as-shell-scripts_002e"></a> +<p>This format has obvious similarities to Bourne shell scripts—change the comment character to <code>#</code>, disallow spaces around the -<code>=</code>, and get rid of the <code>.</code><var>name</var> convention, and it +<code>=</code>, and get rid of the <code>.<var>name</var></code> convention, and it could be run through the shell. However, there seemed little advantage in this, since all the information would have to passed back to Kpathsea and parsed there anyway, since the <code>sh</code> process -couldn't affect its parent's environment. - - <p><a name="index-cnf_002ec-471"></a>The implementation of all this is in <samp><span class="file">kpathsea/cnf.c</span></samp>. +couldn’t affect its parent’s environment. +</p> +<a name="index-cnf_002ec"></a> +<p>The implementation of all this is in <samp>kpathsea/cnf.c</samp>. +</p> -<div class="node"> +<hr> <a name="Path-expansion"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Filename-database">Filename database</a>, -Previous: <a rel="previous" accesskey="p" href="#Path-sources">Path sources</a>, -Up: <a rel="up" accesskey="u" href="#Path-searching">Path searching</a> - +<div class="header"> +<p> +Next: <a href="#Filename-database" accesskey="n" rel="next">Filename database</a>, Previous: <a href="#Path-sources" accesskey="p" rel="prev">Path sources</a>, Up: <a href="#Path-searching" accesskey="u" rel="up">Path searching</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Path-expansion-1"></a> +<h3 class="section">5.3 Path expansion</h3> -<h3 class="section">3.3 Path expansion</h3> +<a name="index-path-expansion"></a> +<a name="index-expansion_002c-search-path"></a> -<p><a name="index-path-expansion-472"></a><a name="index-expansion_002c-search-path-473"></a> -Kpathsea recognizes certain special characters and constructions in +<p>Kpathsea recognizes certain special characters and constructions in search paths, similar to that in shells. As a general example: -‘<samp><span class="samp">~$USER/{foo,bar}//baz</span></samp>’ expands to all subdirectories under -directories <samp><span class="file">foo</span></samp> and <samp><span class="file">bar</span></samp> in <tt>$USER</tt>'s home directory that -contain a directory or file <samp><span class="file">baz</span></samp>. These expansions are explained +‘<samp>~$USER/{foo,bar}//baz</samp>’ expands to all subdirectories under +directories <samp>foo</samp> and <samp>bar</samp> in <tt>$USER</tt>’s home directory that +contain a directory or file <samp>baz</samp>. These expansions are explained in the sections below. - -<ul class="menu"> -<li><a accesskey="1" href="#Default-expansion">Default expansion</a>: a: or :a or a::b expands to a default. -<li><a accesskey="2" href="#Variable-expansion">Variable expansion</a>: $foo and ${foo} expand to environment values. -<li><a accesskey="3" href="#Tilde-expansion">Tilde expansion</a>: ~ and ~user expand to home directories. -<li><a accesskey="4" href="#Brace-expansion">Brace expansion</a>: a{foo,bar}b expands to afoob abarb. -<li><a accesskey="5" href="#KPSE_005fDOT-expansion">KPSE_DOT expansion</a>: . is replaced with $KPSE_DOT if it is defined. -<li><a accesskey="6" href="#Subdirectory-expansion">Subdirectory expansion</a>: a// and a//b recursively expand to subdirs. -</ul> - -<div class="node"> +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Default-expansion" accesskey="1">Default expansion</a>:</td><td> </td><td align="left" valign="top">a: or :a or a::b expands to a default. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Variable-expansion" accesskey="2">Variable expansion</a>:</td><td> </td><td align="left" valign="top">$foo and ${foo} expand to environment values. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Tilde-expansion" accesskey="3">Tilde expansion</a>:</td><td> </td><td align="left" valign="top">~ and ~user expand to home directories. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Brace-expansion" accesskey="4">Brace expansion</a>:</td><td> </td><td align="left" valign="top">a{foo,bar}b expands to afoob abarb. +</td></tr> +<tr><td align="left" valign="top">• <a href="#KPSE_005fDOT-expansion" accesskey="5">KPSE_DOT expansion</a>:</td><td> </td><td align="left" valign="top">. is replaced with $KPSE_DOT if it is defined. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Subdirectory-expansion" accesskey="6">Subdirectory expansion</a>:</td><td> </td><td align="left" valign="top">a// and a//b recursively expand to subdirs. +</td></tr> +</table> + + +<hr> <a name="Default-expansion"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Variable-expansion">Variable expansion</a>, -Up: <a rel="up" accesskey="u" href="#Path-expansion">Path expansion</a> - +<div class="header"> +<p> +Next: <a href="#Variable-expansion" accesskey="n" rel="next">Variable expansion</a>, Up: <a href="#Path-expansion" accesskey="u" rel="up">Path expansion</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - -<h4 class="subsection">3.3.1 Default expansion</h4> - -<p><a name="index-g_t_003a_003a-_0040r_007bexpansion_007d-474"></a><a name="index-doubled-colons-475"></a><a name="index-leading-colons-476"></a><a name="index-trailing-colons-477"></a><a name="index-extra-colons-478"></a><a name="index-default-expansion-479"></a><a name="index-expansion_002c-default-480"></a> -If the highest-priority search path (see <a href="#Path-sources">Path sources</a>) contains an -<dfn>extra colon</dfn> (i.e., leading, trailing, or doubled), Kpathsea +<a name="Default-expansion-1"></a> +<h4 class="subsection">5.3.1 Default expansion</h4> + +<a name="index-_003a_003a-expansion"></a> +<a name="index-doubled-colons"></a> +<a name="index-leading-colons"></a> +<a name="index-trailing-colons"></a> +<a name="index-extra-colons"></a> +<a name="index-default-expansion"></a> +<a name="index-expansion_002c-default"></a> + +<p>If the highest-priority search path (see <a href="#Path-sources">Path sources</a>) contains an +<em>extra colon</em> (i.e., leading, trailing, or doubled), Kpathsea inserts at that point the next-highest-priority search path that is defined. If that inserted path has an extra colon, the same happens with the next-highest. (An extra colon in the compile-time default value has unpredictable results, so installers beware.) - - <p>For example, given an environment variable setting - -<pre class="example"> setenv TEXINPUTS /home/karl: -</pre> - <p class="noindent">and a <code>TEXINPUTS</code> value from <samp><span class="file">texmf.cnf</span></samp> of - -<pre class="example"> .:$TEXMF//tex -</pre> - <p class="noindent">then the final value used for searching will be: - -<pre class="example"> /home/karl:.:$TEXMF//tex -</pre> - <p>Put another way, default expansion works on “formats” (search +</p> +<p>For example, given an environment variable setting +</p> +<div class="example"> +<pre class="example">setenv TEXINPUTS /home/karl: +</pre></div> + +<p>and a <code>TEXINPUTS</code> value from <samp>texmf.cnf</samp> of +</p> +<div class="example"> +<pre class="example">.:$TEXMF//tex +</pre></div> + +<p>then the final value used for searching will be: +</p> +<div class="example"> +<pre class="example">/home/karl:.:$TEXMF//tex +</pre></div> + +<p>Put another way, default expansion works on “formats” (search paths), and not directly on environment variables. Example, showing -the trailing ‘<samp><span class="samp">:</span></samp>’ ignored in the first case and expanded in the second: - -<pre class="example"> $ env TTFONTS=/tmp: kpsewhich --expand-path '$TTFONTS' - /tmp - $ env TTFONTS=/tmp: kpsewhich --show-path=.ttf - /tmp:.:/home/olaf/texmf/fonts/truetype//:... -</pre> - <p>Since Kpathsea looks for multiple configuration files, it would be +the trailing ‘<samp>:</samp>’ ignored in the first case and expanded in the second: +</p> +<div class="example"> +<pre class="example">$ env TTFONTS=/tmp: kpsewhich --expand-path '$TTFONTS' +/tmp +$ env TTFONTS=/tmp: kpsewhich --show-path=.ttf +/tmp:.:/home/olaf/texmf/fonts/truetype//:... +</pre></div> + +<p>Since Kpathsea looks for multiple configuration files, it would be natural to expect that (for example) an extra colon in -<samp><span class="file">./texmf.cnf</span></samp> would expand to the path in <samp><span class="file">$TEXMF/texmf.cnf</span></samp>. -Or, with Dvips' configuration files, that an extra colon in -<samp><span class="file">config.$PRINTER</span></samp> would expand to the path in <samp><span class="file">config.ps</span></samp>. -This doesn't happen. It's not clear this would be desirable in all +<samp>./texmf.cnf</samp> would expand to the path in <samp>$TEXMF/texmf.cnf</samp>. +Or, with Dvips’ configuration files, that an extra colon in +<samp>config.$PRINTER</samp> would expand to the path in <samp>config.ps</samp>. +This doesn’t happen. It’s not clear this would be desirable in all cases, and trying to devise a way to specify the path to which the extra -colon should expand seemed truly baroque. -<a name="index-Bach_002c-Johann-Sebastian-481"></a> -Technicality: Since it would be useless to insert the default value in -more than one place, Kpathsea changes only one extra ‘<samp><span class="samp">:</span></samp>’ and leaves +colon should expand seemed truly baroque. +<a name="index-Bach_002c-Johann-Sebastian"></a> +</p> +<p>Technicality: Since it would be useless to insert the default value in +more than one place, Kpathsea changes only one extra ‘<samp>:</samp>’ and leaves any others in place (they will eventually be ignored). Kpathsea checks -first for a leading ‘<samp><span class="samp">:</span></samp>’, then a trailing ‘<samp><span class="samp">:</span></samp>’, then a doubled -‘<samp><span class="samp">:</span></samp>’. - - <p><a name="index-kdefault_002ec-482"></a>You can trace this by debugging “paths” (see <a href="#Debugging">Debugging</a>). +first for a leading ‘<samp>:</samp>’, then a trailing ‘<samp>:</samp>’, then a doubled +‘<samp>:</samp>’. +</p> +<a name="index-kdefault_002ec"></a> +<p>You can trace this by debugging “paths” (see <a href="#Debugging">Debugging</a>). Default expansion is implemented in the source file -<samp><span class="file">kpathsea/kdefault.c</span></samp>. +<samp>kpathsea/kdefault.c</samp>. +</p> -<div class="node"> +<hr> <a name="Variable-expansion"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Tilde-expansion">Tilde expansion</a>, -Previous: <a rel="previous" accesskey="p" href="#Default-expansion">Default expansion</a>, -Up: <a rel="up" accesskey="u" href="#Path-expansion">Path expansion</a> - +<div class="header"> +<p> +Next: <a href="#Tilde-expansion" accesskey="n" rel="next">Tilde expansion</a>, Previous: <a href="#Default-expansion" accesskey="p" rel="prev">Default expansion</a>, Up: <a href="#Path-expansion" accesskey="u" rel="up">Path expansion</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - -<h4 class="subsection">3.3.2 Variable expansion</h4> - -<p><a name="index-g_t_0024-_0040r_007bexpansion_007d-483"></a><a name="index-environment-variables-in-paths-484"></a><a name="index-variable-expansion-485"></a><a name="index-expansion_002c-variable-486"></a><a name="index-texmf_002ecnf_0040r_007b_002c-and-variable-expansion_007d-487"></a> -‘<samp><span class="samp">$foo</span></samp>’ or ‘<samp><span class="samp">${foo}</span></samp>’ in a path element is replaced by (1) the -value of an environment variable ‘<samp><span class="samp">foo</span></samp>’ (if defined); (2) the value -of ‘<samp><span class="samp">foo</span></samp>’ from <samp><span class="file">texmf.cnf</span></samp> (if defined); (3) the empty string. - - <p>If the character after the ‘<samp><span class="samp">$</span></samp>’ is alphanumeric or ‘<samp><span class="samp">_</span></samp>’, the +<a name="Variable-expansion-1"></a> +<h4 class="subsection">5.3.2 Variable expansion</h4> + +<a name="index-_0024-expansion"></a> +<a name="index-environment-variables-in-paths"></a> +<a name="index-variable-expansion"></a> +<a name="index-expansion_002c-variable"></a> +<a name="index-texmf_002ecnf_002c-and-variable-expansion"></a> + +<p>‘<samp>$foo</samp>’ or ‘<samp>${foo}</samp>’ in a path element is replaced by (1) the +value of an environment variable ‘<samp>foo</samp>’ (if defined); (2) the value +of ‘<samp>foo</samp>’ from <samp>texmf.cnf</samp> (if defined); (3) the empty string. +</p> +<p>If the character after the ‘<samp>$</samp>’ is alphanumeric or ‘<samp>_</samp>’, the variable name consists of all consecutive such characters. If the -character after the ‘<samp><span class="samp">$</span></samp>’ is a ‘<samp><span class="samp">{</span></samp>’, the variable name consists -of everything up to the next ‘<samp><span class="samp">}</span></samp>’ (braces may not be nested around +character after the ‘<samp>$</samp>’ is a ‘<samp>{</samp>’, the variable name consists +of everything up to the next ‘<samp>}</samp>’ (braces may not be nested around variable names). Otherwise, Kpathsea gives a warning and ignores the -‘<samp><span class="samp">$</span></samp>’ and its following character. - - <p><a name="index-quoting-variable-values-488"></a><a name="index-shell-variables-489"></a>You must quote the <tt>$</tt>'s and braces as necessary for your shell. +‘<samp>$</samp>’ and its following character. +</p> +<a name="index-quoting-variable-values"></a> +<a name="index-shell-variables"></a> +<p>You must quote the <tt>$</tt>’s and braces as necessary for your shell. <em>Shell</em> variable values cannot be seen by Kpathsea, i.e., ones defined by <code>set</code> in C shells and without <code>export</code> in Bourne shells. - - <p>For example, given -<pre class="example"> setenv tex /home/texmf - setenv TEXINPUTS .:$tex:${tex}prev -</pre> - <p class="noindent">the final <code>TEXINPUTS</code> path is the three directories: -<pre class="example"> .:/home/texmf:/home/texmfprev -</pre> - <p>The ‘<samp><span class="samp">.</span><var>progname</var></samp>’ suffix on variables and -‘<samp><span class="samp">_</span><var>progname</var></samp>’ on environment variable names are not implemented +</p> +<p>For example, given +</p><div class="example"> +<pre class="example">setenv tex /home/texmf +setenv TEXINPUTS .:$tex:${tex}prev +</pre></div> +<p>the final <code>TEXINPUTS</code> path is the three directories: +</p><div class="example"> +<pre class="example">.:/home/texmf:/home/texmfprev +</pre></div> + +<p>The ‘<samp>.<var>progname</var></samp>’ suffix on variables and +‘<samp>_<var>progname</var></samp>’ on environment variable names are not implemented for general variable expansions. These are only recognized when search paths are initialized (see <a href="#Path-sources">Path sources</a>). +</p> +<a name="index-variable_002ec"></a> +<p>Variable expansion is implemented in the source file +<samp>kpathsea/variable.c</samp>. +</p> - <p><a name="index-variable_002ec-490"></a>Variable expansion is implemented in the source file -<samp><span class="file">kpathsea/variable.c</span></samp>. - -<div class="node"> +<hr> <a name="Tilde-expansion"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Brace-expansion">Brace expansion</a>, -Previous: <a rel="previous" accesskey="p" href="#Variable-expansion">Variable expansion</a>, -Up: <a rel="up" accesskey="u" href="#Path-expansion">Path expansion</a> - +<div class="header"> +<p> +Next: <a href="#Brace-expansion" accesskey="n" rel="next">Brace expansion</a>, Previous: <a href="#Variable-expansion" accesskey="p" rel="prev">Variable expansion</a>, Up: <a href="#Path-expansion" accesskey="u" rel="up">Path expansion</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - -<h4 class="subsection">3.3.3 Tilde expansion</h4> - -<p><a name="index-g_t_007e-_0040r_007bexpansion_007d-491"></a><a name="index-home-directories-in-paths-492"></a><a name="index-tilde-expansion-493"></a><a name="index-expansion_002c-tilde-494"></a> -<a name="index-HOME_0040r_007b_002c-as-_007e-expansion_007d-495"></a><a name="index-USERPROFILE_0040r_007b_002c-as-_007e-expansion_007d-496"></a>A leading ‘<samp><span class="samp">~</span></samp>’ in a path element is replaced by the value of the -environment variable <code>HOME</code>, or <samp><span class="file">.</span></samp> if <code>HOME</code> is not +<a name="Tilde-expansion-1"></a> +<h4 class="subsection">5.3.3 Tilde expansion</h4> + +<a name="index-_007e-expansion"></a> +<a name="index-home-directories-in-paths"></a> +<a name="index-tilde-expansion"></a> +<a name="index-expansion_002c-tilde"></a> + +<a name="index-HOME_002c-as-_007e-expansion"></a> +<a name="index-USERPROFILE_002c-as-_007e-expansion"></a> +<p>A leading ‘<samp>~</samp>’ in a path element is replaced by the value of the +environment variable <code>HOME</code>, or <samp>.</samp> if <code>HOME</code> is not set. On Windows, the environment variable <code>USERPROFILE</code> is checked instead of <code>HOME</code>. - - <p>A leading ‘<samp><span class="samp">~</span><var>user</var></samp>’ in a path element is replaced by -<var>user</var>'s home directory from the system <samp><span class="file">passwd</span></samp> database. - - <p>For example, -<pre class="example"> setenv TEXINPUTS ~/mymacros: -</pre> - <p class="noindent">will prepend a directory <samp><span class="file">mymacros</span></samp> in your home +</p> +<p>A leading ‘<samp>~<var>user</var></samp>’ in a path element is replaced by +<var>user</var>’s home directory from the system <samp>passwd</samp> database. +</p> +<p>For example, +</p><div class="example"> +<pre class="example">setenv TEXINPUTS ~/mymacros: +</pre></div> + +<p>will prepend a directory <samp>mymacros</samp> in your home directory to the default path. - - <p><a name="index-g_t_0040t_007broot_007d-user-497"></a><a name="index-trailing-_0040samp_007b_002f_007d-in-home-directory-498"></a><a name="index-g_t_002f_0040r_007b_002c-trailing-in-home-directory_007d-499"></a>As a special case, if a home directory ends in ‘<samp><span class="samp">/</span></samp>’, the trailing -slash is dropped, to avoid inadvertently creating a ‘<samp><span class="samp">//</span></samp>’ construct -in the path. For example, if the home directory of the user ‘<samp><span class="samp">root</span></samp>’ -is ‘<samp><span class="samp">/</span></samp>’, the path element ‘<samp><span class="samp">~root/mymacros</span></samp>’ expands to just -‘<samp><span class="samp">/mymacros</span></samp>’, not ‘<samp><span class="samp">//mymacros</span></samp>’. - - <p><a name="index-tilde_002ec-500"></a>Tilde expansion is implemented in the source file <samp><span class="file">kpathsea/tilde.c</span></samp>. - -<div class="node"> +</p> +<a name="index-root-user"></a> +<a name="index-trailing-_002f-in-home-directory"></a> +<a name="index-_002f_002c-trailing-in-home-directory"></a> +<p>As a special case, if a home directory ends in ‘<samp>/</samp>’, the trailing +slash is dropped, to avoid inadvertently creating a ‘<samp>//</samp>’ construct +in the path. For example, if the home directory of the user ‘<samp>root</samp>’ +is ‘<samp>/</samp>’, the path element ‘<samp>~root/mymacros</samp>’ expands to just +‘<samp>/mymacros</samp>’, not ‘<samp>//mymacros</samp>’. +</p> +<a name="index-tilde_002ec"></a> +<p>Tilde expansion is implemented in the source file <samp>kpathsea/tilde.c</samp>. +</p> + +<hr> <a name="Brace-expansion"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#KPSE_005fDOT-expansion">KPSE_DOT expansion</a>, -Previous: <a rel="previous" accesskey="p" href="#Tilde-expansion">Tilde expansion</a>, -Up: <a rel="up" accesskey="u" href="#Path-expansion">Path expansion</a> - +<div class="header"> +<p> +Next: <a href="#KPSE_005fDOT-expansion" accesskey="n" rel="next">KPSE_DOT expansion</a>, Previous: <a href="#Tilde-expansion" accesskey="p" rel="prev">Tilde expansion</a>, Up: <a href="#Path-expansion" accesskey="u" rel="up">Path expansion</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Brace-expansion-1"></a> +<h4 class="subsection">5.3.4 Brace expansion</h4> -<h4 class="subsection">3.3.4 Brace expansion</h4> +<a name="index-_007b-expansion"></a> +<a name="index-brace-expansion"></a> -<p><a name="index-g_t_0040_007b-_0040r_007bexpansion_007d-501"></a><a name="index-brace-expansion-502"></a> -‘<samp><span class="samp">x{</span><var>a</var><span class="samp">,</span><var>b</var><span class="samp">}y</span></samp>’ expands to ‘<samp><span class="samp">x</span><var>a</var><span class="samp">y:x</span><var>b</var><span class="samp">y</span></samp>’. +<p>‘<samp>x{<var>a</var>,<var>b</var>}y</samp>’ expands to ‘<samp>x<var>a</var>y:x<var>b</var>y</samp>’. For example: - -<pre class="example"> foo/{1,2}/baz -</pre> - <p class="noindent">expands to ‘<samp><span class="samp">foo/1/baz:foo/2/baz</span></samp>’. ‘<samp><span class="samp">:</span></samp>’ is the path -separator on the current system; e.g., on a DOS system, it's ‘<samp><span class="samp">;</span></samp>’. - - <p>Braces can be nested; for example, ‘<samp><span class="samp">x{A,B{1,2}}y</span></samp>’ expands to -‘<samp><span class="samp">xAy:xB1y:xB2y</span></samp>’. - - <p>Multiple non-nested braces are expanded from right to left; for example, -‘<samp><span class="samp">x{A,B}{1,2}y</span></samp>’ expands to ‘<samp><span class="samp">x{A,B}1y:x{A,B}2y</span></samp>’, which -expands to ‘<samp><span class="samp">xA1y:xB1y:xA2y:xB2y</span></samp>’. - - <p><a name="index-multiple-_0040TeX_007b_007d-hierarchies-503"></a>This feature can be used to implement multiple TeX hierarchies, by +</p> +<div class="example"> +<pre class="example">foo/{1,2}/baz +</pre></div> + +<p>expands to ‘<samp>foo/1/baz:foo/2/baz</samp>’. ‘<samp>:</samp>’ is the path +separator on the current system; e.g., on a DOS system, it’s ‘<samp>;</samp>’. +</p> +<p>Braces can be nested; for example, ‘<samp>x{A,B{1,2}}y</samp>’ expands to +‘<samp>xAy:xB1y:xB2y</samp>’. +</p> +<p>Multiple non-nested braces are expanded from right to left; for example, +‘<samp>x{A,B}{1,2}y</samp>’ expands to ‘<samp>x{A,B}1y:x{A,B}2y</samp>’, which +expands to ‘<samp>xA1y:xB1y:xA2y:xB2y</samp>’. +</p> +<a name="index-multiple-TeX-hierarchies"></a> +<p>This feature can be used to implement multiple TeX hierarchies, by assigning a brace list to <code>$TEXMF</code>, as mentioned in -<samp><span class="file">texmf.in</span></samp>. - - <p>You can also use the path separator instead of the comma. The last -example could have been written ‘<samp><span class="samp">x{A:B}{1:2}y</span></samp>’. - - <p><a name="index-expand_002ec-504"></a>Brace expansion is implemented in the source file -<samp><span class="file">kpathsea/expand.c</span></samp>. - -<div class="node"> -<a name="KPSE_DOT-expansion"></a> +<samp>texmf.in</samp>. +</p> +<p>You can also use the path separator instead of the comma. The last +example could have been written ‘<samp>x{A:B}{1:2}y</samp>’. +</p> + +<a name="index-expand_002ec"></a> +<p>Brace expansion is implemented in the source file +<samp>kpathsea/expand.c</samp>. +</p> + +<hr> <a name="KPSE_005fDOT-expansion"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Subdirectory-expansion">Subdirectory expansion</a>, -Previous: <a rel="previous" accesskey="p" href="#Brace-expansion">Brace expansion</a>, -Up: <a rel="up" accesskey="u" href="#Path-expansion">Path expansion</a> - +<div class="header"> +<p> +Next: <a href="#Subdirectory-expansion" accesskey="n" rel="next">Subdirectory expansion</a>, Previous: <a href="#Brace-expansion" accesskey="p" rel="prev">Brace expansion</a>, Up: <a href="#Path-expansion" accesskey="u" rel="up">Path expansion</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="KPSE_005fDOT-expansion-1"></a> +<h4 class="subsection">5.3.5 <code>KPSE_DOT</code> expansion</h4> -<h4 class="subsection">3.3.5 <code>KPSE_DOT</code> expansion</h4> +<a name="index-KPSE_005fDOT-expansion"></a> -<p><a name="index-KPSE_005fDOT-_0040r_007bexpansion_007d-505"></a> -When <code>KPSE_DOT</code> is defined in the environment, it names a directory +<p>When <code>KPSE_DOT</code> is defined in the environment, it names a directory that should be considered the current directory for the purpose of looking up files in the search paths. This feature is needed by the -‘<samp><span class="samp">mktex...</span></samp>’ scripts <a href="#mktex-scripts">mktex scripts</a>, because these +‘<samp>mktex…</samp>’ scripts <a href="#mktex-scripts">mktex scripts</a>, because these change the working directory. You should not ever define it yourself. +</p> -<div class="node"> +<hr> <a name="Subdirectory-expansion"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#KPSE_005fDOT-expansion">KPSE_DOT expansion</a>, -Up: <a rel="up" accesskey="u" href="#Path-expansion">Path expansion</a> - +<div class="header"> +<p> +Previous: <a href="#KPSE_005fDOT-expansion" accesskey="p" rel="prev">KPSE_DOT expansion</a>, Up: <a href="#Path-expansion" accesskey="u" rel="up">Path expansion</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Subdirectory-expansion-1"></a> +<h4 class="subsection">5.3.6 Subdirectory expansion</h4> -<h4 class="subsection">3.3.6 Subdirectory expansion</h4> +<a name="index-_002f_002f"></a> +<a name="index-subdirectory-searching"></a> +<a name="index-expansion_002c-subdirectory"></a> -<p><a name="index-g_t_002f_002f-506"></a><a name="index-subdirectory-searching-507"></a><a name="index-expansion_002c-subdirectory-508"></a> -<a name="index-alphabetical-order_002c-not-509"></a>Two or more consecutive slashes in a path element following a directory +<a name="index-alphabetical-order_002c-not"></a> +<p>Two or more consecutive slashes in a path element following a directory <var>d</var> is replaced by all subdirectories of <var>d</var>: first those subdirectories directly under <var>d</var>, then the subsubdirectories under those, and so on. At each level, the order in which the directories are -searched is unspecified. (It's “directory order”, and definitely not +searched is unspecified. (It’s “directory order”, and definitely not alphabetical.) - - <p>If you specify any filename components after the ‘<samp><span class="samp">//</span></samp>’, only +</p> +<p>If you specify any filename components after the ‘<samp>//</samp>’, only subdirectories which match those components are included. For example, -‘<samp><span class="samp">/a//b</span></samp>’ would expand into directories <samp><span class="file">/a/1/b</span></samp>, <samp><span class="file">/a/2/b</span></samp>, -<samp><span class="file">/a/1/1/b</span></samp>, and so on, but not <samp><span class="file">/a/b/c</span></samp> or <samp><span class="file">/a/1</span></samp>. - - <p>You can include multiple ‘<samp><span class="samp">//</span></samp>’ constructs in the path. - - <p>‘<samp><span class="samp">//</span></samp>’ at the beginning of a path is ignored; you didn't really want +‘<samp>/a//b</samp>’ would expand into directories <samp>/a/1/b</samp>, <samp>/a/2/b</samp>, +<samp>/a/1/1/b</samp>, and so on, but not <samp>/a/b/c</samp> or <samp>/a/1</samp>. +</p> +<p>You can include multiple ‘<samp>//</samp>’ constructs in the path. +</p> +<p>‘<samp>//</samp>’ at the beginning of a path is ignored; you didn’t really want to search every directory on the system, did you? - - <p><a name="index-trick-for-detecting-leaf-directories-510"></a><a name="index-leaf-directory-trick-511"></a><a name="index-Farwell_002c-Matthew-512"></a><a name="index-MacKenzie_002c-David-513"></a>I should mention one related implementation trick, which I took from GNU +</p> +<a name="index-trick-for-detecting-leaf-directories"></a> +<a name="index-leaf-directory-trick"></a> +<a name="index-Farwell_002c-Matthew"></a> +<a name="index-MacKenzie_002c-David-1"></a> +<p>I should mention one related implementation trick, which I took from GNU find. Matthew Farwell suggested it, and David MacKenzie implemented it. - - <p><a name="index-st_005fnlink-514"></a>The trick is that in every real Unix implementation (as opposed to the +</p> +<a name="index-st_005fnlink"></a> +<p>The trick is that in every real Unix implementation (as opposed to the POSIX specification), a directory which contains no subdirectories will -have exactly two links (namely, one for <samp><span class="file">.</span></samp> and one for <samp><span class="file">..</span></samp>). -That is to say, the <code>st_nlink</code> field in the ‘<samp><span class="samp">stat</span></samp>’ structure -will be two. Thus, we don't have to stat everything in the bottom-level -(leaf) directories—we can just check <code>st_nlink</code>, notice it's two, +have exactly two links (namely, one for <samp>.</samp> and one for <samp>..</samp>). +That is to say, the <code>st_nlink</code> field in the ‘<samp>stat</samp>’ structure +will be two. Thus, we don’t have to stat everything in the bottom-level +(leaf) directories—we can just check <code>st_nlink</code>, notice it’s two, and do no more work. - - <p>But if you have a directory that contains a single subdirectory and 500 +</p> +<p>But if you have a directory that contains a single subdirectory and 500 regular files, <code>st_nlink</code> will be 3, and Kpathsea has to stat every one of those 501 entries. Therein lies slowness. - - <p><a name="index-ST_005fNLINK_005fTRICK-515"></a>You can disable the trick by undefining <code>ST_NLINK_TRICK</code> in -<samp><span class="file">kpathsea/config.h</span></samp>. (It is undefined by default except under Unix.) - - <p><a name="index-elt_002ddirs_002ec-516"></a>Unfortunately, in some cases files in leaf directories are -<code>stat</code>'d: if the path specification is, say, -‘<samp><span class="samp">$TEXMF/fonts//pk//</span></samp>’, then files in a subdirectory -‘<samp><span class="samp">.../pk</span></samp>’, even if it is a leaf, are checked. The reason cannot +</p> +<a name="index-ST_005fNLINK_005fTRICK"></a> +<p>You can disable the trick by undefining <code>ST_NLINK_TRICK</code> in +<samp>kpathsea/config.h</samp>. (It is undefined by default except under Unix.) +</p> +<a name="index-elt_002ddirs_002ec"></a> +<p>Unfortunately, in some cases files in leaf directories are +<code>stat</code>’d: if the path specification is, say, +‘<samp>$TEXMF/fonts//pk//</samp>’, then files in a subdirectory +‘<samp>…/pk</samp>’, even if it is a leaf, are checked. The reason cannot be explained without reference to the implementation, so read -<samp><span class="file">kpathsea/elt-dirs.c</span></samp> (search for ‘<samp><span class="samp">may descend</span></samp>’) if you are +<samp>kpathsea/elt-dirs.c</samp> (search for ‘<samp>may descend</samp>’) if you are curious. And if you can find a way to <em>solve</em> the problem, please let me know. +</p> +<a name="index-elt_002ddirs_002ec-1"></a> +<p>Subdirectory expansion is implemented in the source file +<samp>kpathsea/elt-dirs.c</samp>. +</p> - <p><a name="index-elt_002ddirs_002ec-517"></a>Subdirectory expansion is implemented in the source file -<samp><span class="file">kpathsea/elt-dirs.c</span></samp>. - -<div class="node"> +<hr> <a name="Filename-database"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Invoking-kpsewhich">Invoking kpsewhich</a>, -Previous: <a rel="previous" accesskey="p" href="#Path-expansion">Path expansion</a>, -Up: <a rel="up" accesskey="u" href="#Path-searching">Path searching</a> - +<div class="header"> +<p> +Next: <a href="#Invoking-kpsewhich" accesskey="n" rel="next">Invoking kpsewhich</a>, Previous: <a href="#Path-expansion" accesskey="p" rel="prev">Path expansion</a>, Up: <a href="#Path-searching" accesskey="u" rel="up">Path searching</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Filename-database-_0028ls_002dR_0029"></a> +<h3 class="section">5.4 Filename database (<code>ls-R</code>)</h3> -<h3 class="section">3.4 Filename database (<code>ls-R</code>)</h3> +<a name="index-filename-database"></a> +<a name="index-database_002c-for-filenames"></a> +<a name="index-externally_002dbuilt-filename-database"></a> -<p><a name="index-filename-database-518"></a><a name="index-database_002c-for-filenames-519"></a><a name="index-externally_002dbuilt-filename-database-520"></a> -Kpathsea goes to some lengths to minimize disk accesses for searches +<p>Kpathsea goes to some lengths to minimize disk accesses for searches (see <a href="#Subdirectory-expansion">Subdirectory expansion</a>). Nevertheless, in practice searching each possible directory in typical TeX installations takes an excessively long time. - - <p>Therefore, Kpathsea can use an externally-built <dfn>filename -database</dfn> file named <samp><span class="file">ls-R</span></samp> that maps files to directories, thus +</p> +<p>Therefore, Kpathsea can use an externally-built <em>filename +database</em> file named <samp>ls-R</samp> that maps files to directories, thus avoiding the need to exhaustively search the disk. - - <p>A second database file <samp><span class="file">aliases</span></samp> allows you to give additional -names to the files listed in <samp><span class="file">ls-R</span></samp>. This can be helpful to adapt +</p> +<p>A second database file <samp>aliases</samp> allows you to give additional +names to the files listed in <samp>ls-R</samp>. This can be helpful to adapt to “8.3” filename conventions in source files. - - <p>The <samp><span class="file">ls-R</span></samp> and <samp><span class="file">aliases</span></samp> features are implemented in the -source file <samp><span class="file">kpathsea/db.c</span></samp>. - -<ul class="menu"> -<li><a accesskey="1" href="#ls_002dR">ls-R</a>: The main filename database. -<li><a accesskey="2" href="#Filename-aliases">Filename aliases</a>: Aliases for those names. -<li><a accesskey="3" href="#Database-format">Database format</a>: Syntax details of the database file. -</ul> - -<div class="node"> -<a name="ls-R"></a> +</p> +<p>The <samp>ls-R</samp> and <samp>aliases</samp> features are implemented in the +source file <samp>kpathsea/db.c</samp>. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#ls_002dR" accesskey="1">ls-R</a>:</td><td> </td><td align="left" valign="top">The main filename database. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Filename-aliases" accesskey="2">Filename aliases</a>:</td><td> </td><td align="left" valign="top">Aliases for those names. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Database-format" accesskey="3">Database format</a>:</td><td> </td><td align="left" valign="top">Syntax details of the database file. +</td></tr> +</table> + + +<hr> <a name="ls_002dR"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Filename-aliases">Filename aliases</a>, -Up: <a rel="up" accesskey="u" href="#Filename-database">Filename database</a> - +<div class="header"> +<p> +Next: <a href="#Filename-aliases" accesskey="n" rel="next">Filename aliases</a>, Up: <a href="#Filename-database" accesskey="u" rel="up">Filename database</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="ls_002dR-1"></a> +<h4 class="subsection">5.4.1 <samp>ls-R</samp></h4> -<h4 class="subsection">3.4.1 <samp><span class="file">ls-R</span></samp></h4> +<a name="index-ls_002dR-database-file"></a> +<a name="index-TEXMFDBS"></a> -<p><a name="index-ls_002dR-_0040r_007bdatabase-file_007d-521"></a><a name="index-TEXMFDBS-522"></a> -As mentioned above, you must name the main filename database -<samp><span class="file">ls-R</span></samp>. You can put one at the root of each TeX installation +<p>As mentioned above, you must name the main filename database +<samp>ls-R</samp>. You can put one at the root of each TeX installation hierarchy you wish to search (<code>$TEXMF</code> by default); most sites have -only one hierarchy. Kpathsea looks for <samp><span class="file">ls-R</span></samp> files along the +only one hierarchy. Kpathsea looks for <samp>ls-R</samp> files along the <code>TEXMFDBS</code> path, so that should presumably match the list of hierarchies. - - <p>The recommended way to create and maintain ‘<samp><span class="samp">ls-R</span></samp>’ is to run the -<code>mktexlsr</code> script, which is installed in ‘<samp><span class="samp">$(bindir)</span></samp>’ -(<samp><span class="file">/usr/local/bin</span></samp> by default). That script goes to some trouble to -follow symbolic links as necessary, etc. It's also invoked by the -distributed ‘<samp><span class="samp">mktex...</span></samp>’ scripts. - - <p><a name="index-ls_002dR_0040r_007b_002c-simplest-build_007d-523"></a>At its simplest, though, you can build <samp><span class="file">ls-R</span></samp> with the command -<pre class="example"> cd <var>/your/texmf/root</var> && ls -LAR ./ >ls-R -</pre> - <p class="noindent"><a name="index-g_t_002d_002dcolor_003dtty-524"></a><a name="index-g_t_002fetc_002fprofile-_0040r_007band-aliases_007d-525"></a>presuming your <code>ls</code> produces the right output format (see the -section below). GNU <code>ls</code>, for example, outputs in this format. -Also presuming your <code>ls</code> hasn't been aliased in a system file -(e.g., <samp><span class="file">/etc/profile</span></samp>) to something problematic, e.g., ‘<samp><span class="samp">ls ---color=tty</span></samp>’. In that case, you will have to disable the alias before -generating <samp><span class="file">ls-R</span></samp>. For the precise definition of the file format, +</p> +<p>The recommended way to create and maintain ‘<samp>ls-R</samp>’ is to run the +<code>mktexlsr</code> script, which is installed in ‘<samp>$(bindir)</samp>’ +(<samp>/usr/local/bin</samp> by default). That script goes to some trouble to +follow symbolic links as necessary, etc. It’s also invoked by the +distributed ‘<samp>mktex…</samp>’ scripts. +</p> +<a name="index-ls_002dR_002c-simplest-build"></a> +<p>At its simplest, though, you can build <samp>ls-R</samp> with the command +</p><div class="example"> +<pre class="example">cd <var>/your/texmf/root</var> && ls -LAR ./ >ls-R +</pre></div> + +<a name="index-_002d_002dcolor_003dtty"></a> +<a name="index-_002fetc_002fprofile-and-aliases"></a> +<p>presuming your <code>ls</code> produces the right output format (see the +section below). GNU <code>ls</code>, for example, outputs in this format. +Also presuming your <code>ls</code> hasn’t been aliased in a system file +(e.g., <samp>/etc/profile</samp>) to something problematic, e.g., ‘<samp>ls +--color=tty</samp>’. In that case, you will have to disable the alias before +generating <samp>ls-R</samp>. For the precise definition of the file format, see <a href="#Database-format">Database format</a>. - - <p>Regardless of whether you use the supplied script or your own, you will +</p> +<p>Regardless of whether you use the supplied script or your own, you will almost certainly want to invoke it via <code>cron</code>, so when you make changes in the installed files (say if you install a new LaTeX -package), <samp><span class="file">ls-R</span></samp> will be automatically updated. - - <p><a name="index-g_t_002dA-_0040r_007boption-to-_0040code_007bls_007d_007d-526"></a><a name="index-dot-files-527"></a><a name="index-g_t_002e-_0040r_007bfiles_007d-528"></a><a name="index-g_t_002e-_0040r_007bdirectories_002c-ignored_007d-529"></a><a name="index-g_t_002etex-_0040r_007bfile_002c-included-in-_0040file_007bls_002dR_007d_007d-530"></a>The ‘<samp><span class="samp">-A</span></samp>’ option to <code>ls</code> includes files beginning with ‘<samp><span class="samp">.</span></samp>’ -(except for <samp><span class="file">.</span></samp> and <samp><span class="file">..</span></samp>), such as the file <samp><span class="file">.tex</span></samp> +package), <samp>ls-R</samp> will be automatically updated. +</p> +<a name="index-_002dA-option-to-ls"></a> +<a name="index-dot-files"></a> +<a name="index-_002e-files"></a> +<a name="index-_002e-directories_002c-ignored"></a> +<a name="index-_002etex-file_002c-included-in-ls_002dR"></a> +<p>The ‘<samp>-A</samp>’ option to <code>ls</code> includes files beginning with ‘<samp>.</samp>’ +(except for <samp>.</samp> and <samp>..</samp>), such as the file <samp>.tex</samp> included with the LaTeX tools package. (On the other hand, -<em>directories</em> whose names begin with ‘<samp><span class="samp">.</span></samp>’ are always ignored.) - - <p><a name="index-symbolic-links_002c-and-_0040file_007bls_002dR_007d-531"></a><a name="index-g_t_002dL-_0040r_007boption-to-_0040code_007bls_007d_007d-532"></a>If your system does not support symbolic links, omit the ‘<samp><span class="samp">-L</span></samp>’. - - <p><a name="index-automounter_002c-and-_0040file_007bls_002dR_007d-533"></a><a name="index-NFS-and-_0040file_007bls_002dR_007d-534"></a><code>ls -LAR </code><var>/your/texmf/root</var> will also work. But using -‘<samp><span class="samp">./</span></samp>’ avoids embedding absolute pathnames, so the hierarchy can be +<em>directories</em> whose names begin with ‘<samp>.</samp>’ are always ignored.) +</p> +<a name="index-symbolic-links_002c-and-ls_002dR"></a> +<a name="index-_002dL-option-to-ls"></a> +<p>If your system does not support symbolic links, omit the ‘<samp>-L</samp>’. +</p> +<a name="index-automounter_002c-and-ls_002dR"></a> +<a name="index-NFS-and-ls_002dR"></a> +<p><code>ls -LAR <var>/your/texmf/root</var></code> will also work. But using +‘<samp>./</samp>’ avoids embedding absolute pathnames, so the hierarchy can be easily transported. It also avoids possible trouble with automounters or other network filesystem conventions. - - <p><a name="index-warning-about-unusable-_0040file_007bls_002dR_007d-535"></a><a name="index-unusable-_0040file_007bls_002dR_007d-warning-536"></a>Kpathsea warns you if it finds an <samp><span class="file">ls-R</span></samp> file, but the file does +</p> +<a name="index-warning-about-unusable-ls_002dR"></a> +<a name="index-unusable-ls_002dR-warning"></a> +<p>Kpathsea warns you if it finds an <samp>ls-R</samp> file, but the file does not contain any usable entries. The usual culprit is running plain -‘<samp><span class="samp">ls -R</span></samp>’ instead of ‘<samp><span class="samp">ls -LR ./</span></samp>’ or ‘<samp><span class="samp">ls -R -</span><var>/your/texmf/root</var></samp>’. Another possibility is some system directory -name starting with a ‘<samp><span class="samp">.</span></samp>’ (perhaps if you are using AFS); Kpathsea +‘<samp>ls -R</samp>’ instead of ‘<samp>ls -LR ./</samp>’ or ‘<samp>ls -R +<var>/your/texmf/root</var></samp>’. Another possibility is some system directory +name starting with a ‘<samp>.</samp>’ (perhaps if you are using AFS); Kpathsea ignores everything under such directories. - - <p><a name="index-g_t_0021_0021-_0040r_007bin-path-specifications_007d-537"></a><a name="index-disk-searching_002c-avoiding-538"></a>Because the database may be out-of-date for a particular run, if a file +</p> +<a name="index-_0021_0021-in-path-specifications"></a> +<a name="index-disk-searching_002c-avoiding"></a> +<p>Because the database may be out-of-date for a particular run, if a file is not found in the database, by default Kpathsea goes ahead and -searches the disk. If a particular path element begins with ‘<samp><span class="samp">!!</span></samp>’, +searches the disk. If a particular path element begins with ‘<samp>!!</samp>’, however, <em>only</em> the database will be searched for that element, never the disk. If the database does not exist, nothing will be searched. Because this can surprise users (“I see the font -<samp><span class="file">foo.tfm</span></samp> when I do an <code>ls</code>; why can't Dvips find it?”), it +<samp>foo.tfm</samp> when I do an <code>ls</code>; why can’t Dvips find it?”), it is not in any of the default search paths. +</p> -<div class="node"> +<hr> <a name="Filename-aliases"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Database-format">Database format</a>, -Previous: <a rel="previous" accesskey="p" href="#ls_002dR">ls-R</a>, -Up: <a rel="up" accesskey="u" href="#Filename-database">Filename database</a> - +<div class="header"> +<p> +Next: <a href="#Database-format" accesskey="n" rel="next">Database format</a>, Previous: <a href="#ls_002dR" accesskey="p" rel="prev">ls-R</a>, Up: <a href="#Filename-database" accesskey="u" rel="up">Filename database</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Filename-aliases-1"></a> +<h4 class="subsection">5.4.2 Filename aliases</h4> -<h4 class="subsection">3.4.2 Filename aliases</h4> +<a name="index-filename-aliases"></a> +<a name="index-aliases_002c-for-filenames"></a> -<p><a name="index-filename-aliases-539"></a><a name="index-aliases_002c-for-filenames-540"></a> -In some circumstances, you may wish to find a file under several names. +<p>In some circumstances, you may wish to find a file under several names. For example, suppose a TeX document was created using a DOS system -and tries to read <samp><span class="file">longtabl.sty</span></samp>. But now it's being run on a Unix -system, and the file has its original name, <samp><span class="file">longtable.sty</span></samp>. The -file won't be found. You need to give the actual file -<samp><span class="file">longtable.sty</span></samp> an alias ‘<samp><span class="samp">longtabl.sty</span></samp>’. - -<!-- As another example, suppose you are creating a @TeX{} distribution on a --> -<!-- CD-ROM or a DOS system; then the file @file{mf.base} gets stored as --> -<!-- @file{mf.bas}. But Metafont on Unix wants to find @file{mf.base}. Here --> -<!-- you need to give the actual file @file{mf.bas} an alias @samp{mf.base}. --> - <p>You can handle this by creating a file <samp><span class="file">aliases</span></samp> as a companion to -the <samp><span class="file">ls-R</span></samp> for the hierarchy containing the file in question. (You -must have an <samp><span class="file">ls-R</span></samp> for the alias feature to work.) - - <p>The format of <samp><span class="file">aliases</span></samp> is simple: two whitespace-separated words -per line; the first is the real name <samp><span class="file">longtable.sty</span></samp>, and second is -the alias (<samp><span class="file">longtabl.sty</span></samp>). These must be base filenames, with no -directory components. <samp><span class="file">longtable.sty</span></samp> must be in the sibling -<samp><span class="file">ls-R</span></samp>. - - <p>Also, blank lines and lines starting with ‘<samp><span class="samp">%</span></samp>’ or ‘<samp><span class="samp">#</span></samp>’ are -ignored in <samp><span class="file">aliases</span></samp>, to allow for comments. - - <p>If a real file <samp><span class="file">longtabl.sty</span></samp> exists, it is used regardless of any +and tries to read <samp>longtabl.sty</samp>. But now it’s being run on a Unix +system, and the file has its original name, <samp>longtable.sty</samp>. The +file won’t be found. You need to give the actual file +<samp>longtable.sty</samp> an alias ‘<samp>longtabl.sty</samp>’. +</p> + +<p>You can handle this by creating a file <samp>aliases</samp> as a companion to +the <samp>ls-R</samp> for the hierarchy containing the file in question. (You +must have an <samp>ls-R</samp> for the alias feature to work.) +</p> +<p>The format of <samp>aliases</samp> is simple: two whitespace-separated words +per line; the first is the real name <samp>longtable.sty</samp>, and second is +the alias (<samp>longtabl.sty</samp>). These must be base filenames, with no +directory components. <samp>longtable.sty</samp> must be in the sibling +<samp>ls-R</samp>. +</p> +<p>Also, blank lines and lines starting with ‘<samp>%</samp>’ or ‘<samp>#</samp>’ are +ignored in <samp>aliases</samp>, to allow for comments. +</p> +<p>If a real file <samp>longtabl.sty</samp> exists, it is used regardless of any aliases. +</p> -<div class="node"> +<hr> <a name="Database-format"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Filename-aliases">Filename aliases</a>, -Up: <a rel="up" accesskey="u" href="#Filename-database">Filename database</a> - +<div class="header"> +<p> +Previous: <a href="#Filename-aliases" accesskey="p" rel="prev">Filename aliases</a>, Up: <a href="#Filename-database" accesskey="u" rel="up">Filename database</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Database-format-1"></a> +<h4 class="subsection">5.4.3 Database format</h4> -<h4 class="subsection">3.4.3 Database format</h4> +<a name="index-format-of-external-database"></a> +<a name="index-database_002c-format-of"></a> -<p><a name="index-format-of-external-database-541"></a><a name="index-database_002c-format-of-542"></a> -The “database” read by Kpathsea is a line-oriented file of plain +<p>The “database” read by Kpathsea is a line-oriented file of plain text. The format is that generated by GNU (and most other) <code>ls</code> -programs given the ‘<samp><span class="samp">-R</span></samp>’ option, as follows. - - <ul> -<li>Blank lines are ignored. +programs given the ‘<samp>-R</samp>’ option, as follows. +</p> +<ul> +<li> Blank lines are ignored. - <li>If a line begins with ‘<samp><span class="samp">/</span></samp>’ or ‘<samp><span class="samp">./</span></samp>’ or ‘<samp><span class="samp">../</span></samp>’ and ends with -a colon, it's the name of a directory. (‘<samp><span class="samp">../</span></samp>’ lines aren't useful, +</li><li> If a line begins with ‘<samp>/</samp>’ or ‘<samp>./</samp>’ or ‘<samp>../</samp>’ and ends with +a colon, it’s the name of a directory. (‘<samp>../</samp>’ lines aren’t useful, however, and should not be generated.) - <li>All other lines define entries in the most recently seen directory. -<tt>/</tt>'s in such lines will produce possibly-strange results. +</li><li> All other lines define entries in the most recently seen directory. +<tt>/</tt>’s in such lines will produce possibly-strange results. - <li>Files with no preceding directory line are ignored. -</ul> +</li><li> Files with no preceding directory line are ignored. +</li></ul> - <p>For example, here's the first few lines of <samp><span class="file">ls-R</span></samp> (which totals +<p>For example, here’s the first few lines of <samp>ls-R</samp> (which totals about 30K bytes) on my system: - -<pre class="example"> bibtex - dvips - fonts - ls-R - metafont - metapost - tex - web2c - - ./bibtex: - bib - bst - doc - - ./bibtex/bib: - asi.bib - btxdoc.bib - ... -</pre> - <div class="node"> +</p> +<div class="example"> +<pre class="example">bibtex +dvips +fonts +ls-R +metafont +metapost +tex +web2c + +./bibtex: +bib +bst +doc + +./bibtex/bib: +asi.bib +btxdoc.bib +… +</pre></div> + + +<hr> <a name="Invoking-kpsewhich"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Filename-database">Filename database</a>, -Up: <a rel="up" accesskey="u" href="#Path-searching">Path searching</a> - +<div class="header"> +<p> +Previous: <a href="#Filename-database" accesskey="p" rel="prev">Filename database</a>, Up: <a href="#Path-searching" accesskey="u" rel="up">Path searching</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="kpsewhich_003a-Standalone-path-searching"></a> +<h3 class="section">5.5 <code>kpsewhich</code>: Standalone path searching</h3> -<h3 class="section">3.5 <code>kpsewhich</code>: Standalone path searching</h3> +<a name="index-kpsewhich"></a> +<a name="index-path-searching_002c-standalone"></a> +<a name="index-standalone-path-searching"></a> -<p><a name="index-kpsewhich-543"></a><a name="index-path-searching_002c-standalone-544"></a><a name="index-standalone-path-searching-545"></a> -The Kpsewhich program exercises the path searching functionality +<p>The Kpsewhich program exercises the path searching functionality independent of any particular application. This can also be useful as a sort of <code>find</code> program to locate files in your TeX hierarchies, perhaps in administrative scripts. It is used heavily in the -distributed ‘<samp><span class="samp">mktex...</span></samp>’ scripts. - - <p>Synopsis: - -<pre class="example"> kpsewhich <var>option</var>... <var>filename</var>... -</pre> - <p>The options and filename(s) to look up can be intermixed. -Options can start with either ‘<samp><span class="samp">-</span></samp>’ or ‘<samp><span class="samp">--</span></samp>’, and any unambiguous +distributed ‘<samp>mktex…</samp>’ scripts. +</p> +<p>Synopsis: +</p> +<div class="example"> +<pre class="example">kpsewhich <var>option</var>… <var>filename</var>… +</pre></div> + +<p>The options and filename(s) to look up can be intermixed. +Options can start with either ‘<samp>-</samp>’ or ‘<samp>--</samp>’, and any unambiguous abbreviation is accepted. - -<ul class="menu"> -<li><a accesskey="1" href="#Path-searching-options">Path searching options</a>: Changing the mode, resolution, etc. -<li><a accesskey="2" href="#Specially_002drecognized-files">Specially-recognized files</a>: Default formats for texmf.cnf, etc. -<li><a accesskey="3" href="#Auxiliary-tasks">Auxiliary tasks</a>: Path and variable expansion. -<li><a accesskey="4" href="#Standard-options">Standard options</a>: --help and --version. -</ul> - -<div class="node"> +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Path-searching-options" accesskey="1">Path searching options</a>:</td><td> </td><td align="left" valign="top">Changing the mode, resolution, etc. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Specially_002drecognized-files" accesskey="2">Specially-recognized files</a>:</td><td> </td><td align="left" valign="top">Default formats for texmf.cnf, etc. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Auxiliary-tasks" accesskey="3">Auxiliary tasks</a>:</td><td> </td><td align="left" valign="top">Path and variable expansion. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Standard-options" accesskey="4">Standard options</a>:</td><td> </td><td align="left" valign="top">–help and –version. +</td></tr> +</table> + + +<hr> <a name="Path-searching-options"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Specially_002drecognized-files">Specially-recognized files</a>, -Up: <a rel="up" accesskey="u" href="#Invoking-kpsewhich">Invoking kpsewhich</a> - +<div class="header"> +<p> +Next: <a href="#Specially_002drecognized-files" accesskey="n" rel="next">Specially-recognized files</a>, Up: <a href="#Invoking-kpsewhich" accesskey="u" rel="up">Invoking kpsewhich</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Path-searching-options-1"></a> +<h4 class="subsection">5.5.1 Path searching options</h4> -<h4 class="subsection">3.5.1 Path searching options</h4> +<a name="index-path-searching-options"></a> -<p><a name="index-path-searching-options-546"></a> -Kpsewhich looks up each non-option argument on the command line as a +<p>Kpsewhich looks up each non-option argument on the command line as a filename, and returns the first file found. - - <p>Various options alter the path searching behavior: - - <dl> -<dt>‘<samp><span class="samp">--all</span></samp>’<dd><a name="index-g_t_002d_002dall-547"></a><a name="index-all-matches_002c-finding-548"></a>Report all matches found, one per line. By default, if there is more +</p> +<p>Various options alter the path searching behavior: +</p> +<dl compact="compact"> +<dt>‘<samp>--all</samp>’</dt> +<dd><a name="index-_002d_002dall"></a> +<a name="index-all-matches_002c-finding"></a> +<p>Report all matches found, one per line. By default, if there is more than one match, just one will be reported (chosen effectively at random). - - <br><dt>‘<samp><span class="samp">--dpi=</span><var>num</var></samp>’<dd><a name="index-g_t_002d_002ddpi_003d_0040var_007bnum_007d-549"></a><a name="index-g_t_002dD-_0040var_007bnum_007d-550"></a><a name="index-resolution_002c-setting-551"></a>Set the resolution to <var>num</var>; this only affects ‘<samp><span class="samp">gf</span></samp>’ and -‘<samp><span class="samp">pk</span></samp>’ lookups. ‘<samp><span class="samp">-D</span></samp>’ is a synonym, for compatibility with +</p> +</dd> +<dt>‘<samp>--dpi=<var>num</var></samp>’</dt> +<dd><a name="index-_002d_002ddpi_003dnum"></a> +<a name="index-_002dD-num"></a> +<a name="index-resolution_002c-setting"></a> +<p>Set the resolution to <var>num</var>; this only affects ‘<samp>gf</samp>’ and +‘<samp>pk</samp>’ lookups. ‘<samp>-D</samp>’ is a synonym, for compatibility with Dvips. Default is 600. - - <br><dt>‘<samp><span class="samp">--engine=</span><var>name</var></samp>’<dd><a name="index-g_t_002d_002dengine_003d_0040var_007bname_007d-552"></a><a name="index-engine-name-553"></a>Set the engine name to <var>name</var>. By default it is not set. The +</p> +</dd> +<dt>‘<samp>--engine=<var>name</var></samp>’</dt> +<dd><a name="index-_002d_002dengine_003dname"></a> +<a name="index-engine-name"></a> +<p>Set the engine name to <var>name</var>. By default it is not set. The engine name is used in some search paths to allow files with the same name but used by different engines to coexist. - - <p>In particular, since the memory dump files -(<samp><span class="file">.fmt</span></samp>/<samp><span class="file">.base</span></samp>/<samp><span class="file">.mem</span></samp>) are now stored in -subdirectories named for the engine (<samp><span class="file">tex</span></samp>, <samp><span class="file">pdftex</span></samp>, -<samp><span class="file">xetex</span></samp>, etc.), you must specify an engine name in order to find -them. For example, <samp><span class="file">cont-en.fmt</span></samp> typically exists for both -<samp><span class="file">pdftex</span></samp> and <samp><span class="file">xetex</span></samp>. With the default path settings, you -can use ‘<samp><span class="samp">--engine=/</span></samp>’ to look for any dump file, regardless of -engine; if a dump file exists for more than one engine, it's -indeterminate which one is returned. (The ‘<samp><span class="samp">/</span></samp>’ ends up specifying +</p> +<p>In particular, since the memory dump files +(<samp>.fmt</samp>/<samp>.base</samp>/<samp>.mem</samp>) are now stored in +subdirectories named for the engine (<samp>tex</samp>, <samp>pdftex</samp>, +<samp>xetex</samp>, etc.), you must specify an engine name in order to find +them. For example, <samp>cont-en.fmt</samp> typically exists for both +<samp>pdftex</samp> and <samp>xetex</samp>. With the default path settings, you +can use ‘<samp>--engine=/</samp>’ to look for any dump file, regardless of +engine; if a dump file exists for more than one engine, it’s +indeterminate which one is returned. (The ‘<samp>/</samp>’ ends up specifying a normal recursive search along the path where the dumps are stored, -namely ‘<samp><span class="samp">$TEXMF/web2c{/$engine,}</span></samp>’.) - - <br><dt>‘<samp><span class="samp">--format=</span><var>name</var></samp>’<dd><a name="index-g_t_002d_002dformat_003d_0040var_007bname_007d-554"></a>Set the format for lookup to <var>name</var>. By default, the format is -guessed from the filename, with ‘<samp><span class="samp">tex</span></samp>’ being used if nothing else +namely ‘<samp>$TEXMF/web2c{/$engine,}</samp>’.) +</p> +</dd> +<dt>‘<samp>--format=<var>name</var></samp>’</dt> +<dd><a name="index-_002d_002dformat_003dname"></a> +<p>Set the format for lookup to <var>name</var>. By default, the format is +guessed from the filename, with ‘<samp>tex</samp>’ being used if nothing else fits. The recognized filename extensions (including any leading -‘<samp><span class="samp">.</span></samp>’) are also allowable <var>name</var>s. - - <p>All formats also have a name, which is the only way to specify formats +‘<samp>.</samp>’) are also allowable <var>name</var>s. +</p> +<p>All formats also have a name, which is the only way to specify formats with no associated suffix. For example, for Dvips configuration files -you can use ‘<samp><span class="samp">--format="dvips config"</span></samp>’. (The quotes are for the +you can use ‘<samp>--format="dvips config"</samp>’. (The quotes are for the sake of the shell.) - - <p>Here's the current list of recognized names and the associated suffixes. +</p> +<p>Here’s the current list of recognized names and the associated suffixes. See <a href="#Supported-file-formats">Supported file formats</a>, for more information on each of these. - - <p>The strings in parentheses are abbreviations recognized only by +</p> +<p>The strings in parentheses are abbreviations recognized only by <code>kpsewhich</code> (not the underlying library calls). They are provided when it would otherwise require an argument containing a space to specify the format, to simplify quoting of calls from shells. - - <pre class="example"> gf: gf - pk: pk - bitmap font (bitmapfont): - tfm: .tfm - afm: .afm - base: .base - bib: .bib - bst: .bst - cnf: .cnf - ls-R: ls-R ls-r - fmt: .fmt - map: .map - mem: .mem - mf: .mf - mfpool: .pool - mft: .mft - mp: .mp - mppool: .pool - MetaPost support (mpsupport): - ocp: .ocp - ofm: .ofm .tfm - opl: .opl .pl - otp: .otp - ovf: .ovf .vf - ovp: .ovp .vpl - graphic/figure: .eps .epsi - tex: .tex .sty .cls .fd .aux .bbl .def .clo .ldf - TeX system documentation (doc): - texpool: .pool - TeX system sources (source): .dtx .ins - PostScript header: .pro - Troff fonts (trofffont): - type1 fonts: .pfa .pfb - vf: .vf - dvips config (dvipsconfig): - ist: .ist - truetype fonts: .ttf .ttc .TTF .TTC .dfont - type42 fonts: .t42 .T42 - web2c files (web2c): - other text files (othertext): - other binary files (otherbin): - misc fonts (miscfont): - web: .web .ch - cweb: .w .web .ch - enc files: .enc - cmap files (cmap): - subfont definition files: .sfd - opentype fonts: .otf - pdftex config (pdftexconfig): - lig files: .lig - texmfscripts: - lua: .luc .luctex .texluc .lua .luatex .texlua - font feature files: .fea - cid maps: .cid .cidmap - mlbib: .mlbib .bib - mlbst: .mlbst .bst - clua: .dll .so - ris: .ris - bltxml: .bltxml -</pre> - <p>This option and ‘<samp><span class="samp">--path</span></samp>’ are mutually exclusive. - - <br><dt>‘<samp><span class="samp">--interactive</span></samp>’<dd><a name="index-g_t_002d_002dinteractive-555"></a><a name="index-interactive-query-556"></a>After processing the command line, read additional filenames to look up +</p> +<div class="example"> +<pre class="example">gf: gf +pk: pk +bitmap font (bitmapfont): +tfm: .tfm +afm: .afm +base: .base +bib: .bib +bst: .bst +cnf: .cnf +ls-R: ls-R ls-r +fmt: .fmt +map: .map +mem: .mem +mf: .mf +mfpool: .pool +mft: .mft +mp: .mp +mppool: .pool +MetaPost support (mpsupport): +ocp: .ocp +ofm: .ofm .tfm +opl: .opl .pl +otp: .otp +ovf: .ovf .vf +ovp: .ovp .vpl +graphic/figure: .eps .epsi +tex: .tex .sty .cls .fd .aux .bbl .def .clo .ldf +TeX system documentation (doc): +texpool: .pool +TeX system sources (source): .dtx .ins +PostScript header: .pro +Troff fonts (trofffont): +type1 fonts: .pfa .pfb +vf: .vf +dvips config (dvipsconfig): +ist: .ist +truetype fonts: .ttf .ttc .TTF .TTC .dfont +type42 fonts: .t42 .T42 +web2c files (web2c): +other text files (othertext): +other binary files (otherbin): +misc fonts (miscfont): +web: .web .ch +cweb: .w .web .ch +enc files: .enc +cmap files (cmap): +subfont definition files: .sfd +opentype fonts: .otf +pdftex config (pdftexconfig): +lig files: .lig +texmfscripts: +lua: .lua .luatex .luc .luctex .texlua .texluc .tlu +font feature files: .fea +cid maps: .cid .cidmap +mlbib: .mlbib .bib +mlbst: .mlbst .bst +clua: .dll .so +ris: .ris +bltxml: .bltxml +</pre></div> + +<p>This option and ‘<samp>--path</samp>’ are mutually exclusive. +</p> +</dd> +<dt>‘<samp>--interactive</samp>’</dt> +<dd><a name="index-_002d_002dinteractive"></a> +<a name="index-interactive-query"></a> +<p>After processing the command line, read additional filenames to look up from standard input. - - <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_002d_002dmktex_003d_0040var_007bfiletype_007d-557"></a><a name="index-g_t_002d_002dno_002dmktex_003d_0040var_007bfiletype_007d-558"></a>Turn on or off the ‘<samp><span class="samp">mktex</span></samp>’ script associated with <var>filetype</var>. -Usual values for <var>filetype</var> are ‘<samp><span class="samp">pk</span></samp>’, ‘<samp><span class="samp">mf</span></samp>’, ‘<samp><span class="samp">tex</span></samp>’, -and ‘<samp><span class="samp">tfm</span></samp>’. By default, all are off in Kpsewhich, even if they +</p> +</dd> +<dt>‘<samp>--mktex=<var>filetype</var></samp>’</dt> +<dt>‘<samp>--no-mktex=<var>filetype</var></samp>’</dt> +<dd><a name="index-_002d_002dmktex_003dfiletype"></a> +<a name="index-_002d_002dno_002dmktex_003dfiletype"></a> +<p>Turn on or off the ‘<samp>mktex</samp>’ script associated with <var>filetype</var>. +Usual values for <var>filetype</var> are ‘<samp>pk</samp>’, ‘<samp>mf</samp>’, ‘<samp>tex</samp>’, +and ‘<samp>tfm</samp>’. By default, all are off in Kpsewhich, even if they are enabled for TeX. This option implies setting <code>--must-exist</code>. See <a href="#mktex-scripts">mktex scripts</a>. - - <br><dt>‘<samp><span class="samp">--mode=</span><var>string</var></samp>’<dd><a name="index-g_t_002d_002dmode_003d_0040var_007bstring_007d-559"></a>Set the mode name to <var>string</var>; this also only affects ‘<samp><span class="samp">gf</span></samp>’ and -‘<samp><span class="samp">pk</span></samp>’ lookups. No default: any mode will be found. See <a href="#mktex-script-arguments">mktex script arguments</a>. - - <br><dt>‘<samp><span class="samp">--must-exist</span></samp>’<dd><a name="index-g_t_002d_002dmust_002dexist-560"></a>Do everything possible to find the files, notably including searching -the disk and running the ‘<samp><span class="samp">mktex</span></samp>’ scripts. By default, only the -<samp><span class="file">ls-R</span></samp> database is checked, in the interest of efficiency. - - <br><dt>‘<samp><span class="samp">--path=</span><var>string</var></samp>’<dd><a name="index-g_t_002d_002dpath_003d_0040var_007bstring_007d-561"></a>Search along the path <var>string</var> (colon-separated as usual), instead -of guessing the search path from the filename. ‘<samp><span class="samp">//</span></samp>’ and all the +</p> +</dd> +<dt>‘<samp>--mode=<var>string</var></samp>’</dt> +<dd><a name="index-_002d_002dmode_003dstring"></a> +<p>Set the mode name to <var>string</var>; this also only affects ‘<samp>gf</samp>’ and +‘<samp>pk</samp>’ lookups. No default: any mode will be found. See <a href="#mktex-script-arguments">mktex script arguments</a>. +</p> +</dd> +<dt>‘<samp>--must-exist</samp>’</dt> +<dd><a name="index-_002d_002dmust_002dexist"></a> +<p>Do everything possible to find the files, notably including searching +the disk and running the ‘<samp>mktex</samp>’ scripts. By default, only the +<samp>ls-R</samp> database is checked, in the interest of efficiency. +</p> +</dd> +<dt>‘<samp>--path=<var>string</var></samp>’</dt> +<dd><a name="index-_002d_002dpath_003dstring"></a> +<p>Search along the path <var>string</var> (colon-separated as usual), instead +of guessing the search path from the filename. ‘<samp>//</samp>’ and all the usual expansions are supported (see <a href="#Path-expansion">Path expansion</a>). This option -and ‘<samp><span class="samp">--format</span></samp>’ are mutually exclusive. To output the complete +and ‘<samp>--format</samp>’ are mutually exclusive. To output the complete directory expansion of a path, instead of doing a one-shot lookup, see -‘<samp><span class="samp">--expand-path</span></samp>’ and ‘<samp><span class="samp">--show-path</span></samp>’ in the following section. - - <br><dt>‘<samp><span class="samp">--progname=</span><var>name</var></samp>’<dd><a name="index-g_t_002d_002dprogname_003d_0040var_007bname_007d-562"></a>Set the program name to <var>name</var>; default is ‘<samp><span class="samp">kpsewhich</span></samp>’. This -can affect the search paths via the ‘<samp><span class="samp">.</span><var>prognam</var></samp>’ feature in +‘<samp>--expand-path</samp>’ and ‘<samp>--show-path</samp>’ in the following section. +</p> +</dd> +<dt>‘<samp>--progname=<var>name</var></samp>’</dt> +<dd><a name="index-_002d_002dprogname_003dname"></a> +<p>Set the program name to <var>name</var>; default is ‘<samp>kpsewhich</samp>’. This +can affect the search paths via the ‘<samp>.<var>prognam</var></samp>’ feature in configuration files (see <a href="#Config-files">Config files</a>). - - <br><dt>‘<samp><span class="samp">--safe-in-name=</span><var>name</var></samp>’<dt>‘<samp><span class="samp">--safe-out-name=</span><var>name</var></samp>’<dd><a name="index-g_t_002d_002dsafe_002din_002dname_003d_0040var_007bname_007d-563"></a><a name="index-g_t_002d_002dsafe_002dout_002dname_003d_0040var_007bname_007d-564"></a>Exit successfully if <var>name</var> is safe to open for reading or -writing, respectively, else unsuccessfully. No output is written. +</p> +</dd> +<dt>‘<samp>--safe-in-name=<var>name</var></samp>’</dt> +<dt>‘<samp>--safe-out-name=<var>name</var></samp>’</dt> +<dd><a name="index-_002d_002dsafe_002din_002dname_003dname"></a> +<a name="index-_002d_002dsafe_002dout_002dname_003dname"></a> +<p>Exit successfully if <var>name</var> is safe to open for reading or +writing, respectively, else unsuccessfully. No output is written. These tests take account of the related Kpathsea configuration settings (see <a href="#Calling-sequence">Calling sequence</a>). - - <br><dt>‘<samp><span class="samp">--subdir=</span><var>string</var></samp>’<dd><a name="index-g_t_002d_002dsubdir_003d_0040var_007bstring_007d-565"></a>Report only those matches whose directory part <em>ends</em> with +</p> +</dd> +<dt>‘<samp>--subdir=<var>string</var></samp>’</dt> +<dd><a name="index-_002d_002dsubdir_003dstring"></a> +<p>Report only those matches whose directory part <em>ends</em> with <var>string</var> (compared literally, except case is ignored on a case-insensitive operating system). For example, suppose there are two matches for a given name: - - <pre class="example"> kpsewhich foo.sty - ⇒ /some/where/foo.sty - /another/place/foo.sty -</pre> - <p class="noindent">Then we can narrow the result to what we are interested in with -<samp><span class="option">--subdir</span></samp>: - - <pre class="example"> kpsewhich --subdir=where foo.sty - ⇒ /some/where/foo.sty - - kpsewhich --subdir=place foo.sty - ⇒ /another/place/foo.sty -</pre> - <p class="noindent">The string to match must be at the end of the directory part of the +</p> +<div class="example"> +<pre class="example">kpsewhich foo.sty +⇒ /some/where/foo.sty +/another/place/foo.sty +</pre></div> + +<p>Then we can narrow the result to what we are interested in with +<samp>--subdir</samp>: +</p> +<div class="example"> +<pre class="example">kpsewhich --subdir=where foo.sty +⇒ /some/where/foo.sty + +kpsewhich --subdir=place foo.sty +⇒ /another/place/foo.sty +</pre></div> + +<p>The string to match must be at the end of the directory part of the match, and it is taken literally, with no pattern matching: - - <pre class="example"> kpsewhich --subdir=another foo.sty - ⇒ -</pre> - <p class="noindent">The string to match may cross directory components: - - <pre class="example"> kpsewhich --subdir=some/where foo.sty - ⇒ /some/where/foo.sty -</pre> - <p class="noindent"><samp><span class="option">--subdir</span></samp> implies <samp><span class="option">--all</span></samp>; if there is more than one -match, they will all be reported (in our example, both ‘<samp><span class="samp">where</span></samp>’ -and ‘<samp><span class="samp">place</span></samp>’ end in ‘<samp><span class="samp">e</span></samp>’): - - <pre class="example"> kpsewhich --subdir=e - ⇒ /some/where/foo.sty - /another/place/foo.sty -</pre> - <p class="noindent">Because of the above rules, the presence of a leading ‘<samp><span class="samp">/</span></samp>’ is +</p> +<div class="example"> +<pre class="example">kpsewhich --subdir=another foo.sty +⇒ +</pre></div> + +<p>The string to match may cross directory components: +</p> +<div class="example"> +<pre class="example">kpsewhich --subdir=some/where foo.sty +⇒ /some/where/foo.sty +</pre></div> + +<p><samp>--subdir</samp> implies <samp>--all</samp>; if there is more than one +match, they will all be reported (in our example, both ‘<samp>where</samp>’ +and ‘<samp>place</samp>’ end in ‘<samp>e</samp>’): +</p> +<div class="example"> +<pre class="example">kpsewhich --subdir=e +⇒ /some/where/foo.sty +/another/place/foo.sty +</pre></div> + +<p>Because of the above rules, the presence of a leading ‘<samp>/</samp>’ is important, since it “anchors” the match to a full component name: +</p> +<div class="example"> +<pre class="example">kpsewhich --subdir=/lace foo.sty +⇒ +</pre></div> - <pre class="example"> kpsewhich --subdir=/lace foo.sty - ⇒ -</pre> - <p class="noindent">However, a trailing ‘<samp><span class="samp">/</span></samp>’ is immaterial (and ignored), since the +<p>However, a trailing ‘<samp>/</samp>’ is immaterial (and ignored), since the match always takes place at the end of the directory part: +</p> +<div class="example"> +<pre class="example">kpsewhich --subdir=lace/ foo.sty +⇒ /another/place/foo.sty +</pre></div> - <pre class="example"> kpsewhich --subdir=lace/ foo.sty - ⇒ /another/place/foo.sty -</pre> - <p class="noindent">The purpose of these rules is to make it convenient to find results +<p>The purpose of these rules is to make it convenient to find results only within a particular area of the tree. For instance, a given -script named <samp><span class="file">foo.lua</span></samp> might exist within both -<samp><span class="file">texmf-dist/scripts/pkg1/</span></samp> and <samp><span class="file">texmf-dist/scripts/pkg2/</span></samp>. -By specifying, say, ‘<samp><span class="samp">--subdir=/pkg1</span></samp>’, you can be sure of getting +script named <samp>foo.lua</samp> might exist within both +<samp>texmf-dist/scripts/pkg1/</samp> and <samp>texmf-dist/scripts/pkg2/</samp>. +By specifying, say, ‘<samp>--subdir=/pkg1</samp>’, you can be sure of getting the one you are interested in. +</p> +<p>We only match at the end because a site might happen to install TeX +in <samp>/some/coincidental/pkg1/path/</samp>, and we wouldn’t want to match +<samp>texmf-dist/scripts/pkg2/</samp> that when searching for ‘<samp>/pkg1</samp>’. +</p> +</dd> +</dl> - <p>We only match at the end because a site might happen to install TeX -in <samp><span class="file">/some/coincidental/pkg1/path/</span></samp>, and we wouldn't want to match -<samp><span class="file">texmf-dist/scripts/pkg2/</span></samp> that when searching for ‘<samp><span class="samp">/pkg1</span></samp>’. - - </dl> -<div class="node"> -<a name="Specially-recognized-files"></a> +<hr> <a name="Specially_002drecognized-files"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Auxiliary-tasks">Auxiliary tasks</a>, -Previous: <a rel="previous" accesskey="p" href="#Path-searching-options">Path searching options</a>, -Up: <a rel="up" accesskey="u" href="#Invoking-kpsewhich">Invoking kpsewhich</a> - +<div class="header"> +<p> +Next: <a href="#Auxiliary-tasks" accesskey="n" rel="next">Auxiliary tasks</a>, Previous: <a href="#Path-searching-options" accesskey="p" rel="prev">Path searching options</a>, Up: <a href="#Invoking-kpsewhich" accesskey="u" rel="up">Invoking kpsewhich</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Specially_002drecognized-files-for-kpsewhich"></a> +<h4 class="subsection">5.5.2 Specially-recognized files for <code>kpsewhich</code></h4> -<h4 class="subsection">3.5.2 Specially-recognized files for <samp><span class="command">kpsewhich</span></samp></h4> - -<p><samp><span class="command">kpsewhich</span></samp> recognizes a few special filenames on the command -line and defaults to using the `known' file formats for them, merely +<p><code>kpsewhich</code> recognizes a few special filenames on the command +line and defaults to using the ‘known’ file formats for them, merely to save the time and trouble of specifying the format. This is only a -feature of <samp><span class="command">kpsewhich</span></samp>; when using the Kpathsea library -itself, none of these special filenames are recognized, and it's still +feature of <code>kpsewhich</code>; when using the Kpathsea library +itself, none of these special filenames are recognized, and it’s still up to the caller to specify the desired format. - - <p>Here is the list of special filenames to <samp><span class="command">kpsewhich</span></samp>, along +</p> +<p>Here is the list of special filenames to <code>kpsewhich</code>, along with their corresponding format: +</p> +<dl compact="compact"> +<dd> +<a name="index-config_002eps"></a> +</dd> +<dt><samp>config.ps</samp></dt> +<dd><p><code>dvips config</code> +</p> +<a name="index-dvipdfmx_002ecfg"></a> +</dd> +<dt><samp>dvipdfmx.cfg</samp></dt> +<dd><p>‘<samp>other text files</samp>’ +</p> +<a name="index-fmtutil_002ecnf"></a> +</dd> +<dt><samp>fmtutil.cnf</samp></dt> +<dd><p>‘<samp>web2c files</samp>’ +</p> +<a name="index-glyphlist_002etxt"></a> +</dd> +<dt><samp>glyphlist.txt</samp></dt> +<dd><p>‘<samp>map</samp>’ +</p> +<a name="index-mktex_002ecnf"></a> +</dd> +<dt><samp>mktex.cnf</samp></dt> +<dd><p>‘<samp>web2c files</samp>’ +</p> +<a name="index-pdfglyphlist_002etxt"></a> +</dd> +<dt><samp>pdfglyphlist.txt</samp></dt> +<dd><p>‘<samp>map</samp>’ +</p> +<a name="index-pdftex_002ecfg"></a> +<a name="index-pdftexconfig_002etex"></a> +</dd> +<dt><samp>pdftex.cfg</samp></dt> +<dd><p>‘<samp>pdftex config</samp>’ (although <samp>pdftex.cfg</samp> is not used any more; +look for the file <samp>pdftexconfig.tex</samp> instead.) +</p> +<a name="index-texmf_002ecnf"></a> +</dd> +<dt><samp>texmf.cnf</samp></dt> +<dd><p>‘<samp>cnf</samp>’ +</p> +<a name="index-XDvi"></a> +</dd> +<dt><samp>XDvi</samp></dt> +<dd><p>‘<samp>other text files</samp>’ +</p> +</dd> +</dl> - -<a name="index-config_002eps-566"></a> -<dl><dt><samp><span class="file">config.ps</span></samp><dd><code>dvips config</code> - - <p><a name="index-dvipdfmx_002ecfg-567"></a><br><dt><samp><span class="file">dvipdfmx.cfg</span></samp><dd>‘<samp><span class="samp">other text files</span></samp>’ - - <p><a name="index-fmtutil_002ecnf-568"></a><br><dt><samp><span class="file">fmtutil.cnf</span></samp><dd>‘<samp><span class="samp">web2c files</span></samp>’ - - <p><a name="index-glyphlist_002etxt-569"></a><br><dt><samp><span class="file">glyphlist.txt</span></samp><dd>‘<samp><span class="samp">map</span></samp>’ - - <p><a name="index-mktex_002ecnf-570"></a><br><dt><samp><span class="file">mktex.cnf</span></samp><dd>‘<samp><span class="samp">web2c files</span></samp>’ - - <p><a name="index-pdfglyphlist_002etxt-571"></a><br><dt><samp><span class="file">pdfglyphlist.txt</span></samp><dd>‘<samp><span class="samp">map</span></samp>’ - - <p><a name="index-pdftex_002ecfg-572"></a><a name="index-pdftexconfig_002etex-573"></a><br><dt><samp><span class="file">pdftex.cfg</span></samp><dd>‘<samp><span class="samp">pdftex config</span></samp>’ (although <samp><span class="file">pdftex.cfg</span></samp> is not used any more; -look for the file <samp><span class="file">pdftexconfig.tex</span></samp> instead.) - - <p><a name="index-texmf_002ecnf-574"></a><br><dt><samp><span class="file">texmf.cnf</span></samp><dd>‘<samp><span class="samp">cnf</span></samp>’ - - <p><a name="index-XDvi-575"></a><br><dt><samp><span class="file">XDvi</span></samp><dd>‘<samp><span class="samp">other text files</span></samp>’ - - </dl> - - <p>A user-specified format will override the above defaults. - - <p><a name="index-tcfmgr_002emap-576"></a>Another useful configuration file in this regard is <samp><span class="file">tcfmgr.map</span></samp>, -found in <samp><span class="file">texmf/texconfig/tcfmgr.map</span></samp>, which records various +<p>A user-specified format will override the above defaults. +</p> +<a name="index-tcfmgr_002emap"></a> +<p>Another useful configuration file in this regard is <samp>tcfmgr.map</samp>, +found in <samp>texmf/texconfig/tcfmgr.map</samp>, which records various information about the above configuration files (among others). +</p> -<div class="node"> +<hr> <a name="Auxiliary-tasks"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Standard-options">Standard options</a>, -Previous: <a rel="previous" accesskey="p" href="#Specially_002drecognized-files">Specially-recognized files</a>, -Up: <a rel="up" accesskey="u" href="#Invoking-kpsewhich">Invoking kpsewhich</a> - +<div class="header"> +<p> +Next: <a href="#Standard-options" accesskey="n" rel="next">Standard options</a>, Previous: <a href="#Specially_002drecognized-files" accesskey="p" rel="prev">Specially-recognized files</a>, Up: <a href="#Invoking-kpsewhich" accesskey="u" rel="up">Invoking kpsewhich</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Auxiliary-tasks-1"></a> +<h4 class="subsection">5.5.3 Auxiliary tasks</h4> -<h4 class="subsection">3.5.3 Auxiliary tasks</h4> +<a name="index-auxiliary-tasks"></a> -<p><a name="index-auxiliary-tasks-577"></a> -Kpsewhich provides some additional features not strictly related to path +<p>Kpsewhich provides some additional features not strictly related to path lookup: - - <ul> -<li><a name="index-g_t_002d_002ddebug_003d_0040var_007bnum_007d-578"></a>‘<samp><span class="samp">--debug=</span><var>num</var></samp>’ sets the debugging options to <var>num</var>. +</p> +<ul> +<li> <a name="index-_002d_002ddebug_003dnum"></a> +‘<samp>--debug=<var>num</var></samp>’ sets the debugging options to <var>num</var>. See <a href="#Debugging">Debugging</a>. - <li><a name="index-g_t_002d_002dvar_002dvalue_003d_0040var_007bvariable_007d-579"></a>‘<samp><span class="samp">--var-value=</span><var>variable</var></samp>’ outputs the value of <var>variable</var>, -expanding ‘<samp><span class="samp">$</span></samp>’ (see <a href="#Variable-expansion">Variable expansion</a> and ‘<samp><span class="samp">~</span></samp>’ (see <a href="#Tilde-expansion">Tilde expansion</a>) constructs, but not performing other expansions. +</li><li> <a name="index-_002d_002dvar_002dvalue_003dvariable"></a> +‘<samp>--var-value=<var>variable</var></samp>’ outputs the value of <var>variable</var>, +expanding ‘<samp>$</samp>’ (see <a href="#Variable-expansion">Variable expansion</a> and ‘<samp>~</samp>’ (see <a href="#Tilde-expansion">Tilde expansion</a>) constructs, but not performing other expansions. - <li><a name="index-g_t_002d_002dexpand_002dbraces_003d_0040var_007bstring_007d-580"></a>‘<samp><span class="samp">--expand-braces=</span><var>string</var></samp>’ outputs the variable and brace +</li><li> <a name="index-_002d_002dexpand_002dbraces_003dstring"></a> +‘<samp>--expand-braces=<var>string</var></samp>’ outputs the variable and brace expansion of <var>string</var>. See <a href="#Path-expansion">Path expansion</a>. - <li><a name="index-g_t_002d_002dexpand_002dvar_003d_0040var_007bstring_007d-581"></a>‘<samp><span class="samp">--expand-var=</span><var>string</var></samp>’ outputs the variable and tilde -expansion of <var>string</var>. For example, the ‘<samp><span class="samp">mktex...</span></samp>’ -scripts run ‘<samp><span class="samp">kpsewhich --expand-var='$TEXMF'</span></samp>’ to find the root of +</li><li> <a name="index-_002d_002dexpand_002dvar_003dstring"></a> +‘<samp>--expand-var=<var>string</var></samp>’ outputs the variable and tilde +expansion of <var>string</var>. For example, the ‘<samp>mktex…</samp>’ +scripts run ‘<samp>kpsewhich --expand-var='$TEXMF'</samp>’ to find the root of the TeX system hierarchy. See <a href="#Path-expansion">Path expansion</a>. - <li><a name="index-g_t_002d_002dexpand_002dpath_003d_0040var_007bstring_007d-582"></a>‘<samp><span class="samp">--expand-path=</span><var>string</var></samp>’ outputs the complete expansion of +</li><li> <a name="index-_002d_002dexpand_002dpath_003dstring"></a> +‘<samp>--expand-path=<var>string</var></samp>’ outputs the complete expansion of <var>string</var>, with each element separated by the usual path separator -on the current system (‘<samp><span class="samp">;</span></samp>’ on Windows, ‘<samp><span class="samp">:</span></samp>’ otherwise). +on the current system (‘<samp>;</samp>’ on Windows, ‘<samp>:</samp>’ otherwise). This may be useful to construct a custom search path for a format not otherwise supported. To retrieve the search path for a format that is -already supported, see ‘<samp><span class="samp">--show-path</span></samp>’, next. - - <p>Nonexistent directories are culled from the output: - - <pre class="example"> $ kpsewhich --expand-path '/tmp' - ⇒ /tmp - $ kpsewhich --expand-path '/nonesuch' - ⇒ -</pre> - <p>For one-shot uses of an arbitrary (not built in to Kpathsea) path, see -‘<samp><span class="samp">--path</span></samp>’ in the previous section. - - <li><a name="index-g_t_002d_002dshow_002dpath_003d_0040var_007bname_007d-583"></a>‘<samp><span class="samp">--show-path=</span><var>name</var></samp>’ shows the path that would be used for file +already supported, see ‘<samp>--show-path</samp>’, next. + +<p>Nonexistent directories are culled from the output: +</p> +<div class="example"> +<pre class="example">$ kpsewhich --expand-path '/tmp' +⇒ /tmp +$ kpsewhich --expand-path '/nonesuch' +⇒ +</pre></div> + +<p>For one-shot uses of an arbitrary (not built in to Kpathsea) path, see +‘<samp>--path</samp>’ in the previous section. +</p> +</li><li> <a name="index-_002d_002dshow_002dpath_003dname"></a> +‘<samp>--show-path=<var>name</var></samp>’ shows the path that would be used for file lookups of file type <var>name</var>. Either a filename extension -(‘<samp><span class="samp">pk</span></samp>’, ‘<samp><span class="samp">.vf</span></samp>’, etc.) or an integer can be used, just as with -‘<samp><span class="samp">--format</span></samp>’, described in the previous section. +(‘<samp>pk</samp>’, ‘<samp>.vf</samp>’, etc.) or an integer can be used, just as with +‘<samp>--format</samp>’, described in the previous section. - </ul> +</li></ul> -<div class="node"> -<a name="Standard-options"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Auxiliary-tasks">Auxiliary tasks</a>, -Up: <a rel="up" accesskey="u" href="#Invoking-kpsewhich">Invoking kpsewhich</a> +<hr> +<a name="Standard-options"></a> +<div class="header"> +<p> +Previous: <a href="#Auxiliary-tasks" accesskey="p" rel="prev">Auxiliary tasks</a>, Up: <a href="#Invoking-kpsewhich" accesskey="u" rel="up">Invoking kpsewhich</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Standard-options-1"></a> +<h4 class="subsection">5.5.4 Standard options</h4> -<h4 class="subsection">3.5.4 Standard options</h4> +<a name="index-standard-options"></a> -<p><a name="index-standard-options-584"></a> -Kpsewhich accepts the standard GNU options: - - <ul> -<li><a name="index-g_t_002d_002dhelp-585"></a>‘<samp><span class="samp">--help</span></samp>’ prints a help message on standard output and exits +<p>Kpsewhich accepts the standard GNU options: +</p> +<ul> +<li> <a name="index-_002d_002dhelp"></a> +‘<samp>--help</samp>’ prints a help message on standard output and exits successfully. - <li><a name="index-g_t_002d_002dversion-586"></a>‘<samp><span class="samp">--version</span></samp>’ prints the Kpathsea version number and exits successfully. -</ul> +</li><li> <a name="index-_002d_002dversion"></a> +‘<samp>--version</samp>’ prints the Kpathsea version number and exits successfully. +</li></ul> -<div class="node"> -<a name="TeX-support"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Programming">Programming</a>, -Previous: <a rel="previous" accesskey="p" href="#Path-searching">Path searching</a>, -Up: <a rel="up" accesskey="u" href="#Top">Top</a> +<hr> +<a name="TeX-support"></a> +<div class="header"> +<p> +Next: <a href="#Programming" accesskey="n" rel="next">Programming</a>, Previous: <a href="#Path-searching" accesskey="p" rel="prev">Path searching</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="TeX-support-1"></a> +<h2 class="chapter">6 TeX support</h2> -<h2 class="chapter">4 TeX support</h2> +<a name="index-TeX-support"></a> -<p><a name="index-g_t_0040TeX_007b_007d-support-587"></a> -Although the basic features in Kpathsea can be used for any type of path +<p>Although the basic features in Kpathsea can be used for any type of path searching, it came about (like all libraries) with a specific application in mind: I wrote Kpathsea specifically for TeX system programs. I had been struggling with the programs I was using (Dvips, Xdvi, and TeX itself) having slightly different notions of how to specify paths; and debugging was painful, since no code was shared. - - <p>Therefore, Kpathsea provides some TeX-specific formats and features. +</p> +<p>Therefore, Kpathsea provides some TeX-specific formats and features. Indeed, many of the supposedly generic path searching features were provided because they seemed useful in that conTeXt (font lookup, particularly). - - <p>Kpathsea provides a standard way to search for files of any of the -supported file types; glyph fonts are a bit different than all the rest. +</p> +<p>Kpathsea provides a standard way to search for files of any of the +supported file types; glyph fonts are a bit different than all the rest. Searches are based solely on filenames, not file contents—if a GF -file is named <samp><span class="file">cmr10.600pk</span></samp>, it will be found as a PK file. - -<ul class="menu"> -<li><a accesskey="1" href="#Supported-file-formats">Supported file formats</a>: File types Kpathsea knows about. -<li><a accesskey="2" href="#File-lookup">File lookup</a>: Searching for most kinds of files. -<li><a accesskey="3" href="#Glyph-lookup">Glyph lookup</a>: Searching for bitmap fonts. -<li><a accesskey="4" href="#Suppressing-warnings">Suppressing warnings</a>: Avoiding warnings via TEX_HUSH. -</ul> - -<div class="node"> +file is named <samp>cmr10.600pk</samp>, it will be found as a PK file. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Supported-file-formats" accesskey="1">Supported file formats</a>:</td><td> </td><td align="left" valign="top">File types Kpathsea knows about. +</td></tr> +<tr><td align="left" valign="top">• <a href="#File-lookup" accesskey="2">File lookup</a>:</td><td> </td><td align="left" valign="top">Searching for most kinds of files. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Glyph-lookup" accesskey="3">Glyph lookup</a>:</td><td> </td><td align="left" valign="top">Searching for bitmap fonts. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Suppressing-warnings" accesskey="4">Suppressing warnings</a>:</td><td> </td><td align="left" valign="top">Avoiding warnings via TEX_HUSH. +</td></tr> +<tr><td align="left" valign="top">• <a href="#mktex-scripts" accesskey="5">mktex scripts</a>:</td><td> </td><td align="left" valign="top">Generating files at runtime. +</td></tr> +</table> + + +<hr> <a name="Supported-file-formats"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#File-lookup">File lookup</a>, -Up: <a rel="up" accesskey="u" href="#TeX-support">TeX support</a> - +<div class="header"> +<p> +Next: <a href="#File-lookup" accesskey="n" rel="next">File lookup</a>, Up: <a href="#TeX-support" accesskey="u" rel="up">TeX support</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Supported-file-formats-1"></a> +<h3 class="section">6.1 Supported file formats</h3> + +<a name="index-supported-file-formats"></a> +<a name="index-file-formats_002c-supported"></a> -<h3 class="section">4.1 Supported file formats</h3> +<a name="index-environment-variables-for-TeX"></a> +<a name="index-TeX-environment-variables"></a> -<p><a name="index-supported-file-formats-588"></a><a name="index-file-formats_002c-supported-589"></a> -<a name="index-environment-variables-for-_0040TeX_007b_007d-590"></a><a name="index-g_t_0040TeX_007b_007d-environment-variables-591"></a> -Kpathsea has support for a number of file types. Each file type has a +<p>Kpathsea has support for a number of file types. Each file type has a list of environment and config file variables that are checked to define the search path, and most have a default suffix that plays a role in finding files (see the next section). Some also define additional suffixes, and/or a program to be run to create missing files on the fly. - - <p><a name="index-program_002dvarying-paths-592"></a>Since environment variables containing periods, such as -‘<samp><span class="samp">TEXINPUTS.latex</span></samp>’, are not allowed on some systems, Kpathsea looks +</p> +<a name="index-program_002dvarying-paths"></a> +<p>Since environment variables containing periods, such as +‘<samp>TEXINPUTS.latex</samp>’, are not allowed on some systems, Kpathsea looks for environment variables with an underscore, e.g., -‘<samp><span class="samp">TEXINPUTS_latex</span></samp>’ (see <a href="#Config-files">Config files</a>). - - <p>The following table lists the above information. - - <dl> -<dt>‘<samp><span class="samp">afm</span></samp>’<dd><a name="index-g_t_002eafm-593"></a><a name="index-AFMFONTS-594"></a>(Adobe font metrics, see <a href="dvips.html#Metric-files">Metric files</a>) +‘<samp>TEXINPUTS_latex</samp>’ (see <a href="#Config-files">Config files</a>). +</p> +<p>The following table lists the above information. +</p> +<dl compact="compact"> +<dt>‘<samp>afm</samp>’</dt> +<dd><a name="index-_002eafm"></a> +<a name="index-AFMFONTS"></a> +<p>(Adobe font metrics, see <a href="dvips.html#Metric-files">Metric files</a> in <cite>Dvips</cite>) <code>AFMFONTS</code>; -suffix ‘<samp><span class="samp">.afm</span></samp>’. - - <br><dt>‘<samp><span class="samp">base</span></samp>’<dd><a name="index-g_t_002ebase-595"></a><a name="index-MFBASES-596"></a><a name="index-TEXMFINI-597"></a>(Metafont memory dump, see <a href="web2c.html#Memory-dumps">Memory dumps</a>) +suffix ‘<samp>.afm</samp>’. +</p> +</dd> +<dt>‘<samp>base</samp>’</dt> +<dd><a name="index-_002ebase"></a> +<a name="index-MFBASES"></a> +<a name="index-TEXMFINI"></a> +<p>(Metafont memory dump, see <a href="web2c.html#Memory-dumps">Memory dumps</a> in <cite>Web2c</cite>) <code>MFBASES</code>, <code>TEXMFINI</code>; -suffix ‘<samp><span class="samp">.base</span></samp>’. - - <br><dt>‘<samp><span class="samp">bib</span></samp>’<dd><a name="index-g_t_002ebib-598"></a><a name="index-BIBINPUTS-599"></a><a name="index-TEXBIB-600"></a>(BibTeX bibliography source, see <a href="web2c.html#bibtex-invocation">bibtex invocation</a>) +suffix ‘<samp>.base</samp>’. +</p> +</dd> +<dt>‘<samp>bib</samp>’</dt> +<dd><a name="index-_002ebib"></a> +<a name="index-BIBINPUTS"></a> +<a name="index-TEXBIB"></a> +<p>(BibTeX bibliography source, see <a href="web2c.html#bibtex-invocation">bibtex invocation</a> in <cite>Web2c</cite>) <code>BIBINPUTS</code>, <code>TEXBIB</code>; -suffix ‘<samp><span class="samp">.bib</span></samp>’. - - <br><dt>‘<samp><span class="samp">bst</span></samp>’<dd><a name="index-g_t_002ebst-601"></a><a name="index-BSTINPUTS-602"></a>(BibTeX style, see <a href="web2c.html#Basic-BibTeX-style-files">Basic BibTeX style files</a>) +suffix ‘<samp>.bib</samp>’. +</p> +</dd> +<dt>‘<samp>bst</samp>’</dt> +<dd><a name="index-_002ebst"></a> +<a name="index-BSTINPUTS"></a> +<p>(BibTeX style, see <a href="web2c.html#Basic-BibTeX-style-files">Basic BibTeX +style files</a> in <cite>Web2c</cite>) <code>BSTINPUTS</code>; -suffix ‘<samp><span class="samp">.bst</span></samp>’. - - <br><dt>‘<samp><span class="samp">cmap</span></samp>’<dd><a name="index-g_t_002ecmap-603"></a><a name="index-CMAPFONTS-604"></a>(character map files) +suffix ‘<samp>.bst</samp>’. +</p> +</dd> +<dt>‘<samp>cmap</samp>’</dt> +<dd><a name="index-_002ecmap"></a> +<a name="index-CMAPFONTS"></a> +<p>(character map files) <code>CMAPFONTS</code>; -suffix ‘<samp><span class="samp">.cmap</span></samp>’. - - <br><dt>‘<samp><span class="samp">cnf</span></samp>’<dd><a name="index-g_t_002ecnf-605"></a><a name="index-TEXMFCNF-606"></a>(Runtime configuration files, see <a href="#Config-files">Config files</a>) +suffix ‘<samp>.cmap</samp>’. +</p> +</dd> +<dt>‘<samp>cnf</samp>’</dt> +<dd><a name="index-_002ecnf"></a> +<a name="index-TEXMFCNF-1"></a> +<p>(Runtime configuration files, see <a href="#Config-files">Config files</a>) <code>TEXMFCNF</code>; -suffix ‘<samp><span class="samp">.cnf</span></samp>’. - - <br><dt>‘<samp><span class="samp">cweb</span></samp>’<dd><a name="index-g_t_002ew-607"></a><a name="index-g_t_002eweb-608"></a><a name="index-CWEBINPUTS-609"></a>(CWEB input files) +suffix ‘<samp>.cnf</samp>’. +</p> +</dd> +<dt>‘<samp>cweb</samp>’</dt> +<dd><a name="index-_002ew"></a> +<a name="index-_002eweb"></a> +<a name="index-CWEBINPUTS"></a> +<p>(CWEB input files) <code>CWEBINPUTS</code>; -suffixes ‘<samp><span class="samp">.w</span></samp>’, ‘<samp><span class="samp">.web</span></samp>’; -additional suffix ‘<samp><span class="samp">.ch</span></samp>’. - - <br><dt>‘<samp><span class="samp">dvips config</span></samp>’<dd><a name="index-TEXCONFIG-610"></a><a name="index-config_002eps_0040r_007b_002c-search-path-for_007d-611"></a>(Dvips ‘<samp><span class="samp">config.*</span></samp>’ files, such as <samp><span class="file">config.ps</span></samp>, see <a href="dvips.html#Config-files">Config files</a>) +suffixes ‘<samp>.w</samp>’, ‘<samp>.web</samp>’; +additional suffix ‘<samp>.ch</samp>’. +</p> +</dd> +<dt>‘<samp>dvips config</samp>’</dt> +<dd><a name="index-TEXCONFIG"></a> +<a name="index-config_002eps_002c-search-path-for"></a> +<p>(Dvips ‘<samp>config.*</samp>’ files, such as <samp>config.ps</samp>, see <a href="dvips.html#Config-files">Config +files</a> in <cite>Dvips</cite>) <code>TEXCONFIG</code>. - - <br><dt>‘<samp><span class="samp">enc files</span></samp>’<dd><a name="index-g_t_002eenc-612"></a><a name="index-ENCFONTS-613"></a>(encoding vectors) +</p> +</dd> +<dt>‘<samp>enc files</samp>’</dt> +<dd><a name="index-_002eenc"></a> +<a name="index-ENCFONTS"></a> +<p>(encoding vectors) <code>ENCFONTS</code>; -suffix ‘<samp><span class="samp">.enc</span></samp>’. - - <br><dt>‘<samp><span class="samp">fmt</span></samp>’<dd><a name="index-g_t_002efmt-614"></a><a name="index-TEXFORMATS-615"></a><a name="index-TEXMFINI-616"></a>(TeX memory dump, see <a href="web2c.html#Memory-dumps">Memory dumps</a>) +suffix ‘<samp>.enc</samp>’. +</p> +</dd> +<dt>‘<samp>fmt</samp>’</dt> +<dd><a name="index-_002efmt"></a> +<a name="index-TEXFORMATS"></a> +<a name="index-TEXMFINI-1"></a> +<p>(TeX memory dump, see <a href="web2c.html#Memory-dumps">Memory dumps</a> in <cite>Web2c</cite>) <code>TEXFORMATS</code>, <code>TEXMFINI</code>; -suffix ‘<samp><span class="samp">.fmt</span></samp>’. - - <br><dt>‘<samp><span class="samp">font cid map</span></samp>’<dd><a name="index-g_t_002ecid-617"></a><a name="index-FONTCIDMAPS-618"></a>(CJK mapping) +suffix ‘<samp>.fmt</samp>’. +</p> +</dd> +<dt>‘<samp>font cid map</samp>’</dt> +<dd><a name="index-_002ecid"></a> +<a name="index-FONTCIDMAPS"></a> +<p>(CJK mapping) <code>FONTCIDMAPS</code> -suffix ‘<samp><span class="samp">.cid</span></samp>’. - - <br><dt>‘<samp><span class="samp">font feature files</span></samp>’<dd><a name="index-g_t_002efea-619"></a><a name="index-FONTFEATURES-620"></a>(primarily for OpenType font features) +suffix ‘<samp>.cid</samp>’. +</p> +</dd> +<dt>‘<samp>font feature files</samp>’</dt> +<dd><a name="index-_002efea"></a> +<a name="index-FONTFEATURES"></a> +<p>(primarily for OpenType font features) <code>FONTFEATURES</code> -suffix ‘<samp><span class="samp">.fea</span></samp>’. - - <br><dt>‘<samp><span class="samp">gf</span></samp>’<dd><a name="index-gf-621"></a><a name="index-GFFONTS-622"></a><a name="index-GLYPHFONTS-623"></a><a name="index-TEXFONTS-624"></a>(generic font bitmap, see <a href="dvips.html#Glyph-files">Glyph files</a>) -<var>program</var><code>FONTS</code>, <code>GFFONTS</code>, <code>GLYPHFONTS</code>, <code>TEXFONTS</code>; -suffix ‘<samp><span class="samp">gf</span></samp>’. - - <br><dt>‘<samp><span class="samp">graphic/figure</span></samp>’<dd><a name="index-g_t_002eeps-625"></a><a name="index-g_t_002eepsi-626"></a><a name="index-TEXPICTS-627"></a><a name="index-TEXINPUTS-628"></a>(Encapsulated PostScript figures, see <a href="dvips.html#PostScript-figures">PostScript figures</a>) +suffix ‘<samp>.fea</samp>’. +</p> +</dd> +<dt>‘<samp>gf</samp>’</dt> +<dd><a name="index-gf"></a> +<a name="index-GFFONTS"></a> +<a name="index-GLYPHFONTS"></a> +<a name="index-TEXFONTS"></a> +<p>(generic font bitmap, see <a href="dvips.html#Glyph-files">Glyph files</a> in <cite>Dvips</cite>) +<code><var>program</var>FONTS</code>, <code>GFFONTS</code>, <code>GLYPHFONTS</code>, <code>TEXFONTS</code>; +suffix ‘<samp>gf</samp>’. +</p> +</dd> +<dt>‘<samp>graphic/figure</samp>’</dt> +<dd><a name="index-_002eeps"></a> +<a name="index-_002eepsi"></a> +<a name="index-TEXPICTS"></a> +<a name="index-TEXINPUTS"></a> +<p>(Encapsulated PostScript figures, see <a href="dvips.html#PostScript-figures">PostScript figures</a> in <cite>Dvips</cite>) <code>TEXPICTS</code>, <code>TEXINPUTS</code>; -additional suffixes: ‘<samp><span class="samp">.eps</span></samp>’, ‘<samp><span class="samp">.epsi</span></samp>’. - - <br><dt>‘<samp><span class="samp">ist</span></samp>’<dd><a name="index-g_t_002eist-629"></a><a name="index-TEXINDEXSTYLE-630"></a><a name="index-INDEXSTYLE-631"></a>(makeindex style files) +additional suffixes: ‘<samp>.eps</samp>’, ‘<samp>.epsi</samp>’. +</p> +</dd> +<dt>‘<samp>ist</samp>’</dt> +<dd><a name="index-_002eist"></a> +<a name="index-TEXINDEXSTYLE"></a> +<a name="index-INDEXSTYLE"></a> +<p>(makeindex style files) <code>TEXINDEXSTYLE</code>, <code>INDEXSTYLE</code>; -suffix ‘<samp><span class="samp">.ist</span></samp>’. - - <br><dt>‘<samp><span class="samp">lig files</span></samp>’<dd><a name="index-g_t_002elig-632"></a><a name="index-LIGFONTS-633"></a>(ligature definition files) +suffix ‘<samp>.ist</samp>’. +</p> +</dd> +<dt>‘<samp>lig files</samp>’</dt> +<dd><a name="index-_002elig"></a> +<a name="index-LIGFONTS"></a> +<p>(ligature definition files) <code>LIGFONTS</code>; -suffix ‘<samp><span class="samp">.lig</span></samp>’. - - <br><dt>‘<samp><span class="samp">ls-R</span></samp>’<dd><a name="index-ls_002dR-634"></a><a name="index-TEXMFDBS-635"></a>(Filename databases, see <a href="#Filename-database">Filename database</a>) +suffix ‘<samp>.lig</samp>’. +</p> +</dd> +<dt>‘<samp>ls-R</samp>’</dt> +<dd><a name="index-ls_002dR"></a> +<a name="index-TEXMFDBS-1"></a> +<p>(Filename databases, see <a href="#Filename-database">Filename database</a>) <code>TEXMFDBS</code>. - - <br><dt>‘<samp><span class="samp">map</span></samp>’<dd><a name="index-g_t_002emap-636"></a><a name="index-TEXFONTMAPS-637"></a>(Fontmaps, see <a href="#Fontmap">Fontmap</a>) +</p> +</dd> +<dt>‘<samp>map</samp>’</dt> +<dd><a name="index-_002emap"></a> +<a name="index-TEXFONTMAPS"></a> +<p>(Fontmaps, see <a href="#Fontmap">Fontmap</a>) <code>TEXFONTMAPS</code>; -suffix ‘<samp><span class="samp">.map</span></samp>’. - - <br><dt>‘<samp><span class="samp">mem</span></samp>’<dd><a name="index-g_t_002emem-638"></a><a name="index-MPMEMS-639"></a><a name="index-TEXMFINI-640"></a>(MetaPost memory dump, see <a href="web2c.html#Memory-dumps">Memory dumps</a>) +suffix ‘<samp>.map</samp>’. +</p> +</dd> +<dt>‘<samp>mem</samp>’</dt> +<dd><a name="index-_002emem"></a> +<a name="index-MPMEMS"></a> +<a name="index-TEXMFINI-2"></a> +<p>(MetaPost memory dump, see <a href="web2c.html#Memory-dumps">Memory dumps</a> in <cite>Web2c</cite>) <code>MPMEMS</code>, <code>TEXMFINI</code>; -suffix ‘<samp><span class="samp">.mem</span></samp>’. - - <br><dt>‘<samp><span class="samp">MetaPost support</span></samp>’<dd><a name="index-MPSUPPORT-641"></a>(MetaPost support files, used by DMP; see <a href="web2c.html#dmp-invocation">dmp invocation</a>) +suffix ‘<samp>.mem</samp>’. +</p> +</dd> +<dt>‘<samp><span class="roman">MetaPost support</span></samp>’</dt> +<dd><a name="index-MPSUPPORT"></a> +<p>(MetaPost support files, used by DMP; see <a href="web2c.html#dmp-invocation">dmp invocation</a> in <cite>Web2c</cite>) <code>MPSUPPORT</code>. - - <br><dt>‘<samp><span class="samp">mf</span></samp>’<dd><a name="index-g_t_002emf-642"></a><a name="index-MFINPUTS-643"></a>(Metafont source, see <a href="web2c.html#mf-invocation">mf invocation</a>) +</p> +</dd> +<dt>‘<samp>mf</samp>’</dt> +<dd><a name="index-_002emf"></a> +<a name="index-MFINPUTS"></a> +<p>(Metafont source, see <a href="web2c.html#mf-invocation">mf invocation</a> in <cite>Web2c</cite>) <code>MFINPUTS</code>; -suffix ‘<samp><span class="samp">.mf</span></samp>’; +suffix ‘<samp>.mf</samp>’; dynamic creation program: <code>mktexmf</code>. - - <br><dt>‘<samp><span class="samp">mfpool</span></samp>’<dd><a name="index-g_t_002epool-644"></a><a name="index-MFPOOL-645"></a>(Metafont program strings, see <a href="web2c.html#pooltype-invocation">pooltype invocation</a>) +</p> +</dd> +<dt>‘<samp>mfpool</samp>’</dt> +<dd><a name="index-_002epool"></a> +<a name="index-MFPOOL"></a> +<p>(Metafont program strings, see <a href="web2c.html#pooltype-invocation">pooltype invocation</a> in <cite>Web2c</cite>) <code>MFPOOL</code>, <code>TEXMFINI</code>; -suffix ‘<samp><span class="samp">.pool</span></samp>’. - - <br><dt>‘<samp><span class="samp">mft</span></samp>’<dd><a name="index-g_t_002emft-646"></a><a name="index-MFTINPUTS-647"></a>(<code>MFT</code> style file, see <a href="web2c.html#mft-invocation">mft invocation</a>) +suffix ‘<samp>.pool</samp>’. +</p> +</dd> +<dt>‘<samp>mft</samp>’</dt> +<dd><a name="index-_002emft"></a> +<a name="index-MFTINPUTS"></a> +<p>(<code>MFT</code> style file, see <a href="web2c.html#mft-invocation">mft invocation</a> in <cite>Web2c</cite>) <code>MFTINPUTS</code>; -suffix ‘<samp><span class="samp">.mft</span></samp>’. - - <br><dt>‘<samp><span class="samp">misc fonts</span></samp>’<dd><a name="index-MISCFONTS-648"></a>(font-related files that don't fit the other categories) +suffix ‘<samp>.mft</samp>’. +</p> +</dd> +<dt>‘<samp>misc fonts</samp>’</dt> +<dd><a name="index-MISCFONTS"></a> +<p>(font-related files that don’t fit the other categories) <code>MISCFONTS</code> - - <br><dt>‘<samp><span class="samp">mlbib</span></samp>’<dd><a name="index-g_t_002emlbib-649"></a><a name="index-MLBIBINPUTS-650"></a><a name="index-BIBINPUTS-651"></a><a name="index-TEXBIB-652"></a>(MlBibTeX bibliography source) +</p> +</dd> +<dt>‘<samp>mlbib</samp>’</dt> +<dd><a name="index-_002emlbib"></a> +<a name="index-MLBIBINPUTS"></a> +<a name="index-BIBINPUTS-1"></a> +<a name="index-TEXBIB-1"></a> +<p>(MlBibTeX bibliography source) <code>MLBIBINPUTS</code>, <code>BIBINPUTS</code>, <code>TEXBIB</code>; -suffixes ‘<samp><span class="samp">.mlbib</span></samp>’, ‘<samp><span class="samp">.mlbib</span></samp>’. - - <br><dt>‘<samp><span class="samp">mlbst</span></samp>’<dd><a name="index-g_t_002emlbst-653"></a><a name="index-MLBSTINPUTS-654"></a><a name="index-BSTINPUTS-655"></a>(MlBibTeX style) +suffixes ‘<samp>.mlbib</samp>’, ‘<samp>.mlbib</samp>’. +</p> +</dd> +<dt>‘<samp>mlbst</samp>’</dt> +<dd><a name="index-_002emlbst"></a> +<a name="index-MLBSTINPUTS"></a> +<a name="index-BSTINPUTS-1"></a> +<p>(MlBibTeX style) <code>MLBSTINPUTS</code>, <code>BSTINPUTS</code>; -suffixes ‘<samp><span class="samp">.mlbst</span></samp>’, ‘<samp><span class="samp">.bst</span></samp>’. - - <br><dt>‘<samp><span class="samp">mp</span></samp>’<dd><a name="index-g_t_002emp-656"></a><a name="index-MPINPUTS-657"></a>(MetaPost source, see <a href="web2c.html#mpost-invocation">mpost invocation</a>) +suffixes ‘<samp>.mlbst</samp>’, ‘<samp>.bst</samp>’. +</p> +</dd> +<dt>‘<samp>mp</samp>’</dt> +<dd><a name="index-_002emp"></a> +<a name="index-MPINPUTS"></a> +<p>(MetaPost source, see <a href="web2c.html#mpost-invocation">mpost invocation</a> in <cite>Web2c</cite>) <code>MPINPUTS</code>; -suffix ‘<samp><span class="samp">.mp</span></samp>’. - - <br><dt>‘<samp><span class="samp">mppool</span></samp>’<dd><a name="index-g_t_002epool-658"></a><a name="index-MPPOOL-659"></a>(MetaPost program strings, see <a href="web2c.html#pooltype-invocation">pooltype invocation</a>) +suffix ‘<samp>.mp</samp>’. +</p> +</dd> +<dt>‘<samp>mppool</samp>’</dt> +<dd><a name="index-_002epool-1"></a> +<a name="index-MPPOOL"></a> +<p>(MetaPost program strings, see <a href="web2c.html#pooltype-invocation">pooltype invocation</a> in <cite>Web2c</cite>) <code>MPPOOL</code>, <code>TEXMFINI</code>; -suffix ‘<samp><span class="samp">.pool</span></samp>’. - - <br><dt>‘<samp><span class="samp">ocp</span></samp>’<dd><a name="index-g_t_002eocp-660"></a><a name="index-OCPINPUTS-661"></a>(Omega compiled process files) +suffix ‘<samp>.pool</samp>’. +</p> +</dd> +<dt>‘<samp>ocp</samp>’</dt> +<dd><a name="index-_002eocp"></a> +<a name="index-OCPINPUTS"></a> +<p>(Omega compiled process files) <code>OCPINPUTS</code>; <br> -suffix ‘<samp><span class="samp">.ocp</span></samp>’; +suffix ‘<samp>.ocp</samp>’; dynamic creation program: <code>MakeOmegaOCP</code>. - - <br><dt>‘<samp><span class="samp">ofm</span></samp>’<dd><a name="index-g_t_002eofm-662"></a><a name="index-OFMFONTS-663"></a>(Omega font metrics) +</p> +</dd> +<dt>‘<samp>ofm</samp>’</dt> +<dd><a name="index-_002eofm"></a> +<a name="index-OFMFONTS"></a> +<p>(Omega font metrics) <code>OFMFONTS</code>, <code>TEXFONTS</code>; <br> -suffixes ‘<samp><span class="samp">.ofm</span></samp>’, ‘<samp><span class="samp">.tfm</span></samp>’; +suffixes ‘<samp>.ofm</samp>’, ‘<samp>.tfm</samp>’; dynamic creation program: <code>MakeOmegaOFM</code>. - - <br><dt>‘<samp><span class="samp">opentype fonts</span></samp>’<dd><a name="index-OPENTYPEFONTS-664"></a>(OpenType fonts) +</p> +</dd> +<dt>‘<samp>opentype fonts</samp>’</dt> +<dd><a name="index-OPENTYPEFONTS"></a> +<p>(OpenType fonts) <code>OPENTYPEFONTS</code>. - - <br><dt>‘<samp><span class="samp">opl</span></samp>’<dd><a name="index-g_t_002eopl-665"></a>(Omega property lists) +</p> +</dd> +<dt>‘<samp>opl</samp>’</dt> +<dd><a name="index-_002eopl"></a> +<p>(Omega property lists) <code>OPLFONTS</code>, <code>TEXFONTS</code>; -suffix ‘<samp><span class="samp">.opl</span></samp>’. - - <br><dt>‘<samp><span class="samp">otp</span></samp>’<dd><a name="index-g_t_002eotp-666"></a><a name="index-OTPINPUTS-667"></a>(Omega translation process files) +suffix ‘<samp>.opl</samp>’. +</p> +</dd> +<dt>‘<samp>otp</samp>’</dt> +<dd><a name="index-_002eotp"></a> +<a name="index-OTPINPUTS"></a> +<p>(Omega translation process files) <code>OTPINPUTS</code>; -suffix ‘<samp><span class="samp">.otp</span></samp>’. - - <br><dt>‘<samp><span class="samp">ovf</span></samp>’<dd><a name="index-g_t_002eovf-668"></a><a name="index-OVFFONTS-669"></a>(Omega virtual fonts) +suffix ‘<samp>.otp</samp>’. +</p> +</dd> +<dt>‘<samp>ovf</samp>’</dt> +<dd><a name="index-_002eovf"></a> +<a name="index-OVFFONTS"></a> +<p>(Omega virtual fonts) <code>OVFFONTS</code>, <code>TEXFONTS</code>; -suffix ‘<samp><span class="samp">.ovf</span></samp>’. - - <br><dt>‘<samp><span class="samp">ovp</span></samp>’<dd><a name="index-g_t_002eovp-670"></a><a name="index-OVPFONTS-671"></a>(Omega virtual property lists) +suffix ‘<samp>.ovf</samp>’. +</p> +</dd> +<dt>‘<samp>ovp</samp>’</dt> +<dd><a name="index-_002eovp"></a> +<a name="index-OVPFONTS"></a> +<p>(Omega virtual property lists) <code>OVPFONTS</code>, <code>TEXFONTS</code>; -suffix ‘<samp><span class="samp">.ovp</span></samp>’. - - <br><dt>‘<samp><span class="samp">pdftex config</span></samp>’<dd><a name="index-PDFTEXCONFIG-672"></a>(PDFTeX-specific configuration files) +suffix ‘<samp>.ovp</samp>’. +</p> +</dd> +<dt>‘<samp>pdftex config</samp>’</dt> +<dd><a name="index-PDFTEXCONFIG"></a> +<p>(PDFTeX-specific configuration files) <code>PDFTEXCONFIG</code>. - - <br><dt>‘<samp><span class="samp">pk</span></samp>’<dd><a name="index-g_t_002epk-673"></a><a name="index-PKFONTS-674"></a><a name="index-TEXPKS-675"></a><a name="index-GLYPHFONTS-676"></a><a name="index-TEXFONTS-677"></a>(packed bitmap fonts, see <a href="dvips.html#Glyph-files">Glyph files</a>) -<var>PROGRAM</var><code>FONTS</code> (<var>program</var> being ‘<samp><span class="samp">XDVI</span></samp>’, etc.), +</p> +</dd> +<dt>‘<samp>pk</samp>’</dt> +<dd><a name="index-_002epk"></a> +<a name="index-PKFONTS"></a> +<a name="index-TEXPKS"></a> +<a name="index-GLYPHFONTS-1"></a> +<a name="index-TEXFONTS-1"></a> +<p>(packed bitmap fonts, see <a href="dvips.html#Glyph-files">Glyph files</a> in <cite>Dvips</cite>) +<code><var>PROGRAM</var>FONTS</code> (<var>program</var> being ‘<samp>XDVI</samp>’, etc.), <code>PKFONTS</code>, <code>TEXPKS</code>, <code>GLYPHFONTS</code>, <code>TEXFONTS</code>; -suffix ‘<samp><span class="samp">pk</span></samp>’; +suffix ‘<samp>pk</samp>’; dynamic creation program: <code>mktexpk</code>. - - <br><dt>‘<samp><span class="samp">PostScript header</span></samp>’<dd><a name="index-g_t_002epro-678"></a><a name="index-TEXPSHEADERS-679"></a><a name="index-PSHEADERS-680"></a>(downloadable PostScript, see <a href="dvips.html#Header-files">Header files</a>) +</p> +</dd> +<dt>‘<samp>PostScript header</samp>’</dt> +<dd><a name="index-_002epro"></a> +<a name="index-TEXPSHEADERS"></a> +<a name="index-PSHEADERS"></a> +<p>(downloadable PostScript, see <a href="dvips.html#Header-files">Header files</a> in <cite>Dvips</cite>) <code>TEXPSHEADERS</code>, <code>PSHEADERS</code>; -additional suffix ‘<samp><span class="samp">.pro</span></samp>’. - - <br><dt>‘<samp><span class="samp">subfont definition files</span></samp>’<dd><a name="index-g_t_002esfd-681"></a><a name="index-SFDFONTS-682"></a>(subfont definition files) +additional suffix ‘<samp>.pro</samp>’. +</p> +</dd> +<dt>‘<samp>subfont definition files</samp>’</dt> +<dd><a name="index-_002esfd"></a> +<a name="index-SFDFONTS"></a> +<p>(subfont definition files) <code>SFDFONTS</code> -suffix ‘<samp><span class="samp">.sfd</span></samp>’. - - <br><dt>‘<samp><span class="samp">tex</span></samp>’<dd><a name="index-g_t_002etex-683"></a><a name="index-TEXINPUTS-684"></a>(TeX source, see <a href="web2c.html#tex-invocation">tex invocation</a>) +suffix ‘<samp>.sfd</samp>’. +</p> +</dd> +<dt>‘<samp>tex</samp>’</dt> +<dd><a name="index-_002etex"></a> +<a name="index-TEXINPUTS-1"></a> +<p>(TeX source, see <a href="web2c.html#tex-invocation">tex invocation</a> in <cite>Web2c</cite>) <code>TEXINPUTS</code>; -suffix ‘<samp><span class="samp">.tex</span></samp>’; +suffix ‘<samp>.tex</samp>’; additional suffixes: none, because such a list cannot be complete; dynamic creation program: <code>mktextex</code>. - - <br><dt>‘<samp><span class="samp">TeX system documentation</span></samp>’<dd><a name="index-doc-files-685"></a><a name="index-TEXDOCS-686"></a>(Documentation files for the TeX system) +</p> +</dd> +<dt>‘<samp>TeX system documentation</samp>’</dt> +<dd><a name="index-doc-files"></a> +<a name="index-TEXDOCS"></a> +<p>(Documentation files for the TeX system) <code>TEXDOCS</code>. - - <br><dt>‘<samp><span class="samp">TeX system sources</span></samp>’<dd><a name="index-source-files-687"></a><a name="index-TEXSOURCES-688"></a>(Source files for the TeX system) +</p> +</dd> +<dt>‘<samp>TeX system sources</samp>’</dt> +<dd><a name="index-source-files"></a> +<a name="index-TEXSOURCES"></a> +<p>(Source files for the TeX system) <code>TEXSOURCES</code>. - - <br><dt>‘<samp><span class="samp">texmfscripts</span></samp>’<dd><a name="index-TEXMFSCRIPTS-689"></a>(Architecture-independent executables distributed in the texmf trees) +</p> +</dd> +<dt>‘<samp>texmfscripts</samp>’</dt> +<dd><a name="index-TEXMFSCRIPTS"></a> +<p>(Architecture-independent executables distributed in the texmf trees) <code>TEXMFSCRIPTS</code>. - - <br><dt>‘<samp><span class="samp">texpool</span></samp>’<dd><a name="index-g_t_002epool-690"></a><a name="index-TEXPOOL-691"></a>(TeX program strings, see <a href="web2c.html#pooltype-invocation">pooltype invocation</a>) +</p> +</dd> +<dt>‘<samp>texpool</samp>’</dt> +<dd><a name="index-_002epool-2"></a> +<a name="index-TEXPOOL"></a> +<p>(TeX program strings, see <a href="web2c.html#pooltype-invocation">pooltype invocation</a> in <cite>Web2c</cite>) <code>TEXPOOL</code>, <code>TEXMFINI</code>; -suffix ‘<samp><span class="samp">.pool</span></samp>’. - - <br><dt>‘<samp><span class="samp">tfm</span></samp>’<dd><a name="index-g_t_002etfm-692"></a><a name="index-TFMFONTS-693"></a><a name="index-TEXFONTS-694"></a>(TeX font metrics, see <a href="dvips.html#Metric-files">Metric files</a>) +suffix ‘<samp>.pool</samp>’. +</p> +</dd> +<dt>‘<samp>tfm</samp>’</dt> +<dd><a name="index-_002etfm"></a> +<a name="index-TFMFONTS"></a> +<a name="index-TEXFONTS-2"></a> +<p>(TeX font metrics, see <a href="dvips.html#Metric-files">Metric files</a> in <cite>Dvips</cite>) <code>TFMFONTS</code>, <code>TEXFONTS</code>; -suffix ‘<samp><span class="samp">.tfm</span></samp>’; +suffix ‘<samp>.tfm</samp>’; dynamic creation program: <code>mktextfm</code>. - - <br><dt>‘<samp><span class="samp">Troff fonts</span></samp>’<dd><a name="index-TRFONTS-695"></a>(Troff fonts, used by DMP; see <a href="web2c.html#DMP-invocation">DMP invocation</a>) +</p> +</dd> +<dt>‘<samp>Troff fonts</samp>’</dt> +<dd><a name="index-TRFONTS"></a> +<p>(Troff fonts, used by DMP; see <a href="web2c.html#DMP-invocation">DMP invocation</a> in <cite>Web2c</cite>) <code>TRFONTS</code>. - - <br><dt>‘<samp><span class="samp">truetype fonts</span></samp>’<dd><a name="index-g_t_002ettf-696"></a><a name="index-g_t_002ettc-697"></a><a name="index-TTFONTS-698"></a>(TrueType outline fonts) <code>TTFONTS</code>; suffixes ‘<samp><span class="samp">.ttf</span></samp>’ and -‘<samp><span class="samp">.TTF</span></samp>’, ‘<samp><span class="samp">.ttc</span></samp>’ and ‘<samp><span class="samp">.TTC</span></samp>’, ‘<samp><span class="samp">.dfont</span></samp>’. - - <br><dt>‘<samp><span class="samp">type1 fonts</span></samp>’<dd><a name="index-g_t_002epfa-699"></a><a name="index-g_t_002epfb-700"></a><a name="index-T1FONTS-701"></a><a name="index-T1INPUTS-702"></a><a name="index-TEXPSHEADERS-703"></a><a name="index-DVIPSHEADERS-704"></a>(Type 1 PostScript outline fonts, see <a href="dvips.html#Glyph-files">Glyph files</a>) +</p> +</dd> +<dt>‘<samp>truetype fonts</samp>’</dt> +<dd><a name="index-_002ettf"></a> +<a name="index-_002ettc"></a> +<a name="index-TTFONTS"></a> +<p>(TrueType outline fonts) <code>TTFONTS</code>; suffixes ‘<samp>.ttf</samp>’ and +‘<samp>.TTF</samp>’, ‘<samp>.ttc</samp>’ and ‘<samp>.TTC</samp>’, ‘<samp>.dfont</samp>’. +</p> +</dd> +<dt>‘<samp>type1 fonts</samp>’</dt> +<dd><a name="index-_002epfa"></a> +<a name="index-_002epfb"></a> +<a name="index-T1FONTS"></a> +<a name="index-T1INPUTS"></a> +<a name="index-TEXPSHEADERS-1"></a> +<a name="index-DVIPSHEADERS"></a> +<p>(Type 1 PostScript outline fonts, see <a href="dvips.html#Glyph-files">Glyph files</a> in <cite>Dvips</cite>) <code>T1FONTS</code>, <code>T1INPUTS</code>, <code>TEXPSHEADERS</code>, <code>DVIPSHEADERS</code>; -suffixes ‘<samp><span class="samp">.pfa</span></samp>’, ‘<samp><span class="samp">.pfb</span></samp>’. - - <br><dt>‘<samp><span class="samp">type42 fonts</span></samp>’<dd><a name="index-T42FONTS-705"></a>(Type 42 PostScript outline fonts) <code>T42FONTS</code>. - - <br><dt>‘<samp><span class="samp">vf</span></samp>’<dd><a name="index-g_t_002evf-706"></a><a name="index-VFFONTS-707"></a><a name="index-TEXFONTS-708"></a>(virtual fonts, see <a href="dvips.html#Virtual-fonts">Virtual fonts</a>) +suffixes ‘<samp>.pfa</samp>’, ‘<samp>.pfb</samp>’. +</p> +</dd> +<dt>‘<samp>type42 fonts</samp>’</dt> +<dd><a name="index-T42FONTS"></a> +<p>(Type 42 PostScript outline fonts) <code>T42FONTS</code>. +</p> +</dd> +<dt>‘<samp>vf</samp>’</dt> +<dd><a name="index-_002evf"></a> +<a name="index-VFFONTS"></a> +<a name="index-TEXFONTS-3"></a> +<p>(virtual fonts, see <a href="dvips.html#Virtual-fonts">Virtual fonts</a> in <cite>Dvips</cite>) <code>VFFONTS</code>, <code>TEXFONTS</code>; -suffix ‘<samp><span class="samp">.vf</span></samp>’. - - <br><dt>‘<samp><span class="samp">web</span></samp>’<dd><a name="index-g_t_002eweb-709"></a><a name="index-WEBINPUTS-710"></a>(WEB input files) +suffix ‘<samp>.vf</samp>’. +</p> +</dd> +<dt>‘<samp>web</samp>’</dt> +<dd><a name="index-_002eweb-1"></a> +<a name="index-WEBINPUTS"></a> +<p>(WEB input files) <code>WEBINPUTS</code>; -suffix ‘<samp><span class="samp">.web</span></samp>’; -additional suffix ‘<samp><span class="samp">.ch</span></samp>’. - - <br><dt>‘<samp><span class="samp">web2c files</span></samp>’<dd><a name="index-WEB2C-711"></a>(files specific to the web2c implementation) -<code>WEB2C</code>. +suffix ‘<samp>.web</samp>’; +additional suffix ‘<samp>.ch</samp>’. +</p> +</dd> +<dt>‘<samp>web2c files</samp>’</dt> +<dd><a name="index-WEB2C"></a> +<p>(files specific to the web2c implementation) +<code>WEB2C</code>. +</p></dd> </dl> - <p>There are two special cases, because the paths and environment variables +<p>There are two special cases, because the paths and environment variables always depend on the name of the program: the variable name is constructed by converting the program name to upper case, and then -appending ‘<samp><span class="samp">INPUTS</span></samp>’. Assuming the program is called ‘<samp><span class="samp">foo</span></samp>’, +appending ‘<samp>INPUTS</samp>’. Assuming the program is called ‘<samp>foo</samp>’, this gives us the following table. - - <dl> -<dt>‘<samp><span class="samp">other text files</span></samp>’<dd><a name="index-FOOINPUTS-712"></a>(text files used by ‘<samp><span class="samp">foo</span></samp>’) +</p> +<dl compact="compact"> +<dt>‘<samp>other text files</samp>’</dt> +<dd><a name="index-FOOINPUTS"></a> +<p>(text files used by ‘<samp>foo</samp>’) <code>FOOINPUTS</code>. - - <br><dt>‘<samp><span class="samp">other binary files</span></samp>’<dd><a name="index-FOOINPUTS-713"></a>(binary files used by ‘<samp><span class="samp">foo</span></samp>’) -<code>FOOINPUTS</code>. +</p> +</dd> +<dt>‘<samp>other binary files</samp>’</dt> +<dd><a name="index-FOOINPUTS-1"></a> +<p>(binary files used by ‘<samp>foo</samp>’) +<code>FOOINPUTS</code>. +</p></dd> </dl> - <p>If an environment variable by these names are set, the corresponding -<samp><span class="file">texmf.cnf</span></samp> definition won't be looked at (unless, as usual, the -environment variable value has an extra ‘<samp><span class="samp">:</span></samp>’). See <a href="#Default-expansion">Default expansion</a>. +<p>If an environment variable by these names are set, the corresponding +<samp>texmf.cnf</samp> definition won’t be looked at (unless, as usual, the +environment variable value has an extra ‘<samp>:</samp>’). See <a href="#Default-expansion">Default expansion</a>. +</p> +<p>For the font variables, the intent is that: +</p><ul> +<li> <code>TEXFONTS</code> is the default for everything. - <p>For the font variables, the intent is that: - <ul> -<li><code>TEXFONTS</code> is the default for everything. - - <li><code>GLYPHFONTS</code> is the default for bitmap (or, more precisely, +</li><li> <code>GLYPHFONTS</code> is the default for bitmap (or, more precisely, non-metric) files. - <li>Each font format has a variable of its own. +</li><li> Each font format has a variable of its own. - <li><a name="index-XDVIFONTS-714"></a><a name="index-DVIPSFONTS-715"></a>Each program has its own font override path as well; e.g., +</li><li> <a name="index-XDVIFONTS"></a> +<a name="index-DVIPSFONTS"></a> +Each program has its own font override path as well; e.g., <code>DVIPSFONTS</code> for Dvipsk. Again, this is for bitmaps, not metrics. - </ul> +</li></ul> -<div class="node"> -<a name="File-lookup"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Glyph-lookup">Glyph lookup</a>, -Previous: <a rel="previous" accesskey="p" href="#Supported-file-formats">Supported file formats</a>, -Up: <a rel="up" accesskey="u" href="#TeX-support">TeX support</a> +<hr> +<a name="File-lookup"></a> +<div class="header"> +<p> +Next: <a href="#Glyph-lookup" accesskey="n" rel="next">Glyph lookup</a>, Previous: <a href="#Supported-file-formats" accesskey="p" rel="prev">Supported file formats</a>, Up: <a href="#TeX-support" accesskey="u" rel="up">TeX support</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="File-lookup-1"></a> +<h3 class="section">6.2 File lookup</h3> -<h3 class="section">4.2 File lookup</h3> +<a name="index-file-lookup"></a> +<a name="index-searching-for-files"></a> +<a name="index-TeX-file-lookup"></a> -<p><a name="index-file-lookup-716"></a><a name="index-searching-for-files-717"></a><a name="index-g_t_0040TeX_007b_007d-file-lookup-718"></a> -This section describes how Kpathsea searches for most files (bitmap font +<p>This section describes how Kpathsea searches for most files (bitmap font searches are the exception, as described in the next section). - - <p>Here is the search strategy for a file <var>name</var>: - - <ol type=1 start=1> -<li>If the file format defines default suffixes, and the suffix of +</p> +<p>Here is the search strategy for a file <var>name</var>: +</p> +<ol> +<li> If the file format defines default suffixes, and the suffix of <var>name</var> name is not already a known suffix for that format, try the name with each default appended, and use alternative names found in -the fontmaps if necessary. Example: given ‘<samp><span class="samp">foo.bar</span></samp>’, look for -‘<samp><span class="samp">foo.bar.tex</span></samp>’. +the fontmaps if necessary. Example: given ‘<samp>foo.bar</samp>’, look for +‘<samp>foo.bar.tex</samp>’. - <li>Search for <var>name</var>, and if necessary for alternative names found in -the fontmaps. Example: given ‘<samp><span class="samp">foo.bar</span></samp>’, we also look for -‘<samp><span class="samp">foo.bar</span></samp>’. +</li><li> Search for <var>name</var>, and if necessary for alternative names found in +the fontmaps. Example: given ‘<samp>foo.bar</samp>’, we also look for +‘<samp>foo.bar</samp>’. - <li>If the file format defines a program to invoke to create missing files, +</li><li> If the file format defines a program to invoke to create missing files, run it (see <a href="#mktex-scripts">mktex scripts</a>). - </ol> +</li></ol> - <p><a name="index-extensions_002c-filename-719"></a><a name="index-suffixes_002c-filename-720"></a><a name="index-try_005fstd_005fextension_005ffirst-721"></a>The order in which we search for “suffixed” name (item 1) or +<a name="index-extensions_002c-filename"></a> +<a name="index-suffixes_002c-filename"></a> +<a name="index-try_005fstd_005fextension_005ffirst"></a> +<p>The order in which we search for “suffixed” name (item 1) or the “as-is” name (item 2) is controlled by the -<samp><span class="file">try_std_extension_first</span></samp> configuration value. The default set -in <samp><span class="file">texmf.cnf</span></samp> is true, since common suffixes are already -recognized: ‘<samp><span class="samp">babel.sty</span></samp>’ will only look for ‘<samp><span class="samp">babel.sty</span></samp>’, not -‘<samp><span class="samp">babel.sty.tex</span></samp>’, regardless of this setting. - - <p>When the suffix is unknown (e.g., ‘<samp><span class="samp">foo.bar</span></samp>’), both names are +<samp>try_std_extension_first</samp> configuration value. The default set +in <samp>texmf.cnf</samp> is true, since common suffixes are already +recognized: ‘<samp>babel.sty</samp>’ will only look for ‘<samp>babel.sty</samp>’, not +‘<samp>babel.sty.tex</samp>’, regardless of this setting. +</p> +<p>When the suffix is unknown (e.g., ‘<samp>foo.bar</samp>’), both names are always tried; the difference is the order in which they are tried. - - <p><samp><span class="file">try_std_extension_first</span></samp> only affects names being looked up +</p> +<p><samp>try_std_extension_first</samp> only affects names being looked up which *already* have an extension. A name without an extension (e.g., -‘<samp><span class="samp">tex story</span></samp>’) will always have an extension added first. - - <p><a name="index-tex_002dfile_002ec-722"></a><a name="index-kpathsea_005ffind_005ffile-723"></a>This algorithm is implemented in the function +‘<samp>tex story</samp>’) will always have an extension added first. +</p> +<a name="index-tex_002dfile_002ec"></a> +<a name="index-kpathsea_005ffind_005ffile"></a> +<p>This algorithm is implemented in the function <code>kpathsea_find_file</code> in the source file -<samp><span class="file">kpathsea/tex-file.c</span></samp>. You can watch it in action with the +<samp>kpathsea/tex-file.c</samp>. You can watch it in action with the debugging options (see <a href="#Debugging">Debugging</a>). +</p> -<div class="node"> +<hr> <a name="Glyph-lookup"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Suppressing-warnings">Suppressing warnings</a>, -Previous: <a rel="previous" accesskey="p" href="#File-lookup">File lookup</a>, -Up: <a rel="up" accesskey="u" href="#TeX-support">TeX support</a> - +<div class="header"> +<p> +Next: <a href="#Suppressing-warnings" accesskey="n" rel="next">Suppressing warnings</a>, Previous: <a href="#File-lookup" accesskey="p" rel="prev">File lookup</a>, Up: <a href="#TeX-support" accesskey="u" rel="up">TeX support</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Glyph-lookup-1"></a> +<h3 class="section">6.3 Glyph lookup</h3> -<h3 class="section">4.3 Glyph lookup</h3> +<a name="index-glyph-lookup"></a> +<a name="index-searching-for-glyphs"></a> +<a name="index-TeX-glyph-lookup"></a> -<p><a name="index-glyph-lookup-724"></a><a name="index-searching-for-glyphs-725"></a><a name="index-g_t_0040TeX_007b_007d-glyph-lookup-726"></a> -This section describes how Kpathsea searches for a bitmap font in GF or -PK format (or either) given a font name (e.g., ‘<samp><span class="samp">cmr10</span></samp>’) and a +<p>This section describes how Kpathsea searches for a bitmap font in GF or +PK format (or either) given a font name (e.g., ‘<samp>cmr10</samp>’) and a resolution (e.g., 600). - - <p>Here is an outline of the search strategy (details in the sections +</p> +<p>Here is an outline of the search strategy (details in the sections below) for a file <var>name</var> at resolution <var>dpi</var>. The search stops at the first successful lookup. - - <ol type=1 start=1> -<li>Look for an existing file <var>name</var>.<var>dpi</var><var>format</var> in the +</p> +<ol> +<li> Look for an existing file <var>name</var>.<var>dpi</var><var>format</var> in the specified format(s). - <li>If <var>name</var> is an alias for a file <var>f</var> in the fontmap -file <samp><span class="file">texfonts.map</span></samp>, look for <var>f</var>.<var>dpi</var>. +</li><li> If <var>name</var> is an alias for a file <var>f</var> in the fontmap +file <samp>texfonts.map</samp>, look for <var>f</var>.<var>dpi</var>. - <li>Run an external program (typically named ‘<samp><span class="samp">mktexpk</span></samp>’) to +</li><li> Run an external program (typically named ‘<samp>mktexpk</samp>’) to generate the font (see <a href="#mktex-scripts">mktex scripts</a>) - <li>Look for <var>fallback</var>.<var>dpi</var>, where <var>fallback</var> is some -last-resort font (typically ‘<samp><span class="samp">cmr10</span></samp>’). - </ol> - - <p><a name="index-tex_002dglyph_002ec-727"></a><a name="index-kpathsea_005ffind_005fglyph-728"></a>This is implemented in <code>kpathsea_find_glyph</code> in -<samp><span class="file">kpathsea/tex-glyph.c</span></samp>. - -<ul class="menu"> -<li><a accesskey="1" href="#Basic-glyph-lookup">Basic glyph lookup</a>: Features common to all glyph lookups. -<li><a accesskey="2" href="#Fontmap">Fontmap</a>: Aliases for fonts. -<li><a accesskey="3" href="#Fallback-font">Fallback font</a>: Resolutions and fonts of last resort. -</ul> - -<div class="node"> +</li><li> Look for <var>fallback</var>.<var>dpi</var>, where <var>fallback</var> is some +last-resort font (typically ‘<samp>cmr10</samp>’). +</li></ol> + +<a name="index-tex_002dglyph_002ec"></a> +<a name="index-kpathsea_005ffind_005fglyph"></a> +<p>This is implemented in <code>kpathsea_find_glyph</code> in +<samp>kpathsea/tex-glyph.c</samp>. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Basic-glyph-lookup" accesskey="1">Basic glyph lookup</a>:</td><td> </td><td align="left" valign="top">Features common to all glyph lookups. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Fontmap" accesskey="2">Fontmap</a>:</td><td> </td><td align="left" valign="top">Aliases for fonts. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Fallback-font" accesskey="3">Fallback font</a>:</td><td> </td><td align="left" valign="top">Resolutions and fonts of last resort. +</td></tr> +</table> + + +<hr> <a name="Basic-glyph-lookup"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Fontmap">Fontmap</a>, -Up: <a rel="up" accesskey="u" href="#Glyph-lookup">Glyph lookup</a> - +<div class="header"> +<p> +Next: <a href="#Fontmap" accesskey="n" rel="next">Fontmap</a>, Up: <a href="#Glyph-lookup" accesskey="u" rel="up">Glyph lookup</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Basic-glyph-lookup-1"></a> +<h4 class="subsection">6.3.1 Basic glyph lookup</h4> -<h4 class="subsection">4.3.1 Basic glyph lookup</h4> +<a name="index-basic-glyph-lookup"></a> +<a name="index-common-features-in-glyph-lookup"></a> -<p><a name="index-basic-glyph-lookup-729"></a><a name="index-common-features-in-glyph-lookup-730"></a> -When Kpathsea looks for a bitmap font <var>name</var> at resolution <var>dpi</var> +<p>When Kpathsea looks for a bitmap font <var>name</var> at resolution <var>dpi</var> in a format <var>format</var>, it first checks each directory in the search -path for a file ‘<samp><var>name</var><span class="samp">.</span><var>dpi</var><var>format</var></samp>’; for example, -‘<samp><span class="samp">cmr10.600pk</span></samp>’. Kpathsea looks for a PK file first, then a GF file. - - <p>If that fails, Kpathsea looks for -‘<samp><span class="samp">dpi</span><var>dpi</var><span class="samp">/</span><var>name</var><span class="samp">.</span><var>format</var></samp>’; for example, -‘<samp><span class="samp">dpi600/cmr10.pk</span></samp>’. This is how fonts are typically stored on +path for a file ‘<samp><var>name</var>.<var>dpi</var><var>format</var></samp>’; for example, +‘<samp>cmr10.600pk</samp>’. Kpathsea looks for a PK file first, then a GF file. +</p> +<p>If that fails, Kpathsea looks for +‘<samp>dpi<var>dpi</var>/<var>name</var>.<var>format</var></samp>’; for example, +‘<samp>dpi600/cmr10.pk</samp>’. This is how fonts are typically stored on filesystems (such as DOS) that permit only three-character extensions. - - <p><a name="index-tolerance-for-glyph-lookup-731"></a><a name="index-glyph-lookup-bitmap-tolerance-732"></a><a name="index-KPSE_005fBITMAP_005fTOLERANCE-733"></a>If that fails, Kpathsea looks for a font with a close-enough <var>dpi</var>. +</p> +<a name="index-tolerance-for-glyph-lookup"></a> +<a name="index-glyph-lookup-bitmap-tolerance"></a> +<a name="index-KPSE_005fBITMAP_005fTOLERANCE"></a> +<p>If that fails, Kpathsea looks for a font with a close-enough <var>dpi</var>. “Close enough” is defined by the macro <code>KPSE_BITMAP_TOLERANCE</code> in -<samp><span class="file">kpathsea/tex-glyph.h</span></samp> to be <var>dpi</var><code> / 500 + 1</code>. This is +<samp>kpathsea/tex-glyph.h</samp> to be <code><var>dpi</var> / 500 + 1</code>. This is slightly more than the 0.2% minimum allowed by the DVI standard -(<a href="<var>CTAN:</var>/dviware/driv-standard/level-0"><var>CTAN:</var>/dviware/driv-standard/level-0</a>). +(<a href="CTAN:/dviware/driv-standard/level-0">CTAN:/dviware/driv-standard/level-0</a>). +</p> -<div class="node"> +<hr> <a name="Fontmap"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Fallback-font">Fallback font</a>, -Previous: <a rel="previous" accesskey="p" href="#Basic-glyph-lookup">Basic glyph lookup</a>, -Up: <a rel="up" accesskey="u" href="#Glyph-lookup">Glyph lookup</a> - +<div class="header"> +<p> +Next: <a href="#Fallback-font" accesskey="n" rel="next">Fallback font</a>, Previous: <a href="#Basic-glyph-lookup" accesskey="p" rel="prev">Basic glyph lookup</a>, Up: <a href="#Glyph-lookup" accesskey="u" rel="up">Glyph lookup</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - -<h4 class="subsection">4.3.2 Fontmap</h4> - -<p><a name="index-fontmap-files-734"></a><a name="index-font-alias-files-735"></a><a name="index-aliases-for-fonts-736"></a> -<a name="index-texfonts_002emap-737"></a>If a bitmap font or metric file is not found with the original name (see -the previous section), Kpathsea looks through any <dfn>fontmap</dfn> files -for an <dfn>alias</dfn> for the original font name. These files are named -<samp><span class="file">texfonts.map</span></samp> and searched for along the <code>TEXFONTMAPS</code> -environment/config file variable. All <samp><span class="file">texfonts.map</span></samp> files that +<a name="Fontmap-1"></a> +<h4 class="subsection">6.3.2 Fontmap</h4> + +<a name="index-fontmap-files"></a> +<a name="index-font-alias-files"></a> +<a name="index-aliases-for-fonts"></a> + +<a name="index-texfonts_002emap"></a> +<p>If a bitmap font or metric file is not found with the original name (see +the previous section), Kpathsea looks through any <em>fontmap</em> files +for an <em>alias</em> for the original font name. These files are named +<samp>texfonts.map</samp> and searched for along the <code>TEXFONTMAPS</code> +environment/config file variable. All <samp>texfonts.map</samp> files that are found are read; earlier definitions override later ones. - - <p>This feature is intended to help in two respects: - - <ol type=1 start=1> - - <li><a name="index-fontnames_002c-arbitrary-length-738"></a>An alias name is limited in length only by available memory, not by your -filesystem. Therefore, if you want to ask for ‘<samp><span class="samp">Times-Roman</span></samp>’ -instead of <samp><span class="file">ptmr</span></samp>, you can (you get ‘<samp><span class="samp">ptmr8r</span></samp>’). - - <li><a name="index-circle-fonts-739"></a><a name="index-lcircle10-740"></a>A few fonts have historically had multiple names: specifically, -LaTeX's “circle font” has variously been known as <samp><span class="file">circle10</span></samp>, -<samp><span class="file">lcircle10</span></samp>, and <samp><span class="file">lcirc10</span></samp>. Aliases can make all the names +</p> +<p>This feature is intended to help in two respects: +</p> +<ol> +<li> <a name="index-fontnames_002c-arbitrary-length"></a> +An alias name is limited in length only by available memory, not by your +filesystem. Therefore, if you want to ask for ‘<samp>Times-Roman</samp>’ +instead of <samp>ptmr</samp>, you can (you get ‘<samp>ptmr8r</samp>’). + +</li><li> <a name="index-circle-fonts"></a> +<a name="index-lcircle10"></a> +A few fonts have historically had multiple names: specifically, +LaTeX’s “circle font” has variously been known as <samp>circle10</samp>, +<samp>lcircle10</samp>, and <samp>lcirc10</samp>. Aliases can make all the names equivalent, so that it no longer matters what the name of the installed file is; TeX documents will find their favorite name. - </ol> - - <p>The format of fontmap files is straightforward: - - -<a name="index-comments_002c-in-fontmap-files-741"></a> -<ul><li>Comments start with ‘<samp><span class="samp">%</span></samp>’ and continue to the end of the line. -<a name="index-whitespace_002c-in-fontmap-files-742"></a><li>Blank lines are ignored. -<li>Each nonblank line is broken up into a series of <dfn>words</dfn>: - a sequence of non-whitespace characters. -<a name="index-include-_0040r_007bfontmap-directive_007d-743"></a><li>If the first word is ‘<samp><span class="samp">include</span></samp>’, the second word is used as - a filename, and it is searched for and read. -<li>Otherwise, the first word on each line is the true filename; -<li>the second word is the alias; -<li>subsequent words are ignored. -</ul> +</li></ol> + +<p>The format of fontmap files is straightforward: +</p> +<ul> +<li> <a name="index-comments_002c-in-fontmap-files"></a> +Comments start with ‘<samp>%</samp>’ and continue to the end of the line. +</li><li> <a name="index-whitespace_002c-in-fontmap-files"></a> +Blank lines are ignored. +</li><li> Each nonblank line is broken up into a series of <em>words</em>: + a sequence of non-whitespace characters. +</li><li> <a name="index-include-fontmap-directive"></a> +If the first word is ‘<samp>include</samp>’, the second word is used as + a filename, and it is searched for and read. +</li><li> Otherwise, the first word on each line is the true filename; +</li><li> the second word is the alias; +</li><li> subsequent words are ignored. +</li></ul> - <p>If an alias has an extension, it matches only those files with that +<p>If an alias has an extension, it matches only those files with that extension; otherwise, it matches anything with the same root, regardless -of extension. For example, an alias ‘<samp><span class="samp">foo.tfm</span></samp>’ matches only when -<samp><span class="file">foo.tfm</span></samp> is being searched for; but an alias ‘<samp><span class="samp">foo</span></samp>’ matches -<samp><span class="file">foo.vf</span></samp>, <samp><span class="file">foo.600pk</span></samp>, etc. - - <p>As an example, here is an excerpt from the <samp><span class="file">texfonts.map</span></samp> in the -Web2c distribution. It makes the circle fonts equivalent and includes -automatically generated maps for most PostScript fonts available from -various font suppliers. - -<pre class="example"> circle10 lcircle10 - circle10 lcirc10 - lcircle10 circle10 - lcircle10 lcirc10 - lcirc10 circle10 - lcirc10 lcircle10 - ... - include adobe.map - include apple.map - include bitstrea.map - ... -</pre> - <p>Fontmaps are implemented in the file <samp><span class="file">kpathsea/fontmap.c</span></samp>. +of extension. For example, an alias ‘<samp>foo.tfm</samp>’ matches only when +<samp>foo.tfm</samp> is being searched for; but an alias ‘<samp>foo</samp>’ matches +<samp>foo.vf</samp>, <samp>foo.600pk</samp>, etc. +</p> +<p>As an example, here is an excerpt from the <samp>texfonts.map</samp> in the +Web2c distribution. It makes the old and new names of the LaTeX +circle fonts equivalent. +</p> +<div class="example"> +<pre class="example">circle10 lcircle10 +circle10 lcirc10 +lcircle10 circle10 +lcircle10 lcirc10 +lcirc10 circle10 +lcirc10 lcircle10 +… +</pre></div> + +<p>Fontmaps are implemented in the file <samp>kpathsea/fontmap.c</samp>. The Fontname distribution has much more information on font naming -(see <a href="fontname.html#Introduction">Introduction</a>). +(see <cite><a href="fontname.html#Top">Filenames for TeX fonts</a></cite>). +</p> -<div class="node"> +<hr> <a name="Fallback-font"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Fontmap">Fontmap</a>, -Up: <a rel="up" accesskey="u" href="#Glyph-lookup">Glyph lookup</a> - +<div class="header"> +<p> +Previous: <a href="#Fontmap" accesskey="p" rel="prev">Fontmap</a>, Up: <a href="#Glyph-lookup" accesskey="u" rel="up">Glyph lookup</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - -<h4 class="subsection">4.3.3 Fallback font</h4> - -<p><a name="index-fallback-font-744"></a><a name="index-fallback-resolutions-745"></a><a name="index-font-of-last-resort-746"></a><a name="index-resolutions_002c-last_002dresort-747"></a><a name="index-last_002dresort-font-748"></a> -<a name="index-DVIPSSIZES-749"></a><a name="index-XDVISIZES-750"></a><a name="index-DVILJSIZES-751"></a><a name="index-TEXSIZES-752"></a><a name="index-default_005ftexsizes-753"></a>If a bitmap font cannot be found or created at the requested size, -Kpathsea looks for the font at a set of <dfn>fallback resolutions</dfn>. You -specify these resolutions as a colon-separated list (like search paths). +<a name="Fallback-font-1"></a> +<h4 class="subsection">6.3.3 Fallback font</h4> + +<a name="index-fallback-font"></a> +<a name="index-fallback-resolutions"></a> +<a name="index-font-of-last-resort"></a> +<a name="index-resolutions_002c-last_002dresort"></a> +<a name="index-last_002dresort-font"></a> + +<a name="index-DVIPSSIZES"></a> +<a name="index-XDVISIZES"></a> +<a name="index-DVILJSIZES"></a> +<a name="index-TEXSIZES"></a> +<a name="index-default_005ftexsizes"></a> +<p>If a bitmap font cannot be found or created at the requested size, +Kpathsea looks for the font at a set of <em>fallback resolutions</em>. You +specify these resolutions as a colon-separated list (like search paths). Kpathsea looks first for a program-specific environment variable (e.g., <code>DVIPSSIZES</code> for Dvipsk), then the environment variable <code>TEXSIZES</code>, then a default specified at compilation time (the Make variable <code>default_texsizes</code>). You can set this list to be empty if you prefer to find fonts at their stated size or not at all. - - <p><a name="index-cmr10_0040r_007b_002c-as-fallback-font_007d-754"></a><a name="index-kpathsea_005finit_005fprog-755"></a>Finally, if the font cannot be found even at the fallback resolutions, -Kpathsea looks for a fallback font, typically <samp><span class="file">cmr10</span></samp>. Programs +</p> +<a name="index-cmr10_002c-as-fallback-font"></a> +<a name="index-kpathsea_005finit_005fprog"></a> +<p>Finally, if the font cannot be found even at the fallback resolutions, +Kpathsea looks for a fallback font, typically <samp>cmr10</samp>. Programs must enable this feature by calling <code>kpathsea_init_prog</code> (see <a href="#Calling-sequence">Calling sequence</a>); the default is no fallback font. +</p> -<div class="node"> +<hr> <a name="Suppressing-warnings"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Glyph-lookup">Glyph lookup</a>, -Up: <a rel="up" accesskey="u" href="#TeX-support">TeX support</a> - +<div class="header"> +<p> +Next: <a href="#mktex-scripts" accesskey="n" rel="next">mktex scripts</a>, Previous: <a href="#Glyph-lookup" accesskey="p" rel="prev">Glyph lookup</a>, Up: <a href="#TeX-support" accesskey="u" rel="up">TeX support</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Suppressing-warnings-1"></a> +<h3 class="section">6.4 Suppressing warnings</h3> -<h3 class="section">4.4 Suppressing warnings</h3> +<a name="index-warnings_002c-suppressing"></a> +<a name="index-suppressing-warnings"></a> -<p><a name="index-warnings_002c-suppressing-756"></a><a name="index-suppressing-warnings-757"></a> -<a name="index-TEX_005fHUSH-758"></a>Kpathsea provides a way to suppress selected usually-harmless warnings; +<a name="index-TEX_005fHUSH-1"></a> +<p>Kpathsea provides a way to suppress selected usually-harmless warnings; this is useful at large sites where most users are not administrators, and thus the warnings are merely a source of confusion, not a help. To do this, you set the environment variable or configuration file value <code>TEX_HUSH</code> to a colon-separated list of values. Here are the possibilities: +</p> +<dl compact="compact"> +<dt>‘<samp>all</samp>’ +<a name="index-all"></a> +</dt> +<dd><p>Suppress everything possible. +</p> +</dd> +<dt>‘<samp>checksum</samp>’ +<a name="index-checksum"></a> +</dt> +<dd><a name="index-mismatched-checksum-warnings"></a> +<p>Suppress mismatched font checksum warnings. +</p> +</dd> +<dt>‘<samp>lostchar</samp>’ +<a name="index-lostchar"></a> +</dt> +<dd><a name="index-missing-character-warnings"></a> +<p>Suppress warnings when a character is missing from a font that a DVI or +VF file tries to typeset. +</p> +</dd> +<dt>‘<samp>none</samp>’ +<a name="index-none"></a> +</dt> +<dd><p>Don’t suppress any warnings. +</p> +</dd> +<dt>‘<samp>readable</samp>’ +<a name="index-readable"></a> +</dt> +<dd><a name="index-unreadable-file-warnings"></a> +<p>Suppress warnings about attempts to access a file whose permissions +render it unreadable. +</p> +</dd> +<dt>‘<samp>special</samp>’ +<a name="index-special"></a> +</dt> +<dd><a name="index-unknown-special-warnings"></a> +<a name="index-_005cspecial_002c-suppressing-warnings-about"></a> +<p>Suppresses warnings about an unimplemented or unparsable +‘<samp>\special</samp>’ command. +</p></dd> +</dl> - <dl> -<dt>‘<samp><span class="samp">all</span></samp>’<a name="index-all-759"></a><dd>Suppress everything possible. +<p><samp>tex-hush.c</samp> defines the function that checks the +variable value. Each driver implements its own checks where +appropriate. +</p> - <br><dt>‘<samp><span class="samp">checksum</span></samp>’<a name="index-checksum-760"></a><dd><a name="index-mismatched-checksum-warnings-761"></a>Suppress mismatched font checksum warnings. +<hr> +<a name="mktex-scripts"></a> +<div class="header"> +<p> +Previous: <a href="#Suppressing-warnings" accesskey="p" rel="prev">Suppressing warnings</a>, Up: <a href="#TeX-support" accesskey="u" rel="up">TeX support</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="mktex-scripts-1"></a> +<h3 class="section">6.5 <samp>mktex</samp> scripts</h3> - <br><dt>‘<samp><span class="samp">lostchar</span></samp>’<a name="index-lostchar-762"></a><dd><a name="index-missing-character-warnings-763"></a>Suppress warnings when a character is missing from a font that a DVI or -VF file tries to typeset. +<a name="index-mktex-scripts"></a> +<a name="index-scripts-for-file-creation"></a> - <br><dt>‘<samp><span class="samp">none</span></samp>’<a name="index-none-764"></a><dd>Don't suppress any warnings. +<a name="index-font-set_002c-infinite"></a> +<a name="index-dynamic-creation-of-files"></a> +<a name="index-Sauter-fonts_002c-and-dynamic-source-creation"></a> +<a name="index-EC-fonts_002c-and-dynamic-source-creation"></a> +<p>If Kpathsea cannot otherwise find a file, for some file types it is +configured by default to invoke an external program to create it +dynamically (see <a href="#mktex-configuration">mktex configuration</a>). These are collectively +known as <em><code>mktex</code> scripts</em>, since most of them are named +<code>mktex...</code>. +</p> +<p>For example, this is useful for fonts (bitmaps, TFM’s, and +arbitrarily-sizable Metafont sources such as the Sauter and EC fonts), +since any given document can use fonts never before referenced. +Building all fonts in advance is therefore impractical, if not +impossible. +</p> +<p>It is also useful for the TeX ‘<samp>.fmt</samp>’ (and Metafont +‘<samp>.base</samp>’ and Metapost ‘<samp>.mem</samp>’ files, see <a href="Web2c.html#Memory-dumps">Memory +dumps</a> in <cite>web2c</cite>), where pre-generating every format consumes a +lot of both time and space. +</p> +<p>The script is passed the name of the file to create and possibly other +arguments, as explained below. It must echo the full pathname of the +file it created (and nothing else) to standard output; it can write +diagnostics to standard error. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#mktex-configuration" accesskey="1">config</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#mktex-script-names" accesskey="2">names</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#mktex-script-arguments" accesskey="3">args</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> +<a name="mktex-configuration"></a> +<div class="header"> +<p> +Next: <a href="#mktex-script-names" accesskey="n" rel="next">mktex script names</a>, Up: <a href="#mktex-scripts" accesskey="u" rel="up">mktex scripts</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="mktex-configuration-1"></a> +<h4 class="subsection">6.5.1 <samp>mktex</samp> configuration</h4> - <br><dt>‘<samp><span class="samp">readable</span></samp>’<a name="index-readable-765"></a><dd><a name="index-unreadable-file-warnings-766"></a>Suppress warnings about attempts to access a file whose permissions -render it unreadable. +<a name="index-mktex-script-configuration"></a> +<a name="index-configuration-of-mktex-scripts"></a> +<a name="index-enabling-mktex-scripts"></a> +<a name="index-disabling-mktex-scripts"></a> - <br><dt>‘<samp><span class="samp">special</span></samp>’<a name="index-special-767"></a><dd><a name="index-unknown-special-warnings-768"></a><a name="index-g_t_005cspecial_0040r_007b_002c-suppressing-warnings-about_007d-769"></a>Suppresses warnings about an unimplemented or unparsable -‘<samp><span class="samp">\special</span></samp>’ command. +<p>The list of file types and program names that can run an external +program to create missing files is listed in the next section. In the +absence of <code>configure</code> options specifying otherwise, everything +but <samp>mktextex</samp> will be enabled by default. The <code>configure</code> +options to change the defaults are: +</p> +<a name="index-configure-options-for-mktex-scripts"></a> +<a name="index-_002d_002dwithout_002dmktexfmt_002ddefault"></a> +<a name="index-_002d_002dwithout_002dmktexmf_002ddefault"></a> +<a name="index-_002d_002dwithout_002dmktexocp_002ddefault"></a> +<a name="index-_002d_002dwithout_002dmktexofm_002ddefault"></a> +<a name="index-_002d_002dwithout_002dmktexpk_002ddefault"></a> +<a name="index-_002d_002dwithout_002dmktextfm_002ddefault"></a> +<a name="index-_002d_002dwith_002dmktextex_002ddefault"></a> +<div class="example"> +<pre class="example">--without-mktexfmt-default +--without-mktexmf-default +--without-mktexocp-default +--without-mktexofm-default +--without-mktexpk-default +--without-mktextfm-default +--with-mktextex-default +</pre></div> + +<p>The <code>configure</code> setting is overridden if the environment variable +or configuration file value named for the script is set; e.g., +<samp>MKTEXPK</samp> (see <a href="#mktex-script-arguments">mktex script arguments</a>). +</p> +<a name="index-fmtutils_002ecnf"></a> +<p><code>mktexfmt</code> reads a file <samp>fmtutil.cnf</samp>, typically located in +<samp>texmf/web2c/</samp> to glean its configuration information. The rest +of the files and features in this section are primarily intended for +the font generation scripts. +</p> +<a name="index-mktex_002ecnf-1"></a> +<a name="index-mktex_002eopt"></a> +<a name="index-site-overrides-for-mktex_2026"></a> +<p>As distributed, all the scripts source a file +<samp>texmf/web2c/mktex.cnf</samp> if it exists, so you can override various +defaults. +See <samp>mktex.opt</samp>, for instance, which defines the default mode, +resolution, some special directory names, etc. If you prefer not to +change the distributed scripts, you can simply create <samp>mktex.cnf</samp> +with the appropriate definitions (you do not need to create it if you +have nothing to put in it). <samp>mktex.cnf</samp> has no special syntax; +it’s an arbitrary Bourne shell script. The distribution contains a +sample <samp>mktex.cnf</samp> for you to copy and modify as you please (it +is not installed anywhere). +</p> +<a name="index-mktex_002eopt-1"></a> +<a name="index-MT_005fFEATURES"></a> +<p>In addition, you can configure a number of features with the +<code>MT_FEATURES</code> variable, which you can define: +</p> +<ul> +<li> in <samp>mktex.opt</samp>, as just mentioned; + +</li><li> by editing the file <samp>mktex.opt</samp>, either before ‘<samp>make +install</samp>’ (in the source hierarchy) or after (in the installed +hierarchy); + +</li><li> or in the environment. +</li></ul> + +<p>If none of the options below are enabled, <code>mktexpk</code>, +<code>mktextfm</code>, and <code>mktexmf</code> follow the following procedure to +decide where fonts should be installed. Find the tree where the font’s +sources are, and test the permissions of the ‘<samp>fonts</samp>’ directory of +that tree to determine whether it is writable. If it is, put the files +in the tree in appropriate locations. If it isn’t writable, see whether +the tree is a system tree (named in <code>SYSTEXMF</code>). If so, the +<code>VARTEXFONTS</code> tree is used. In all other cases the working +directory is used. +</p> +<p>The ‘<samp>appendonlydir</samp>’ option is enabled by default. +</p> +<dl compact="compact"> +<dt>‘<samp>appendonlydir</samp>’ +<a name="index-appendonlydir"></a> +</dt> +<dd><a name="index-directories_002c-making-append_002donly"></a> +<a name="index-mktexdir"></a> +<p>Tell <code>mktexdir</code> to create directories append-only, i.e., set +their sticky bit (see <a href="http://www.gnu.org/software/coreutils/manual/coreutils#Mode-Structure">Mode Structure</a> in <cite>GNU Core +Utilities</cite>). This feature is silently ignored on non-Unix platforms +(e.g. Windows/NT and MS-DOS) which don’t support similar functionality. +This feature is enabled by default. +</p> +</dd> +<dt>‘<samp>dosnames</samp>’ +<a name="index-dosnames"></a> +</dt> +<dd><a name="index-8_002e3-filenames_002c-using"></a> +<a name="index-DOS-compatible-names"></a> +<a name="index-dpinnn-directories"></a> +<p>Use 8.3 names; e.g., <samp>dpi600/cmr10.pk</samp> instead of +<samp>cmr10.600pk</samp>. Note that this feature only affects filenames that +would otherwise clash with other TeX-related filenames; <samp>mktex</samp> +scripts do nothing about filenames which exceed the 8+3 MS-DOS limits +but remain unique when truncated (by the OS) to these limits, and nether +do the scripts care about possible clashes with files which aren’t +related with TeX. For example, <samp>cmr10.600pk</samp> would clash with +<samp>cmr10.600gf</samp> and is therefore changed when ‘<samp>dosnames</samp>’ is in +effect, but <samp>mf.pool</samp> and <samp>mp.base</samp> don’t clash with any +TeX-related files and are therefore unchanged. +</p> +<p>This feature is turned on by default on MS-DOS. If you do not wish +‘<samp>dosnames</samp>’ to be set on an MS-DOS platform, you need to set the +<code>MT_FEATURES</code> environment variable to a value that doesn’t include +‘<samp>dosnames</samp>’. You can also change the default setting by editing +<samp>mktex.opt</samp>, but only if you use the <samp>mktex</samp> shell scripts; +the emulation programs don’t consult <samp>mktex.opt</samp>. +</p> +</dd> +<dt>‘<samp>fontmaps</samp>’ +<a name="index-fontmaps-1"></a> +</dt> +<dd><a name="index-fontmaps"></a> +<a name="index-fontname"></a> +<p>Instead of deriving the location of a font in the destination tree from +the location of the sources, the aliases and directory names from the +Fontname distribution are used. (see <a href="fontname.html#Top">Introduction</a> in <cite>Fontname</cite>). +</p> +</dd> +<dt>‘<samp>nomfdrivers</samp>’ +<a name="index-nomfdrivers"></a> +</dt> +<dd><a name="index-metafont-driver-files"></a> +<p>Let mktexpk and mktextfm create metafont driver files in a temporary +directory. These will be used for just one metafont run and not +installed permanently. +</p> +</dd> +<dt>‘<samp>nomode</samp>’ +<a name="index-nomode"></a> +</dt> +<dd><a name="index-mode-directory_002c-omitting"></a> +<p>Omit the directory level for the mode name; this is fine as long as +you generate fonts for only one mode. +</p> +</dd> +<dt>‘<samp>stripsupplier</samp>’ +<a name="index-stripsupplier"></a> +</dt> +<dd><a name="index-supplier-directory_002c-omitting"></a> +<p>Omit the font supplier name directory level. +</p> +</dd> +<dt>‘<samp>striptypeface</samp>’ +<a name="index-striptypeface"></a> +</dt> +<dd><a name="index-typeface-directory_002c-omitting"></a> +<p>Omit the font typeface name directory level. +</p> +</dd> +<dt>‘<samp>strip</samp>’ +<a name="index-strip"></a> +</dt> +<dd><a name="index-supplier-directory_002c-omitting-1"></a> +<a name="index-typeface-directory_002c-omitting-1"></a> +<p>Omit the font supplier and typeface name directory levels. This feature +is deprecated in favour of ‘<samp>stripsupplier</samp>’ and ‘<samp>striptypeface</samp>’. +</p> +</dd> +<dt>‘<samp>varfonts</samp>’ +<a name="index-varfonts"></a> +</dt> +<dd><a name="index-_002fvar_002ftmp_002ftexfonts"></a> +<a name="index-VARTEXFONTS"></a> +<a name="index-Linux-File-System-Standard"></a> +<p>When this option is enabled, fonts that would otherwise be written in +system texmf tree go to the <code>VARTEXFONTS</code> tree instead. The +default value in <samp>kpathsea/Makefile.in</samp> is +<samp>/var/tmp/texfonts</samp>. The <cite>Linux File System Standard</cite> +recommends <samp>/var/tex/fonts</samp>. +</p> +<a name="index-USE_005fVARTEXFONTS"></a> +<p>The ‘<samp>varfonts</samp>’ setting in <code>MT_FEATURES</code> is overridden by the +<code>USE_VARTEXFONTS</code> environment variable: if set to ‘<samp>1</samp>’, the +feature is enabled, and if set to ‘<samp>0</samp>’, the feature is disabled. +</p> +</dd> +<dt>‘<samp>texmfvar</samp>’ +<a name="index-texmfvar"></a> +</dt> +<dd><a name="index-TEXMFVAR"></a> +<p>Force generated files that would go into a system tree (as defined by +<code>SYSTEXMF</code>) into <code>TEXMFVAR</code>. Starting with teTeX-3.0, the +variable <code>TEXMFVAR</code> is always set. The ‘<samp>varfonts</samp>’ feature takes +precedence if also set. +</p> +<a name="index-USE_005fTEXMFVAR"></a> +<p>The ‘<samp>texmfvar</samp>’ setting in <code>MT_FEATURES</code> is overridden by the +<code>USE_TEXMFVAR</code> environment variable: if set to ‘<samp>1</samp>’, the +feature is enabled, and if set to ‘<samp>0</samp>’, the feature is disabled. +</p></dd> </dl> -<p class="noindent"><samp><span class="file">tex-hush.c</span></samp> defines the function that checks the -variable value. Each driver implements its own checks where -appropriate. -<div class="node"> -<a name="Programming"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Index">Index</a>, -Previous: <a rel="previous" accesskey="p" href="#TeX-support">TeX support</a>, -Up: <a rel="up" accesskey="u" href="#Top">Top</a> +<hr> +<a name="mktex-script-names"></a> +<div class="header"> +<p> +Next: <a href="#mktex-script-arguments" accesskey="n" rel="next">mktex script arguments</a>, Previous: <a href="#mktex-configuration" accesskey="p" rel="prev">mktex configuration</a>, Up: <a href="#mktex-scripts" accesskey="u" rel="up">mktex scripts</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="mktex-script-names-1"></a> +<h4 class="subsection">6.5.2 <samp>mktex</samp> script names</h4> + +<a name="index-mktex-script-names"></a> +<a name="index-names-for-mktex-scripts"></a> + +<p>The following table shows the default name of the script for each +of the file types which support runtime generation. +</p> +<dl compact="compact"> +<dt><samp>mktexfmt</samp></dt> +<dd><a name="index-mktexfmt"></a> +<a name="index-fmtutil"></a> +<p>(‘<samp>.fmt</samp>’, ‘<samp>.base</samp>’, ‘<samp>.mem</samp>’) TeX/Metafont/MetaPost +formats. This script is also named <code>fmtutil</code>, and reads +<samp>fmtutil.cnf</samp> for configuration information. +</p> +</dd> +<dt><samp>mktexmf</samp></dt> +<dd><a name="index-mktexmf"></a> +<p>(‘<samp>.mf</samp>’) Metafont input files. +</p> +</dd> +<dt><samp>mkocp</samp></dt> +<dd><a name="index-mkocp"></a> +<p>(‘<samp>.ocp</samp>’) Omega compiled process files. +</p> +</dd> +<dt><samp>mkofm</samp></dt> +<dd><a name="index-mkofm"></a> +<p>(‘<samp>.ofm</samp>’) Omega font metric files. +</p> +</dd> +<dt><samp>mktexpk</samp></dt> +<dd><a name="index-mktexpk"></a> +<p>(‘<samp>pk</samp>’) Glyph fonts. +</p> +</dd> +<dt><samp>mktextex</samp></dt> +<dd><a name="index-mktextex"></a> +<p>(‘<samp>.tex</samp>’) TeX input files (disabled by default). +</p> +</dd> +<dt><samp>mktextfm</samp></dt> +<dd><a name="index-mktextfm"></a> +<p>(‘<samp>.tfm</samp>’) TFM files. +</p></dd> +</dl> + +<a name="index-DVIPSMAKEPK"></a> +<a name="index-XDVIMAKEPK"></a> +<a name="index-DVILJMAKEPK"></a> +<p>These names can be overridden by an environment variable specific +to the program—for example, <code>DVIPSMAKEPK</code> for Dvipsk. +</p> +<a name="index-missfont_002elog"></a> +<a name="index-failed-mktex_2026-script-invocation"></a> +<p>If a <code>mktex…</code> script fails, the invocation is appended to a +file <samp>missfont.log</samp> (by default) in the current directory. You can +then execute the log file to create the missing files after fixing the +problem. +</p> +<a name="index-TEXMFOUTPUT"></a> +<a name="index-MISSFONT_005fLOG"></a> +<p>If the current directory is not writable and the environment variable or +configuration file value <code>TEXMFOUTPUT</code> is set, its value is +used. Otherwise, nothing is written. The name ‘<samp>missfont.log</samp>’ is +overridden by the <code>MISSFONT_LOG</code> environment variable or +configuration file value. +</p> +<hr> +<a name="mktex-script-arguments"></a> +<div class="header"> +<p> +Previous: <a href="#mktex-script-names" accesskey="p" rel="prev">mktex script names</a>, Up: <a href="#mktex-scripts" accesskey="u" rel="up">mktex scripts</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="mktex-script-arguments-1"></a> +<h4 class="subsection">6.5.3 <samp>mktex</samp> script arguments</h4> -<h2 class="chapter">5 Programming</h2> +<a name="index-arguments-to-mktex"></a> -<p>This chapter is for programmers who wish to use Kpathsea. -See <a href="#Introduction">Introduction</a>, for the conditions under which you may do so. +<p>The first argument to a <samp>mktex</samp> script is always the name +of the file to be created. +</p> +<p>In the default <samp>mktexpk</samp> implementation, additional arguments may +also be passed: +</p> +<dl compact="compact"> +<dt>‘<samp>--dpi <var>num</var></samp>’</dt> +<dd><p>Sets the resolution of the generated font to <var>num</var>. +</p></dd> +<dt>‘<samp>--mfmode <var>name</var></samp>’</dt> +<dd><p>Sets the Metafont mode to <var>name</var>. +</p></dd> +<dt>‘<samp>--bdpi <var>num</var></samp>’</dt> +<dd><p>Sets the “base dpi” for the font. This must match the mode being +used. +</p></dd> +<dt>‘<samp>--mag <var>string</var></samp>’</dt> +<dd><p>A “magstep” string suitable for the Metafont <code>mag</code> variable. +This must match the combination of <var>bdpi</var> and <var>dpi</var> being used. +</p></dd> +<dt>‘<samp>--destdir <var>string</var></samp>’</dt> +<dd><p>A directory name. If the directory is absolute, it is used as-is. +Otherwise, it is appended to the root destination directory set in the +script. +</p></dd> +</dl> -<ul class="menu"> -<li><a accesskey="1" href="#Programming-overview">Overview</a>: Introduction. -<li><a accesskey="2" href="#Calling-sequence">Calling sequence</a>: Specifics of what to call. -<li><a accesskey="3" href="#Program_002dspecific-files">Program-specific files</a>: How to handle these. -<li><a accesskey="4" href="#Programming-with-config-files">Config</a>: Getting info from texmf.cnf. -</ul> -<div class="node"> -<a name="Programming-overview"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Calling-sequence">Calling sequence</a>, -Up: <a rel="up" accesskey="u" href="#Programming">Programming</a> +<hr> +<a name="Programming"></a> +<div class="header"> +<p> +Next: <a href="#Reporting-bugs" accesskey="n" rel="next">Reporting bugs</a>, Previous: <a href="#TeX-support" accesskey="p" rel="prev">TeX support</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Programming-1"></a> +<h2 class="chapter">7 Programming</h2> + +<p>This chapter is for programmers who wish to use Kpathsea. +See <a href="#Introduction">Introduction</a>, for the conditions under which you may do so. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Programming-overview" accesskey="1">Overview</a>:</td><td> </td><td align="left" valign="top">Introduction. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Calling-sequence" accesskey="2">Calling sequence</a>:</td><td> </td><td align="left" valign="top">Specifics of what to call. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Program_002dspecific-files" accesskey="3">Program-specific files</a>:</td><td> </td><td align="left" valign="top">How to handle these. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Programming-with-config-files" accesskey="4">Config</a>:</td><td> </td><td align="left" valign="top">Getting info from texmf.cnf. +</td></tr> +</table> + + +<hr> +<a name="Programming-overview"></a> +<div class="header"> +<p> +Next: <a href="#Calling-sequence" accesskey="n" rel="next">Calling sequence</a>, Up: <a href="#Programming" accesskey="u" rel="up">Programming</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Programming-overview-1"></a> +<h3 class="section">7.1 Programming overview</h3> -<h3 class="section">5.1 Programming overview</h3> +<a name="index-programming-overview"></a> +<a name="index-overview-of-programming-with-Kpathsea"></a> -<p><a name="index-programming-overview-770"></a><a name="index-overview-of-programming-with-Kpathsea-771"></a> -Aside from this manual, your best source of information is the source +<p>Aside from this manual, your best source of information is the source to the programs that use Kpathsea (see <a href="#Introduction">Introduction</a>). Of those, -Dviljk is probably the simplest, and hence a good place to start. +Dviljk is probably the simplest, and hence a good place to start. Xdvik adds VF support and the complication of X resources. Dvipsk adds the complication of its own config files. Web2c is source code I also maintain, so it uses Kpathsea rather straightforwardly, but is of course complicated by the Web to C translation. Finally, Kpsewhich is a small utility program whose sole purpose is to exercise the main path-searching functionality. - - <p><a name="index-re_002dentrant-API-772"></a><a name="index-API_002c-re_002dentrant-773"></a>When looking at these program sources, you should know that previous +</p> +<a name="index-re_002dentrant-API"></a> +<a name="index-API_002c-re_002dentrant"></a> +<p>When looking at these program sources, you should know that previous versions of the library had a different programming interface, to support re-entrancy. In that interface the library function names were prefixed with <code>kpse_</code> instead of <code>kpathsea_</code>, and they did not need an instance variable as first argument. This change was made in 2009. Some of the programs mentioned above may still be using the previous interface. - - <p><a name="index-pathsearch_002eh-774"></a><a name="index-tex_002dfile_002eh-775"></a><a name="index-tex_002dglyph_002eh-776"></a><a name="index-kpathsea_002eh-777"></a>Beyond these examples, the <samp><span class="file">.h</span></samp> files in the Kpathsea source -describe the interfaces and functionality (and of course the <samp><span class="file">.c</span></samp> -files define the actual routines, which are the ultimate documentation). -<samp><span class="file">pathsearch.h</span></samp> declares the basic searching routine. -<samp><span class="file">tex-file.h</span></samp> and <samp><span class="file">tex-glyph.h</span></samp> define the interfaces for +</p> +<a name="index-pathsearch_002eh"></a> +<a name="index-tex_002dfile_002eh"></a> +<a name="index-tex_002dglyph_002eh"></a> +<a name="index-kpathsea_002eh"></a> +<p>Beyond these examples, the <samp>.h</samp> files in the Kpathsea source +describe the interfaces and functionality (and of course the <samp>.c</samp> +files define the actual routines, which are the ultimate documentation). +<samp>pathsearch.h</samp> declares the basic searching routine. +<samp>tex-file.h</samp> and <samp>tex-glyph.h</samp> define the interfaces for looking up particular kinds of files. In view of the way the headers depend on each other, it is recommended to use <code>#include <kpathsea/kpathsea.h></code>, which includes every Kpathsea header. - - <p><a name="index-config_002eh-778"></a><a name="index-c_002dauto_002eh-779"></a>If you want to include only specific headers, you should still consider -including <samp><span class="file">kpathsea/config.h</span></samp> before including any other Kpathsea +</p> +<a name="index-config_002eh"></a> +<a name="index-c_002dauto_002eh"></a> +<p>If you want to include only specific headers, you should still consider +including <samp>kpathsea/config.h</samp> before including any other Kpathsea header, as it provides symbols used in the other headers. Note that -<samp><span class="file">kpathsea/config.h</span></samp> includes <samp><span class="file">kpathsea/c-auto.h</span></samp>, which is +<samp>kpathsea/config.h</samp> includes <samp>kpathsea/c-auto.h</samp>, which is generated by Autoconf. - - <p><a name="index-file-types_002c-registering-new-780"></a>The library provides no way for an external program to register new file -types: <samp><span class="file">tex-file.[ch]</span></samp> must be modified to do this. For example, +</p> +<a name="index-file-types_002c-registering-new"></a> +<p>The library provides no way for an external program to register new file +types: <samp>tex-file.[ch]</samp> must be modified to do this. For example, Kpathsea has support for looking up Dvips config files, even though no program other than Dvips will likely ever want to do so. I felt this was acceptable, since along with new file types should also come new -defaults in <samp><span class="file">texmf.cnf</span></samp> (and its descendant <samp><span class="file">paths.h</span></samp>), since -it's simplest for users if they can modify one configuration file for +defaults in <samp>texmf.cnf</samp> (and its descendant <samp>paths.h</samp>), since +it’s simplest for users if they can modify one configuration file for all kinds of paths. - - <p>Kpathsea does not parse any formats itself; it barely opens any files. +</p> +<p>Kpathsea does not parse any formats itself; it barely opens any files. Its primary purpose is to return filenames. The GNU font utilities does contain libraries to read TFM, GF, and PK files, as do the programs above, of course. +</p> -<div class="node"> +<hr> <a name="Calling-sequence"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Program_002dspecific-files">Program-specific files</a>, -Previous: <a rel="previous" accesskey="p" href="#Programming-overview">Programming overview</a>, -Up: <a rel="up" accesskey="u" href="#Programming">Programming</a> - +<div class="header"> +<p> +Next: <a href="#Program_002dspecific-files" accesskey="n" rel="next">Program-specific files</a>, Previous: <a href="#Programming-overview" accesskey="p" rel="prev">Programming overview</a>, Up: <a href="#Programming" accesskey="u" rel="up">Programming</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - -<h3 class="section">5.2 Calling sequence</h3> - -<p><a name="index-programming-with-Kpathsea-781"></a><a name="index-calling-sequence-782"></a> -The typical way to use Kpathsea in your program goes something like this: - - <ol type=1 start=1> - - <li><a name="index-kpathsea_005fnew-783"></a>Call <code>kpathsea_new</code> to create a new library instance. This variable -must be passed as the first argument to all the following library functions. +<a name="Calling-sequence-1"></a> +<h3 class="section">7.2 Calling sequence</h3> + +<a name="index-programming-with-Kpathsea"></a> +<a name="index-calling-sequence"></a> + +<p>The typical way to use Kpathsea in your program goes something like this: +</p> +<ol> +<li> <a name="index-kpathsea_005fnew"></a> +Call <code>kpathsea_new</code> to create a new library instance. This variable +must be passed as the first argument to all the following library functions. The rest of this manual will be using <code>kpse</code> as a placeholder for the name of this variable. - <li><a name="index-kpathsea_005fset_005fprogram_005fname-784"></a><a name="index-argv_005b0_005d-785"></a>Call <code>kpathsea_set_program_name</code> with <code>argv[0]</code> as the second +</li><li> <a name="index-kpathsea_005fset_005fprogram_005fname"></a> +<a name="index-argv_005b0_005d"></a> +Call <code>kpathsea_set_program_name</code> with <code>argv[0]</code> as the second argument; the third argument is a string or <code>NULL</code>. The third argument is used by Kpathsea as the program name for the -<code>.</code><var>program</var> feature of config files (see <a href="#Config-files">Config files</a>). +<code>.<var>program</var></code> feature of config files (see <a href="#Config-files">Config files</a>). If the third argument is <code>NULL</code>, the value of the second argument is used. This function must be called before any other use of the Kpathsea library. - <p><a name="index-kpse_002d_003einvocation_005fname-786"></a><a name="index-kpse_002d_003einvocation_005fshort_005fname-787"></a><a name="index-kpse_002d_003eprogram_005fname-788"></a><a name="index-error-message-macros-789"></a><code>kpathsea_set_program_name</code> always sets the variables -<code>kpse->invocation_name</code> and <code>kpse->invocation_short_name</code>. +<a name="index-kpse_002d_003einvocation_005fname"></a> +<a name="index-kpse_002d_003einvocation_005fshort_005fname"></a> +<a name="index-kpse_002d_003eprogram_005fname"></a> +<a name="index-error-message-macros"></a> +<p><code>kpathsea_set_program_name</code> always sets the variables +<code>kpse->invocation_name</code> and <code>kpse->invocation_short_name</code>. These variables are used in the error message macros defined in -<samp><span class="file">kpathsea/lib.h</span></samp>. It sets the variable +<samp>kpathsea/lib.h</samp>. It sets the variable <code>kpse->program_name</code> to the program name it uses. - - <p><a name="index-KPATHSEA_005fDEBUG-790"></a>It also initializes debugging options based on the environment +</p> +<a name="index-KPATHSEA_005fDEBUG"></a> +<p>It also initializes debugging options based on the environment variable <code>KPATHSEA_DEBUG</code> (if that is set). - - <p><a name="index-SELFAUTOLOC-791"></a><a name="index-SELFAUTODIR-792"></a><a name="index-SELFAUTOPARENT-793"></a><a name="index-symlinks_002c-resolving-794"></a><a name="index-expanding-symlinks-795"></a>Finally, it sets the environment variables <code>SELFAUTOLOC</code>, <code>SELFAUTODIR</code> +</p> +<a name="index-SELFAUTOLOC"></a> +<a name="index-SELFAUTODIR"></a> +<a name="index-SELFAUTOPARENT"></a> +<a name="index-symlinks_002c-resolving"></a> +<a name="index-expanding-symlinks"></a> +<p>Finally, it sets the environment variables <code>SELFAUTOLOC</code>, <code>SELFAUTODIR</code> and <code>SELFAUTOPARENT</code> to the location, parent and grandparent -directory of the executable, removing <samp><span class="file">.</span></samp> and <samp><span class="file">..</span></samp> path +directory of the executable, removing <samp>.</samp> and <samp>..</samp> path elements and resolving symbolic links. These are used in the default configuration file to allow people to invoke TeX from anywhere. You -can use ‘<samp><span class="samp">kpsewhich --expand-var=\$SELFAUTOLOC</span></samp>’, etc., to see the +can use ‘<samp>kpsewhich --expand-var=\$SELFAUTOLOC</samp>’, etc., to see the values. - - <li><a name="index-kpse_002d_003edebug-_0040r_007bvariable_007d-796"></a><a name="index-debugging-options_002c-in-Kpathsea_002dusing-program-797"></a>Set debugging options. See <a href="#Debugging">Debugging</a>. If your program doesn't have a +</p> +</li><li> <a name="index-kpse_002d_003edebug-variable"></a> +<a name="index-debugging-options_002c-in-Kpathsea_002dusing-program"></a> +Set debugging options. See <a href="#Debugging">Debugging</a>. If your program doesn’t have a debugging option already, you can define one and set <code>kpse->debug</code> to the number that the user supplies (as in Dviljk and Web2c), or you can just omit this altogether (people can always set <code>KPATHSEA_DEBUG</code>). If you do have runtime debugging already, you -need to merge Kpathsea's options with yours (as in Dvipsk and Xdvik). +need to merge Kpathsea’s options with yours (as in Dvipsk and Xdvik). - <li><a name="index-client_005fpath-_0040r_007bin-_0040code_007bkpse_002d_003eformat_005finfo_007d_007d-798"></a><a name="index-kpse_002d_003eformat_005finfo-799"></a><a name="index-resident_002ec-800"></a><a name="index-config-files_002c-for-Kpathsea_002dusing-programs-801"></a>If your program has its own configuration files that can define search +</li><li> <a name="index-client_005fpath-in-kpse_002d_003eformat_005finfo"></a> +<a name="index-kpse_002d_003eformat_005finfo"></a> +<a name="index-resident_002ec"></a> +<a name="index-config-files_002c-for-Kpathsea_002dusing-programs"></a> +If your program has its own configuration files that can define search paths, you should assign those paths to the <code>client_path</code> member in the appropriate element of the <code>kpse->format_info</code> array. (This -array is indexed by file type; see <samp><span class="file">tex-file.h</span></samp>.) See -<samp><span class="file">resident.c</span></samp> in Dvipsk for an example. +array is indexed by file type; see <samp>tex-file.h</samp>.) See +<samp>resident.c</samp> in Dvipsk for an example. - <li><a name="index-kpathsea_005finit_005fprog-802"></a><a name="index-proginit_002eh-803"></a>Call <code>kpathsea_init_prog</code> (see <samp><span class="file">proginit.c</span></samp>). It's useful for the +</li><li> <a name="index-kpathsea_005finit_005fprog-1"></a> +<a name="index-proginit_002eh"></a> +Call <code>kpathsea_init_prog</code> (see <samp>proginit.c</samp>). It’s useful for the DVI drivers, at least, but for other programs it may be simpler to extract the parts of it that actually apply. This does not initialize any paths, it just looks for (and sets) certain environment variables @@ -4050,946 +3373,1636 @@ and other random information. (A search path is always initialized at the first call to find a file of that type; this eliminates much useless work, e.g., initializing the BibTeX search paths in a DVI driver.) - <li><a name="index-kpathsea_005ffind_005ffile-804"></a>The routine to actually find a file of type <var>format</var> is -<samp><span class="file">kpathsea_find_file</span></samp>. You can call +</li><li> <a name="index-kpathsea_005ffind_005ffile-1"></a> +The routine to actually find a file of type <var>format</var> is +<samp>kpathsea_find_file</samp>. You can call <code>kpathsea_find_file</code> after doing only the first and second of the initialization steps above—Kpathsea automatically reads the -<samp><span class="file">texmf.cnf</span></samp> generic config files, looks for environment variables, +<samp>texmf.cnf</samp> generic config files, looks for environment variables, and does expansions at the first lookup. - <li>To find PK and/or GF bitmap fonts, the routine +</li><li> To find PK and/or GF bitmap fonts, the routine is <code>kpathsea_find_glyph</code>, defined in -<samp><span class="file">tex-glyph.h</span></samp>. This returns a structure in addition to the +<samp>tex-glyph.h</samp>. This returns a structure in addition to the resultant filename, because fonts can be found in so many ways. See the documentation in the source. - <li><a name="index-kpathsea_005fopen_005ffile-805"></a>To actually open a file, not just return a filename, call +</li><li> <a name="index-kpathsea_005fopen_005ffile"></a> +To actually open a file, not just return a filename, call <code>kpathsea_open_file</code>. This function takes the name to look up and a -Kpathsea file format as arguments, and returns the usual <code>FILE *</code>. +Kpathsea file format as arguments, and returns the usual <code>FILE *</code>. It always assumes the file must exist, and thus will search the disk if -necessary (unless the search path specified ‘<samp><span class="samp">!!</span></samp>’, etc.). In other +necessary (unless the search path specified ‘<samp>!!</samp>’, etc.). In other words, if you are looking up a VF or some other file that need not -exist, don't use this. +exist, don’t use this. - <li><a name="index-kpathsea_005fout_005fname_005fok-806"></a>TeX can write output files, via the <code>\openout</code> primitive; this opens +</li><li> <a name="index-kpathsea_005fout_005fname_005fok"></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>. Analogous +run a TeX program that overwrites, say, <samp>~/.rhosts</samp>. Analogous security holes exist for many other programs. To alleviate this, there is a configuration variable <code>openout_any</code>, which selects one of three levels -of security. When it is set to ‘<samp><span class="samp">a</span></samp>’ (for “any”), no restrictions are -imposed. When it is set to ‘<samp><span class="samp">r</span></samp>’ (for “restricted”), filenames -beginning with ‘<samp><span class="samp">.</span></samp>’ are disallowed (except <samp><span class="file">.tex</span></samp> because LaTeX -needs it). When it is set to ‘<samp><span class="samp">p</span></samp>’ (for “paranoid”) additional +of security. When it is set to ‘<samp>a</samp>’ (for “any”), no restrictions are +imposed. When it is set to ‘<samp>r</samp>’ (for “restricted”), filenames +beginning with ‘<samp>.</samp>’ are disallowed (except <samp>.tex</samp> because LaTeX +needs it). When it is set to ‘<samp>p</samp>’ (for “paranoid”) additional restrictions are imposed: an absolute filename must refer to a file in (a subdirectory) of <code>TEXMFOUTPUT</code>, and any attempt to go up a directory -level is forbidden (that is, paths may not contain a ‘<samp><span class="samp">..</span></samp>’ component). -The paranoid setting is the default. (For backwards compatibility, ‘<samp><span class="samp">y</span></samp>’ -and ‘<samp><span class="samp">1</span></samp>’ are synonyms of ‘<samp><span class="samp">a</span></samp>’, while ‘<samp><span class="samp">n</span></samp>’ and ‘<samp><span class="samp">0</span></samp>’ are -synonyms for ‘<samp><span class="samp">r</span></samp>’.) The function <code>kpathsea_out_name_ok</code>, with a +level is forbidden (that is, paths may not contain a ‘<samp>..</samp>’ component). +The paranoid setting is the default. (For backwards compatibility, ‘<samp>y</samp>’ +and ‘<samp>1</samp>’ are synonyms of ‘<samp>a</samp>’, while ‘<samp>n</samp>’ and ‘<samp>0</samp>’ are +synonyms for ‘<samp>r</samp>’.) The function <code>kpathsea_out_name_ok</code>, with a filename as second argument, returns <code>true</code> if that filename is acceptable to be opend for output or <code>false</code> otherwise. - <li><a name="index-kpathsea_005fin_005fname_005fok-807"></a>Similarly, the function <code>kpathsea_in_name_ok</code>, with a filename as +</li><li> <a name="index-kpathsea_005fin_005fname_005fok"></a> +Similarly, the function <code>kpathsea_in_name_ok</code>, with a filename as second argument, returns <code>true</code> if that filename is acceptable to be opend for input or <code>false</code> otherwise, depending on the value of the -configuration variable <code>openin_any</code> (with ‘<samp><span class="samp">a</span></samp>’ as default). +configuration variable <code>openin_any</code> (with ‘<samp>a</samp>’ as default). - <li><a name="index-kpathsea_005ffinish-808"></a>To close the kpathsea library instance you are using, call +</li><li> <a name="index-kpathsea_005ffinish"></a> +To close the kpathsea library instance you are using, call <code>kpathsea_finish</code>. This function closes any open log files and frees the memory used by the instance. - </ol> +</li></ol> - <p><a name="index-hash-table-routines-809"></a><a name="index-memory-allocation-routines-810"></a><a name="index-string-routines-811"></a><a name="index-reading-arbitrary_002dlength-lines-812"></a><a name="index-input-lines_002c-reading-813"></a><a name="index-lines_002c-reading-arbitrary_002dlength-814"></a>Kpathsea also provides many utility routines. Some are generic: hash +<a name="index-hash-table-routines"></a> +<a name="index-memory-allocation-routines"></a> +<a name="index-string-routines"></a> +<a name="index-reading-arbitrary_002dlength-lines"></a> +<a name="index-input-lines_002c-reading"></a> +<a name="index-lines_002c-reading-arbitrary_002dlength"></a> +<p>Kpathsea also provides many utility routines. Some are generic: hash tables, memory allocation, string concatenation and copying, string lists, reading input lines of arbitrary length, etc. Others are filename-related: default path, tilde, and variable expansion, -<code>stat</code> calls, etc. (Perhaps someday I'll move the former to a +<code>stat</code> calls, etc. (Perhaps someday I’ll move the former to a separate library.) - - <p><a name="index-c_002d_002a_002eh-815"></a><a name="index-autoconf_0040r_007b_002c-recommended_007d-816"></a>The <samp><span class="file">c-*.h</span></samp> header files can also help your program adapt to many +</p> +<a name="index-c_002d_002a_002eh"></a> +<a name="index-autoconf_002c-recommended"></a> +<p>The <samp>c-*.h</samp> header files can also help your program adapt to many different systems. You will almost certainly want to use Autoconf and probably Automake for configuring and building your software if you use -Kpathsea; I strongly recommend using Autoconf and Automake regardless. -They are available from <a href="ftp://ftp.gnu.og/pub/gnu/">ftp://ftp.gnu.og/pub/gnu/</a>. +Kpathsea; I strongly recommend using Autoconf and Automake regardless. +They are available from <a href="http://www.gnu.org/software">http://www.gnu.org/software</a>. +</p> -<div class="node"> -<a name="Program-specific-files"></a> +<hr> <a name="Program_002dspecific-files"></a> -<p><hr> -Next: <a rel="next" accesskey="n" href="#Programming-with-config-files">Programming with config files</a>, -Previous: <a rel="previous" accesskey="p" href="#Calling-sequence">Calling sequence</a>, -Up: <a rel="up" accesskey="u" href="#Programming">Programming</a> - +<div class="header"> +<p> +Next: <a href="#Programming-with-config-files" accesskey="n" rel="next">Programming with config files</a>, Previous: <a href="#Calling-sequence" accesskey="p" rel="prev">Calling sequence</a>, Up: <a href="#Programming" accesskey="u" rel="up">Programming</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - -<h3 class="section">5.3 Program-specific files</h3> +<a name="Program_002dspecific-files-1"></a> +<h3 class="section">7.3 Program-specific files</h3> <p>Many programs will need to find some configuration files. Kpathsea contains some support to make it easy to place them in their own -directories. The Standard TeX directory structure (see <a href="tds.html#Top">Introduction</a>), specifies +directories. The Standard TeX directory structure (see <a href="tds.html#Top">Introduction</a> in <cite>A Directory Structure for TeX files</cite>), specifies that such files should go into a subdirectory named after the program, -like ‘<samp><span class="samp">texmf/ttf2pk</span></samp>’. - - <p>Two formats, ‘<samp><span class="samp">kpse_program_text_format</span></samp>’ and -‘<samp><span class="samp">kpse_program_binary_format</span></samp>’, use <code>.:$TEXMF/</code><var>program</var><code>//</code> +like ‘<samp>texmf/ttf2pk</samp>’. +</p> +<p>Two formats, ‘<samp>kpse_program_text_format</samp>’ and +‘<samp>kpse_program_binary_format</samp>’, use <code>.:$TEXMF/<var>program</var>//</code> as their compiled-in search path. To override this default, you can -use the variable <var>PROGRAM</var><code>INPUTS</code> in the environment and/or -‘<samp><span class="samp">texmf.cnf</span></samp>’. That is to say, the name of the variable is +use the variable <code><var>PROGRAM</var>INPUTS</code> in the environment and/or +‘<samp>texmf.cnf</samp>’. That is to say, the name of the variable is constructed by converting the name of the program to upper case, and appending <code>INPUTS</code>. - - <p>The only difference between these two formats is whether +</p> +<p>The only difference between these two formats is whether <code>kpathsea_open_file</code> will open the files it finds in text or binary mode. +</p> -<div class="node"> +<hr> <a name="Programming-with-config-files"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Program_002dspecific-files">Program-specific files</a>, -Up: <a rel="up" accesskey="u" href="#Programming">Programming</a> - +<div class="header"> +<p> +Previous: <a href="#Program_002dspecific-files" accesskey="p" rel="prev">Program-specific files</a>, Up: <a href="#Programming" accesskey="u" rel="up">Programming</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Programming-with-config-files-1"></a> +<h3 class="section">7.4 Programming with config files</h3> -<h3 class="section">5.4 Programming with config files</h3> +<a name="index-programming-with-config-files"></a> +<a name="index-config-files_002c-programming-with"></a> -<p><a name="index-programming-with-config-files-817"></a><a name="index-config-files_002c-programming-with-818"></a> -You can (and probably should) use the same <code>texmf.cnf</code> +<p>You can (and probably should) use the same <code>texmf.cnf</code> configuration file that Kpathsea uses for your program. This helps installers by keeping all configuration in one place. - - <p><a name="index-kpathsae_005fvar_005fvalue-819"></a><a name="index-variable_002eh-820"></a><a name="index-shell_005fescape_0040r_007b_002c-example-for-code_007d-821"></a>To retrieve a value <var>var</var> from config files, the best way is to call -<code>kpathsea_var_value</code> on the string <var>var</var>. This will look -first for an environment variable <var>var</var>, then a config file value. -The result will be the value found or ‘<samp><span class="samp">NULL</span></samp>’. This function is -declared in <samp><span class="file">kpathsea/variable.h</span></samp>. For an example, see the -<code>shell_escape</code> code in <samp><span class="file">web2c/lib/texmfmp.c</span></samp>. - - <p>The routine to do variable expansion in the context of a search path (as +</p> +<a name="index-kpathsea_005fvar_005fvalue"></a> +<a name="index-variable_002eh"></a> +<a name="index-shell_005fescape_002c-example-for-code"></a> +<p>To retrieve a value <var>var</var> from config files, the best way is to call +<code>kpathsea_var_value</code> on the string <code><var>var</var></code>. This will look +first for an environment variable <var>var</var>, then a config file value. +The result will be the value found or ‘<samp>NULL</samp>’. This function is +declared in <samp>kpathsea/variable.h</samp>. For an example, see the +<code>shell_escape</code> code in <samp>web2c/lib/texmfmp.c</samp>. +</p> +<p>The routine to do variable expansion in the context of a search path (as opposed to simply retrieving a value) is <code>kpathsea_var_expand</code>, also -declared in <samp><span class="file">kpathsea/variable.h</span></samp>. It's generally only necessary +declared in <samp>kpathsea/variable.h</samp>. It’s generally only necessary to set the search path structure components as explained in the previous section, rather than using this yourself. - - <p><a name="index-kpathsea_005fcnf_005fget-822"></a><a name="index-cnf_002eh-823"></a>If for some reason you want to retrieve a value <em>only</em> from a +</p> +<a name="index-kpathsea_005fcnf_005fget"></a> +<a name="index-cnf_002eh"></a> +<p>If for some reason you want to retrieve a value <em>only</em> from a config file, not automatically looking for a corresponding environment -variable, call <code>kpathsea_cnf_get</code> (declared in <samp><span class="file">kpathsea/cnf.h</span></samp>) +variable, call <code>kpathsea_cnf_get</code> (declared in <samp>kpathsea/cnf.h</samp>) with the string <var>var</var>. +</p> +<p>No initialization calls are needed. +</p> - <p>No initialization calls are needed. +<hr> +<a name="Reporting-bugs"></a> +<div class="header"> +<p> +Next: <a href="#Index" accesskey="n" rel="next">Index</a>, Previous: <a href="#Programming" accesskey="p" rel="prev">Programming</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Reporting-bugs-1"></a> +<h2 class="chapter">8 Reporting bugs</h2> -<div class="node"> -<a name="Index"></a> -<p><hr> -Previous: <a rel="previous" accesskey="p" href="#Programming">Programming</a>, -Up: <a rel="up" accesskey="u" href="#Top">Top</a> +<a name="index-reporting-bugs"></a> +<a name="index-bugs_002c-reporting"></a> +<a name="index-tex_002dk_0040tug_002eorg-_0028bug-address_0029"></a> +<a name="index-bug-address"></a> +<p>If you have problems or suggestions, please report them to +<a href="mailto:tex-k@tug.org">tex-k@tug.org</a> using the bug checklist below. +</p> +<p>Please report bugs in the documentation; not only factual errors or +inconsistent behavior, but unclear or incomplete explanations, typos, +wrong fonts, … +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Bug-checklist" accesskey="1">Bug checklist</a>:</td><td> </td><td align="left" valign="top">What to include in a good bug report. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Mailing-lists" accesskey="2">Mailing lists</a>:</td><td> </td><td align="left" valign="top">Joining the bugs or announcements mailing lists. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Debugging" accesskey="3">Debugging</a>:</td><td> </td><td align="left" valign="top">Analyzing runtime problems. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Logging" accesskey="4">Logging</a>:</td><td> </td><td align="left" valign="top">Recording searches. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Common-problems" accesskey="5">Common problems</a>:</td><td> </td><td align="left" valign="top">When things go wrong. +</td></tr> +</table> + + +<hr> +<a name="Bug-checklist"></a> +<div class="header"> +<p> +Next: <a href="#Mailing-lists" accesskey="n" rel="next">Mailing lists</a>, Up: <a href="#Reporting-bugs" accesskey="u" rel="up">Reporting bugs</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Bug-checklist-1"></a> +<h3 class="section">8.1 Bug checklist</h3> -<h2 class="unnumbered">Index</h2> +<a name="index-checklist-for-bug-reports"></a> +<a name="index-bug-checklist"></a> + +<p>Before reporting a bug, please check below to be sure it isn’t already +known (see <a href="#Common-problems">Common problems</a>). +</p> +<p>Bug reports should be sent via electronic mail to +<a href="mailto:tex-k@tug.org">tex-k@tug.org</a>. +</p> +<p>The general principle is that a good bug report includes all the +information necessary for reproduction. Therefore, to enable +investigation, your report should include the following: +</p> +<ul> +<li> <a name="index-version-numbers_002c-determining"></a> +The version number(s) of the program(s) involved, and of Kpathsea +itself. You can get the former by giving a sole option ‘<samp>--version</samp>’ +to the program, and the latter by running ‘<samp>kpsewhich --version</samp>’. +The <samp>NEWS</samp> and <samp>ChangeLog</samp> files also contain the version +number. + +</li><li> <a name="index-uname"></a> +The hardware, operating system (including version), compiler, and +<code>make</code> program you are using (the output of <code>uname -a</code> is a +start on the first two, though incomplete). + +</li><li> <a name="index-config_002elog"></a> +Any options you gave to <code>configure</code>. This is recorded in the +<samp>config.status</samp> files. + +<a name="index-configuration-bugs"></a> +<a name="index-config_002estatus"></a> +<p>If you are reporting a bug in ‘<samp>configure</samp>’ itself, it’s probably +system-dependent, and it will be unlikely the maintainers can do +anything useful if you merely report that thus-and-such is broken. +Therefore, you need to do some additional work: for some bugs, you can +look in the file <samp>config.log</samp> where the test that failed should +appear, along with the compiler invocation and source program in +question. You can then compile it yourself by hand, and discover why +the test failed. Other ‘<samp>configure</samp>’ bugs do not involve the +compiler; in that case, the only recourse is to inspect the +<code>configure</code> shell script itself, or the Autoconf macros that +generated <code>configure</code>. +</p> +</li><li> The log of all debugging output, if the bug is in path searching. You +can get this by setting the environment variable <code>KPATHSEA_DEBUG</code> +to ‘<samp>-1</samp>’ before running the program. Please look at the log +yourself to make sure the behavior is really a bug before reporting it; +perhaps “old” environment variable settings are causing files not to +be found, for example. + +</li><li> The contents of any input files necessary to reproduce the bug. For +bugs in DVI-reading programs, for example, this generally means a DVI +file (and any EPS or other files it uses)—TeX source files are +helpful, but the DVI file is required, because that’s the actual +program input. + +</li><li> <a name="index-context-diff"></a> +<a name="index-sending-patches"></a> +<a name="index-ChangeLog-entry"></a> +If you are sending a patch (do so if you can!), please do so in the form +of a context diff (‘<samp>diff -c</samp>’) against the original distribution +source. Any other form of diff is either not as complete or harder for +me to understand. Please also include a <samp>ChangeLog</samp> entry. + +</li><li> <a name="index-stack-trace"></a> +<a name="index-debugger"></a> +<a name="index-crashes_002c-reporting"></a> +<a name="index-core-dumps_002c-reporting"></a> +<a name="index-null-pointers_002c-dereferencing"></a> +<a name="index-gdb_002c-recommended"></a> +If the bug involved is an actual crash (i.e., core dump), it is easy +and useful to include a stack trace from a debugger (I recommend the +GNU debugger GDB (<a href="http://www.gnu.org/software/gdb">http://www.gnu.org/software/gdb</a>). If the +cause is apparent (a <code>NULL</code> value being dereferenced, for +example), please send the details along. If the program involved is +TeX or Metafont, and the crash is happening at apparently-sound +code, however, the bug may well be in the compiler, rather than in the +program or the library (see <a href="#TeX-or-Metafont-failing">TeX or +Metafont failing</a>). + +</li><li> Any additional information that will be helpful in reproducing, +diagnosing, or fixing the bug. +</li></ul> + + +<hr> +<a name="Mailing-lists"></a> +<div class="header"> +<p> +Next: <a href="#Debugging" accesskey="n" rel="next">Debugging</a>, Previous: <a href="#Bug-checklist" accesskey="p" rel="prev">Bug checklist</a>, Up: <a href="#Reporting-bugs" accesskey="u" rel="up">Reporting bugs</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Mailing-lists-1"></a> +<h3 class="section">8.2 Mailing lists</h3> + +<a name="index-mailing-lists"></a> +<a name="index-bug-mailing-list"></a> +<a name="index-announcement-mailing-list"></a> + +<a name="index-tex_002dk_0040tug_002eorg"></a> +<p>Web2c and Kpathsea in general are discussed on the mailing list +<a href="mailto:tex-k@tug.org">tex-k@tug.org</a>. You can subscribe and peruse the archives on +the web <a href="http://lists.tug.org/tex-k">http://lists.tug.org/tex-k</a>. +</p> +<p>You do not need to join to submit a report, nor will it affect whether +you get a response. Be aware that large data files are sometimes +included in bug reports. If this is a problem for you, do not join +the list. +</p> +<p>If you are looking for general TeX help, such as how to install a +full TeX system or how to use LaTeX, please see +<a href="http://tug.org/begin.html">http://tug.org/begin.html</a>. +</p> + +<hr> +<a name="Debugging"></a> +<div class="header"> +<p> +Next: <a href="#Logging" accesskey="n" rel="next">Logging</a>, Previous: <a href="#Mailing-lists" accesskey="p" rel="prev">Mailing lists</a>, Up: <a href="#Reporting-bugs" accesskey="u" rel="up">Reporting bugs</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Debugging-1"></a> +<h3 class="section">8.3 Debugging</h3> + +<a name="index-debugging"></a> +<a name="index-runtime-debugging"></a> +<a name="index-options-for-debugging"></a> + +<a name="index-kpse_002d_003edebug"></a> +<a name="index-debug_002eh"></a> +<p>Kpathsea provides a number of runtime debugging options, detailed below +by their names and corresponding numeric values. When the files you +expect aren’t being found, the thing to do is enable these options and +examine the output. +</p> +<p>You can set these with some runtime argument (e.g., ‘<samp>-d</samp>’) to the +program; in that case, you should use the numeric values described in +the program’s documentation (which, for Dvipsk and Xdvik, are different +than those below). It’s best to give the ‘<samp>-d</samp>’ (or whatever) option +first, for maximal output. Dvipsk and Xdvik have additional +program-specific debugging options as well. +</p> +<a name="index-KPATHSEA_005fDEBUG-1"></a> +<a name="index-kpse_002d_003edebug-1"></a> +<p>You can also set the environment variable <code>KPATHSEA_DEBUG</code>; in this +case, you should use the numbers below. If you run the program under a +debugger and set the instance variable <code>kpse->debug</code>, also use the numbers +below. +</p> +<a name="index-_002d1-debugging-value"></a> +<p>In any case, by far the simplest value to use is ‘<samp>-1</samp>’, which will +turn on all debugging output. This is usually better than guessing +which particular values will yield the output you need. +</p> +<a name="index-debugging-output"></a> +<a name="index-standard-error-and-debugging-output"></a> +<p>Debugging output always goes to standard error, so you can redirect it +easily. For example, in Bourne-compatible shells: +</p><div class="example"> +<pre class="example">dvips -d -1 … 2>/tmp/debug +</pre></div> + +<a name="index-Kpsewhich_002c-and-debugging"></a> +<p>It is sometimes helpful to run the standalone Kpsewhich utility +(see <a href="#Invoking-kpsewhich">Invoking kpsewhich</a>), instead of the original program. +</p> +<a name="index-numeric-debugging-values"></a> +<p>In any case, you cannot use the names below; you must always use +somebody’s numbers. (Sorry.) To set more than one option, just sum +the corresponding numbers. +</p> +<dl compact="compact"> +<dt><code>KPSE_DEBUG_STAT <span class="roman">(1)</span></code> +<a name="index-KPSE_005fDEBUG_005fSTAT-_00281_0029"></a> +</dt> +<dd><p>Report ‘<samp>stat</samp>’(2) calls. This is useful for verifying that your +directory structure is not forcing Kpathsea to do many additional file +tests (see <a href="#Slow-path-searching">Slow path searching</a>, and see <a href="#Subdirectory-expansion">Subdirectory expansion</a>). If you are using an up-to-date <samp>ls-R</samp> database +(see <a href="#Filename-database">Filename database</a>), this should produce no output unless a +nonexistent file that must exist is searched for. +</p> +</dd> +<dt><code>KPSE_DEBUG_HASH <span class="roman">(2)</span></code> +<a name="index-KPSE_005fDEBUG_005fHASH-_00282_0029"></a> +</dt> +<dd><p>Report lookups in all hash tables: <samp>ls-R</samp> and <samp>aliases</samp> +(see <a href="#Filename-database">Filename database</a>); font aliases (see <a href="#Fontmap">Fontmap</a>); and config +file values (see <a href="#Config-files">Config files</a>). Useful when expected values are not +being found, e.g.., file searches are looking at the disk instead of +using <samp>ls-R</samp>. +</p> +</dd> +<dt><code>KPSE_DEBUG_FOPEN <span class="roman">(4)</span></code> +<a name="index-KPSE_005fDEBUG_005fFOPEN-_00284_0029"></a> +</dt> +<dd><a name="index-fopen_002c-redefined"></a> +<p>Report file openings and closings. Especially useful when your system’s +file table is full, for seeing which files have been opened but never +closed. In case you want to set breakpoints in a debugger: this works by +redefining ‘<samp>fopen</samp>’ (‘<samp>fclose</samp>’) to be ‘<samp>kpse_fopen_trace</samp>’ +(‘<samp>kpse_fclose_trace</samp>’). +</p> +</dd> +<dt><code>KPSE_DEBUG_PATHS <span class="roman">(8)</span></code> +<a name="index-KPSE_005fDEBUG_005fPATHS-_00288_0029"></a> +</dt> +<dd><a name="index-kpse_005fformat_005finfo_005ftype"></a> +<p>Report general path information for each file type Kpathsea is asked to +search. This is useful when you are trying to track down how a +particular path got defined—from <samp>texmf.cnf</samp>, <samp>config.ps</samp>, +an environment variable, the compile-time default, etc. This is the +contents of the <code>kpse_format_info_type</code> structure defined in +<samp>tex-file.h</samp>. +</p> +</dd> +<dt><code>KPSE_DEBUG_EXPAND <span class="roman">(16)</span></code> +<a name="index-KPSE_005fDEBUG_005fEXPAND-_002816_0029"></a> +</dt> +<dd><p>Report the directory list corresponding to each path element Kpathsea +searches. This is only relevant when Kpathsea searches the disk, since +<samp>ls-R</samp> searches don’t look through directory lists in this way. +</p> +</dd> +<dt><code>KPSE_DEBUG_SEARCH <span class="roman">(32)</span></code> +<a name="index-KPSE_005fDEBUG_005fSEARCH-_002832_0029"></a> +</dt> +<dd><p>Report on each file search: the name of the file searched for, the path +searched in, whether or not the file must exist (when drivers search for +<samp>cmr10.vf</samp>, it need not exist), and whether or not we are +collecting all occurrences of the file in the path (as with, e.g., +<samp>texmf.cnf</samp> and <samp>texfonts.map</samp>), or just the first (as with +most lookups). This can help you correlate what Kpathsea is doing with +what is in your input file. +</p> +</dd> +<dt><code>KPSE_DEBUG_VARS <span class="roman">(64)</span></code> +<a name="index-KPSE_005fDEBUG_005fVARS-_002864_0029"></a> +</dt> +<dd><p>Report the value of each variable Kpathsea looks up. This is useful for +verifying that variables do indeed obtain their correct values. +</p> +</dd> +<dt><code>GSFTOPK_DEBUG <span class="roman">(128)</span></code> +<a name="index-GSFTOPK_005fDEBUG-_0028128_0029"></a> +</dt> +<dd><p>Activates debugging printout specific to <code>gsftopk</code> program. +</p> +</dd> +<dt><code>MAKETEX_DEBUG <span class="roman">(512)</span></code> +<a name="index-MAKETEX_005fDEBUG-_0028512_0029"></a> +</dt> +<dd><p>If you use the optional <code>mktex</code> programs instead of the +traditional shell scripts, this will report the name of the site file +(<samp>mktex.cnf</samp> by default) which is read, directories created by +<code>mktexdir</code>, the full path of the <samp>ls-R</samp> database built by +<code>mktexlsr</code>, font map searches, <code>MT_FEATURES</code> in effect, +parameters from <code>mktexnam</code>, filenames added by +<code>mktexupd</code>, and some subsidiary commands run by the programs. +</p> +</dd> +<dt><code>MAKETEX_FINE_DEBUG <span class="roman">(1024)</span></code> +<a name="index-MAKETEX_005fFINE_005fDEBUG-_00281024_0029"></a> +</dt> +<dd><p>When the optional <code>mktex</code> programs are used, this will print +additional debugging info from functions internal to these programs. +</p></dd> +</dl> + +<a name="index-kdebug_003a"></a> +<a name="index-hash_005fsummary_005fonly-variable-for-debugging"></a> +<a name="index-hash-table-buckets_002c-printing"></a> +<p>Debugging output from Kpathsea is always written to standard error, and +begins with the string ‘<samp>kdebug:</samp>’. (Except for hash table buckets, +which just start with the number, but you can only get that output +running under a debugger. See comments at the <code>hash_summary_only</code> +variable in <samp>kpathsea/db.c</samp>.) +</p> + +<hr> +<a name="Logging"></a> +<div class="header"> +<p> +Next: <a href="#Common-problems" accesskey="n" rel="next">Common problems</a>, Previous: <a href="#Debugging" accesskey="p" rel="prev">Debugging</a>, Up: <a href="#Reporting-bugs" accesskey="u" rel="up">Reporting bugs</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Logging-1"></a> +<h3 class="section">8.4 Logging</h3> + +<a name="index-log-file"></a> + +<a name="index-logging-successful-searches"></a> +<a name="index-recording-successful-searches"></a> +<a name="index-usage-patterns_002c-finding"></a> +<a name="index-disk-usage_002c-reducing"></a> +<p>Kpathsea can record the time and filename found for each successful +search. This may be useful in finding good candidates for deletion when +your filesystem is full, or in discovering usage patterns +at your site. +</p> +<a name="index-TEXMFLOG"></a> +<p>To do this, define the environment or config file variable +<code>TEXMFLOG</code>. The value is the name of the file to append the +information to. The file is created if it doesn’t exist, and appended +to if it does. +</p> +<a name="index-epoch_002c-seconds-since"></a> +<a name="index-time-system-call"></a> +<p>Each successful search turns into one line in the log file: two words +separated by a space. The first word is the time of the search, as the +integer number of seconds since “the epoch”, i.e., UTC midnight 1 +January 1970 (more precisely, the result of the <code>time</code> system +call). The second word is the filename. +</p> +<p>For example, after <code>setenv TEXMFLOG /tmp/log</code>, running Dvips on +<samp>story.dvi</samp> appends the following lines: +</p> +<div class="example"> +<pre class="example">774455887 /usr/local/share/texmf/dvips/config.ps +774455887 /usr/local/share/texmf/dvips/psfonts.map +774455888 /usr/local/share/texmf/dvips/texc.pro +774455888 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmbx10.600pk +774455889 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmsl10.600pk +774455889 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmr10.600pk +774455889 /usr/local/share/texmf/dvips/texc.pro +</pre></div> + +<a name="index-privacy_002c-semblance-of"></a> +<p>Only filenames that are absolute are recorded, to preserve +some semblance of privacy. +</p> +<p>In addition to this Kpathsea-specific logging, <code>pdftex</code> +provides an option <samp>-recorder</samp> to write the names of all files +accessed during a run to the file <samp><var>basefile</var>.fls</samp>. +</p> +<p>Finally, most systems provide a general tool to output each system +call, thus including opening and closing files. It might be named +<code>strace</code>, <code>truss</code>, <code>struss</code>, or something +else. +</p> + +<hr> +<a name="Common-problems"></a> +<div class="header"> +<p> +Previous: <a href="#Logging" accesskey="p" rel="prev">Logging</a>, Up: <a href="#Reporting-bugs" accesskey="u" rel="up">Reporting bugs</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Common-problems-1"></a> +<h3 class="section">8.5 Common problems</h3> + +<a name="index-common-problems"></a> +<a name="index-problems_002c-common"></a> +<a name="index-FAQ_002c-Kpathsea"></a> + +<p>Here are some common problems with configuration, compilation, linking, +execution, … +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Unable-to-find-files" accesskey="1">Unable to find files</a>:</td><td> </td><td align="left" valign="top">If your program can’t find fonts (or whatever). +</td></tr> +<tr><td align="left" valign="top">• <a href="#Slow-path-searching" accesskey="2">Slow path searching</a>:</td><td> </td><td align="left" valign="top">If it takes forever to find anything. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Unable-to-generate-fonts" accesskey="3">Unable to generate fonts</a>:</td><td> </td><td align="left" valign="top">If mktexpk fails. +</td></tr> +<tr><td align="left" valign="top">• <a href="#TeX-or-Metafont-failing" accesskey="4">TeX or Metafont failing</a>:</td><td> </td><td align="left" valign="top">Likely compiler bugs. +</td></tr> +</table> + +<hr> +<a name="Unable-to-find-files"></a> +<div class="header"> +<p> +Next: <a href="#Slow-path-searching" accesskey="n" rel="next">Slow path searching</a>, Up: <a href="#Common-problems" accesskey="u" rel="up">Common problems</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Unable-to-find-files-1"></a> +<h4 class="subsection">8.5.1 Unable to find files</h4> + +<a name="index-unable-to-find-files"></a> +<a name="index-files_002c-unable-to-find"></a> + +<p>If a program complains it cannot find fonts (or other input files), any +of several things might be wrong. In any case, you may find the +debugging options helpful. See <a href="#Debugging">Debugging</a>. +</p> +<ul> +<li> Perhaps you simply haven’t installed all the necessary files; the basic +fonts and input files are distributed separately from the programs. +See <a href="#unixtex_002eftp">unixtex.ftp</a>. + +</li><li> <a name="index-_002fetc_002fprofile"></a> +<a name="index-environment-variables_002c-old"></a> +You have (perhaps unknowingly) told Kpathsea to use search paths that +don’t reflect where the files actually are. One common cause is having +environment variables set from a previous installation, thus overriding +what you carefully set in <samp>texmf.cnf</samp> (see <a href="#Supported-file-formats">Supported file formats</a>). System <samp>/etc/profile</samp> or other files such may be the +culprit. + +</li><li> <a name="index-symbolic-links-not-found"></a> +<a name="index-leaf-directories-wrongly-guessed"></a> +Your files reside in a directory that is only pointed to via a symbolic +link, in a leaf directory and is not listed in <samp>ls-R</samp>. + +<p>Unfortunately, Kpathsea’s subdirectory searching has an irremediable +deficiency: If a directory <var>d</var> being searched for subdirectories +contains plain files and symbolic links to other directories, but no +true subdirectories, <var>d</var> will be considered a leaf directory, i.e., +the symbolic links will not be followed. See <a href="#Subdirectory-expansion">Subdirectory expansion</a>. +</p> +<p>You can work around this problem by creating an empty dummy subdirectory +in <var>d</var>. Then <var>d</var> will no longer be a leaf, and the symlinks will +be followed. +</p> +<p>The directory immediately followed by the ‘<samp>//</samp>’ in the path +specification, however, is always searched for subdirectories, even if +it is a leaf. Presumably you would not have asked for the directory to +be searched for subdirectories if you didn’t want it to be. +</p> +</li><li> If the fonts (or whatever) don’t already exist, <code>mktexpk</code> (or +<code>mktexmf</code> or <code>mktextfm</code>) will try to create them. If +these rather complicated shell scripts fail, you’ll eventually get an +error message saying something like ‘<samp>Can't find font +<var>fontname</var></samp>’. The best solution is to fix (or at least report) the +bug in <code>mktexpk</code>; the workaround is to generate the necessary +fonts by hand with Metafont, or to grab them from a CTAN site +(see <a href="#unixtex_002eftp">unixtex.ftp</a>). + +</li><li> There is a bug in the library. See <a href="#Reporting-bugs">Reporting bugs</a>. +</li></ul> + + +<hr> +<a name="Slow-path-searching"></a> +<div class="header"> +<p> +Next: <a href="#Unable-to-generate-fonts" accesskey="n" rel="next">Unable to generate fonts</a>, Previous: <a href="#Unable-to-find-files" accesskey="p" rel="prev">Unable to find files</a>, Up: <a href="#Common-problems" accesskey="u" rel="up">Common problems</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Slow-path-searching-1"></a> +<h4 class="subsection">8.5.2 Slow path searching</h4> + +<a name="index-excessive-startup-time"></a> +<a name="index-slow-startup-time"></a> +<a name="index-startup-time_002c-excessive"></a> + +<p>If your program takes an excessively long time to find fonts or other +input files, but does eventually succeed, here are some possible culprits: +</p> +<ul> +<li> Most likely, you just have a lot of directories to search, and that +takes a noticeable time. The solution is to create and maintain a +separate <samp>ls-R</samp> file that lists all the files in your main TeX +hierarchy. See <a href="#Filename-database">Filename database</a>. Kpathsea always uses <samp>ls-R</samp> +if it’s present; there’s no need to recompile or reconfigure any of the +programs. + +</li><li> Your recursively-searched directories (e.g., +<samp>/usr/local/share/texmf/fonts//</samp>), contain a mixture of files and +directories. This prevents Kpathsea from using a useful optimization +(see <a href="#Subdirectory-expansion">Subdirectory expansion</a>). + +<p>It is best to have only directories (and perhaps a <samp>README</samp>) in the +upper levels of the directory structure, and it’s very important to have +<em>only</em> files, and no subdirectories, in the leaf directories where +the dozens of TFM, PK, or whatever files reside. +</p></li></ul> -<ul class="index-cp" compact> -<li><a href="#index-g_t_0021_0021-_0040r_007bin-path-specifications_007d-537"><code>!! </code><span class="roman">in path specifications</span></a>: <a href="#ls_002dR">ls-R</a></li> -<li><a href="#index-g_t_0024-_0040r_007bexpansion_007d-483"><code>$ </code><span class="roman">expansion</span></a>: <a href="#Variable-expansion">Variable expansion</a></li> -<li><a href="#index-g_t_002d_002dall-547"><code>--all</code></a>: <a href="#Path-searching-options">Path searching options</a></li> -<li><a href="#index-g_t_002d_002dcolor_003dtty-524"><code>--color=tty</code></a>: <a href="#ls_002dR">ls-R</a></li> -<li><a href="#index-g_t_002d_002ddebug_003d_0040var_007bnum_007d-578"><code>--debug=</code><var>num</var></a>: <a href="#Auxiliary-tasks">Auxiliary tasks</a></li> -<li><a href="#index-g_t_002d_002ddisable_002dstatic-110"><code>--disable-static</code></a>: <a href="#configure-options">configure options</a></li> -<li><a href="#index-g_t_002d_002ddpi_003d_0040var_007bnum_007d-549"><code>--dpi=</code><var>num</var></a>: <a href="#Path-searching-options">Path searching options</a></li> -<li><a href="#index-g_t_002d_002denable-_0040r_007boptions_007d-106"><code>--enable </code><span class="roman">options</span></a>: <a href="#configure-options">configure options</a></li> -<li><a href="#index-g_t_002d_002denable_002dmaintainer_002dmode-111"><code>--enable-maintainer-mode</code></a>: <a href="#configure-options">configure options</a></li> -<li><a href="#index-g_t_002d_002denable_002dshared-139"><code>--enable-shared</code></a>: <a href="#Shared-library">Shared library</a></li> -<li><a href="#index-g_t_002d_002denable_002dshared-109"><code>--enable-shared</code></a>: <a href="#configure-options">configure options</a></li> -<li><a href="#index-g_t_002d_002dengine_003d_0040var_007bname_007d-552"><code>--engine=</code><var>name</var></a>: <a href="#Path-searching-options">Path searching options</a></li> -<li><a href="#index-g_t_002d_002dexpand_002dbraces_003d_0040var_007bstring_007d-580"><code>--expand-braces=</code><var>string</var></a>: <a href="#Auxiliary-tasks">Auxiliary tasks</a></li> -<li><a href="#index-g_t_002d_002dexpand_002dpath_003d_0040var_007bstring_007d-582"><code>--expand-path=</code><var>string</var></a>: <a href="#Auxiliary-tasks">Auxiliary tasks</a></li> -<li><a href="#index-g_t_002d_002dexpand_002dvar_003d_0040var_007bstring_007d-581"><code>--expand-var=</code><var>string</var></a>: <a href="#Auxiliary-tasks">Auxiliary tasks</a></li> -<li><a href="#index-g_t_002d_002dformat_003d_0040var_007bname_007d-554"><code>--format=</code><var>name</var></a>: <a href="#Path-searching-options">Path searching options</a></li> -<li><a href="#index-g_t_002d_002dhelp-585"><code>--help</code></a>: <a href="#Standard-options">Standard options</a></li> -<li><a href="#index-g_t_002d_002dinteractive-555"><code>--interactive</code></a>: <a href="#Path-searching-options">Path searching options</a></li> -<li><a href="#index-g_t_002d_002dmktex_003d_0040var_007bfiletype_007d-557"><code>--mktex=</code><var>filetype</var></a>: <a href="#Path-searching-options">Path searching options</a></li> -<li><a href="#index-g_t_002d_002dmode_003d_0040var_007bstring_007d-559"><code>--mode=</code><var>string</var></a>: <a href="#Path-searching-options">Path searching options</a></li> -<li><a href="#index-g_t_002d_002dmust_002dexist-560"><code>--must-exist</code></a>: <a href="#Path-searching-options">Path searching options</a></li> -<li><a href="#index-g_t_002d_002dno_002dmktex_003d_0040var_007bfiletype_007d-558"><code>--no-mktex=</code><var>filetype</var></a>: <a href="#Path-searching-options">Path searching options</a></li> -<li><a href="#index-g_t_002d_002dpath_003d_0040var_007bstring_007d-561"><code>--path=</code><var>string</var></a>: <a href="#Path-searching-options">Path searching options</a></li> -<li><a href="#index-g_t_002d_002dprogname_003d_0040var_007bname_007d-562"><code>--progname=</code><var>name</var></a>: <a href="#Path-searching-options">Path searching options</a></li> -<li><a href="#index-g_t_002d_002dsafe_002din_002dname_003d_0040var_007bname_007d-563"><code>--safe-in-name=</code><var>name</var></a>: <a href="#Path-searching-options">Path searching options</a></li> -<li><a href="#index-g_t_002d_002dsafe_002dout_002dname_003d_0040var_007bname_007d-564"><code>--safe-out-name=</code><var>name</var></a>: <a href="#Path-searching-options">Path searching options</a></li> -<li><a href="#index-g_t_002d_002dshow_002dpath_003d_0040var_007bname_007d-583"><code>--show-path=</code><var>name</var></a>: <a href="#Auxiliary-tasks">Auxiliary tasks</a></li> -<li><a href="#index-g_t_002d_002dsrcdir_0040r_007b_002c-for-building-multiple-architectures_007d-129"><code>--srcdir</code><span class="roman">, for building multiple architectures</span></a>: <a href="#configure-scenarios">configure scenarios</a></li> -<li><a href="#index-g_t_002d_002dsubdir_003d_0040var_007bstring_007d-565"><code>--subdir=</code><var>string</var></a>: <a href="#Path-searching-options">Path searching options</a></li> -<li><a href="#index-g_t_002d_002dvar_002dvalue_003d_0040var_007bvariable_007d-579"><code>--var-value=</code><var>variable</var></a>: <a href="#Auxiliary-tasks">Auxiliary tasks</a></li> -<li><a href="#index-g_t_002d_002dversion-586"><code>--version</code></a>: <a href="#Standard-options">Standard options</a></li> -<li><a href="#index-g_t_002d_002dwith-_0040r_007boptions_007d-105"><code>--with </code><span class="roman">options</span></a>: <a href="#configure-options">configure options</a></li> -<li><a href="#index-g_t_002d_002dwith_002dmktextex_002ddefault-200"><code>--with-mktextex-default</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-g_t_002d_002dwithout_002dmktexfmt_002ddefault-194"><code>--without-mktexfmt-default</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-g_t_002d_002dwithout_002dmktexmf_002ddefault-195"><code>--without-mktexmf-default</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-g_t_002d_002dwithout_002dmktexocp_002ddefault-196"><code>--without-mktexocp-default</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-g_t_002d_002dwithout_002dmktexofm_002ddefault-197"><code>--without-mktexofm-default</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-g_t_002d_002dwithout_002dmktexpk_002ddefault-198"><code>--without-mktexpk-default</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-g_t_002d_002dwithout_002dmktextfm_002ddefault-199"><code>--without-mktextfm-default</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-g_t_002d1-_0040r_007bdebugging-value_007d-321"><code>-1 </code><span class="roman">debugging value</span></a>: <a href="#Debugging">Debugging</a></li> -<li><a href="#index-g_t_002dA-_0040r_007boption-to-_0040code_007bls_007d_007d-526"><code>-A </code><span class="roman">option to </span><code>ls</code></a>: <a href="#ls_002dR">ls-R</a></li> -<li><a href="#index-g_t_002dBdynamic-413"><code>-Bdynamic</code></a>: <a href="#ShellWidgetClass">ShellWidgetClass</a></li> -<li><a href="#index-g_t_002dBstatic-412"><code>-Bstatic</code></a>: <a href="#ShellWidgetClass">ShellWidgetClass</a></li> -<li><a href="#index-g_t_002dD-_0040var_007bnum_007d-550"><code>-D </code><var>num</var></a>: <a href="#Path-searching-options">Path searching options</a></li> -<li><a href="#index-g_t_002ddynamic-411"><code>-dynamic</code></a>: <a href="#ShellWidgetClass">ShellWidgetClass</a></li> -<li><a href="#index-g_t_002dg_0040r_007b_002c-compiling-without_007d-135"><code>-g</code><span class="roman">, compiling without</span></a>: <a href="#configure-scenarios">configure scenarios</a></li> -<li><a href="#index-g_t_002dL-_0040r_007boption-to-_0040code_007bls_007d_007d-532"><code>-L </code><span class="roman">option to </span><code>ls</code></a>: <a href="#ls_002dR">ls-R</a></li> -<li><a href="#index-g_t_002dO_0040r_007b_002c-compiling-with_007d-134"><code>-O</code><span class="roman">, compiling with</span></a>: <a href="#configure-scenarios">configure scenarios</a></li> -<li><a href="#index-g_t_002dstatic-410"><code>-static</code></a>: <a href="#ShellWidgetClass">ShellWidgetClass</a></li> -<li><a href="#index-g_t_002e-_0040r_007bdirectories_002c-ignored_007d-529"><code>. </code><span class="roman">directories, ignored</span></a>: <a href="#ls_002dR">ls-R</a></li> -<li><a href="#index-g_t_002e-_0040r_007bfiles_007d-528"><code>. </code><span class="roman">files</span></a>: <a href="#ls_002dR">ls-R</a></li> -<li><a href="#index-g_t_002e2602gf-367"><code>.2602gf</code></a>: <a href="#Unable-to-generate-fonts">Unable to generate fonts</a></li> -<li><a href="#index-g_t_002eafm-593"><code>.afm</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002ebase-595"><code>.base</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002ebib-598"><code>.bib</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002ebst-601"><code>.bst</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002ecid-617"><code>.cid</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002ecmap-603"><code>.cmap</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002ecnf-605"><code>.cnf</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002eenc-612"><code>.enc</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002eeps-625"><code>.eps</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002eepsi-626"><code>.epsi</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002efea-619"><code>.fea</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002efmt-614"><code>.fmt</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002eist-629"><code>.ist</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002elig-632"><code>.lig</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002emap-636"><code>.map</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002emem-638"><code>.mem</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002emf-642"><code>.mf</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002emft-646"><code>.mft</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002emlbib-649"><code>.mlbib</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002emlbst-653"><code>.mlbst</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002emp-656"><code>.mp</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002eocp-660"><code>.ocp</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002eofm-662"><code>.ofm</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002eopl-665"><code>.opl</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002eotp-666"><code>.otp</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002eovf-668"><code>.ovf</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002eovp-670"><code>.ovp</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002epfa-699"><code>.pfa</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002epfb-700"><code>.pfb</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002epk-673"><code>.pk</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002epool-644"><code>.pool</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002epro-678"><code>.pro</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002erhosts_0040r_007b_002c-writable-by-_0040TeX_007b_007d_007d-258"><code>.rhosts</code><span class="roman">, writable by TeX</span></a>: <a href="#Security">Security</a></li> -<li><a href="#index-g_t_002esfd-681"><code>.sfd</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002etex-683"><code>.tex</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002etex-_0040r_007bfile_002c-included-in-_0040file_007bls_002dR_007d_007d-530"><code>.tex </code><span class="roman">file, included in </span><samp><span class="file">ls-R</span></samp></a>: <a href="#ls_002dR">ls-R</a></li> -<li><a href="#index-g_t_002etfm-692"><code>.tfm</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002ettc-697"><code>.ttc</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002ettf-696"><code>.ttf</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002evf-706"><code>.vf</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002ew-607"><code>.w</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002eweb-608"><code>.web</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_002f-_0040r_007bmay-not-be-_002f_007d-425"><code>/ </code><span class="roman">may not be /</span></a>: <a href="#Searching-overview">Searching overview</a></li> -<li><a href="#index-g_t_002f_0040r_007b_002c-trailing-in-home-directory_007d-499"><code>/</code><span class="roman">, trailing in home directory</span></a>: <a href="#Tilde-expansion">Tilde expansion</a></li> -<li><a href="#index-g_t_002f_002f-506"><code>//</code></a>: <a href="#Subdirectory-expansion">Subdirectory expansion</a></li> -<li><a href="#index-g_t_002fafs_002f_0040dots_007b_007d-_0040r_007b_002c-installing-into_007d-173"><code>/afs/... </code><span class="roman">, installing into</span></a>: <a href="#Installing-files">Installing files</a></li> -<li><a href="#index-g_t_002fetc_002fprofile-355"><code>/etc/profile</code></a>: <a href="#Unable-to-find-files">Unable to find files</a></li> -<li><a href="#index-g_t_002fetc_002fprofile-_0040r_007band-aliases_007d-525"><code>/etc/profile </code><span class="roman">and aliases</span></a>: <a href="#ls_002dR">ls-R</a></li> -<li><a href="#index-g_t_002fvar_002ftmp_002ftexfonts-229"><code>/var/tmp/texfonts</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-g_t2602gf-368"><code>2602gf</code></a>: <a href="#Unable-to-generate-fonts">Unable to generate fonts</a></li> -<li><a href="#index-g_t8_002e3-filenames_002c-using-211">8.3 filenames, using</a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-g_t_003a-_0040r_007bmay-not-be-_003a_007d-424"><code>: </code><span class="roman">may not be :</span></a>: <a href="#Searching-overview">Searching overview</a></li> -<li><a href="#index-g_t_003a_003a-_0040r_007bexpansion_007d-474"><code>:: </code><span class="roman">expansion</span></a>: <a href="#Default-expansion">Default expansion</a></li> -<li><a href="#index-g_t_0040_0040_0040var_007bvar_007d_0040_0040-substitutions-87">@<var>var</var>@ substitutions</a>: <a href="#Running-configure">Running configure</a></li> -<li><a href="#index-g_t_005c_0040r_007b_002c-line-continuation-in-_0040file_007btexmf_002ecnf_007d_007d-466"><code>\</code><span class="roman">, line continuation in </span><samp><span class="file">texmf.cnf</span></samp></a>: <a href="#Config-files">Config files</a></li> -<li><a href="#index-g_t_005copenin-435"><code>\openin</code></a>: <a href="#Searching-overview">Searching overview</a></li> -<li><a href="#index-g_t_005cspecial_0040r_007b_002c-suppressing-warnings-about_007d-769"><code>\special</code><span class="roman">, suppressing warnings about</span></a>: <a href="#Suppressing-warnings">Suppressing warnings</a></li> -<li><a href="#index-absolute-filenames-437">absolute filenames</a>: <a href="#Searching-overview">Searching overview</a></li> -<li><a href="#index-ac_005finclude_0040r_007b_002c-Autoconf-extension_007d-86"><code>ac_include</code><span class="roman">, Autoconf extension</span></a>: <a href="#Running-configure">Running configure</a></li> -<li><a href="#index-access-warnings-443">access warnings</a>: <a href="#Searching-overview">Searching overview</a></li> -<li><a href="#index-AFMFONTS-594"><code>AFMFONTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-AFS-171">AFS</a>: <a href="#Installing-files">Installing files</a></li> -<li><a href="#index-AIX-4_002e1-_0040code_007bconfigure_007d-error-390">AIX 4.1 <code>configure</code> error</a>: <a href="#Empty-Makefiles">Empty Makefiles</a></li> -<li><a href="#index-AIX-shells-and-_0040code_007bconfigure_007d-96">AIX shells and <code>configure</code></a>: <a href="#configure-shells">configure shells</a></li> -<li><a href="#index-aliases-for-fonts-736">aliases for fonts</a>: <a href="#Fontmap">Fontmap</a></li> -<li><a href="#index-aliases_002c-for-filenames-540">aliases, for filenames</a>: <a href="#Filename-aliases">Filename aliases</a></li> -<li><a href="#index-all-759"><code>all</code></a>: <a href="#Suppressing-warnings">Suppressing warnings</a></li> -<li><a href="#index-all-matches_002c-finding-548">all matches, finding</a>: <a href="#Path-searching-options">Path searching options</a></li> -<li><a href="#index-alphabetical-order_002c-not-509">alphabetical order, not</a>: <a href="#Subdirectory-expansion">Subdirectory expansion</a></li> -<li><a href="#index-Amiga-support-42">Amiga support</a>: <a href="#Custom-installation">Custom installation</a></li> -<li><a href="#index-Andrew-File-System_002c-installing-with-172">Andrew File System, installing with</a>: <a href="#Installing-files">Installing files</a></li> -<li><a href="#index-announcement-mailing-list-305">announcement mailing list</a>: <a href="#Mailing-lists">Mailing lists</a></li> -<li><a href="#index-ANSI-C-381">ANSI C</a>: <a href="#TeX-or-Metafont-failing">TeX or Metafont failing</a></li> -<li><a href="#index-API_002c-re_002dentrant-773">API, re-entrant</a>: <a href="#Programming-overview">Programming overview</a></li> -<li><a href="#index-append_002donly-directories-and-_0040code_007bmktexpk_007d-262">append-only directories and <code>mktexpk</code></a>: <a href="#Security">Security</a></li> -<li><a href="#index-appendonlydir-207"><code>appendonlydir</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-architecture_002d_0028in_0029dependent-files_002c-installing-only-167">architecture-(in)dependent files, installing only</a>: <a href="#Installing-files">Installing files</a></li> -<li><a href="#index-architectures_002c-compiling-multiple-127">architectures, compiling multiple</a>: <a href="#configure-scenarios">configure scenarios</a></li> -<li><a href="#index-arguments-to-_0040file_007bmktex_007d-253">arguments to <samp><span class="file">mktex</span></samp></a>: <a href="#mktex-script-arguments">mktex script arguments</a></li> -<li><a href="#index-argv_005b0_005d-785"><code>argv[0]</code></a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-ash_0040r_007b_002c-losing-with-_0040code_007bconfigure_007d_007d-97"><code>ash</code><span class="roman">, losing with </span><code>configure</code></a>: <a href="#configure-shells">configure shells</a></li> -<li><a href="#index-autoconf_0040r_007b_002c-recommended_007d-816"><code>autoconf</code><span class="roman">, recommended</span></a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-automounter_002c-and-configuration-133">automounter, and configuration</a>: <a href="#configure-scenarios">configure scenarios</a></li> -<li><a href="#index-automounter_002c-and-_0040file_007bls_002dR_007d-533">automounter, and <samp><span class="file">ls-R</span></samp></a>: <a href="#ls_002dR">ls-R</a></li> -<li><a href="#index-auxiliary-tasks-577">auxiliary tasks</a>: <a href="#Auxiliary-tasks">Auxiliary tasks</a></li> -<li><a href="#index-Babel-164">Babel</a>: <a href="#Running-make">Running make</a></li> -<li><a href="#index-Babel-61">Babel</a>: <a href="#Kpathsea-application-distributions">Kpathsea application distributions</a></li> -<li><a href="#index-Bach_002c-Johann-Sebastian-481">Bach, Johann Sebastian</a>: <a href="#Default-expansion">Default expansion</a></li> -<li><a href="#index-backslash_002dnewline-463">backslash-newline</a>: <a href="#Config-files">Config files</a></li> -<li><a href="#index-bash_0040r_007b_002c-recommended-for-running-_0040code_007bconfigure_007d_007d-92"><code>bash</code><span class="roman">, recommended for running </span><code>configure</code></a>: <a href="#configure-shells">configure shells</a></li> -<li><a href="#index-basic-glyph-lookup-729">basic glyph lookup</a>: <a href="#Basic-glyph-lookup">Basic glyph lookup</a></li> -<li><a href="#index-Berry_002c-Karl-15">Berry, Karl</a>: <a href="#History">History</a></li> -<li><a href="#index-BIBINPUTS-599"><code>BIBINPUTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-blank-lines_002c-in-_0040file_007btexmf_002ecnf_007d-462">blank lines, in <samp><span class="file">texmf.cnf</span></samp></a>: <a href="#Config-files">Config files</a></li> -<li><a href="#index-brace-expansion-502">brace expansion</a>: <a href="#Brace-expansion">Brace expansion</a></li> -<li><a href="#index-BSD-universe-159">BSD universe</a>: <a href="#Running-make">Running make</a></li> -<li><a href="#index-bsh_0040r_007b_002c-ok-with-_0040code_007bconfigure_007d_007d-94"><code>bsh</code><span class="roman">, ok with </span><code>configure</code></a>: <a href="#configure-shells">configure shells</a></li> -<li><a href="#index-BSTINPUTS-602"><code>BSTINPUTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-bug-address-286">bug address</a>: <a href="#Reporting-bugs">Reporting bugs</a></li> -<li><a href="#index-bug-checklist-288">bug checklist</a>: <a href="#Bug-checklist">Bug checklist</a></li> -<li><a href="#index-bug-mailing-list-304">bug mailing list</a>: <a href="#Mailing-lists">Mailing lists</a></li> -<li><a href="#index-bugs_002c-reporting-284">bugs, reporting</a>: <a href="#Reporting-bugs">Reporting bugs</a></li> -<li><a href="#index-c_002d_002a_002eh-815"><code>c-*.h</code></a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-c_002dauto_002eh-779"><code>c-auto.h</code></a>: <a href="#Programming-overview">Programming overview</a></li> -<li><a href="#index-c_002dauto_002ein-84"><code>c-auto.in</code></a>: <a href="#Running-configure">Running configure</a></li> -<li><a href="#index-cache-of-fonts_002c-local-260">cache of fonts, local</a>: <a href="#Security">Security</a></li> -<li><a href="#index-calling-sequence-782">calling sequence</a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-CC-112"><code>CC</code></a>: <a href="#configure-environment">configure environment</a></li> -<li><a href="#index-cc-_0040r_007bwarnings_007d-417"><code>cc </code><span class="roman">warnings</span></a>: <a href="#Pointer-combination-warnings">Pointer combination warnings</a></li> -<li><a href="#index-cc_0040r_007b_002c-compiling-with_007d-114"><code>cc</code><span class="roman">, compiling with</span></a>: <a href="#configure-environment">configure environment</a></li> -<li><a href="#index-CFLAGS-115"><code>CFLAGS</code></a>: <a href="#configure-environment">configure environment</a></li> -<li><a href="#index-ChangeLog-_0040r_007bentry_007d-296"><code>ChangeLog </code><span class="roman">entry</span></a>: <a href="#Bug-checklist">Bug checklist</a></li> -<li><a href="#index-checklist-for-bug-reports-287">checklist for bug reports</a>: <a href="#Bug-checklist">Bug checklist</a></li> -<li><a href="#index-checksum-760"><code>checksum</code></a>: <a href="#Suppressing-warnings">Suppressing warnings</a></li> -<li><a href="#index-circle-fonts-739">circle fonts</a>: <a href="#Fontmap">Fontmap</a></li> -<li><a href="#index-clean-_0040r_007bMake-target_007d-178"><code>clean </code><span class="roman">Make target</span></a>: <a href="#Cleaning-up">Cleaning up</a></li> -<li><a href="#index-client_005fpath-_0040r_007bin-_0040code_007bkpse_002d_003eformat_005finfo_007d_007d-798"><code>client_path </code><span class="roman">in </span><code>kpse->format_info</code></a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-CMAPFONTS-604"><code>CMAPFONTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-cmr10_0040r_007b_002c-as-fallback-font_007d-754"><code>cmr10</code><span class="roman">, as fallback font</span></a>: <a href="#Fallback-font">Fallback font</a></li> -<li><a href="#index-cmr10_002evf-434"><code>cmr10.vf</code></a>: <a href="#Searching-overview">Searching overview</a></li> -<li><a href="#index-cnf_002ec-471"><code>cnf.c</code></a>: <a href="#Config-files">Config files</a></li> -<li><a href="#index-cnf_002eh-823"><code>cnf.h</code></a>: <a href="#Programming-with-config-files">Programming with config files</a></li> -<li><a href="#index-code-sharing-140">code sharing</a>: <a href="#Shared-library">Shared library</a></li> -<li><a href="#index-color-printers_002c-configuring-35">color printers, configuring</a>: <a href="#Simple-installation">Simple installation</a></li> -<li><a href="#index-comments_002c-in-fontmap-files-741">comments, in fontmap files</a>: <a href="#Fontmap">Fontmap</a></li> -<li><a href="#index-comments_002c-in-_0040file_007btexmf_002ecnf_007d-461">comments, in <samp><span class="file">texmf.cnf</span></samp></a>: <a href="#Config-files">Config files</a></li> -<li><a href="#index-comments_002c-making-5">comments, making</a>: <a href="#Introduction">Introduction</a></li> -<li><a href="#index-common-features-in-glyph-lookup-730">common features in glyph lookup</a>: <a href="#Basic-glyph-lookup">Basic glyph lookup</a></li> -<li><a href="#index-common-problems-350">common problems</a>: <a href="#Common-problems">Common problems</a></li> -<li><a href="#index-comp_002esys_002esun_002eadmin-_0040r_007bFAQ_007d-404"><code>comp.sys.sun.admin </code><span class="roman">FAQ</span></a>: <a href="#ShellWidgetClass">ShellWidgetClass</a></li> -<li><a href="#index-comp_002etext_002etex-313"><code>comp.text.tex</code></a>: <a href="#Mailing-lists">Mailing lists</a></li> -<li><a href="#index-compilation-28">compilation</a>: <a href="#Installation">Installation</a></li> -<li><a href="#index-compilation-value_002c-source-for-path-453">compilation value, source for path</a>: <a href="#Path-sources">Path sources</a></li> -<li><a href="#index-compiler-bugs-376">compiler bugs</a>: <a href="#TeX-or-Metafont-failing">TeX or Metafont failing</a></li> -<li><a href="#index-compiler-bugs_002c-finding-380">compiler bugs, finding</a>: <a href="#TeX-or-Metafont-failing">TeX or Metafont failing</a></li> -<li><a href="#index-compiler-options_002c-additional-149">compiler options, additional</a>: <a href="#Running-make">Running make</a></li> -<li><a href="#index-compiler-options_002c-specifying-116">compiler options, specifying</a>: <a href="#configure-environment">configure environment</a></li> -<li><a href="#index-compiler_002c-changing-156">compiler, changing</a>: <a href="#Running-make">Running make</a></li> -<li><a href="#index-compiling-on-HP_002dUX-383">compiling on HP-UX</a>: <a href="#TeX-or-Metafont-failing">TeX or Metafont failing</a></li> -<li><a href="#index-conditions-for-use-7">conditions for use</a>: <a href="#Introduction">Introduction</a></li> -<li><a href="#index-config-files-454">config files</a>: <a href="#Config-files">Config files</a></li> -<li><a href="#index-config-files_002c-for-Kpathsea_002dusing-programs-801">config files, for Kpathsea-using programs</a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-config-files_002c-programming-with-818">config files, programming with</a>: <a href="#Programming-with-config-files">Programming with config files</a></li> -<li><a href="#index-config_002eh-778"><code>config.h</code></a>: <a href="#Programming-overview">Programming overview</a></li> -<li><a href="#index-config_002elog-291"><code>config.log</code></a>: <a href="#Bug-checklist">Bug checklist</a></li> -<li><a href="#index-config_002eps-566"><code>config.ps</code></a>: <a href="#Specially_002drecognized-files">Specially-recognized files</a></li> -<li><a href="#index-config_002eps_0040r_007b_002c-search-path-for_007d-611"><code>config.ps</code><span class="roman">, search path for</span></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-config_002estatus-293"><code>config.status</code></a>: <a href="#Bug-checklist">Bug checklist</a></li> -<li><a href="#index-configuration-27">configuration</a>: <a href="#Installation">Installation</a></li> -<li><a href="#index-configuration-bugs-292">configuration bugs</a>: <a href="#Bug-checklist">Bug checklist</a></li> -<li><a href="#index-configuration-compiler-options-118">configuration compiler options</a>: <a href="#configure-environment">configure environment</a></li> -<li><a href="#index-configuration-file_002c-source-for-path-450">configuration file, source for path</a>: <a href="#Path-sources">Path sources</a></li> -<li><a href="#index-configuration-files-as-shell-scripts_002e-470">configuration files as shell scripts.</a>: <a href="#Config-files">Config files</a></li> -<li><a href="#index-configuration-of-_0040file_007bmktex_007d-scripts-190">configuration of <samp><span class="file">mktex</span></samp> scripts</a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-configuration-of-optional-features-107">configuration of optional features</a>: <a href="#configure-options">configure options</a></li> -<li><a href="#index-configure-_0040r_007berror-from-_0040code_007bsed_007d_007d-386"><code>configure </code><span class="roman">error from </span><code>sed</code></a>: <a href="#Empty-Makefiles">Empty Makefiles</a></li> -<li><a href="#index-g_t_0040code_007bconfigure_007d-options-104"><code>configure</code> options</a>: <a href="#configure-options">configure options</a></li> -<li><a href="#index-g_t_0040code_007bconfigure_007d-options-for-_0040file_007bmktex_007d-scripts-193"><code>configure</code> options for <samp><span class="file">mktex</span></samp> scripts</a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-configure_0040r_007b_002c-running_007d-83"><code>configure</code><span class="roman">, running</span></a>: <a href="#Running-configure">Running configure</a></li> -<li><a href="#index-context-diff-294">context diff</a>: <a href="#Bug-checklist">Bug checklist</a></li> -<li><a href="#index-continuation-character-464">continuation character</a>: <a href="#Config-files">Config files</a></li> -<li><a href="#index-core-dumps_002c-reporting-300">core dumps, reporting</a>: <a href="#Bug-checklist">Bug checklist</a></li> -<li><a href="#index-CPPFLAGS-117"><code>CPPFLAGS</code></a>: <a href="#configure-environment">configure environment</a></li> -<li><a href="#index-crashes_002c-reporting-299">crashes, reporting</a>: <a href="#Bug-checklist">Bug checklist</a></li> -<li><a href="#index-custom-installation-39">custom installation</a>: <a href="#Custom-installation">Custom installation</a></li> -<li><a href="#index-CWEBINPUTS-609"><code>CWEBINPUTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-database-search-426">database search</a>: <a href="#Searching-overview">Searching overview</a></li> -<li><a href="#index-database_002c-for-filenames-519">database, for filenames</a>: <a href="#Filename-database">Filename database</a></li> -<li><a href="#index-database_002c-format-of-542">database, format of</a>: <a href="#Database-format">Database format</a></li> -<li><a href="#index-debug_002eh-318"><code>debug.h</code></a>: <a href="#Debugging">Debugging</a></li> -<li><a href="#index-debugger-298">debugger</a>: <a href="#Bug-checklist">Bug checklist</a></li> -<li><a href="#index-debugging-314">debugging</a>: <a href="#Debugging">Debugging</a></li> -<li><a href="#index-debugging-options_002c-in-Kpathsea_002dusing-program-797">debugging options, in Kpathsea-using program</a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-debugging-output-322">debugging output</a>: <a href="#Debugging">Debugging</a></li> -<li><a href="#index-debugging-with-_0040samp_007b_002dg_007d_002c-disabling-137">debugging with ‘<samp><span class="samp">-g</span></samp>’, disabling</a>: <a href="#configure-scenarios">configure scenarios</a></li> -<li><a href="#index-DEC-shells-and-_0040code_007bconfigure_007d-101">DEC shells and <code>configure</code></a>: <a href="#configure-shells">configure shells</a></li> -<li><a href="#index-default-expansion-479">default expansion</a>: <a href="#Default-expansion">Default expansion</a></li> -<li><a href="#index-default-path-features-66">default path features</a>: <a href="#Default-path-features">Default path features</a></li> -<li><a href="#index-default-paths_002c-changing-74">default paths, changing</a>: <a href="#Default-path-generation">Default path generation</a></li> -<li><a href="#index-default-paths_002c-how-they_0027re-made-78">default paths, how they're made</a>: <a href="#Default-path-generation">Default path generation</a></li> -<li><a href="#index-default_005ftexsizes-753"><code>default_texsizes</code></a>: <a href="#Fallback-font">Fallback font</a></li> -<li><a href="#index-DEFS-119"><code>DEFS</code></a>: <a href="#configure-environment">configure environment</a></li> -<li><a href="#index-depot-132"><code>depot</code></a>: <a href="#configure-scenarios">configure scenarios</a></li> -<li><a href="#index-device_002c-wrong-366">device, wrong</a>: <a href="#Unable-to-generate-fonts">Unable to generate fonts</a></li> -<li><a href="#index-directories_002c-changing-default-installation-77">directories, changing default installation</a>: <a href="#Default-path-generation">Default path generation</a></li> -<li><a href="#index-directories_002c-making-append_002donly-208">directories, making append-only</a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-directory-permissions-267">directory permissions</a>: <a href="#Security">Security</a></li> -<li><a href="#index-directory-structure_002c-for-_0040TeX_007b_007d-files-271">directory structure, for TeX files</a>: <a href="#TeX-directory-structure">TeX directory structure</a></li> -<li><a href="#index-disabling-_0040file_007bmktex_007d-scripts-192">disabling <samp><span class="file">mktex</span></samp> scripts</a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-disk-search-430">disk search</a>: <a href="#Searching-overview">Searching overview</a></li> -<li><a href="#index-disk-searching_002c-avoiding-538">disk searching, avoiding</a>: <a href="#ls_002dR">ls-R</a></li> -<li><a href="#index-disk-space_002c-needed-46">disk space, needed</a>: <a href="#Disk-space">Disk space</a></li> -<li><a href="#index-disk-usage_002c-reducing-345">disk usage, reducing</a>: <a href="#Logging">Logging</a></li> -<li><a href="#index-distclean-_0040r_007bMake-target_007d-176"><code>distclean </code><span class="roman">Make target</span></a>: <a href="#Cleaning-up">Cleaning up</a></li> -<li><a href="#index-distributions_002c-compiling-simultaneously-49">distributions, compiling simultaneously</a>: <a href="#Kpathsea-application-distributions">Kpathsea application distributions</a></li> -<li><a href="#index-distributions_002c-not-compiling-52">distributions, not compiling</a>: <a href="#Kpathsea-application-distributions">Kpathsea application distributions</a></li> -<li><a href="#index-dlclose-396"><code>dlclose</code></a>: <a href="#dlopen">dlopen</a></li> -<li><a href="#index-dlopen-394"><code>dlopen</code></a>: <a href="#dlopen">dlopen</a></li> -<li><a href="#index-dlsym-395"><code>dlsym</code></a>: <a href="#dlopen">dlopen</a></li> -<li><a href="#index-dlsym_002ec-399"><code>dlsym.c</code></a>: <a href="#dlopen">dlopen</a></li> -<li><a href="#index-doc-files-685"><code>doc files</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-DOS-compatible-names-212">DOS compatible names</a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-DOS-support-43">DOS support</a>: <a href="#Custom-installation">Custom installation</a></li> -<li><a href="#index-dosnames-210"><code>dosnames</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-dot-files-527">dot files</a>: <a href="#ls_002dR">ls-R</a></li> -<li><a href="#index-doubled-colons-475">doubled colons</a>: <a href="#Default-expansion">Default expansion</a></li> -<li><a href="#index-dpi_0040var_007bnnn_007d-directories-213"><code>dpi</code><var>nnn</var><code> directories</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-DVI-drivers-55">DVI drivers</a>: <a href="#Kpathsea-application-distributions">Kpathsea application distributions</a></li> -<li><a href="#index-DVILJMAKEPK-248"><code>DVILJMAKEPK</code></a>: <a href="#mktex-script-names">mktex script names</a></li> -<li><a href="#index-DVILJSIZES-751"><code>DVILJSIZES</code></a>: <a href="#Fallback-font">Fallback font</a></li> -<li><a href="#index-dvipdfmx_002ecfg-567"><code>dvipdfmx.cfg</code></a>: <a href="#Specially_002drecognized-files">Specially-recognized files</a></li> -<li><a href="#index-DVIPSFONTS-715"><code>DVIPSFONTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-DVIPSHEADERS-704"><code>DVIPSHEADERS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-DVIPSMAKEPK-246"><code>DVIPSMAKEPK</code></a>: <a href="#mktex-script-names">mktex script names</a></li> -<li><a href="#index-DVIPSSIZES-749"><code>DVIPSSIZES</code></a>: <a href="#Fallback-font">Fallback font</a></li> -<li><a href="#index-dynamic-creation-of-files-186">dynamic creation of files</a>: <a href="#mktex-scripts">mktex scripts</a></li> -<li><a href="#index-dynamic-linking-problems-with-OpenWin-libraries-400">dynamic linking problems with OpenWin libraries</a>: <a href="#ShellWidgetClass">ShellWidgetClass</a></li> -<li><a href="#index-EC-fonts_002c-and-dynamic-source-creation-188">EC fonts, and dynamic source creation</a>: <a href="#mktex-scripts">mktex scripts</a></li> -<li><a href="#index-elt_002ddirs_002ec-516"><code>elt-dirs.c</code></a>: <a href="#Subdirectory-expansion">Subdirectory expansion</a></li> -<li><a href="#index-enabling-_0040file_007bmktex_007d-scripts-191">enabling <samp><span class="file">mktex</span></samp> scripts</a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-ENCFONTS-613"><code>ENCFONTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-engine-name-553">engine name</a>: <a href="#Path-searching-options">Path searching options</a></li> -<li><a href="#index-environment-variable_002c-source-for-path-449">environment variable, source for path</a>: <a href="#Path-sources">Path sources</a></li> -<li><a href="#index-environment-variables-for-_0040TeX_007b_007d-590">environment variables for TeX</a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-environment-variables-in-paths-484">environment variables in paths</a>: <a href="#Variable-expansion">Variable expansion</a></li> -<li><a href="#index-environment-variables_002c-old-356">environment variables, old</a>: <a href="#Unable-to-find-files">Unable to find files</a></li> -<li><a href="#index-epoch_002c-seconds-since-347">epoch, seconds since</a>: <a href="#Logging">Logging</a></li> -<li><a href="#index-error-message-macros-789">error message macros</a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-excessive-startup-time-359">excessive startup time</a>: <a href="#Slow-path-searching">Slow path searching</a></li> -<li><a href="#index-expand_002ec-504"><code>expand.c</code></a>: <a href="#Brace-expansion">Brace expansion</a></li> -<li><a href="#index-expanding-symlinks-795">expanding symlinks</a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-expansion_002c-default-480">expansion, default</a>: <a href="#Default-expansion">Default expansion</a></li> -<li><a href="#index-expansion_002c-path-element-436">expansion, path element</a>: <a href="#Searching-overview">Searching overview</a></li> -<li><a href="#index-expansion_002c-search-path-473">expansion, search path</a>: <a href="#Path-expansion">Path expansion</a></li> -<li><a href="#index-expansion_002c-subdirectory-508">expansion, subdirectory</a>: <a href="#Subdirectory-expansion">Subdirectory expansion</a></li> -<li><a href="#index-expansion_002c-tilde-494">expansion, tilde</a>: <a href="#Tilde-expansion">Tilde expansion</a></li> -<li><a href="#index-expansion_002c-variable-486">expansion, variable</a>: <a href="#Variable-expansion">Variable expansion</a></li> -<li><a href="#index-explicitly-relative-filenames-439">explicitly relative filenames</a>: <a href="#Searching-overview">Searching overview</a></li> -<li><a href="#index-extensions_002c-filename-719">extensions, filename</a>: <a href="#File-lookup">File lookup</a></li> -<li><a href="#index-externally_002dbuilt-filename-database-520">externally-built filename database</a>: <a href="#Filename-database">Filename database</a></li> -<li><a href="#index-extra-colons-478">extra colons</a>: <a href="#Default-expansion">Default expansion</a></li> -<li><a href="#index-extraclean-_0040r_007bMake-target_007d-180"><code>extraclean </code><span class="roman">Make target</span></a>: <a href="#Cleaning-up">Cleaning up</a></li> -<li><a href="#index-failed-_0040code_007bmktex_0040dots_007b_007d_007d-script-invocation-250">failed <code>mktex...</code> script invocation</a>: <a href="#mktex-script-names">mktex script names</a></li> -<li><a href="#index-fallback-font-744">fallback font</a>: <a href="#Fallback-font">Fallback font</a></li> -<li><a href="#index-fallback-resolutions-745">fallback resolutions</a>: <a href="#Fallback-font">Fallback font</a></li> -<li><a href="#index-fallback-resolutions_002c-overriding-144">fallback resolutions, overriding</a>: <a href="#Running-make">Running make</a></li> -<li><a href="#index-FAQ_002c-_0040t_007bcomp_002esys_002esun_002eadmin_007d-405">FAQ, <tt>comp.sys.sun.admin</tt></a>: <a href="#ShellWidgetClass">ShellWidgetClass</a></li> -<li><a href="#index-FAQ_002c-Kpathsea-352">FAQ, Kpathsea</a>: <a href="#Common-problems">Common problems</a></li> -<li><a href="#index-Farwell_002c-Matthew-512">Farwell, Matthew</a>: <a href="#Subdirectory-expansion">Subdirectory expansion</a></li> -<li><a href="#index-features_002c-of-default-paths-67">features, of default paths</a>: <a href="#Default-path-features">Default path features</a></li> -<li><a href="#index-file-formats_002c-supported-589">file formats, supported</a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-file-lookup-716">file lookup</a>: <a href="#File-lookup">File lookup</a></li> -<li><a href="#index-file-permissions-265">file permissions</a>: <a href="#Security">Security</a></li> -<li><a href="#index-file-types_002c-registering-new-780">file types, registering new</a>: <a href="#Programming-overview">Programming overview</a></li> -<li><a href="#index-filename-aliases-539">filename aliases</a>: <a href="#Filename-aliases">Filename aliases</a></li> -<li><a href="#index-filename-database-518">filename database</a>: <a href="#Filename-database">Filename database</a></li> -<li><a href="#index-filename-database-generation-181">filename database generation</a>: <a href="#Filename-database-generation">Filename database generation</a></li> -<li><a href="#index-filenames_002c-absolute-or-explicitly-relative-440">filenames, absolute or explicitly relative</a>: <a href="#Searching-overview">Searching overview</a></li> -<li><a href="#index-files_002c-unable-to-find-354">files, unable to find</a>: <a href="#Unable-to-find-files">Unable to find files</a></li> -<li><a href="#index-filesystem-search-429">filesystem search</a>: <a href="#Searching-overview">Searching overview</a></li> -<li><a href="#index-floating-directories-428">floating directories</a>: <a href="#Searching-overview">Searching overview</a></li> -<li><a href="#index-fmtutil-239"><code>fmtutil</code></a>: <a href="#mktex-script-names">mktex script names</a></li> -<li><a href="#index-fmtutil_002ecnf-568"><code>fmtutil.cnf</code></a>: <a href="#Specially_002drecognized-files">Specially-recognized files</a></li> -<li><a href="#index-fmtutils_002ecnf-201"><code>fmtutils.cnf</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-font-alias-files-735">font alias files</a>: <a href="#Fontmap">Fontmap</a></li> -<li><a href="#index-font-generation-failures-363">font generation failures</a>: <a href="#Unable-to-generate-fonts">Unable to generate fonts</a></li> -<li><a href="#index-font-of-last-resort-746">font of last resort</a>: <a href="#Fallback-font">Fallback font</a></li> -<li><a href="#index-font-set_002c-infinite-185">font set, infinite</a>: <a href="#mktex-scripts">mktex scripts</a></li> -<li><a href="#index-FONTCIDMAPS-618"><code>FONTCIDMAPS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-FONTFEATURES-620"><code>FONTFEATURES</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-fontmap-files-734">fontmap files</a>: <a href="#Fontmap">Fontmap</a></li> -<li><a href="#index-fontmaps-214"><code>fontmaps</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-fontname-216">fontname</a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-fontnames_002c-arbitrary-length-738">fontnames, arbitrary length</a>: <a href="#Fontmap">Fontmap</a></li> -<li><a href="#index-fonts_002c-being-created-36">fonts, being created</a>: <a href="#Simple-installation">Simple installation</a></li> -<li><a href="#index-FOOINPUTS-712"><code>FOOINPUTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-fopen_0040r_007b_002c-redefined_007d-329"><code>fopen</code><span class="roman">, redefined</span></a>: <a href="#Debugging">Debugging</a></li> -<li><a href="#index-format-of-external-database-541">format of external database</a>: <a href="#Database-format">Database format</a></li> -<li><a href="#index-FreeBSD-_0040code_007bconfigure_007d-error-388">FreeBSD <code>configure</code> error</a>: <a href="#Empty-Makefiles">Empty Makefiles</a></li> -<li><a href="#index-FreeBSD-shells-and-_0040code_007bconfigure_007d-99">FreeBSD shells and <code>configure</code></a>: <a href="#configure-shells">configure shells</a></li> -<li><a href="#index-ftp_002ecs_002estanford_002eedu-280"><code>ftp.cs.stanford.edu</code></a>: <a href="#unixtex_002eftp">unixtex.ftp</a></li> -<li><a href="#index-ftp_002etug_002eorg-279"><code>ftp.tug.org</code></a>: <a href="#unixtex_002eftp">unixtex.ftp</a></li> -<li><a href="#index-fundamental-purpose-of-Kpathsea-2">fundamental purpose of Kpathsea</a>: <a href="#Introduction">Introduction</a></li> -<li><a href="#index-gcc_0040r_007b_002c-compiling-with_007d-113"><code>gcc</code><span class="roman">, compiling with</span></a>: <a href="#configure-environment">configure environment</a></li> -<li><a href="#index-gdb_0040r_007b_002c-recommended_007d-302"><code>gdb</code><span class="roman">, recommended</span></a>: <a href="#Bug-checklist">Bug checklist</a></li> -<li><a href="#index-generation-of-filename-database-182">generation of filename database</a>: <a href="#Filename-database-generation">Filename database generation</a></li> -<li><a href="#index-get_005fapplicationShellWidgetClass-403"><code>get_applicationShellWidgetClass</code></a>: <a href="#ShellWidgetClass">ShellWidgetClass</a></li> -<li><a href="#index-get_005fwmShellWidgetClass-402"><code>get_wmShellWidgetClass</code></a>: <a href="#ShellWidgetClass">ShellWidgetClass</a></li> -<li><a href="#index-gf-621"><code>gf</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-GFFONTS-622"><code>GFFONTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-globally-writable-directories-261">globally writable directories</a>: <a href="#Security">Security</a></li> -<li><a href="#index-glyph-lookup-724">glyph lookup</a>: <a href="#Glyph-lookup">Glyph lookup</a></li> -<li><a href="#index-glyph-lookup-bitmap-tolerance-732">glyph lookup bitmap tolerance</a>: <a href="#Basic-glyph-lookup">Basic glyph lookup</a></li> -<li><a href="#index-GLYPHFONTS-623"><code>GLYPHFONTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-glyphlist_002etxt-569"><code>glyphlist.txt</code></a>: <a href="#Specially_002drecognized-files">Specially-recognized files</a></li> -<li><a href="#index-GNU-C-compiler-bugs-378">GNU C compiler bugs</a>: <a href="#TeX-or-Metafont-failing">TeX or Metafont failing</a></li> -<li><a href="#index-GNU-General-Public-License-9">GNU General Public License</a>: <a href="#Introduction">Introduction</a></li> -<li><a href="#index-group_002dwritable-directories-263">group-writable directories</a>: <a href="#Security">Security</a></li> -<li><a href="#index-GSFTOPK_005fDEBUG-_0040r_007b_0028128_0029_007d-335"><code>GSFTOPK_DEBUG </code><span class="roman">(128)</span></a>: <a href="#Debugging">Debugging</a></li> -<li><a href="#index-hash-table-buckets_002c-printing-340">hash table buckets, printing</a>: <a href="#Debugging">Debugging</a></li> -<li><a href="#index-hash-table-routines-809">hash table routines</a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-hash_005fsummary_005fonly-_0040r_007bvariable-for-debugging_007d-339"><code>hash_summary_only </code><span class="roman">variable for debugging</span></a>: <a href="#Debugging">Debugging</a></li> -<li><a href="#index-help_002c-mailing-list-for-general-_0040TeX_007b_007d-311">help, mailing list for general TeX</a>: <a href="#Mailing-lists">Mailing lists</a></li> -<li><a href="#index-history-of-Kpathsea-11">history of Kpathsea</a>: <a href="#History">History</a></li> -<li><a href="#index-home-directories-in-paths-492">home directories in paths</a>: <a href="#Tilde-expansion">Tilde expansion</a></li> -<li><a href="#index-HOME_0040r_007b_002c-as-_007e-expansion_007d-495"><code>HOME</code><span class="roman">, as ~ expansion</span></a>: <a href="#Tilde-expansion">Tilde expansion</a></li> -<li><a href="#index-HP_002dUX_002c-compiling-on-382">HP-UX, compiling on</a>: <a href="#TeX-or-Metafont-failing">TeX or Metafont failing</a></li> -<li><a href="#index-identifiers_002c-characters-valid-in-467">identifiers, characters valid in</a>: <a href="#Config-files">Config files</a></li> -<li><a href="#index-illegal-pointer-combination-warnings-416">illegal pointer combination warnings</a>: <a href="#Pointer-combination-warnings">Pointer combination warnings</a></li> -<li><a href="#index-include-_0040r_007bfontmap-directive_007d-743"><code>include </code><span class="roman">fontmap directive</span></a>: <a href="#Fontmap">Fontmap</a></li> -<li><a href="#index-INDEXSTYLE-631"><code>INDEXSTYLE</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-info_002dtex_0040_0040shsu_002eedu-312"><code>info-tex@shsu.edu</code></a>: <a href="#Mailing-lists">Mailing lists</a></li> -<li><a href="#index-input-lines_002c-reading-813">input lines, reading</a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-install_002ddata-_0040r_007bMake-target_007d-170"><code>install-data </code><span class="roman">Make target</span></a>: <a href="#Installing-files">Installing files</a></li> -<li><a href="#index-install_002dexec-_0040r_007bMake-target_007d-169"><code>install-exec </code><span class="roman">Make target</span></a>: <a href="#Installing-files">Installing files</a></li> -<li><a href="#index-installation-26">installation</a>: <a href="#Installation">Installation</a></li> -<li><a href="#index-installation-testing-255">installation testing</a>: <a href="#Installation-testing">Installation testing</a></li> -<li><a href="#index-installation_002c-architecture_002d_0028in_0029dependent-files-only-168">installation, architecture-(in)dependent files only</a>: <a href="#Installing-files">Installing files</a></li> -<li><a href="#index-installation_002c-changing-default-directories-76">installation, changing default directories</a>: <a href="#Default-path-generation">Default path generation</a></li> -<li><a href="#index-installation_002c-customized-40">installation, customized</a>: <a href="#Custom-installation">Custom installation</a></li> -<li><a href="#index-installation_002c-getting-executables-instead-of-32">installation, getting executables instead of</a>: <a href="#Simple-installation">Simple installation</a></li> -<li><a href="#index-installation_002c-simple-30">installation, simple</a>: <a href="#Simple-installation">Simple installation</a></li> -<li><a href="#index-installing-files-165">installing files</a>: <a href="#Installing-files">Installing files</a></li> -<li><a href="#index-interactive-query-556">interactive query</a>: <a href="#Path-searching-options">Path searching options</a></li> -<li><a href="#index-interface_002c-not-frozen-4">interface, not frozen</a>: <a href="#Introduction">Introduction</a></li> -<li><a href="#index-introduction-1">introduction</a>: <a href="#Introduction">Introduction</a></li> -<li><a href="#index-g_t_0040samp_007bkdebug_003a_007d-338">‘<samp><span class="samp">kdebug:</span></samp>’</a>: <a href="#Debugging">Debugging</a></li> -<li><a href="#index-kdefault_002ec-482"><code>kdefault.c</code></a>: <a href="#Default-expansion">Default expansion</a></li> -<li><a href="#index-Knuth_002c-Donald-E_002e-12">Knuth, Donald E.</a>: <a href="#History">History</a></li> -<li><a href="#index-Knuth_002c-Donald-E_002e_002c-archive-of-programs-by-282">Knuth, Donald E., archive of programs by</a>: <a href="#unixtex_002eftp">unixtex.ftp</a></li> -<li><a href="#index-Korn-shell_0040r_007b_002c-losing-with-_0040code_007bconfigure_007d_007d-95">Korn shell<span class="roman">, losing with </span><code>configure</code></a>: <a href="#configure-shells">configure shells</a></li> -<li><a href="#index-kpathsae_005fvar_005fvalue-819"><code>kpathsae_var_value</code></a>: <a href="#Programming-with-config-files">Programming with config files</a></li> -<li><a href="#index-Kpathsea-config-file_002c-source-for-path-451">Kpathsea config file, source for path</a>: <a href="#Path-sources">Path sources</a></li> -<li><a href="#index-Kpathsea-version-number-51">Kpathsea version number</a>: <a href="#Kpathsea-application-distributions">Kpathsea application distributions</a></li> -<li><a href="#index-kpathsea_002eh-777"><code>kpathsea.h</code></a>: <a href="#Programming-overview">Programming overview</a></li> -<li><a href="#index-kpathsea_002fREADME_002eCONFIGURE-90"><code>kpathsea/README.CONFIGURE</code></a>: <a href="#Running-configure">Running configure</a></li> -<li><a href="#index-kpathsea_005fcnf_005fget-822"><code>kpathsea_cnf_get</code></a>: <a href="#Programming-with-config-files">Programming with config files</a></li> -<li><a href="#index-KPATHSEA_005fDEBUG-790"><code>KPATHSEA_DEBUG</code></a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-KPATHSEA_005fDEBUG-319"><code>KPATHSEA_DEBUG</code></a>: <a href="#Debugging">Debugging</a></li> -<li><a href="#index-kpathsea_005ffind_005ffile-804"><code>kpathsea_find_file</code></a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-kpathsea_005ffind_005ffile-723"><code>kpathsea_find_file</code></a>: <a href="#File-lookup">File lookup</a></li> -<li><a href="#index-kpathsea_005ffind_005fglyph-728"><code>kpathsea_find_glyph</code></a>: <a href="#Glyph-lookup">Glyph lookup</a></li> -<li><a href="#index-kpathsea_005ffinish-808"><code>kpathsea_finish</code></a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-kpathsea_005fin_005fname_005fok-807"><code>kpathsea_in_name_ok</code></a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-kpathsea_005finit_005fprog-802"><code>kpathsea_init_prog</code></a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-kpathsea_005finit_005fprog-755"><code>kpathsea_init_prog</code></a>: <a href="#Fallback-font">Fallback font</a></li> -<li><a href="#index-kpathsea_005fnew-783"><code>kpathsea_new</code></a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-kpathsea_005fopen_005ffile-805"><code>kpathsea_open_file</code></a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-kpathsea_005fout_005fname_005fok-806"><code>kpathsea_out_name_ok</code></a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-kpathsea_005fset_005fprogram_005fname-784"><code>kpathsea_set_program_name</code></a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-KPATHSEA_005fWARNING-458"><code>KPATHSEA_WARNING</code></a>: <a href="#Config-files">Config files</a></li> -<li><a href="#index-kpse_002d_003edebug-317"><code>kpse->debug</code></a>: <a href="#Debugging">Debugging</a></li> -<li><a href="#index-kpse_002d_003edebug-_0040r_007bvariable_007d-796"><code>kpse->debug </code><span class="roman">variable</span></a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-kpse_002d_003eformat_005finfo-799"><code>kpse->format_info</code></a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-kpse_002d_003einvocation_005fname-786"><code>kpse->invocation_name</code></a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-kpse_002d_003einvocation_005fshort_005fname-787"><code>kpse->invocation_short_name</code></a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-kpse_002d_003eprogram_005fname-788"><code>kpse->program_name</code></a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-KPSE_005fBITMAP_005fTOLERANCE-733"><code>KPSE_BITMAP_TOLERANCE</code></a>: <a href="#Basic-glyph-lookup">Basic glyph lookup</a></li> -<li><a href="#index-KPSE_005fDEBUG_005fEXPAND-_0040r_007b_002816_0029_007d-332"><code>KPSE_DEBUG_EXPAND </code><span class="roman">(16)</span></a>: <a href="#Debugging">Debugging</a></li> -<li><a href="#index-KPSE_005fDEBUG_005fFOPEN-_0040r_007b_00284_0029_007d-328"><code>KPSE_DEBUG_FOPEN </code><span class="roman">(4)</span></a>: <a href="#Debugging">Debugging</a></li> -<li><a href="#index-KPSE_005fDEBUG_005fHASH-_0040r_007b_00282_0029_007d-327"><code>KPSE_DEBUG_HASH </code><span class="roman">(2)</span></a>: <a href="#Debugging">Debugging</a></li> -<li><a href="#index-KPSE_005fDEBUG_005fPATHS-_0040r_007b_00288_0029_007d-330"><code>KPSE_DEBUG_PATHS </code><span class="roman">(8)</span></a>: <a href="#Debugging">Debugging</a></li> -<li><a href="#index-KPSE_005fDEBUG_005fSEARCH-_0040r_007b_002832_0029_007d-333"><code>KPSE_DEBUG_SEARCH </code><span class="roman">(32)</span></a>: <a href="#Debugging">Debugging</a></li> -<li><a href="#index-KPSE_005fDEBUG_005fSTAT-_0040r_007b_00281_0029_007d-326"><code>KPSE_DEBUG_STAT </code><span class="roman">(1)</span></a>: <a href="#Debugging">Debugging</a></li> -<li><a href="#index-KPSE_005fDEBUG_005fVARS-_0040r_007b_002864_0029_007d-334"><code>KPSE_DEBUG_VARS </code><span class="roman">(64)</span></a>: <a href="#Debugging">Debugging</a></li> -<li><a href="#index-KPSE_005fDOT-_0040r_007bexpansion_007d-505"><code>KPSE_DOT </code><span class="roman">expansion</span></a>: <a href="#KPSE_005fDOT-expansion">KPSE_DOT expansion</a></li> -<li><a href="#index-kpse_005fformat_005finfo_005ftype-331"><code>kpse_format_info_type</code></a>: <a href="#Debugging">Debugging</a></li> -<li><a href="#index-kpse_005finit_005fprog_0040r_007b_002c-and-_0040code_007bMAKETEX_005fMODE_007d_007d-70"><code>kpse_init_prog</code><span class="roman">, and </span><code>MAKETEX_MODE</code></a>: <a href="#Default-path-features">Default path features</a></li> -<li><a href="#index-kpsewhich-543"><code>kpsewhich</code></a>: <a href="#Invoking-kpsewhich">Invoking kpsewhich</a></li> -<li><a href="#index-Kpsewhich_002c-and-debugging-324">Kpsewhich, and debugging</a>: <a href="#Debugging">Debugging</a></li> -<li><a href="#index-ksh_0040r_007b_002c-losing-with-_0040code_007bconfigure_007d_007d-93"><code>ksh</code><span class="roman">, losing with </span><code>configure</code></a>: <a href="#configure-shells">configure shells</a></li> -<li><a href="#index-LaserJet-drive-57">LaserJet drive</a>: <a href="#Kpathsea-application-distributions">Kpathsea application distributions</a></li> -<li><a href="#index-last_002dresort-font-748">last-resort font</a>: <a href="#Fallback-font">Fallback font</a></li> -<li><a href="#index-La_0040TeX_007b_007d-help-mailing-list-308">LaTeX help mailing list</a>: <a href="#Mailing-lists">Mailing lists</a></li> -<li><a href="#index-lcircle10-740"><code>lcircle10</code></a>: <a href="#Fontmap">Fontmap</a></li> -<li><a href="#index-LDFLAGS-121"><code>LDFLAGS</code></a>: <a href="#configure-environment">configure environment</a></li> -<li><a href="#index-leading-colons-476">leading colons</a>: <a href="#Default-expansion">Default expansion</a></li> -<li><a href="#index-leaf-directories-wrongly-guessed-358">leaf directories wrongly guessed</a>: <a href="#Unable-to-find-files">Unable to find files</a></li> -<li><a href="#index-leaf-directory-trick-511">leaf directory trick</a>: <a href="#Subdirectory-expansion">Subdirectory expansion</a></li> -<li><a href="#index-libdl_002ea-398"><code>libdl.a</code></a>: <a href="#dlopen">dlopen</a></li> -<li><a href="#index-libraries_002c-changing-157">libraries, changing</a>: <a href="#Running-make">Running make</a></li> -<li><a href="#index-libraries_002c-specifying-additional-124">libraries, specifying additional</a>: <a href="#configure-environment">configure environment</a></li> -<li><a href="#index-LIBS-123"><code>LIBS</code></a>: <a href="#configure-environment">configure environment</a></li> -<li><a href="#index-libucb_0040r_007b_002c-avoiding_007d-162"><code>libucb</code><span class="roman">, avoiding</span></a>: <a href="#Running-make">Running make</a></li> -<li><a href="#index-license-for-using-the-library-8">license for using the library</a>: <a href="#Introduction">Introduction</a></li> -<li><a href="#index-LIGFONTS-633"><code>LIGFONTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-lines_002c-reading-arbitrary_002dlength-814">lines, reading arbitrary-length</a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-Linux-File-System-Standard-231">Linux File System Standard</a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-Linux-shells-and-_0040code_007bconfigure_007d-100">Linux shells and <code>configure</code></a>: <a href="#configure-shells">configure shells</a></li> -<li><a href="#index-lndir-_0040r_007bfor-building-symlink-trees_007d-130"><code>lndir </code><span class="roman">for building symlink trees</span></a>: <a href="#configure-scenarios">configure scenarios</a></li> -<li><a href="#index-loader-options-122">loader options</a>: <a href="#configure-environment">configure environment</a></li> -<li><a href="#index-loader-options_002c-final-153">loader options, final</a>: <a href="#Running-make">Running make</a></li> -<li><a href="#index-loader-options_002c-initial-151">loader options, initial</a>: <a href="#Running-make">Running make</a></li> -<li><a href="#index-local-cache-of-fonts-259">local cache of fonts</a>: <a href="#Security">Security</a></li> -<li><a href="#index-log-file-341">log file</a>: <a href="#Logging">Logging</a></li> -<li><a href="#index-logging-successful-searches-342">logging successful searches</a>: <a href="#Logging">Logging</a></li> -<li><a href="#index-lost_002bfound-_0040r_007bdirectory_007d-445"><code>lost+found </code><span class="roman">directory</span></a>: <a href="#Searching-overview">Searching overview</a></li> -<li><a href="#index-lostchar-762"><code>lostchar</code></a>: <a href="#Suppressing-warnings">Suppressing warnings</a></li> -<li><a href="#index-ls_002dR-634"><code>ls-R</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-ls_002dR-_0040r_007band-AFS_007d-174"><code>ls-R </code><span class="roman">and AFS</span></a>: <a href="#Installing-files">Installing files</a></li> -<li><a href="#index-ls_002dR-_0040r_007bdatabase-file_007d-521"><code>ls-R </code><span class="roman">database file</span></a>: <a href="#ls_002dR">ls-R</a></li> -<li><a href="#index-ls_002dR_0040r_007b_002c-simplest-build_007d-523"><code>ls-R</code><span class="roman">, simplest build</span></a>: <a href="#ls_002dR">ls-R</a></li> -<li><a href="#index-Mach10-_0040code_007bconfigure_007d-error-389">Mach10 <code>configure</code> error</a>: <a href="#Empty-Makefiles">Empty Makefiles</a></li> -<li><a href="#index-MacKenzie_002c-David-513">MacKenzie, David</a>: <a href="#Subdirectory-expansion">Subdirectory expansion</a></li> -<li><a href="#index-MacKenzie_002c-David-21">MacKenzie, David</a>: <a href="#History">History</a></li> -<li><a href="#index-magic-characters-423">magic characters</a>: <a href="#Searching-overview">Searching overview</a></li> -<li><a href="#index-mailing-lists-303">mailing lists</a>: <a href="#Mailing-lists">Mailing lists</a></li> -<li><a href="#index-maintainer_002dclean-_0040r_007bMake-target_007d-179"><code>maintainer-clean </code><span class="roman">Make target</span></a>: <a href="#Cleaning-up">Cleaning up</a></li> -<li><a href="#index-Make-arguments_002c-additional-155">Make arguments, additional</a>: <a href="#Running-make">Running make</a></li> -<li><a href="#index-make_0040r_007b_002c-running_007d-141"><code>make</code><span class="roman">, running</span></a>: <a href="#Running-make">Running make</a></li> -<li><a href="#index-Makefile_002ein-85"><code>Makefile.in</code></a>: <a href="#Running-configure">Running configure</a></li> -<li><a href="#index-Makefiles_002c-empty-384">Makefiles, empty</a>: <a href="#Empty-Makefiles">Empty Makefiles</a></li> -<li><a href="#index-MAKETEX_005fDEBUG-_0040r_007b_0028512_0029_007d-336"><code>MAKETEX_DEBUG </code><span class="roman">(512)</span></a>: <a href="#Debugging">Debugging</a></li> -<li><a href="#index-MAKETEX_005fFINE_005fDEBUG-_0040r_007b_00281024_0029_007d-337"><code>MAKETEX_FINE_DEBUG </code><span class="roman">(1024)</span></a>: <a href="#Debugging">Debugging</a></li> -<li><a href="#index-MAKETEX_005fMODE-68"><code>MAKETEX_MODE</code></a>: <a href="#Default-path-features">Default path features</a></li> -<li><a href="#index-memory-allocation-routines-810">memory allocation routines</a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-metafont-driver-files-218">metafont driver files</a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-Metafont-failures-375">Metafont failures</a>: <a href="#TeX-or-Metafont-failing">TeX or Metafont failing</a></li> -<li><a href="#index-Metafont-installation-373">Metafont installation</a>: <a href="#Unable-to-generate-fonts">Unable to generate fonts</a></li> -<li><a href="#index-Metafont-making-too_002dlarge-fonts-369">Metafont making too-large fonts</a>: <a href="#Unable-to-generate-fonts">Unable to generate fonts</a></li> -<li><a href="#index-Metafont-using-the-wrong-device-365">Metafont using the wrong device</a>: <a href="#Unable-to-generate-fonts">Unable to generate fonts</a></li> -<li><a href="#index-MFBASES-596"><code>MFBASES</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-MFINPUTS-643"><code>MFINPUTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-MFPOOL-645"><code>MFPOOL</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-MFTINPUTS-647"><code>MFTINPUTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-MISCFONTS-648"><code>MISCFONTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-mismatched-checksum-warnings-761">mismatched checksum warnings</a>: <a href="#Suppressing-warnings">Suppressing warnings</a></li> -<li><a href="#index-missfont_002elog-249"><code>missfont.log</code></a>: <a href="#mktex-script-names">mktex script names</a></li> -<li><a href="#index-MISSFONT_005fLOG-252"><code>MISSFONT_LOG</code></a>: <a href="#mktex-script-names">mktex script names</a></li> -<li><a href="#index-missing-character-warnings-763">missing character warnings</a>: <a href="#Suppressing-warnings">Suppressing warnings</a></li> -<li><a href="#index-mkocp-241"><code>mkocp</code></a>: <a href="#mktex-script-names">mktex script names</a></li> -<li><a href="#index-mkofm-242"><code>mkofm</code></a>: <a href="#mktex-script-names">mktex script names</a></li> -<li><a href="#index-g_t_0040file_007bmktex_007d-script-configuration-189"><samp><span class="file">mktex</span></samp> script configuration</a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-g_t_0040file_007bmktex_007d-script-names-236"><samp><span class="file">mktex</span></samp> script names</a>: <a href="#mktex-script-names">mktex script names</a></li> -<li><a href="#index-g_t_0040file_007bmktex_007d-scripts-183"><samp><span class="file">mktex</span></samp> scripts</a>: <a href="#mktex-scripts">mktex scripts</a></li> -<li><a href="#index-mktex_002ecnf-570"><code>mktex.cnf</code></a>: <a href="#Specially_002drecognized-files">Specially-recognized files</a></li> -<li><a href="#index-mktex_002ecnf-202"><code>mktex.cnf</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-mktex_002eopt-203"><code>mktex.opt</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-mktexdir-209"><code>mktexdir</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-mktexfmt-238"><code>mktexfmt</code></a>: <a href="#mktex-script-names">mktex script names</a></li> -<li><a href="#index-mktexmf-240"><code>mktexmf</code></a>: <a href="#mktex-script-names">mktex script names</a></li> -<li><a href="#index-mktexpk-243"><code>mktexpk</code></a>: <a href="#mktex-script-names">mktex script names</a></li> -<li><a href="#index-mktexpk-_0040r_007b_002c-initial-runs_007d-37"><code>mktexpk </code><span class="roman">, initial runs</span></a>: <a href="#Simple-installation">Simple installation</a></li> -<li><a href="#index-g_t_0040code_007bmktexpk_007d-can_0027t-guess-mode-364"><code>mktexpk</code> can't guess mode</a>: <a href="#Unable-to-generate-fonts">Unable to generate fonts</a></li> -<li><a href="#index-mktextex-244"><code>mktextex</code></a>: <a href="#mktex-script-names">mktex script names</a></li> -<li><a href="#index-mktextfm-245"><code>mktextfm</code></a>: <a href="#mktex-script-names">mktex script names</a></li> -<li><a href="#index-MLBIBINPUTS-650"><code>MLBIBINPUTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-MLBSTINPUTS-654"><code>MLBSTINPUTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-mode-directory_002c-omitting-220">mode directory, omitting</a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-Morgan_002c-Tim-13">Morgan, Tim</a>: <a href="#History">History</a></li> -<li><a href="#index-mostlyclean-_0040r_007bMake-target_007d-177"><code>mostlyclean </code><span class="roman">Make target</span></a>: <a href="#Cleaning-up">Cleaning up</a></li> -<li><a href="#index-MPINPUTS-657"><code>MPINPUTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-MPMEMS-639"><code>MPMEMS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-MPPOOL-659"><code>MPPOOL</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-MPSUPPORT-641"><code>MPSUPPORT</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-MT_005fFEATURES-206"><code>MT_FEATURES</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-multiple-architectures_002c-compiling-on-126">multiple architectures, compiling on</a>: <a href="#configure-scenarios">configure scenarios</a></li> -<li><a href="#index-multiple-architectures_002c-directories-for-131">multiple architectures, directories for</a>: <a href="#configure-scenarios">configure scenarios</a></li> -<li><a href="#index-multiple-architectures_002c-installing-on-166">multiple architectures, installing on</a>: <a href="#Installing-files">Installing files</a></li> -<li><a href="#index-multiple-_0040TeX_007b_007d-hierarchies-503">multiple TeX hierarchies</a>: <a href="#Brace-expansion">Brace expansion</a></li> -<li><a href="#index-must-exist-432">must exist</a>: <a href="#Searching-overview">Searching overview</a></li> -<li><a href="#index-names-for-_0040file_007bmktex_007d-scripts-237">names for <samp><span class="file">mktex</span></samp> scripts</a>: <a href="#mktex-script-names">mktex script names</a></li> -<li><a href="#index-NetBSD-_0040code_007bconfigure_007d-error-387">NetBSD <code>configure</code> error</a>: <a href="#Empty-Makefiles">Empty Makefiles</a></li> -<li><a href="#index-NetBSD-shells-and-_0040code_007bconfigure_007d-98">NetBSD shells and <code>configure</code></a>: <a href="#configure-shells">configure shells</a></li> -<li><a href="#index-Neumann_002c-Gustaf-24">Neumann, Gustaf</a>: <a href="#History">History</a></li> -<li><a href="#index-newsgroup-for-_0040TeX_007b_007d-310">newsgroup for TeX</a>: <a href="#Mailing-lists">Mailing lists</a></li> -<li><a href="#index-NeXT-_0040code_007bsed_007d-error-391">NeXT <code>sed</code> error</a>: <a href="#Empty-Makefiles">Empty Makefiles</a></li> -<li><a href="#index-NeXT_002c-lacking-X11-53">NeXT, lacking X11</a>: <a href="#Kpathsea-application-distributions">Kpathsea application distributions</a></li> -<li><a href="#index-NFS-and-_0040file_007bls_002dR_007d-534">NFS and <samp><span class="file">ls-R</span></samp></a>: <a href="#ls_002dR">ls-R</a></li> -<li><a href="#index-nomfdrivers-217"><code>nomfdrivers</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-nomode-219"><code>nomode</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-non_002dEnglish-typesetting-62">non-English typesetting</a>: <a href="#Kpathsea-application-distributions">Kpathsea application distributions</a></li> -<li><a href="#index-non_002dUnix-operating-systems-41">non-Unix operating systems</a>: <a href="#Custom-installation">Custom installation</a></li> -<li><a href="#index-none-764"><code>none</code></a>: <a href="#Suppressing-warnings">Suppressing warnings</a></li> -<li><a href="#index-null-pointers_002c-dereferencing-301">null pointers, dereferencing</a>: <a href="#Bug-checklist">Bug checklist</a></li> -<li><a href="#index-numeric-debugging-values-325">numeric debugging values</a>: <a href="#Debugging">Debugging</a></li> -<li><a href="#index-obtaining-_0040TeX_007b_007d-274">obtaining TeX</a>: <a href="#unixtex_002eftp">unixtex.ftp</a></li> -<li><a href="#index-OCPINPUTS-661"><code>OCPINPUTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-OFMFONTS-663"><code>OFMFONTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-online-Metafont-display_002c-spurious-371">online Metafont display, spurious</a>: <a href="#Unable-to-generate-fonts">Unable to generate fonts</a></li> -<li><a href="#index-OPENTYPEFONTS-664"><code>OPENTYPEFONTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-OpenWin-libraries_002c-dynamic-linking-problems-401">OpenWin libraries, dynamic linking problems</a>: <a href="#ShellWidgetClass">ShellWidgetClass</a></li> -<li><a href="#index-optimization-caveat-377">optimization caveat</a>: <a href="#TeX-or-Metafont-failing">TeX or Metafont failing</a></li> -<li><a href="#index-optimization_002c-enabling-136">optimization, enabling</a>: <a href="#configure-scenarios">configure scenarios</a></li> -<li><a href="#index-options-for-debugging-316">options for debugging</a>: <a href="#Debugging">Debugging</a></li> -<li><a href="#index-options-to-_0040code_007bconfigure_007d-108">options to <code>configure</code></a>: <a href="#configure-options">configure options</a></li> -<li><a href="#index-OS_002f2-support-44">OS/2 support</a>: <a href="#Custom-installation">Custom installation</a></li> -<li><a href="#index-OTPINPUTS-667"><code>OTPINPUTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-overview-of-path-searching-421">overview of path searching</a>: <a href="#Searching-overview">Searching overview</a></li> -<li><a href="#index-overview-of-programming-with-Kpathsea-771">overview of programming with Kpathsea</a>: <a href="#Programming-overview">Programming overview</a></li> -<li><a href="#index-OVFFONTS-669"><code>OVFFONTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-OVPFONTS-671"><code>OVPFONTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-patches_002c-Sun-OpenWin-408">patches, Sun OpenWin</a>: <a href="#ShellWidgetClass">ShellWidgetClass</a></li> -<li><a href="#index-path-expansion-472">path expansion</a>: <a href="#Path-expansion">Path expansion</a></li> -<li><a href="#index-path-searching-418">path searching</a>: <a href="#Path-searching">Path searching</a></li> -<li><a href="#index-path-searching-options-546">path searching options</a>: <a href="#Path-searching-options">Path searching options</a></li> -<li><a href="#index-path-searching_002c-overview-420">path searching, overview</a>: <a href="#Searching-overview">Searching overview</a></li> -<li><a href="#index-path-searching_002c-standalone-544">path searching, standalone</a>: <a href="#Invoking-kpsewhich">Invoking kpsewhich</a></li> -<li><a href="#index-path-sources-447">path sources</a>: <a href="#Path-sources">Path sources</a></li> -<li><a href="#index-paths_002c-changing-default-75">paths, changing default</a>: <a href="#Default-path-generation">Default path generation</a></li> -<li><a href="#index-paths_002c-changing-default-64">paths, changing default</a>: <a href="#Changing-search-paths">Changing search paths</a></li> -<li><a href="#index-paths_002c-device-name-included-in-69">paths, device name included in</a>: <a href="#Default-path-features">Default path features</a></li> -<li><a href="#index-paths_002eh-82"><code>paths.h</code></a>: <a href="#Default-path-generation">Default path generation</a></li> -<li><a href="#index-paths_002eh_0040r_007b_002c-creating_007d-143"><code>paths.h</code><span class="roman">, creating</span></a>: <a href="#Running-make">Running make</a></li> -<li><a href="#index-pathsearch_002eh-774"><code>pathsearch.h</code></a>: <a href="#Programming-overview">Programming overview</a></li> -<li><a href="#index-pc-_0040r_007bPascal-compiler_007d-19"><code>pc </code><span class="roman">Pascal compiler</span></a>: <a href="#History">History</a></li> -<li><a href="#index-PCL-driver-56">PCL driver</a>: <a href="#Kpathsea-application-distributions">Kpathsea application distributions</a></li> -<li><a href="#index-PDF-generation-58">PDF generation</a>: <a href="#Kpathsea-application-distributions">Kpathsea application distributions</a></li> -<li><a href="#index-pdfglyphlist_002etxt-571"><code>pdfglyphlist.txt</code></a>: <a href="#Specially_002drecognized-files">Specially-recognized files</a></li> -<li><a href="#index-pdftex_002ecfg-572"><code>pdftex.cfg</code></a>: <a href="#Specially_002drecognized-files">Specially-recognized files</a></li> -<li><a href="#index-PDFTEXCONFIG-672"><code>PDFTEXCONFIG</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-pdftexconfig_002etex-573"><code>pdftexconfig.tex</code></a>: <a href="#Specially_002drecognized-files">Specially-recognized files</a></li> -<li><a href="#index-permission-denied-441">permission denied</a>: <a href="#Searching-overview">Searching overview</a></li> -<li><a href="#index-permissions_002c-directory-268">permissions, directory</a>: <a href="#Security">Security</a></li> -<li><a href="#index-permissions_002c-file-266">permissions, file</a>: <a href="#Security">Security</a></li> -<li><a href="#index-PKFONTS-674"><code>PKFONTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-plain_002ebase-372"><code>plain.base</code></a>: <a href="#Unable-to-generate-fonts">Unable to generate fonts</a></li> -<li><a href="#index-pointer-combination-warnings-415">pointer combination warnings</a>: <a href="#Pointer-combination-warnings">Pointer combination warnings</a></li> -<li><a href="#index-PostScript-driver-59">PostScript driver</a>: <a href="#Kpathsea-application-distributions">Kpathsea application distributions</a></li> -<li><a href="#index-PostScript-fonts_002c-additional-34">PostScript fonts, additional</a>: <a href="#Simple-installation">Simple installation</a></li> -<li><a href="#index-precompiled-executables_002c-instead-of-installation-31">precompiled executables, instead of installation</a>: <a href="#Simple-installation">Simple installation</a></li> -<li><a href="#index-preprocessor-options-120">preprocessor options</a>: <a href="#configure-environment">configure environment</a></li> -<li><a href="#index-preprocessor-options_002c-additional-147">preprocessor options, additional</a>: <a href="#Running-make">Running make</a></li> -<li><a href="#index-printer-configuration-files-33">printer configuration files</a>: <a href="#Simple-installation">Simple installation</a></li> -<li><a href="#index-privacy_002c-semblance-of-349">privacy, semblance of</a>: <a href="#Logging">Logging</a></li> -<li><a href="#index-problems_002c-common-351">problems, common</a>: <a href="#Common-problems">Common problems</a></li> -<li><a href="#index-proginit_002ec-71"><code>proginit.c</code></a>: <a href="#Default-path-features">Default path features</a></li> -<li><a href="#index-proginit_002eh-803"><code>proginit.h</code></a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-program_002dvarying-paths-592">program-varying paths</a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-programming-overview-770">programming overview</a>: <a href="#Programming-overview">Programming overview</a></li> -<li><a href="#index-programming-with-config-files-817">programming with config files</a>: <a href="#Programming-with-config-files">Programming with config files</a></li> -<li><a href="#index-programming-with-Kpathsea-781">programming with Kpathsea</a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-programs-using-the-library-3">programs using the library</a>: <a href="#Introduction">Introduction</a></li> -<li><a href="#index-proof-mode-370">proof mode</a>: <a href="#Unable-to-generate-fonts">Unable to generate fonts</a></li> -<li><a href="#index-PSHEADERS-680"><code>PSHEADERS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-pxp-_0040r_007bPascal-preprocessor_007d-18"><code>pxp </code><span class="roman">Pascal preprocessor</span></a>: <a href="#History">History</a></li> -<li><a href="#index-quoting-variable-values-488">quoting variable values</a>: <a href="#Variable-expansion">Variable expansion</a></li> -<li><a href="#index-re_002dentrant-API-772">re-entrant API</a>: <a href="#Programming-overview">Programming overview</a></li> -<li><a href="#index-readable-765"><code>readable</code></a>: <a href="#Suppressing-warnings">Suppressing warnings</a></li> -<li><a href="#index-reading-arbitrary_002dlength-lines-812">reading arbitrary-length lines</a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-README_002eCONFIGURE-89"><code>README.CONFIGURE</code></a>: <a href="#Running-configure">Running configure</a></li> -<li><a href="#index-recording-successful-searches-343">recording successful searches</a>: <a href="#Logging">Logging</a></li> -<li><a href="#index-relative-filenames-438">relative filenames</a>: <a href="#Searching-overview">Searching overview</a></li> -<li><a href="#index-relative-filenames-in-_0040file_007bls_002dR_007d-175">relative filenames in <samp><span class="file">ls-R</span></samp></a>: <a href="#Installing-files">Installing files</a></li> -<li><a href="#index-reporting-bugs-283">reporting bugs</a>: <a href="#Reporting-bugs">Reporting bugs</a></li> -<li><a href="#index-resident_002ec-800"><code>resident.c</code></a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-resolution_002c-setting-551">resolution, setting</a>: <a href="#Path-searching-options">Path searching options</a></li> -<li><a href="#index-resolutions_002c-last_002dresort-747">resolutions, last-resort</a>: <a href="#Fallback-font">Fallback font</a></li> -<li><a href="#index-retrieving-_0040TeX_007b_007d-275">retrieving TeX</a>: <a href="#unixtex_002eftp">unixtex.ftp</a></li> -<li><a href="#index-right_002dhand-side-of-variable-assignments-468">right-hand side of variable assignments</a>: <a href="#Config-files">Config files</a></li> -<li><a href="#index-Rokicki_002c-Tom-14">Rokicki, Tom</a>: <a href="#History">History</a></li> -<li><a href="#index-g_t_0040t_007broot_007d-user-497"><tt>root</tt> user</a>: <a href="#Tilde-expansion">Tilde expansion</a></li> -<li><a href="#index-runtime-configuration-files-456">runtime configuration files</a>: <a href="#Config-files">Config files</a></li> -<li><a href="#index-runtime-debugging-315">runtime debugging</a>: <a href="#Debugging">Debugging</a></li> -<li><a href="#index-Sauter-fonts_002c-and-dynamic-source-creation-187">Sauter fonts, and dynamic source creation</a>: <a href="#mktex-scripts">mktex scripts</a></li> -<li><a href="#index-scripts-for-file-creation-184">scripts for file creation</a>: <a href="#mktex-scripts">mktex scripts</a></li> -<li><a href="#index-search-path_002c-defined-422">search path, defined</a>: <a href="#Searching-overview">Searching overview</a></li> -<li><a href="#index-search-paths_002c-changing-default-63">search paths, changing default</a>: <a href="#Changing-search-paths">Changing search paths</a></li> -<li><a href="#index-searching-for-files-717">searching for files</a>: <a href="#File-lookup">File lookup</a></li> -<li><a href="#index-searching-for-glyphs-725">searching for glyphs</a>: <a href="#Glyph-lookup">Glyph lookup</a></li> -<li><a href="#index-searching-overview-419">searching overview</a>: <a href="#Searching-overview">Searching overview</a></li> -<li><a href="#index-searching-the-database-427">searching the database</a>: <a href="#Searching-overview">Searching overview</a></li> -<li><a href="#index-searching-the-disk-431">searching the disk</a>: <a href="#Searching-overview">Searching overview</a></li> -<li><a href="#index-security-considerations-256">security considerations</a>: <a href="#Security">Security</a></li> -<li><a href="#index-sed-_0040r_007berror-from-_0040code_007bconfigure_007d_007d-385"><code>sed </code><span class="roman">error from </span><code>configure</code></a>: <a href="#Empty-Makefiles">Empty Makefiles</a></li> -<li><a href="#index-SELFAUTODIR-792">SELFAUTODIR</a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-SELFAUTOLOC-791">SELFAUTOLOC</a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-SELFAUTOPARENT-793">SELFAUTOPARENT</a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-sending-patches-295">sending patches</a>: <a href="#Bug-checklist">Bug checklist</a></li> -<li><a href="#index-setgid-scripts-264">setgid scripts</a>: <a href="#Security">Security</a></li> -<li><a href="#index-SFDFONTS-682"><code>SFDFONTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-sh5_0040r_007b_002c-ok-with-_0040code_007bconfigure_007d_007d-103"><code>sh5</code><span class="roman">, ok with </span><code>configure</code></a>: <a href="#configure-shells">configure shells</a></li> -<li><a href="#index-shared-library_002c-making-138">shared library, making</a>: <a href="#Shared-library">Shared library</a></li> -<li><a href="#index-shell-scripts-as-configuration-files-469">shell scripts as configuration files</a>: <a href="#Config-files">Config files</a></li> -<li><a href="#index-shell-variables-489">shell variables</a>: <a href="#Variable-expansion">Variable expansion</a></li> -<li><a href="#index-shell_005fescape_0040r_007b_002c-example-for-code_007d-821"><code>shell_escape</code><span class="roman">, example for code</span></a>: <a href="#Programming-with-config-files">Programming with config files</a></li> -<li><a href="#index-shells-and-_0040code_007bconfigure_007d-91">shells and <code>configure</code></a>: <a href="#configure-shells">configure shells</a></li> -<li><a href="#index-simple-installation-29">simple installation</a>: <a href="#Simple-installation">Simple installation</a></li> -<li><a href="#index-site-overrides-for-_0040code_007bmktex_0040dots_007b_007d_007d-204">site overrides for <code>mktex...</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-size-of-distribution-archives-48">size of distribution archives</a>: <a href="#Disk-space">Disk space</a></li> -<li><a href="#index-skeleton-_0040TeX_007b_007d-directory-272">skeleton TeX directory</a>: <a href="#TeX-directory-structure">TeX directory structure</a></li> -<li><a href="#index-slow-startup-time-360">slow startup time</a>: <a href="#Slow-path-searching">Slow path searching</a></li> -<li><a href="#index-Solaris-BSD-compatibility_002c-not-161">Solaris BSD compatibility, not</a>: <a href="#Running-make">Running make</a></li> -<li><a href="#index-source-files-687"><code>source files</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-sources-for-search-paths-448">sources for search paths</a>: <a href="#Path-sources">Path sources</a></li> -<li><a href="#index-special-767"><code>special</code></a>: <a href="#Suppressing-warnings">Suppressing warnings</a></li> -<li><a href="#index-st_005fnlink-514"><code>st_nlink</code></a>: <a href="#Subdirectory-expansion">Subdirectory expansion</a></li> -<li><a href="#index-ST_005fNLINK_005fTRICK-515"><code>ST_NLINK_TRICK</code></a>: <a href="#Subdirectory-expansion">Subdirectory expansion</a></li> -<li><a href="#index-stack-trace-297">stack trace</a>: <a href="#Bug-checklist">Bug checklist</a></li> -<li><a href="#index-standalone-path-searching-545">standalone path searching</a>: <a href="#Invoking-kpsewhich">Invoking kpsewhich</a></li> -<li><a href="#index-standard-error-and-debugging-output-323">standard error and debugging output</a>: <a href="#Debugging">Debugging</a></li> -<li><a href="#index-standard-options-584">standard options</a>: <a href="#Standard-options">Standard options</a></li> -<li><a href="#index-startup-time_002c-excessive-361">startup time, excessive</a>: <a href="#Slow-path-searching">Slow path searching</a></li> -<li><a href="#index-static-linking-409">static linking</a>: <a href="#ShellWidgetClass">ShellWidgetClass</a></li> -<li><a href="#index-static-linking-and-_0040code_007bdlsym_007d-393">static linking and <code>dlsym</code></a>: <a href="#dlopen">dlopen</a></li> -<li><a href="#index-string-routines-811">string routines</a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-strip-225"><code>strip</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-stripsupplier-221"><code>stripsupplier</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-striptypeface-223"><code>striptypeface</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-subdirectory-searching-507">subdirectory searching</a>: <a href="#Subdirectory-expansion">Subdirectory expansion</a></li> -<li><a href="#index-suffixes_002c-filename-720">suffixes, filename</a>: <a href="#File-lookup">File lookup</a></li> -<li><a href="#index-suggestions_002c-making-6">suggestions, making</a>: <a href="#Introduction">Introduction</a></li> -<li><a href="#index-Sun-2-17">Sun 2</a>: <a href="#History">History</a></li> -<li><a href="#index-Sun-OpenWin-patches-407">Sun OpenWin patches</a>: <a href="#ShellWidgetClass">ShellWidgetClass</a></li> -<li><a href="#index-supplier-directory_002c-omitting-222">supplier directory, omitting</a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-supported-file-formats-588">supported file formats</a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-suppressing-warnings-757">suppressing warnings</a>: <a href="#Suppressing-warnings">Suppressing warnings</a></li> -<li><a href="#index-symbolic-link-trees_002c-for-multiple-architectures-128">symbolic link trees, for multiple architectures</a>: <a href="#configure-scenarios">configure scenarios</a></li> -<li><a href="#index-symbolic-links-not-found-357">symbolic links not found</a>: <a href="#Unable-to-find-files">Unable to find files</a></li> -<li><a href="#index-symbolic-links_002c-and-_0040file_007bls_002dR_007d-531">symbolic links, and <samp><span class="file">ls-R</span></samp></a>: <a href="#ls_002dR">ls-R</a></li> -<li><a href="#index-symlinks_002c-resolving-794">symlinks, resolving</a>: <a href="#Calling-sequence">Calling sequence</a></li> -<li><a href="#index-system-C-compiler-bugs-379">system C compiler bugs</a>: <a href="#TeX-or-Metafont-failing">TeX or Metafont failing</a></li> -<li><a href="#index-system-dependencies-88">system dependencies</a>: <a href="#Running-configure">Running configure</a></li> -<li><a href="#index-system-V-universe-160">system V universe</a>: <a href="#Running-make">Running make</a></li> -<li><a href="#index-T1FONTS-701"><code>T1FONTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-T1INPUTS-702"><code>T1INPUTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-T42FONTS-705"><code>T42FONTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-tcfmgr_002emap-576"><code>tcfmgr.map</code></a>: <a href="#Specially_002drecognized-files">Specially-recognized files</a></li> -<li><a href="#index-TDS-273">TDS</a>: <a href="#TeX-directory-structure">TeX directory structure</a></li> -<li><a href="#index-TDS-72">TDS</a>: <a href="#Default-path-features">Default path features</a></li> -<li><a href="#index-testing_002c-post_002dinstallation-254">testing, post-installation</a>: <a href="#Installation-testing">Installation testing</a></li> -<li><a href="#index-tests_002c-simple-38">tests, simple</a>: <a href="#Simple-installation">Simple installation</a></li> -<li><a href="#index-g_t_0040TeX_007b_007d-directory-structure-270">TeX directory structure</a>: <a href="#TeX-directory-structure">TeX directory structure</a></li> -<li><a href="#index-g_t_0040TeX_007b_007d-directory-structure-73">TeX directory structure</a>: <a href="#Default-path-features">Default path features</a></li> -<li><a href="#index-g_t_0040TeX_007b_007d-environment-variables-591">TeX environment variables</a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-g_t_0040TeX_007b_007d-failures-374">TeX failures</a>: <a href="#TeX-or-Metafont-failing">TeX or Metafont failing</a></li> -<li><a href="#index-g_t_0040TeX_007b_007d-file-lookup-718">TeX file lookup</a>: <a href="#File-lookup">File lookup</a></li> -<li><a href="#index-g_t_0040TeX_007b_007d-glyph-lookup-726">TeX glyph lookup</a>: <a href="#Glyph-lookup">Glyph lookup</a></li> -<li><a href="#index-g_t_0040TeX_007b_007d-help-mailing-list-307">TeX help mailing list</a>: <a href="#Mailing-lists">Mailing lists</a></li> -<li><a href="#index-g_t_0040TeX_007b_007d-hierarchy_002c-one-125">TeX hierarchy, one</a>: <a href="#configure-scenarios">configure scenarios</a></li> -<li><a href="#index-g_t_0040TeX_007b_007d-support-587">TeX support</a>: <a href="#TeX-support">TeX support</a></li> -<li><a href="#index-g_t_0040TeX_007b_007d-Users-Group-10">TeX Users Group</a>: <a href="#Introduction">Introduction</a></li> -<li><a href="#index-tex_002dfile_002ec-722"><code>tex-file.c</code></a>: <a href="#File-lookup">File lookup</a></li> -<li><a href="#index-tex_002dfile_002eh-775"><code>tex-file.h</code></a>: <a href="#Programming-overview">Programming overview</a></li> -<li><a href="#index-tex_002dglyph_002ec-727"><code>tex-glyph.c</code></a>: <a href="#Glyph-lookup">Glyph lookup</a></li> -<li><a href="#index-tex_002dglyph_002eh-776"><code>tex-glyph.h</code></a>: <a href="#Programming-overview">Programming overview</a></li> -<li><a href="#index-tex_002dk_002drequest_0040_0040tug_002eorg-306"><code>tex-k-request@tug.org</code></a>: <a href="#Mailing-lists">Mailing lists</a></li> -<li><a href="#index-tex_002dk_0040_0040tug_002eorg-_0040r_007b_0028bug-address_0029_007d-285"><code>tex-k@tug.org </code><span class="roman">(bug address)</span></a>: <a href="#Reporting-bugs">Reporting bugs</a></li> -<li><a href="#index-tex_002eweb-281"><code>tex.web</code></a>: <a href="#unixtex_002eftp">unixtex.ftp</a></li> -<li><a href="#index-TEX_005fHUSH-758"><code>TEX_HUSH</code></a>: <a href="#Suppressing-warnings">Suppressing warnings</a></li> -<li><a href="#index-TEX_005fHUSH-446"><code>TEX_HUSH</code></a>: <a href="#Searching-overview">Searching overview</a></li> -<li><a href="#index-TEXBIB-600"><code>TEXBIB</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-TEXCONFIG-610"><code>TEXCONFIG</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-TEXDOCS-686"><code>TEXDOCS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-TEXFONTMAPS-637"><code>TEXFONTMAPS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-TEXFONTS-624"><code>TEXFONTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-texfonts_002emap-737"><code>texfonts.map</code></a>: <a href="#Fontmap">Fontmap</a></li> -<li><a href="#index-TEXFORMATS-615"><code>TEXFORMATS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-TEXINDEXSTYLE-630"><code>TEXINDEXSTYLE</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-TEXINPUTS-628"><code>TEXINPUTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-TEXMF-269"><code>TEXMF</code></a>: <a href="#TeX-directory-structure">TeX directory structure</a></li> -<li><a href="#index-texmf_002ecnf-574"><code>texmf.cnf</code></a>: <a href="#Specially_002drecognized-files">Specially-recognized files</a></li> -<li><a href="#index-g_t_0040file_007btexmf_002ecnf_007d-missing_002c-warning-about-460"><samp><span class="file">texmf.cnf</span></samp> missing, warning about</a>: <a href="#Config-files">Config files</a></li> -<li><a href="#index-texmf_002ecnf_0040r_007b_002c-and-variable-expansion_007d-487"><code>texmf.cnf</code><span class="roman">, and variable expansion</span></a>: <a href="#Variable-expansion">Variable expansion</a></li> -<li><a href="#index-texmf_002ecnf_0040r_007b_002c-creating_007d-142"><code>texmf.cnf</code><span class="roman">, creating</span></a>: <a href="#Running-make">Running make</a></li> -<li><a href="#index-texmf_002ecnf_0040r_007b_002c-definition-for_007d-455"><code>texmf.cnf</code><span class="roman">, definition for</span></a>: <a href="#Config-files">Config files</a></li> -<li><a href="#index-texmf_002ecnf_0040r_007b_002c-generated_007d-81"><code>texmf.cnf</code><span class="roman">, generated</span></a>: <a href="#Default-path-generation">Default path generation</a></li> -<li><a href="#index-texmf_002ecnf_0040r_007b_002c-source-for-path_007d-452"><code>texmf.cnf</code><span class="roman">, source for path</span></a>: <a href="#Path-sources">Path sources</a></li> -<li><a href="#index-texmf_002ein-80"><code>texmf.in</code></a>: <a href="#Default-path-generation">Default path generation</a></li> -<li><a href="#index-texmf_002ein_0040r_007b_002c-editing_007d-65"><code>texmf.in</code><span class="roman">, editing</span></a>: <a href="#Changing-search-paths">Changing search paths</a></li> -<li><a href="#index-texmf_002esed-79"><code>texmf.sed</code></a>: <a href="#Default-path-generation">Default path generation</a></li> -<li><a href="#index-TEXMFCNF-606"><code>TEXMFCNF</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-TEXMFCNF-457"><code>TEXMFCNF</code></a>: <a href="#Config-files">Config files</a></li> -<li><a href="#index-TEXMFDBS-635"><code>TEXMFDBS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-TEXMFDBS-522"><code>TEXMFDBS</code></a>: <a href="#ls_002dR">ls-R</a></li> -<li><a href="#index-TEXMFINI-597"><code>TEXMFINI</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-TEXMFLOG-346"><code>TEXMFLOG</code></a>: <a href="#Logging">Logging</a></li> -<li><a href="#index-TEXMFOUTPUT-251"><code>TEXMFOUTPUT</code></a>: <a href="#mktex-script-names">mktex script names</a></li> -<li><a href="#index-TEXMFSCRIPTS-689"><code>TEXMFSCRIPTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-TEXMFVAR-234"><code>TEXMFVAR</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-texmfvar-233"><code>texmfvar</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-TEXPICTS-627"><code>TEXPICTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-TEXPKS-675"><code>TEXPKS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-TEXPOOL-691"><code>TEXPOOL</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-TEXPSHEADERS-679"><code>TEXPSHEADERS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-TEXSIZES-752"><code>TEXSIZES</code></a>: <a href="#Fallback-font">Fallback font</a></li> -<li><a href="#index-TEXSOURCES-688"><code>TEXSOURCES</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-TFMFONTS-693"><code>TFMFONTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-tilde-expansion-493">tilde expansion</a>: <a href="#Tilde-expansion">Tilde expansion</a></li> -<li><a href="#index-tilde_002ec-500"><code>tilde.c</code></a>: <a href="#Tilde-expansion">Tilde expansion</a></li> -<li><a href="#index-time-_0040r_007bsystem-call_007d-348"><code>time </code><span class="roman">system call</span></a>: <a href="#Logging">Logging</a></li> -<li><a href="#index-tolerance-for-glyph-lookup-731">tolerance for glyph lookup</a>: <a href="#Basic-glyph-lookup">Basic glyph lookup</a></li> -<li><a href="#index-total-disk-space-47">total disk space</a>: <a href="#Disk-space">Disk space</a></li> -<li><a href="#index-trailing-_0040samp_007b_002f_007d-in-home-directory-498">trailing ‘<samp><span class="samp">/</span></samp>’ in home directory</a>: <a href="#Tilde-expansion">Tilde expansion</a></li> -<li><a href="#index-trailing-colons-477">trailing colons</a>: <a href="#Default-expansion">Default expansion</a></li> -<li><a href="#index-TRFONTS-695"><code>TRFONTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-trick-for-detecting-leaf-directories-510">trick for detecting leaf directories</a>: <a href="#Subdirectory-expansion">Subdirectory expansion</a></li> -<li><a href="#index-trojan-horse-attack-257">trojan horse attack</a>: <a href="#Security">Security</a></li> -<li><a href="#index-try_005fstd_005fextension_005ffirst-721"><code>try_std_extension_first</code></a>: <a href="#File-lookup">File lookup</a></li> -<li><a href="#index-TTFONTS-698"><code>TTFONTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-tug_002eorg-277"><code>tug.org</code></a>: <a href="#unixtex_002eftp">unixtex.ftp</a></li> -<li><a href="#index-typeface-directory_002c-omitting-224">typeface directory, omitting</a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-ucbinclude_0040r_007b_002c-avoiding_007d-163"><code>ucbinclude</code><span class="roman">, avoiding</span></a>: <a href="#Running-make">Running make</a></li> -<li><a href="#index-Ultrix-shells-and-_0040code_007bconfigure_007d-102">Ultrix shells and <code>configure</code></a>: <a href="#configure-shells">configure shells</a></li> -<li><a href="#index-unable-to-find-files-353">unable to find files</a>: <a href="#Unable-to-find-files">Unable to find files</a></li> -<li><a href="#index-unable-to-generate-fonts-362">unable to generate fonts</a>: <a href="#Unable-to-generate-fonts">Unable to generate fonts</a></li> -<li><a href="#index-uname-290"><code>uname</code></a>: <a href="#Bug-checklist">Bug checklist</a></li> -<li><a href="#index-universe_002c-BSD-vs_002e_0040_003a-system-V-158">universe, BSD vs. system V</a>: <a href="#Running-make">Running make</a></li> -<li><a href="#index-unixtex_002eftp-276"><code>unixtex.ftp</code></a>: <a href="#unixtex_002eftp">unixtex.ftp</a></li> -<li><a href="#index-unknown-special-warnings-768">unknown special warnings</a>: <a href="#Suppressing-warnings">Suppressing warnings</a></li> -<li><a href="#index-unreadable-file-warnings-766">unreadable file warnings</a>: <a href="#Suppressing-warnings">Suppressing warnings</a></li> -<li><a href="#index-unreadable-files-442">unreadable files</a>: <a href="#Searching-overview">Searching overview</a></li> -<li><a href="#index-unusable-_0040file_007bls_002dR_007d-warning-536">unusable <samp><span class="file">ls-R</span></samp> warning</a>: <a href="#ls_002dR">ls-R</a></li> -<li><a href="#index-usage-patterns_002c-finding-344">usage patterns, finding</a>: <a href="#Logging">Logging</a></li> -<li><a href="#index-USE_005fTEXMFVAR-235"><code>USE_TEXMFVAR</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-USE_005fVARTEXFONTS-232"><code>USE_VARTEXFONTS</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-Usenet-_0040TeX_007b_007d-newsgroup-309">Usenet TeX newsgroup</a>: <a href="#Mailing-lists">Mailing lists</a></li> -<li><a href="#index-USERPROFILE_0040r_007b_002c-as-_007e-expansion_007d-496"><code>USERPROFILE</code><span class="roman">, as ~ expansion</span></a>: <a href="#Tilde-expansion">Tilde expansion</a></li> -<li><a href="#index-varfonts-228"><code>varfonts</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-variable-expansion-485">variable expansion</a>: <a href="#Variable-expansion">Variable expansion</a></li> -<li><a href="#index-variable_002ec-490"><code>variable.c</code></a>: <a href="#Variable-expansion">Variable expansion</a></li> -<li><a href="#index-variable_002eh-820"><code>variable.h</code></a>: <a href="#Programming-with-config-files">Programming with config files</a></li> -<li><a href="#index-VARTEXFONTS-230"><code>VARTEXFONTS</code></a>: <a href="#mktex-configuration">mktex configuration</a></li> -<li><a href="#index-VAX-11_002f750-16">VAX 11/750</a>: <a href="#History">History</a></li> -<li><a href="#index-version-number_002c-of-Kpathsea-50">version number, of Kpathsea</a>: <a href="#Kpathsea-application-distributions">Kpathsea application distributions</a></li> -<li><a href="#index-version-numbers_002c-determining-289">version numbers, determining</a>: <a href="#Bug-checklist">Bug checklist</a></li> -<li><a href="#index-VF-files_002c-not-found-433">VF files, not found</a>: <a href="#Searching-overview">Searching overview</a></li> -<li><a href="#index-VFFONTS-707"><code>VFFONTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-VMS-support-45">VMS support</a>: <a href="#Custom-installation">Custom installation</a></li> -<li><a href="#index-Vojta_002c-Paul-20">Vojta, Paul</a>: <a href="#History">History</a></li> -<li><a href="#index-Walsh_002c-Norman-23">Walsh, Norman</a>: <a href="#History">History</a></li> -<li><a href="#index-warning-about-unusable-_0040file_007bls_002dR_007d-535">warning about unusable <samp><span class="file">ls-R</span></samp></a>: <a href="#ls_002dR">ls-R</a></li> -<li><a href="#index-warning_002c-about-missing-_0040file_007btexmf_002ecnf_007d-459">warning, about missing <samp><span class="file">texmf.cnf</span></samp></a>: <a href="#Config-files">Config files</a></li> -<li><a href="#index-warnings_002c-file-access-444">warnings, file access</a>: <a href="#Searching-overview">Searching overview</a></li> -<li><a href="#index-warnings_002c-pointer-combinations-414">warnings, pointer combinations</a>: <a href="#Pointer-combination-warnings">Pointer combination warnings</a></li> -<li><a href="#index-warnings_002c-suppressing-756">warnings, suppressing</a>: <a href="#Suppressing-warnings">Suppressing warnings</a></li> -<li><a href="#index-wcstombs-397"><code>wcstombs</code></a>: <a href="#dlopen">dlopen</a></li> -<li><a href="#index-WEB2C-711"><code>WEB2C</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-Weber_002c-Olaf-25">Weber, Olaf</a>: <a href="#History">History</a></li> -<li><a href="#index-WEBINPUTS-710"><code>WEBINPUTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-whitespace_002c-in-fontmap-files-742">whitespace, in fontmap files</a>: <a href="#Fontmap">Fontmap</a></li> -<li><a href="#index-whitespace_002c-not-ignored-on-continuation-lines-465">whitespace, not ignored on continuation lines</a>: <a href="#Config-files">Config files</a></li> -<li><a href="#index-www_002etug_002eorg-278"><code>www.tug.org</code></a>: <a href="#unixtex_002eftp">unixtex.ftp</a></li> -<li><a href="#index-X11-previewer-60">X11 previewer</a>: <a href="#Kpathsea-application-distributions">Kpathsea application distributions</a></li> -<li><a href="#index-X11_002c-lacking-on-NeXT-54">X11, lacking on NeXT</a>: <a href="#Kpathsea-application-distributions">Kpathsea application distributions</a></li> -<li><a href="#index-XCFLAGS-148"><code>XCFLAGS</code></a>: <a href="#Running-make">Running make</a></li> -<li><a href="#index-XCPPFLAGS-145"><code>XCPPFLAGS</code></a>: <a href="#Running-make">Running make</a></li> -<li><a href="#index-XDEFS-146"><code>XDEFS</code></a>: <a href="#Running-make">Running make</a></li> -<li><a href="#index-XDvi-575"><code>XDvi</code></a>: <a href="#Specially_002drecognized-files">Specially-recognized files</a></li> -<li><a href="#index-XDVIFONTS-714"><code>XDVIFONTS</code></a>: <a href="#Supported-file-formats">Supported file formats</a></li> -<li><a href="#index-XDVIMAKEPK-247"><code>XDVIMAKEPK</code></a>: <a href="#mktex-script-names">mktex script names</a></li> -<li><a href="#index-XDVISIZES-750"><code>XDVISIZES</code></a>: <a href="#Fallback-font">Fallback font</a></li> -<li><a href="#index-XLDFLAGS-150"><code>XLDFLAGS</code></a>: <a href="#Running-make">Running make</a></li> -<li><a href="#index-XLOADLIBES-152"><code>XLOADLIBES</code></a>: <a href="#Running-make">Running make</a></li> -<li><a href="#index-XMAKEARGS-154"><code>XMAKEARGS</code></a>: <a href="#Running-make">Running make</a></li> -<li><a href="#index-Xmu-_0040r_007blibrary-problems_007d-406"><code>Xmu </code><span class="roman">library problems</span></a>: <a href="#ShellWidgetClass">ShellWidgetClass</a></li> -<li><a href="#index-XtStrings-392"><code>XtStrings</code></a>: <a href="#XtStrings">XtStrings</a></li> -<li><a href="#index-zuhn_002c-david-22">zuhn, david</a>: <a href="#History">History</a></li> -<li><a href="#index-g_t_0040_007b-_0040r_007bexpansion_007d-501"><code>{ </code><span class="roman">expansion</span></a>: <a href="#Brace-expansion">Brace expansion</a></li> -<li><a href="#index-g_t_007e-_0040r_007bexpansion_007d-491"><code>~ </code><span class="roman">expansion</span></a>: <a href="#Tilde-expansion">Tilde expansion</a></li> - </ul></body></html> +<p>In any case, you may find the debugging options helpful in determining +precisely when the disk or network is being pounded. See <a href="#Debugging">Debugging</a>. +</p> + +<hr> +<a name="Unable-to-generate-fonts"></a> +<div class="header"> +<p> +Next: <a href="#TeX-or-Metafont-failing" accesskey="n" rel="next">TeX or Metafont failing</a>, Previous: <a href="#Slow-path-searching" accesskey="p" rel="prev">Slow path searching</a>, Up: <a href="#Common-problems" accesskey="u" rel="up">Common problems</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Unable-to-generate-fonts-1"></a> +<h4 class="subsection">8.5.3 Unable to generate fonts</h4> + +<a name="index-unable-to-generate-fonts"></a> +<a name="index-font-generation-failures"></a> + +<p>Metafont outputs fonts in bitmap format, tuned for a particular +device at a particular resolution, in order to allow for the +highest-possible quality of output. Some DVI-to-whatever programs, +such as Dvips, try to generate these on the fly when they are needed, +but this generation may fail in several cases. +</p> +<a name="index-mktexpk-can_0027t-guess-mode"></a> +<p>If <code>mktexpk</code> runs, but fails with this error: +</p><div class="example"> +<pre class="example">mktexpk: Can't guess mode for <var>nnn</var> dpi devices. +mktexpk: Use a config file to specify the mode, or update me. +</pre></div> +<p>you need to ensure the resolution and mode match; just +specifying the resolution, as in <code>-D 360</code>, is not enough. +</p> +<p>You can specify the mode name with the <code>-mode</code> option on the +Dvips command line, or in a Dvips configuration file (see <a href="dvips.html#Config-files">Config +files</a> in <cite>Dvips</cite>), such as <samp>config.ps</samp> in your document +directory, <samp>~/.dvipsrc</samp> in your home directory, or in a system +directory (again named <samp>config.ps</samp>). (Other drivers use other +files, naturally.) +</p> +<p>For example, if you need 360dpi fonts, you could include this in +a configuration file: +</p><div class="example"> +<pre class="example">D 360 +M lqmed +</pre></div> + +<a name="index-Metafont-using-the-wrong-device"></a> +<a name="index-device_002c-wrong"></a> +<p>If Metafont runs, but generates fonts at the wrong resolution or for +the wrong device, most likely <code>mktexpk</code>’s built-in guess for the +mode is wrong, and you should override it as above. +</p> +<p>See <a href="http://ctan.org/pkg/modes">http://ctan.org/pkg/modes</a> for a list of resolutions and mode +names for most devices (additional submissions are welcome). +</p> +<a name="index-_002e2602gf"></a> +<a name="index-2602gf"></a> +<a name="index-Metafont-making-too_002dlarge-fonts"></a> +<a name="index-proof-mode"></a> +<a name="index-online-Metafont-display_002c-spurious"></a> +<p>If Metafont runs but generates fonts at a resolution of 2602dpi +(and prints out the name of each character as well as just a character +number, and maybe tries to display the characters), then your Metafont +base file probably hasn’t been made properly. (It’s using the default +<code>proof</code> mode, instead of an actual device mode.) To make a proper +<samp>plain.base</samp>, assuming the local mode definitions are contained in +a file <samp>modes.mf</samp>, run the following command (assuming Unix): +</p> +<div class="example"> +<pre class="example">inimf "plain; input modes; dump" +</pre></div> + +<a name="index-plain_002ebase"></a> +<p>Then copy the <samp>plain.base</samp> file from the current directory to where +the base files are stored on your system +(<samp>/usr/local/share/texmf/web2c</samp> by default), and make a link +(either hard or soft) from <samp>plain.base</samp> to <samp>mf.base</samp> in that +directory. +See <a href="web2c.html#inimf-invocation">inimf invocation</a> in <cite>Web2c</cite>. +</p> +<a name="index-Metafont-installation"></a> +<p>If <code>mf</code> is a command not found at all by <code>mktexpk</code>, then you +need to install Metafont (see <a href="#unixtex_002eftp">unixtex.ftp</a>). +</p> + +<hr> +<a name="TeX-or-Metafont-failing"></a> +<div class="header"> +<p> +Previous: <a href="#Unable-to-generate-fonts" accesskey="p" rel="prev">Unable to generate fonts</a>, Up: <a href="#Common-problems" accesskey="u" rel="up">Common problems</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="TeX-or-Metafont-failing-1"></a> +<h4 class="subsection">8.5.4 TeX or Metafont failing</h4> + +<a name="index-TeX-failures"></a> +<a name="index-Metafont-failures"></a> +<a name="index-compiler-bugs"></a> +<p>If TeX or Metafont get a segmentation fault or otherwise fail while +running a normal input file, the problem is usually a compiler bug +(unlikely as that may sound). Even if the trip and trap tests are +passed, problems may lurk. Optimization occasionally causes trouble in +programs other than TeX and Metafont themselves, too. +</p> +<p>Insufficient swap space may also cause core dumps or other erratic +behavior. +</p> +<a name="index-optimization-caveat"></a> +<p>For a workaround, if you enabled any optimization flags, it’s best to +omit optimization entirely. In any case, the way to find the facts is +to run the program under the debugger and see where it’s failing. +</p> +<a name="index-GNU-C-compiler-bugs"></a> +<a name="index-system-C-compiler-bugs"></a> +<p>Also, if you have trouble with a system C compiler, I advise trying the +GNU C compiler. And vice versa, unfortunately; but in that case I also +recommend reporting a bug to the GCC mailing list; see <a href="http://gcc.gnu.org/onlinedocs/gcc/Bugs.html#Bugs">Bugs</a> in <cite>Using and Porting GNU CC</cite>. +</p> +<a name="index-compiler-bugs_002c-finding"></a> +<p>To report compiler bugs effectively requires perseverance and +perspicacity: you must find the miscompiled line, and that usually +involves delving backwards in time from the point of error, checking +through TeX’s (or whatever program’s) data structures. Things are +not helped by all-too-common bugs in the debugger itself. Good luck. +</p> + +<hr> +<a name="Index"></a> +<div class="header"> +<p> +Previous: <a href="#Reporting-bugs" accesskey="p" rel="prev">Reporting bugs</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Index-1"></a> +<h2 class="unnumbered">Index</h2> +<table><tr><th valign="top">Jump to: </th><td><a class="summary-letter" href="#Index_cp_symbol-1"><b>!</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-2"><b>$</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-3"><b>-</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-4"><b>.</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-5"><b>/</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-6"><b>2</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-7"><b>8</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-8"><b>:</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-9"><b>\</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-10"><b>{</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-11"><b>~</b></a> + +<br> +<a class="summary-letter" href="#Index_cp_letter-A"><b>A</b></a> + +<a class="summary-letter" href="#Index_cp_letter-B"><b>B</b></a> + +<a class="summary-letter" href="#Index_cp_letter-C"><b>C</b></a> + +<a class="summary-letter" href="#Index_cp_letter-D"><b>D</b></a> + +<a class="summary-letter" href="#Index_cp_letter-E"><b>E</b></a> + +<a class="summary-letter" href="#Index_cp_letter-F"><b>F</b></a> + +<a class="summary-letter" href="#Index_cp_letter-G"><b>G</b></a> + +<a class="summary-letter" href="#Index_cp_letter-H"><b>H</b></a> + +<a class="summary-letter" href="#Index_cp_letter-I"><b>I</b></a> + +<a class="summary-letter" href="#Index_cp_letter-K"><b>K</b></a> + +<a class="summary-letter" href="#Index_cp_letter-L"><b>L</b></a> + +<a class="summary-letter" href="#Index_cp_letter-M"><b>M</b></a> + +<a class="summary-letter" href="#Index_cp_letter-N"><b>N</b></a> + +<a class="summary-letter" href="#Index_cp_letter-O"><b>O</b></a> + +<a class="summary-letter" href="#Index_cp_letter-P"><b>P</b></a> + +<a class="summary-letter" href="#Index_cp_letter-Q"><b>Q</b></a> + +<a class="summary-letter" href="#Index_cp_letter-R"><b>R</b></a> + +<a class="summary-letter" href="#Index_cp_letter-S"><b>S</b></a> + +<a class="summary-letter" href="#Index_cp_letter-T"><b>T</b></a> + +<a class="summary-letter" href="#Index_cp_letter-U"><b>U</b></a> + +<a class="summary-letter" href="#Index_cp_letter-V"><b>V</b></a> + +<a class="summary-letter" href="#Index_cp_letter-W"><b>W</b></a> + +<a class="summary-letter" href="#Index_cp_letter-X"><b>X</b></a> + +<a class="summary-letter" href="#Index_cp_letter-Z"><b>Z</b></a> + +</td></tr></table> +<table class="index-cp" border="0"> +<tr><td></td><th align="left">Index Entry</th><td> </td><th align="left"> Section</th></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-1">!</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_0021_0021-in-path-specifications"><code>!! <span class="roman">in path specifications</span></code></a>:</td><td> </td><td valign="top"><a href="#ls_002dR">ls-R</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-2">$</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_0024-expansion"><code>$ <span class="roman">expansion</span></code></a>:</td><td> </td><td valign="top"><a href="#Variable-expansion">Variable expansion</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-3">-</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dall"><code>--all</code></a>:</td><td> </td><td valign="top"><a href="#Path-searching-options">Path searching options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dcolor_003dtty"><code>--color=tty</code></a>:</td><td> </td><td valign="top"><a href="#ls_002dR">ls-R</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddebug_003dnum"><code>--debug=<var>num</var></code></a>:</td><td> </td><td valign="top"><a href="#Auxiliary-tasks">Auxiliary tasks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddpi_003dnum"><code>--dpi=<var>num</var></code></a>:</td><td> </td><td valign="top"><a href="#Path-searching-options">Path searching options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dengine_003dname"><code>--engine=<var>name</var></code></a>:</td><td> </td><td valign="top"><a href="#Path-searching-options">Path searching options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dexpand_002dbraces_003dstring"><code>--expand-braces=<var>string</var></code></a>:</td><td> </td><td valign="top"><a href="#Auxiliary-tasks">Auxiliary tasks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dexpand_002dpath_003dstring"><code>--expand-path=<var>string</var></code></a>:</td><td> </td><td valign="top"><a href="#Auxiliary-tasks">Auxiliary tasks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dexpand_002dvar_003dstring"><code>--expand-var=<var>string</var></code></a>:</td><td> </td><td valign="top"><a href="#Auxiliary-tasks">Auxiliary tasks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dformat_003dname"><code>--format=<var>name</var></code></a>:</td><td> </td><td valign="top"><a href="#Path-searching-options">Path searching options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dhelp"><code>--help</code></a>:</td><td> </td><td valign="top"><a href="#Standard-options">Standard options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dinteractive"><code>--interactive</code></a>:</td><td> </td><td valign="top"><a href="#Path-searching-options">Path searching options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dmktex_003dfiletype"><code>--mktex=<var>filetype</var></code></a>:</td><td> </td><td valign="top"><a href="#Path-searching-options">Path searching options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dmode_003dstring"><code>--mode=<var>string</var></code></a>:</td><td> </td><td valign="top"><a href="#Path-searching-options">Path searching options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dmust_002dexist"><code>--must-exist</code></a>:</td><td> </td><td valign="top"><a href="#Path-searching-options">Path searching options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dno_002dmktex_003dfiletype"><code>--no-mktex=<var>filetype</var></code></a>:</td><td> </td><td valign="top"><a href="#Path-searching-options">Path searching options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dpath_003dstring"><code>--path=<var>string</var></code></a>:</td><td> </td><td valign="top"><a href="#Path-searching-options">Path searching options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dprogname_003dname"><code>--progname=<var>name</var></code></a>:</td><td> </td><td valign="top"><a href="#Path-searching-options">Path searching options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dsafe_002din_002dname_003dname"><code>--safe-in-name=<var>name</var></code></a>:</td><td> </td><td valign="top"><a href="#Path-searching-options">Path searching options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dsafe_002dout_002dname_003dname"><code>--safe-out-name=<var>name</var></code></a>:</td><td> </td><td valign="top"><a href="#Path-searching-options">Path searching options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dshow_002dpath_003dname"><code>--show-path=<var>name</var></code></a>:</td><td> </td><td valign="top"><a href="#Auxiliary-tasks">Auxiliary tasks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dsubdir_003dstring"><code>--subdir=<var>string</var></code></a>:</td><td> </td><td valign="top"><a href="#Path-searching-options">Path searching options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dvar_002dvalue_003dvariable"><code>--var-value=<var>variable</var></code></a>:</td><td> </td><td valign="top"><a href="#Auxiliary-tasks">Auxiliary tasks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dversion"><code>--version</code></a>:</td><td> </td><td valign="top"><a href="#Standard-options">Standard options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dmktextex_002ddefault"><code>--with-mktextex-default</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwithout_002dmktexfmt_002ddefault"><code>--without-mktexfmt-default</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwithout_002dmktexmf_002ddefault"><code>--without-mktexmf-default</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwithout_002dmktexocp_002ddefault"><code>--without-mktexocp-default</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwithout_002dmktexofm_002ddefault"><code>--without-mktexofm-default</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwithout_002dmktexpk_002ddefault"><code>--without-mktexpk-default</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwithout_002dmktextfm_002ddefault"><code>--without-mktextfm-default</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d1-debugging-value"><code>-1 <span class="roman">debugging value</span></code></a>:</td><td> </td><td valign="top"><a href="#Debugging">Debugging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dA-option-to-ls"><code>-A <span class="roman">option to <code>ls</code></span></code></a>:</td><td> </td><td valign="top"><a href="#ls_002dR">ls-R</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dD-num"><code>-D <var>num</var></code></a>:</td><td> </td><td valign="top"><a href="#Path-searching-options">Path searching options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dL-option-to-ls"><code>-L <span class="roman">option to <code>ls</code></span></code></a>:</td><td> </td><td valign="top"><a href="#ls_002dR">ls-R</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-4">.</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002e-directories_002c-ignored"><code>. <span class="roman">directories, ignored</span></code></a>:</td><td> </td><td valign="top"><a href="#ls_002dR">ls-R</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002e-files"><code>. <span class="roman">files</span></code></a>:</td><td> </td><td valign="top"><a href="#ls_002dR">ls-R</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002e2602gf"><code>.2602gf</code></a>:</td><td> </td><td valign="top"><a href="#Unable-to-generate-fonts">Unable to generate fonts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002eafm"><code>.afm</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002ebase"><code>.base</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002ebib"><code>.bib</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002ebst"><code>.bst</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002ecid"><code>.cid</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002ecmap"><code>.cmap</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002ecnf"><code>.cnf</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002eenc"><code>.enc</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002eeps"><code>.eps</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002eepsi"><code>.epsi</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002efea"><code>.fea</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002efmt"><code>.fmt</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002eist"><code>.ist</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002elig"><code>.lig</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002emap"><code>.map</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002emem"><code>.mem</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002emf"><code>.mf</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002emft"><code>.mft</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002emlbib"><code>.mlbib</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002emlbst"><code>.mlbst</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002emp"><code>.mp</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002eocp"><code>.ocp</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002eofm"><code>.ofm</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002eopl"><code>.opl</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002eotp"><code>.otp</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002eovf"><code>.ovf</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002eovp"><code>.ovp</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002epfa"><code>.pfa</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002epfb"><code>.pfb</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002epk"><code>.pk</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002epool"><code>.pool</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002epool-1"><code>.pool</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002epool-2"><code>.pool</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002epro"><code>.pro</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002erhosts_002c-writable-by-TeX"><code>.rhosts<span class="roman">, writable by TeX</span></code></a>:</td><td> </td><td valign="top"><a href="#Security">Security</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002esfd"><code>.sfd</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002etex"><code>.tex</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002etex-file_002c-included-in-ls_002dR"><code>.tex <span class="roman">file, included in <samp>ls-R</samp></span></code></a>:</td><td> </td><td valign="top"><a href="#ls_002dR">ls-R</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002etfm"><code>.tfm</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002ettc"><code>.ttc</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002ettf"><code>.ttf</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002evf"><code>.vf</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002ew"><code>.w</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002eweb"><code>.web</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002eweb-1"><code>.web</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-5">/</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002f-may-not-be-_002f"><code>/ <span class="roman">may not be /</span></code></a>:</td><td> </td><td valign="top"><a href="#Searching-overview">Searching overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002f_002c-trailing-in-home-directory"><code>/<span class="roman">, trailing in home directory</span></code></a>:</td><td> </td><td valign="top"><a href="#Tilde-expansion">Tilde expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002f_002f"><code>//</code></a>:</td><td> </td><td valign="top"><a href="#Subdirectory-expansion">Subdirectory expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002fetc_002fprofile"><code>/etc/profile</code></a>:</td><td> </td><td valign="top"><a href="#Unable-to-find-files">Unable to find files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002fetc_002fprofile-and-aliases"><code>/etc/profile <span class="roman">and aliases</span></code></a>:</td><td> </td><td valign="top"><a href="#ls_002dR">ls-R</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002fvar_002ftmp_002ftexfonts"><code>/var/tmp/texfonts</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-6">2</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-2602gf"><code>2602gf</code></a>:</td><td> </td><td valign="top"><a href="#Unable-to-generate-fonts">Unable to generate fonts</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-7">8</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-8_002e3-filenames_002c-using">8.3 filenames, using</a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-8">:</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_003a-may-not-be-_003a"><code>: <span class="roman">may not be :</span></code></a>:</td><td> </td><td valign="top"><a href="#Searching-overview">Searching overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_003a_003a-expansion"><code>:: <span class="roman">expansion</span></code></a>:</td><td> </td><td valign="top"><a href="#Default-expansion">Default expansion</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-9">\</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005c_002c-line-continuation-in-texmf_002ecnf"><code>\<span class="roman">, line continuation in <samp>texmf.cnf</samp></span></code></a>:</td><td> </td><td valign="top"><a href="#Config-files">Config files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005copenin"><code>\openin</code></a>:</td><td> </td><td valign="top"><a href="#Searching-overview">Searching overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005cspecial_002c-suppressing-warnings-about"><code>\special<span class="roman">, suppressing warnings about</span></code></a>:</td><td> </td><td valign="top"><a href="#Suppressing-warnings">Suppressing warnings</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-10">{</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_007b-expansion"><code>{ <span class="roman">expansion</span></code></a>:</td><td> </td><td valign="top"><a href="#Brace-expansion">Brace expansion</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-11">~</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_007e-expansion"><code>~ <span class="roman">expansion</span></code></a>:</td><td> </td><td valign="top"><a href="#Tilde-expansion">Tilde expansion</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-A">A</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-absolute-filenames">absolute filenames</a>:</td><td> </td><td valign="top"><a href="#Searching-overview">Searching overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-access-warnings">access warnings</a>:</td><td> </td><td valign="top"><a href="#Searching-overview">Searching overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-AFMFONTS"><code>AFMFONTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-aliases-for-fonts">aliases for fonts</a>:</td><td> </td><td valign="top"><a href="#Fontmap">Fontmap</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-aliases_002c-for-filenames">aliases, for filenames</a>:</td><td> </td><td valign="top"><a href="#Filename-aliases">Filename aliases</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-all"><code>all</code></a>:</td><td> </td><td valign="top"><a href="#Suppressing-warnings">Suppressing warnings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-all-matches_002c-finding">all matches, finding</a>:</td><td> </td><td valign="top"><a href="#Path-searching-options">Path searching options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-alphabetical-order_002c-not">alphabetical order, not</a>:</td><td> </td><td valign="top"><a href="#Subdirectory-expansion">Subdirectory expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-announcement-mailing-list">announcement mailing list</a>:</td><td> </td><td valign="top"><a href="#Mailing-lists">Mailing lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-API_002c-re_002dentrant">API, re-entrant</a>:</td><td> </td><td valign="top"><a href="#Programming-overview">Programming overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-append_002donly-directories-and-mktexpk">append-only directories and <code>mktexpk</code></a>:</td><td> </td><td valign="top"><a href="#Security">Security</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-appendonlydir"><code>appendonlydir</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-arguments-to-mktex">arguments to <samp>mktex</samp></a>:</td><td> </td><td valign="top"><a href="#mktex-script-arguments">mktex script arguments</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-argv_005b0_005d"><code>argv[0]</code></a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-autoconf_002c-recommended"><code>autoconf<span class="roman">, recommended</span></code></a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-automounter_002c-and-ls_002dR">automounter, and <samp>ls-R</samp></a>:</td><td> </td><td valign="top"><a href="#ls_002dR">ls-R</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-auxiliary-tasks">auxiliary tasks</a>:</td><td> </td><td valign="top"><a href="#Auxiliary-tasks">Auxiliary tasks</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-B">B</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-Bach_002c-Johann-Sebastian">Bach, Johann Sebastian</a>:</td><td> </td><td valign="top"><a href="#Default-expansion">Default expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-backslash_002dnewline">backslash-newline</a>:</td><td> </td><td valign="top"><a href="#Config-files">Config files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-basic-glyph-lookup">basic glyph lookup</a>:</td><td> </td><td valign="top"><a href="#Basic-glyph-lookup">Basic glyph lookup</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Berry_002c-Karl">Berry, Karl</a>:</td><td> </td><td valign="top"><a href="#History">History</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-BIBINPUTS"><code>BIBINPUTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-BIBINPUTS-1"><code>BIBINPUTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-blank-lines_002c-in-texmf_002ecnf">blank lines, in <samp>texmf.cnf</samp></a>:</td><td> </td><td valign="top"><a href="#Config-files">Config files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-brace-expansion">brace expansion</a>:</td><td> </td><td valign="top"><a href="#Brace-expansion">Brace expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Breitenlohner_002c-Peter">Breitenlohner, Peter</a>:</td><td> </td><td valign="top"><a href="#History">History</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-BSTINPUTS"><code>BSTINPUTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-BSTINPUTS-1"><code>BSTINPUTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bug-address">bug address</a>:</td><td> </td><td valign="top"><a href="#Reporting-bugs">Reporting bugs</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bug-checklist">bug checklist</a>:</td><td> </td><td valign="top"><a href="#Bug-checklist">Bug checklist</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bug-mailing-list">bug mailing list</a>:</td><td> </td><td valign="top"><a href="#Mailing-lists">Mailing lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bugs_002c-reporting">bugs, reporting</a>:</td><td> </td><td valign="top"><a href="#Reporting-bugs">Reporting bugs</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-C">C</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-c_002d_002a_002eh"><code>c-*.h</code></a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-c_002dauto_002eh"><code>c-auto.h</code></a>:</td><td> </td><td valign="top"><a href="#Programming-overview">Programming overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cache-of-fonts_002c-local">cache of fonts, local</a>:</td><td> </td><td valign="top"><a href="#Security">Security</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-calling-sequence">calling sequence</a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ChangeLog-entry"><code>ChangeLog <span class="roman">entry</span></code></a>:</td><td> </td><td valign="top"><a href="#Bug-checklist">Bug checklist</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-checklist-for-bug-reports">checklist for bug reports</a>:</td><td> </td><td valign="top"><a href="#Bug-checklist">Bug checklist</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-checksum"><code>checksum</code></a>:</td><td> </td><td valign="top"><a href="#Suppressing-warnings">Suppressing warnings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-circle-fonts">circle fonts</a>:</td><td> </td><td valign="top"><a href="#Fontmap">Fontmap</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-client_005fpath-in-kpse_002d_003eformat_005finfo"><code>client_path <span class="roman">in <code>kpse->format_info</code></span></code></a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-CMAPFONTS"><code>CMAPFONTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cmr10_002c-as-fallback-font"><code>cmr10<span class="roman">, as fallback font</span></code></a>:</td><td> </td><td valign="top"><a href="#Fallback-font">Fallback font</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cmr10_002evf"><code>cmr10.vf</code></a>:</td><td> </td><td valign="top"><a href="#Searching-overview">Searching overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cnf_002ec"><code>cnf.c</code></a>:</td><td> </td><td valign="top"><a href="#Config-files">Config files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cnf_002eh"><code>cnf.h</code></a>:</td><td> </td><td valign="top"><a href="#Programming-with-config-files">Programming with config files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-comments_002c-in-fontmap-files">comments, in fontmap files</a>:</td><td> </td><td valign="top"><a href="#Fontmap">Fontmap</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-comments_002c-in-texmf_002ecnf">comments, in <samp>texmf.cnf</samp></a>:</td><td> </td><td valign="top"><a href="#Config-files">Config files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-comments_002c-making">comments, making</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-common-features-in-glyph-lookup">common features in glyph lookup</a>:</td><td> </td><td valign="top"><a href="#Basic-glyph-lookup">Basic glyph lookup</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-common-problems">common problems</a>:</td><td> </td><td valign="top"><a href="#Common-problems">Common problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-compilation-value_002c-source-for-path">compilation value, source for path</a>:</td><td> </td><td valign="top"><a href="#Path-sources">Path sources</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-compiler-bugs">compiler bugs</a>:</td><td> </td><td valign="top"><a href="#TeX-or-Metafont-failing">TeX or Metafont failing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-compiler-bugs_002c-finding">compiler bugs, finding</a>:</td><td> </td><td valign="top"><a href="#TeX-or-Metafont-failing">TeX or Metafont failing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-conditions-for-use">conditions for use</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-config-files">config files</a>:</td><td> </td><td valign="top"><a href="#Config-files">Config files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-config-files_002c-for-Kpathsea_002dusing-programs">config files, for Kpathsea-using programs</a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-config-files_002c-programming-with">config files, programming with</a>:</td><td> </td><td valign="top"><a href="#Programming-with-config-files">Programming with config files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-config_002eh"><code>config.h</code></a>:</td><td> </td><td valign="top"><a href="#Programming-overview">Programming overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-config_002elog"><code>config.log</code></a>:</td><td> </td><td valign="top"><a href="#Bug-checklist">Bug checklist</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-config_002eps"><code>config.ps</code></a>:</td><td> </td><td valign="top"><a href="#Specially_002drecognized-files">Specially-recognized files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-config_002eps_002c-search-path-for"><code>config.ps<span class="roman">, search path for</span></code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-config_002estatus"><code>config.status</code></a>:</td><td> </td><td valign="top"><a href="#Bug-checklist">Bug checklist</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configuration-bugs">configuration bugs</a>:</td><td> </td><td valign="top"><a href="#Bug-checklist">Bug checklist</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configuration-file_002c-source-for-path">configuration file, source for path</a>:</td><td> </td><td valign="top"><a href="#Path-sources">Path sources</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configuration-files-as-shell-scripts_002e">configuration files as shell scripts.</a>:</td><td> </td><td valign="top"><a href="#Config-files">Config files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configuration-of-mktex-scripts">configuration of <samp>mktex</samp> scripts</a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-options-for-mktex-scripts"><code>configure</code> options for <samp>mktex</samp> scripts</a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-context-diff">context diff</a>:</td><td> </td><td valign="top"><a href="#Bug-checklist">Bug checklist</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-continuation-character">continuation character</a>:</td><td> </td><td valign="top"><a href="#Config-files">Config files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-core-dumps_002c-reporting">core dumps, reporting</a>:</td><td> </td><td valign="top"><a href="#Bug-checklist">Bug checklist</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-crashes_002c-reporting">crashes, reporting</a>:</td><td> </td><td valign="top"><a href="#Bug-checklist">Bug checklist</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-CWEBINPUTS"><code>CWEBINPUTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-D">D</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-database-search">database search</a>:</td><td> </td><td valign="top"><a href="#Searching-overview">Searching overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-database_002c-for-filenames">database, for filenames</a>:</td><td> </td><td valign="top"><a href="#Filename-database">Filename database</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-database_002c-format-of">database, format of</a>:</td><td> </td><td valign="top"><a href="#Database-format">Database format</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-debug_002eh"><code>debug.h</code></a>:</td><td> </td><td valign="top"><a href="#Debugging">Debugging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-debugger">debugger</a>:</td><td> </td><td valign="top"><a href="#Bug-checklist">Bug checklist</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-debugging">debugging</a>:</td><td> </td><td valign="top"><a href="#Debugging">Debugging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-debugging-options_002c-in-Kpathsea_002dusing-program">debugging options, in Kpathsea-using program</a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-debugging-output">debugging output</a>:</td><td> </td><td valign="top"><a href="#Debugging">Debugging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-default-expansion">default expansion</a>:</td><td> </td><td valign="top"><a href="#Default-expansion">Default expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-default_005ftexsizes"><code>default_texsizes</code></a>:</td><td> </td><td valign="top"><a href="#Fallback-font">Fallback font</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-device_002c-wrong">device, wrong</a>:</td><td> </td><td valign="top"><a href="#Unable-to-generate-fonts">Unable to generate fonts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-directories_002c-making-append_002donly">directories, making append-only</a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-directory-permissions">directory permissions</a>:</td><td> </td><td valign="top"><a href="#Security">Security</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-directory-structure_002c-for-TeX-files">directory structure, for TeX files</a>:</td><td> </td><td valign="top"><a href="#TeX-directory-structure">TeX directory structure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-disabling-mktex-scripts">disabling <samp>mktex</samp> scripts</a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-disk-search">disk search</a>:</td><td> </td><td valign="top"><a href="#Searching-overview">Searching overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-disk-searching_002c-avoiding">disk searching, avoiding</a>:</td><td> </td><td valign="top"><a href="#ls_002dR">ls-R</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-disk-usage_002c-reducing">disk usage, reducing</a>:</td><td> </td><td valign="top"><a href="#Logging">Logging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-doc-files"><code>doc files</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-DOS-compatible-names">DOS compatible names</a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dosnames"><code>dosnames</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dot-files">dot files</a>:</td><td> </td><td valign="top"><a href="#ls_002dR">ls-R</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-doubled-colons">doubled colons</a>:</td><td> </td><td valign="top"><a href="#Default-expansion">Default expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dpinnn-directories"><code>dpi<var>nnn</var> directories</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-DVILJMAKEPK"><code>DVILJMAKEPK</code></a>:</td><td> </td><td valign="top"><a href="#mktex-script-names">mktex script names</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-DVILJSIZES"><code>DVILJSIZES</code></a>:</td><td> </td><td valign="top"><a href="#Fallback-font">Fallback font</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dvipdfmx_002ecfg"><code>dvipdfmx.cfg</code></a>:</td><td> </td><td valign="top"><a href="#Specially_002drecognized-files">Specially-recognized files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-DVIPSFONTS"><code>DVIPSFONTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-DVIPSHEADERS"><code>DVIPSHEADERS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-DVIPSMAKEPK"><code>DVIPSMAKEPK</code></a>:</td><td> </td><td valign="top"><a href="#mktex-script-names">mktex script names</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-DVIPSSIZES"><code>DVIPSSIZES</code></a>:</td><td> </td><td valign="top"><a href="#Fallback-font">Fallback font</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dynamic-creation-of-files">dynamic creation of files</a>:</td><td> </td><td valign="top"><a href="#mktex-scripts">mktex scripts</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-E">E</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-EC-fonts_002c-and-dynamic-source-creation">EC fonts, and dynamic source creation</a>:</td><td> </td><td valign="top"><a href="#mktex-scripts">mktex scripts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-elt_002ddirs_002ec"><code>elt-dirs.c</code></a>:</td><td> </td><td valign="top"><a href="#Subdirectory-expansion">Subdirectory expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-elt_002ddirs_002ec-1"><code>elt-dirs.c</code></a>:</td><td> </td><td valign="top"><a href="#Subdirectory-expansion">Subdirectory expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-enabling-mktex-scripts">enabling <samp>mktex</samp> scripts</a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ENCFONTS"><code>ENCFONTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-engine-name">engine name</a>:</td><td> </td><td valign="top"><a href="#Path-searching-options">Path searching options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-environment-variable_002c-source-for-path">environment variable, source for path</a>:</td><td> </td><td valign="top"><a href="#Path-sources">Path sources</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-environment-variables-for-TeX">environment variables for TeX</a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-environment-variables-in-paths">environment variables in paths</a>:</td><td> </td><td valign="top"><a href="#Variable-expansion">Variable expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-environment-variables_002c-old">environment variables, old</a>:</td><td> </td><td valign="top"><a href="#Unable-to-find-files">Unable to find files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-epoch_002c-seconds-since">epoch, seconds since</a>:</td><td> </td><td valign="top"><a href="#Logging">Logging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-error-message-macros">error message macros</a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-excessive-startup-time">excessive startup time</a>:</td><td> </td><td valign="top"><a href="#Slow-path-searching">Slow path searching</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-expand_002ec"><code>expand.c</code></a>:</td><td> </td><td valign="top"><a href="#Brace-expansion">Brace expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-expanding-symlinks">expanding symlinks</a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-expansion_002c-default">expansion, default</a>:</td><td> </td><td valign="top"><a href="#Default-expansion">Default expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-expansion_002c-path-element">expansion, path element</a>:</td><td> </td><td valign="top"><a href="#Searching-overview">Searching overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-expansion_002c-search-path">expansion, search path</a>:</td><td> </td><td valign="top"><a href="#Path-expansion">Path expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-expansion_002c-subdirectory">expansion, subdirectory</a>:</td><td> </td><td valign="top"><a href="#Subdirectory-expansion">Subdirectory expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-expansion_002c-tilde">expansion, tilde</a>:</td><td> </td><td valign="top"><a href="#Tilde-expansion">Tilde expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-expansion_002c-variable">expansion, variable</a>:</td><td> </td><td valign="top"><a href="#Variable-expansion">Variable expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-explicitly-relative-filenames">explicitly relative filenames</a>:</td><td> </td><td valign="top"><a href="#Searching-overview">Searching overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-extensions_002c-filename">extensions, filename</a>:</td><td> </td><td valign="top"><a href="#File-lookup">File lookup</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-externally_002dbuilt-filename-database">externally-built filename database</a>:</td><td> </td><td valign="top"><a href="#Filename-database">Filename database</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-extra-colons">extra colons</a>:</td><td> </td><td valign="top"><a href="#Default-expansion">Default expansion</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-F">F</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-failed-mktex_2026-script-invocation">failed <code>mktex…</code> script invocation</a>:</td><td> </td><td valign="top"><a href="#mktex-script-names">mktex script names</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fallback-font">fallback font</a>:</td><td> </td><td valign="top"><a href="#Fallback-font">Fallback font</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fallback-resolutions">fallback resolutions</a>:</td><td> </td><td valign="top"><a href="#Fallback-font">Fallback font</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-FAQ_002c-Kpathsea">FAQ, Kpathsea</a>:</td><td> </td><td valign="top"><a href="#Common-problems">Common problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Farwell_002c-Matthew">Farwell, Matthew</a>:</td><td> </td><td valign="top"><a href="#Subdirectory-expansion">Subdirectory expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-file-formats_002c-supported">file formats, supported</a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-file-lookup">file lookup</a>:</td><td> </td><td valign="top"><a href="#File-lookup">File lookup</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-file-permissions">file permissions</a>:</td><td> </td><td valign="top"><a href="#Security">Security</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-file-types_002c-registering-new">file types, registering new</a>:</td><td> </td><td valign="top"><a href="#Programming-overview">Programming overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-filename-aliases">filename aliases</a>:</td><td> </td><td valign="top"><a href="#Filename-aliases">Filename aliases</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-filename-database">filename database</a>:</td><td> </td><td valign="top"><a href="#Filename-database">Filename database</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-filenames_002c-absolute-or-explicitly-relative">filenames, absolute or explicitly relative</a>:</td><td> </td><td valign="top"><a href="#Searching-overview">Searching overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-files_002c-unable-to-find">files, unable to find</a>:</td><td> </td><td valign="top"><a href="#Unable-to-find-files">Unable to find files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-filesystem-search">filesystem search</a>:</td><td> </td><td valign="top"><a href="#Searching-overview">Searching overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-floating-directories">floating directories</a>:</td><td> </td><td valign="top"><a href="#Searching-overview">Searching overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fmtutil"><code>fmtutil</code></a>:</td><td> </td><td valign="top"><a href="#mktex-script-names">mktex script names</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fmtutil_002ecnf"><code>fmtutil.cnf</code></a>:</td><td> </td><td valign="top"><a href="#Specially_002drecognized-files">Specially-recognized files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fmtutils_002ecnf"><code>fmtutils.cnf</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-font-alias-files">font alias files</a>:</td><td> </td><td valign="top"><a href="#Fontmap">Fontmap</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-font-generation-failures">font generation failures</a>:</td><td> </td><td valign="top"><a href="#Unable-to-generate-fonts">Unable to generate fonts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-font-of-last-resort">font of last resort</a>:</td><td> </td><td valign="top"><a href="#Fallback-font">Fallback font</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-font-set_002c-infinite">font set, infinite</a>:</td><td> </td><td valign="top"><a href="#mktex-scripts">mktex scripts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-FONTCIDMAPS"><code>FONTCIDMAPS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-FONTFEATURES"><code>FONTFEATURES</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fontmap-files">fontmap files</a>:</td><td> </td><td valign="top"><a href="#Fontmap">Fontmap</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fontmaps-1"><code>fontmaps</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fontmaps">fontmaps</a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fontname">fontname</a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fontnames_002c-arbitrary-length">fontnames, arbitrary length</a>:</td><td> </td><td valign="top"><a href="#Fontmap">Fontmap</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-FOOINPUTS"><code>FOOINPUTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-FOOINPUTS-1"><code>FOOINPUTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fopen_002c-redefined"><code>fopen<span class="roman">, redefined</span></code></a>:</td><td> </td><td valign="top"><a href="#Debugging">Debugging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-format-of-external-database">format of external database</a>:</td><td> </td><td valign="top"><a href="#Database-format">Database format</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ftp_002ecs_002estanford_002eedu"><code>ftp.cs.stanford.edu</code></a>:</td><td> </td><td valign="top"><a href="#unixtex_002eftp">unixtex.ftp</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ftp_002etug_002eorg"><code>ftp.tug.org</code></a>:</td><td> </td><td valign="top"><a href="#unixtex_002eftp">unixtex.ftp</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fundamental-purpose-of-Kpathsea">fundamental purpose of Kpathsea</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-G">G</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-gdb_002c-recommended"><code>gdb<span class="roman">, recommended</span></code></a>:</td><td> </td><td valign="top"><a href="#Bug-checklist">Bug checklist</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-gf"><code>gf</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-GFFONTS"><code>GFFONTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-globally-writable-directories">globally writable directories</a>:</td><td> </td><td valign="top"><a href="#Security">Security</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-glyph-lookup">glyph lookup</a>:</td><td> </td><td valign="top"><a href="#Glyph-lookup">Glyph lookup</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-glyph-lookup-bitmap-tolerance">glyph lookup bitmap tolerance</a>:</td><td> </td><td valign="top"><a href="#Basic-glyph-lookup">Basic glyph lookup</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-GLYPHFONTS"><code>GLYPHFONTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-GLYPHFONTS-1"><code>GLYPHFONTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-glyphlist_002etxt"><code>glyphlist.txt</code></a>:</td><td> </td><td valign="top"><a href="#Specially_002drecognized-files">Specially-recognized files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-GNU-C-compiler-bugs">GNU C compiler bugs</a>:</td><td> </td><td valign="top"><a href="#TeX-or-Metafont-failing">TeX or Metafont failing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-GNU-General-Public-License">GNU General Public License</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group_002dwritable-directories">group-writable directories</a>:</td><td> </td><td valign="top"><a href="#Security">Security</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-GSFTOPK_005fDEBUG-_0028128_0029"><code>GSFTOPK_DEBUG <span class="roman">(128)</span></code></a>:</td><td> </td><td valign="top"><a href="#Debugging">Debugging</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-H">H</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-hash-table-buckets_002c-printing">hash table buckets, printing</a>:</td><td> </td><td valign="top"><a href="#Debugging">Debugging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hash-table-routines">hash table routines</a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hash_005fsummary_005fonly-variable-for-debugging"><code>hash_summary_only <span class="roman">variable for debugging</span></code></a>:</td><td> </td><td valign="top"><a href="#Debugging">Debugging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-history-of-Kpathsea">history of Kpathsea</a>:</td><td> </td><td valign="top"><a href="#History">History</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Hoekwater_002c-Taco">Hoekwater, Taco</a>:</td><td> </td><td valign="top"><a href="#History">History</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-home-directories-in-paths">home directories in paths</a>:</td><td> </td><td valign="top"><a href="#Tilde-expansion">Tilde expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-HOME_002c-as-_007e-expansion"><code>HOME<span class="roman">, as ~ expansion</span></code></a>:</td><td> </td><td valign="top"><a href="#Tilde-expansion">Tilde expansion</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-I">I</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-identifiers_002c-characters-valid-in">identifiers, characters valid in</a>:</td><td> </td><td valign="top"><a href="#Config-files">Config files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-include-fontmap-directive"><code>include <span class="roman">fontmap directive</span></code></a>:</td><td> </td><td valign="top"><a href="#Fontmap">Fontmap</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-INDEXSTYLE"><code>INDEXSTYLE</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-input-lines_002c-reading">input lines, reading</a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-interactive-query">interactive query</a>:</td><td> </td><td valign="top"><a href="#Path-searching-options">Path searching options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-interface_002c-not-frozen">interface, not frozen</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-introduction">introduction</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-K">K</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-kdebug_003a">‘<samp>kdebug:</samp>’</a>:</td><td> </td><td valign="top"><a href="#Debugging">Debugging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kdefault_002ec"><code>kdefault.c</code></a>:</td><td> </td><td valign="top"><a href="#Default-expansion">Default expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Knuth_002c-Donald-E_002e">Knuth, Donald E.</a>:</td><td> </td><td valign="top"><a href="#History">History</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Knuth_002c-Donald-E_002e_002c-archive-of-programs-by">Knuth, Donald E., archive of programs by</a>:</td><td> </td><td valign="top"><a href="#unixtex_002eftp">unixtex.ftp</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Kpathsea-config-file_002c-source-for-path">Kpathsea config file, source for path</a>:</td><td> </td><td valign="top"><a href="#Path-sources">Path sources</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpathsea_002eh"><code>kpathsea.h</code></a>:</td><td> </td><td valign="top"><a href="#Programming-overview">Programming overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpathsea_005fcnf_005fget"><code>kpathsea_cnf_get</code></a>:</td><td> </td><td valign="top"><a href="#Programming-with-config-files">Programming with config files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPATHSEA_005fDEBUG"><code>KPATHSEA_DEBUG</code></a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPATHSEA_005fDEBUG-1"><code>KPATHSEA_DEBUG</code></a>:</td><td> </td><td valign="top"><a href="#Debugging">Debugging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpathsea_005ffind_005ffile"><code>kpathsea_find_file</code></a>:</td><td> </td><td valign="top"><a href="#File-lookup">File lookup</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpathsea_005ffind_005ffile-1"><code>kpathsea_find_file</code></a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpathsea_005ffind_005fglyph"><code>kpathsea_find_glyph</code></a>:</td><td> </td><td valign="top"><a href="#Glyph-lookup">Glyph lookup</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpathsea_005ffinish"><code>kpathsea_finish</code></a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpathsea_005finit_005fprog"><code>kpathsea_init_prog</code></a>:</td><td> </td><td valign="top"><a href="#Fallback-font">Fallback font</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpathsea_005finit_005fprog-1"><code>kpathsea_init_prog</code></a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpathsea_005fin_005fname_005fok"><code>kpathsea_in_name_ok</code></a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpathsea_005fnew"><code>kpathsea_new</code></a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpathsea_005fopen_005ffile"><code>kpathsea_open_file</code></a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpathsea_005fout_005fname_005fok"><code>kpathsea_out_name_ok</code></a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpathsea_005fset_005fprogram_005fname"><code>kpathsea_set_program_name</code></a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpathsea_005fvar_005fvalue"><code>kpathsea_var_value</code></a>:</td><td> </td><td valign="top"><a href="#Programming-with-config-files">Programming with config files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPATHSEA_005fWARNING"><code>KPATHSEA_WARNING</code></a>:</td><td> </td><td valign="top"><a href="#Config-files">Config files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_002d_003edebug"><code>kpse->debug</code></a>:</td><td> </td><td valign="top"><a href="#Debugging">Debugging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_002d_003edebug-1"><code>kpse->debug</code></a>:</td><td> </td><td valign="top"><a href="#Debugging">Debugging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_002d_003edebug-variable"><code>kpse->debug <span class="roman">variable</span></code></a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_002d_003eformat_005finfo"><code>kpse->format_info</code></a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_002d_003einvocation_005fname"><code>kpse->invocation_name</code></a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_002d_003einvocation_005fshort_005fname"><code>kpse->invocation_short_name</code></a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_002d_003eprogram_005fname"><code>kpse->program_name</code></a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpsewhich"><code>kpsewhich</code></a>:</td><td> </td><td valign="top"><a href="#Invoking-kpsewhich">Invoking kpsewhich</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Kpsewhich_002c-and-debugging">Kpsewhich, and debugging</a>:</td><td> </td><td valign="top"><a href="#Debugging">Debugging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fBITMAP_005fTOLERANCE"><code>KPSE_BITMAP_TOLERANCE</code></a>:</td><td> </td><td valign="top"><a href="#Basic-glyph-lookup">Basic glyph lookup</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fDEBUG_005fEXPAND-_002816_0029"><code>KPSE_DEBUG_EXPAND <span class="roman">(16)</span></code></a>:</td><td> </td><td valign="top"><a href="#Debugging">Debugging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fDEBUG_005fFOPEN-_00284_0029"><code>KPSE_DEBUG_FOPEN <span class="roman">(4)</span></code></a>:</td><td> </td><td valign="top"><a href="#Debugging">Debugging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fDEBUG_005fHASH-_00282_0029"><code>KPSE_DEBUG_HASH <span class="roman">(2)</span></code></a>:</td><td> </td><td valign="top"><a href="#Debugging">Debugging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fDEBUG_005fPATHS-_00288_0029"><code>KPSE_DEBUG_PATHS <span class="roman">(8)</span></code></a>:</td><td> </td><td valign="top"><a href="#Debugging">Debugging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fDEBUG_005fSEARCH-_002832_0029"><code>KPSE_DEBUG_SEARCH <span class="roman">(32)</span></code></a>:</td><td> </td><td valign="top"><a href="#Debugging">Debugging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fDEBUG_005fSTAT-_00281_0029"><code>KPSE_DEBUG_STAT <span class="roman">(1)</span></code></a>:</td><td> </td><td valign="top"><a href="#Debugging">Debugging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fDEBUG_005fVARS-_002864_0029"><code>KPSE_DEBUG_VARS <span class="roman">(64)</span></code></a>:</td><td> </td><td valign="top"><a href="#Debugging">Debugging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fDOT-expansion"><code>KPSE_DOT <span class="roman">expansion</span></code></a>:</td><td> </td><td valign="top"><a href="#KPSE_005fDOT-expansion">KPSE_DOT expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_005fformat_005finfo_005ftype"><code>kpse_format_info_type</code></a>:</td><td> </td><td valign="top"><a href="#Debugging">Debugging</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-L">L</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-last_002dresort-font">last-resort font</a>:</td><td> </td><td valign="top"><a href="#Fallback-font">Fallback font</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-lcircle10"><code>lcircle10</code></a>:</td><td> </td><td valign="top"><a href="#Fontmap">Fontmap</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-leading-colons">leading colons</a>:</td><td> </td><td valign="top"><a href="#Default-expansion">Default expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-leaf-directories-wrongly-guessed">leaf directories wrongly guessed</a>:</td><td> </td><td valign="top"><a href="#Unable-to-find-files">Unable to find files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-leaf-directory-trick">leaf directory trick</a>:</td><td> </td><td valign="top"><a href="#Subdirectory-expansion">Subdirectory expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-license-for-using-the-library">license for using the library</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-LIGFONTS"><code>LIGFONTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-lines_002c-reading-arbitrary_002dlength">lines, reading arbitrary-length</a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Linux-File-System-Standard">Linux File System Standard</a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-local-cache-of-fonts">local cache of fonts</a>:</td><td> </td><td valign="top"><a href="#Security">Security</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-log-file">log file</a>:</td><td> </td><td valign="top"><a href="#Logging">Logging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-logging-successful-searches">logging successful searches</a>:</td><td> </td><td valign="top"><a href="#Logging">Logging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-lost_002bfound-directory"><code>lost+found <span class="roman">directory</span></code></a>:</td><td> </td><td valign="top"><a href="#Searching-overview">Searching overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-lostchar"><code>lostchar</code></a>:</td><td> </td><td valign="top"><a href="#Suppressing-warnings">Suppressing warnings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ls_002dR"><code>ls-R</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ls_002dR-database-file"><code>ls-R <span class="roman">database file</span></code></a>:</td><td> </td><td valign="top"><a href="#ls_002dR">ls-R</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ls_002dR_002c-simplest-build"><code>ls-R<span class="roman">, simplest build</span></code></a>:</td><td> </td><td valign="top"><a href="#ls_002dR">ls-R</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-M">M</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-MacKenzie_002c-David">MacKenzie, David</a>:</td><td> </td><td valign="top"><a href="#History">History</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MacKenzie_002c-David-1">MacKenzie, David</a>:</td><td> </td><td valign="top"><a href="#Subdirectory-expansion">Subdirectory expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-magic-characters">magic characters</a>:</td><td> </td><td valign="top"><a href="#Searching-overview">Searching overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mailing-lists">mailing lists</a>:</td><td> </td><td valign="top"><a href="#Mailing-lists">Mailing lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MAKETEX_005fDEBUG-_0028512_0029"><code>MAKETEX_DEBUG <span class="roman">(512)</span></code></a>:</td><td> </td><td valign="top"><a href="#Debugging">Debugging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MAKETEX_005fFINE_005fDEBUG-_00281024_0029"><code>MAKETEX_FINE_DEBUG <span class="roman">(1024)</span></code></a>:</td><td> </td><td valign="top"><a href="#Debugging">Debugging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-memory-allocation-routines">memory allocation routines</a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-metafont-driver-files">metafont driver files</a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Metafont-failures">Metafont failures</a>:</td><td> </td><td valign="top"><a href="#TeX-or-Metafont-failing">TeX or Metafont failing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Metafont-installation">Metafont installation</a>:</td><td> </td><td valign="top"><a href="#Unable-to-generate-fonts">Unable to generate fonts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Metafont-making-too_002dlarge-fonts">Metafont making too-large fonts</a>:</td><td> </td><td valign="top"><a href="#Unable-to-generate-fonts">Unable to generate fonts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Metafont-using-the-wrong-device">Metafont using the wrong device</a>:</td><td> </td><td valign="top"><a href="#Unable-to-generate-fonts">Unable to generate fonts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MFBASES"><code>MFBASES</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MFINPUTS"><code>MFINPUTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MFPOOL"><code>MFPOOL</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MFTINPUTS"><code>MFTINPUTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MISCFONTS"><code>MISCFONTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mismatched-checksum-warnings">mismatched checksum warnings</a>:</td><td> </td><td valign="top"><a href="#Suppressing-warnings">Suppressing warnings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-missfont_002elog"><code>missfont.log</code></a>:</td><td> </td><td valign="top"><a href="#mktex-script-names">mktex script names</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MISSFONT_005fLOG"><code>MISSFONT_LOG</code></a>:</td><td> </td><td valign="top"><a href="#mktex-script-names">mktex script names</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-missing-character-warnings">missing character warnings</a>:</td><td> </td><td valign="top"><a href="#Suppressing-warnings">Suppressing warnings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mkocp"><code>mkocp</code></a>:</td><td> </td><td valign="top"><a href="#mktex-script-names">mktex script names</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mkofm"><code>mkofm</code></a>:</td><td> </td><td valign="top"><a href="#mktex-script-names">mktex script names</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mktex-script-configuration"><samp>mktex</samp> script configuration</a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mktex-script-names"><samp>mktex</samp> script names</a>:</td><td> </td><td valign="top"><a href="#mktex-script-names">mktex script names</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mktex-scripts"><samp>mktex</samp> scripts</a>:</td><td> </td><td valign="top"><a href="#mktex-scripts">mktex scripts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mktex_002ecnf"><code>mktex.cnf</code></a>:</td><td> </td><td valign="top"><a href="#Specially_002drecognized-files">Specially-recognized files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mktex_002ecnf-1"><code>mktex.cnf</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mktex_002eopt"><code>mktex.opt</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mktex_002eopt-1"><code>mktex.opt</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mktexdir"><code>mktexdir</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mktexfmt"><code>mktexfmt</code></a>:</td><td> </td><td valign="top"><a href="#mktex-script-names">mktex script names</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mktexmf"><code>mktexmf</code></a>:</td><td> </td><td valign="top"><a href="#mktex-script-names">mktex script names</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mktexpk"><code>mktexpk</code></a>:</td><td> </td><td valign="top"><a href="#mktex-script-names">mktex script names</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mktexpk-can_0027t-guess-mode"><code>mktexpk</code> can’t guess mode</a>:</td><td> </td><td valign="top"><a href="#Unable-to-generate-fonts">Unable to generate fonts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mktextex"><code>mktextex</code></a>:</td><td> </td><td valign="top"><a href="#mktex-script-names">mktex script names</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mktextfm"><code>mktextfm</code></a>:</td><td> </td><td valign="top"><a href="#mktex-script-names">mktex script names</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MLBIBINPUTS"><code>MLBIBINPUTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MLBSTINPUTS"><code>MLBSTINPUTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mode-directory_002c-omitting">mode directory, omitting</a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Morgan_002c-Tim">Morgan, Tim</a>:</td><td> </td><td valign="top"><a href="#History">History</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MPINPUTS"><code>MPINPUTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MPMEMS"><code>MPMEMS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MPPOOL"><code>MPPOOL</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MPSUPPORT"><code>MPSUPPORT</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MT_005fFEATURES"><code>MT_FEATURES</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-multiple-TeX-hierarchies">multiple TeX hierarchies</a>:</td><td> </td><td valign="top"><a href="#Brace-expansion">Brace expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-must-exist">must exist</a>:</td><td> </td><td valign="top"><a href="#Searching-overview">Searching overview</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-N">N</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-names-for-mktex-scripts">names for <samp>mktex</samp> scripts</a>:</td><td> </td><td valign="top"><a href="#mktex-script-names">mktex script names</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Neumann_002c-Gustaf">Neumann, Gustaf</a>:</td><td> </td><td valign="top"><a href="#History">History</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-NFS-and-ls_002dR">NFS and <samp>ls-R</samp></a>:</td><td> </td><td valign="top"><a href="#ls_002dR">ls-R</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-nomfdrivers"><code>nomfdrivers</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-nomode"><code>nomode</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-none"><code>none</code></a>:</td><td> </td><td valign="top"><a href="#Suppressing-warnings">Suppressing warnings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-null-pointers_002c-dereferencing">null pointers, dereferencing</a>:</td><td> </td><td valign="top"><a href="#Bug-checklist">Bug checklist</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-numeric-debugging-values">numeric debugging values</a>:</td><td> </td><td valign="top"><a href="#Debugging">Debugging</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-O">O</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-obtaining-TeX">obtaining TeX</a>:</td><td> </td><td valign="top"><a href="#unixtex_002eftp">unixtex.ftp</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-OCPINPUTS"><code>OCPINPUTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-OFMFONTS"><code>OFMFONTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-online-Metafont-display_002c-spurious">online Metafont display, spurious</a>:</td><td> </td><td valign="top"><a href="#Unable-to-generate-fonts">Unable to generate fonts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-OPENTYPEFONTS"><code>OPENTYPEFONTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-optimization-caveat">optimization caveat</a>:</td><td> </td><td valign="top"><a href="#TeX-or-Metafont-failing">TeX or Metafont failing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-options-for-debugging">options for debugging</a>:</td><td> </td><td valign="top"><a href="#Debugging">Debugging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-OTPINPUTS"><code>OTPINPUTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-overview-of-path-searching">overview of path searching</a>:</td><td> </td><td valign="top"><a href="#Searching-overview">Searching overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-overview-of-programming-with-Kpathsea">overview of programming with Kpathsea</a>:</td><td> </td><td valign="top"><a href="#Programming-overview">Programming overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-OVFFONTS"><code>OVFFONTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-OVPFONTS"><code>OVPFONTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-P">P</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-path-expansion">path expansion</a>:</td><td> </td><td valign="top"><a href="#Path-expansion">Path expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-path-searching">path searching</a>:</td><td> </td><td valign="top"><a href="#Path-searching">Path searching</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-path-searching-options">path searching options</a>:</td><td> </td><td valign="top"><a href="#Path-searching-options">Path searching options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-path-searching_002c-overview">path searching, overview</a>:</td><td> </td><td valign="top"><a href="#Searching-overview">Searching overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-path-searching_002c-standalone">path searching, standalone</a>:</td><td> </td><td valign="top"><a href="#Invoking-kpsewhich">Invoking kpsewhich</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-path-sources">path sources</a>:</td><td> </td><td valign="top"><a href="#Path-sources">Path sources</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pathsearch_002eh"><code>pathsearch.h</code></a>:</td><td> </td><td valign="top"><a href="#Programming-overview">Programming overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pc-Pascal-compiler"><code>pc <span class="roman">Pascal compiler</span></code></a>:</td><td> </td><td valign="top"><a href="#History">History</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pdfglyphlist_002etxt"><code>pdfglyphlist.txt</code></a>:</td><td> </td><td valign="top"><a href="#Specially_002drecognized-files">Specially-recognized files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pdftex_002ecfg"><code>pdftex.cfg</code></a>:</td><td> </td><td valign="top"><a href="#Specially_002drecognized-files">Specially-recognized files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PDFTEXCONFIG"><code>PDFTEXCONFIG</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pdftexconfig_002etex"><code>pdftexconfig.tex</code></a>:</td><td> </td><td valign="top"><a href="#Specially_002drecognized-files">Specially-recognized files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-permission-denied">permission denied</a>:</td><td> </td><td valign="top"><a href="#Searching-overview">Searching overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-permissions_002c-directory">permissions, directory</a>:</td><td> </td><td valign="top"><a href="#Security">Security</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-permissions_002c-file">permissions, file</a>:</td><td> </td><td valign="top"><a href="#Security">Security</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PKFONTS"><code>PKFONTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-plain_002ebase"><code>plain.base</code></a>:</td><td> </td><td valign="top"><a href="#Unable-to-generate-fonts">Unable to generate fonts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-privacy_002c-semblance-of">privacy, semblance of</a>:</td><td> </td><td valign="top"><a href="#Logging">Logging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-problems_002c-common">problems, common</a>:</td><td> </td><td valign="top"><a href="#Common-problems">Common problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-proginit_002eh"><code>proginit.h</code></a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-program_002dvarying-paths">program-varying paths</a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-programming-overview">programming overview</a>:</td><td> </td><td valign="top"><a href="#Programming-overview">Programming overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-programming-with-config-files">programming with config files</a>:</td><td> </td><td valign="top"><a href="#Programming-with-config-files">Programming with config files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-programming-with-Kpathsea">programming with Kpathsea</a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-programs-using-the-library">programs using the library</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-proof-mode">proof mode</a>:</td><td> </td><td valign="top"><a href="#Unable-to-generate-fonts">Unable to generate fonts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PSHEADERS"><code>PSHEADERS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pxp-Pascal-preprocessor"><code>pxp <span class="roman">Pascal preprocessor</span></code></a>:</td><td> </td><td valign="top"><a href="#History">History</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-Q">Q</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-quoting-variable-values">quoting variable values</a>:</td><td> </td><td valign="top"><a href="#Variable-expansion">Variable expansion</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-R">R</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-re_002dentrant-API">re-entrant API</a>:</td><td> </td><td valign="top"><a href="#Programming-overview">Programming overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-readable"><code>readable</code></a>:</td><td> </td><td valign="top"><a href="#Suppressing-warnings">Suppressing warnings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-reading-arbitrary_002dlength-lines">reading arbitrary-length lines</a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-recording-successful-searches">recording successful searches</a>:</td><td> </td><td valign="top"><a href="#Logging">Logging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-relative-filenames">relative filenames</a>:</td><td> </td><td valign="top"><a href="#Searching-overview">Searching overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-reporting-bugs">reporting bugs</a>:</td><td> </td><td valign="top"><a href="#Reporting-bugs">Reporting bugs</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-resident_002ec"><code>resident.c</code></a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-resolution_002c-setting">resolution, setting</a>:</td><td> </td><td valign="top"><a href="#Path-searching-options">Path searching options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-resolutions_002c-last_002dresort">resolutions, last-resort</a>:</td><td> </td><td valign="top"><a href="#Fallback-font">Fallback font</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-retrieving-TeX">retrieving TeX</a>:</td><td> </td><td valign="top"><a href="#unixtex_002eftp">unixtex.ftp</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-right_002dhand-side-of-variable-assignments">right-hand side of variable assignments</a>:</td><td> </td><td valign="top"><a href="#Config-files">Config files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Rokicki_002c-Tom">Rokicki, Tom</a>:</td><td> </td><td valign="top"><a href="#History">History</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-root-user"><tt>root</tt> user</a>:</td><td> </td><td valign="top"><a href="#Tilde-expansion">Tilde expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-runtime-configuration-files">runtime configuration files</a>:</td><td> </td><td valign="top"><a href="#Config-files">Config files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-runtime-debugging">runtime debugging</a>:</td><td> </td><td valign="top"><a href="#Debugging">Debugging</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-S">S</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-Sauter-fonts_002c-and-dynamic-source-creation">Sauter fonts, and dynamic source creation</a>:</td><td> </td><td valign="top"><a href="#mktex-scripts">mktex scripts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-scripts-for-file-creation">scripts for file creation</a>:</td><td> </td><td valign="top"><a href="#mktex-scripts">mktex scripts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-search-path_002c-defined">search path, defined</a>:</td><td> </td><td valign="top"><a href="#Searching-overview">Searching overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-searching-for-files">searching for files</a>:</td><td> </td><td valign="top"><a href="#File-lookup">File lookup</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-searching-for-glyphs">searching for glyphs</a>:</td><td> </td><td valign="top"><a href="#Glyph-lookup">Glyph lookup</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-searching-overview">searching overview</a>:</td><td> </td><td valign="top"><a href="#Searching-overview">Searching overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-searching-the-database">searching the database</a>:</td><td> </td><td valign="top"><a href="#Searching-overview">Searching overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-searching-the-disk">searching the disk</a>:</td><td> </td><td valign="top"><a href="#Searching-overview">Searching overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-security-considerations">security considerations</a>:</td><td> </td><td valign="top"><a href="#Security">Security</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-SELFAUTODIR">SELFAUTODIR</a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-SELFAUTOLOC">SELFAUTOLOC</a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-SELFAUTOPARENT">SELFAUTOPARENT</a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-sending-patches">sending patches</a>:</td><td> </td><td valign="top"><a href="#Bug-checklist">Bug checklist</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-setgid-scripts">setgid scripts</a>:</td><td> </td><td valign="top"><a href="#Security">Security</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-SFDFONTS"><code>SFDFONTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-shell-scripts-as-configuration-files">shell scripts as configuration files</a>:</td><td> </td><td valign="top"><a href="#Config-files">Config files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-shell-variables">shell variables</a>:</td><td> </td><td valign="top"><a href="#Variable-expansion">Variable expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-shell_005fescape_002c-example-for-code"><code>shell_escape<span class="roman">, example for code</span></code></a>:</td><td> </td><td valign="top"><a href="#Programming-with-config-files">Programming with config files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-site-overrides-for-mktex_2026">site overrides for <code>mktex…</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-skeleton-TeX-directory">skeleton TeX directory</a>:</td><td> </td><td valign="top"><a href="#TeX-directory-structure">TeX directory structure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-slow-startup-time">slow startup time</a>:</td><td> </td><td valign="top"><a href="#Slow-path-searching">Slow path searching</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-source-files"><code>source files</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-sources-for-search-paths">sources for search paths</a>:</td><td> </td><td valign="top"><a href="#Path-sources">Path sources</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-special"><code>special</code></a>:</td><td> </td><td valign="top"><a href="#Suppressing-warnings">Suppressing warnings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-stack-trace">stack trace</a>:</td><td> </td><td valign="top"><a href="#Bug-checklist">Bug checklist</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-standalone-path-searching">standalone path searching</a>:</td><td> </td><td valign="top"><a href="#Invoking-kpsewhich">Invoking kpsewhich</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-standard-error-and-debugging-output">standard error and debugging output</a>:</td><td> </td><td valign="top"><a href="#Debugging">Debugging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-standard-options">standard options</a>:</td><td> </td><td valign="top"><a href="#Standard-options">Standard options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-startup-time_002c-excessive">startup time, excessive</a>:</td><td> </td><td valign="top"><a href="#Slow-path-searching">Slow path searching</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-string-routines">string routines</a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-strip"><code>strip</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-stripsupplier"><code>stripsupplier</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-striptypeface"><code>striptypeface</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-st_005fnlink"><code>st_nlink</code></a>:</td><td> </td><td valign="top"><a href="#Subdirectory-expansion">Subdirectory expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ST_005fNLINK_005fTRICK"><code>ST_NLINK_TRICK</code></a>:</td><td> </td><td valign="top"><a href="#Subdirectory-expansion">Subdirectory expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-subdirectory-searching">subdirectory searching</a>:</td><td> </td><td valign="top"><a href="#Subdirectory-expansion">Subdirectory expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-suffixes_002c-filename">suffixes, filename</a>:</td><td> </td><td valign="top"><a href="#File-lookup">File lookup</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-suggestions_002c-making">suggestions, making</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Sun-2">Sun 2</a>:</td><td> </td><td valign="top"><a href="#History">History</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-supplier-directory_002c-omitting">supplier directory, omitting</a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-supplier-directory_002c-omitting-1">supplier directory, omitting</a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-supported-file-formats">supported file formats</a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-suppressing-warnings">suppressing warnings</a>:</td><td> </td><td valign="top"><a href="#Suppressing-warnings">Suppressing warnings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-symbolic-links-not-found">symbolic links not found</a>:</td><td> </td><td valign="top"><a href="#Unable-to-find-files">Unable to find files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-symbolic-links_002c-and-ls_002dR">symbolic links, and <samp>ls-R</samp></a>:</td><td> </td><td valign="top"><a href="#ls_002dR">ls-R</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-symlinks_002c-resolving">symlinks, resolving</a>:</td><td> </td><td valign="top"><a href="#Calling-sequence">Calling sequence</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-system-C-compiler-bugs">system C compiler bugs</a>:</td><td> </td><td valign="top"><a href="#TeX-or-Metafont-failing">TeX or Metafont failing</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-T">T</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-T1FONTS"><code>T1FONTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-T1INPUTS"><code>T1INPUTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-T42FONTS"><code>T42FONTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tcfmgr_002emap"><code>tcfmgr.map</code></a>:</td><td> </td><td valign="top"><a href="#Specially_002drecognized-files">Specially-recognized files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TDS">TDS</a>:</td><td> </td><td valign="top"><a href="#TeX-directory-structure">TeX directory structure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TeX-directory-structure">TeX directory structure</a>:</td><td> </td><td valign="top"><a href="#TeX-directory-structure">TeX directory structure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TeX-environment-variables">TeX environment variables</a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TeX-failures">TeX failures</a>:</td><td> </td><td valign="top"><a href="#TeX-or-Metafont-failing">TeX or Metafont failing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TeX-file-lookup">TeX file lookup</a>:</td><td> </td><td valign="top"><a href="#File-lookup">File lookup</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TeX-glyph-lookup">TeX glyph lookup</a>:</td><td> </td><td valign="top"><a href="#Glyph-lookup">Glyph lookup</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TeX-support">TeX support</a>:</td><td> </td><td valign="top"><a href="#TeX-support">TeX support</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TeX-Users-Group">TeX Users Group</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tex_002dfile_002ec"><code>tex-file.c</code></a>:</td><td> </td><td valign="top"><a href="#File-lookup">File lookup</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tex_002dfile_002eh"><code>tex-file.h</code></a>:</td><td> </td><td valign="top"><a href="#Programming-overview">Programming overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tex_002dglyph_002ec"><code>tex-glyph.c</code></a>:</td><td> </td><td valign="top"><a href="#Glyph-lookup">Glyph lookup</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tex_002dglyph_002eh"><code>tex-glyph.h</code></a>:</td><td> </td><td valign="top"><a href="#Programming-overview">Programming overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tex_002dk_0040tug_002eorg"><code>tex-k@tug.org</code></a>:</td><td> </td><td valign="top"><a href="#Mailing-lists">Mailing lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tex_002dk_0040tug_002eorg-_0028bug-address_0029"><code>tex-k@tug.org <span class="roman">(bug address)</span></code></a>:</td><td> </td><td valign="top"><a href="#Reporting-bugs">Reporting bugs</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tex_002eweb"><code>tex.web</code></a>:</td><td> </td><td valign="top"><a href="#unixtex_002eftp">unixtex.ftp</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXBIB"><code>TEXBIB</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXBIB-1"><code>TEXBIB</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXCONFIG"><code>TEXCONFIG</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXDOCS"><code>TEXDOCS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXFONTMAPS"><code>TEXFONTMAPS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXFONTS"><code>TEXFONTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXFONTS-1"><code>TEXFONTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXFONTS-2"><code>TEXFONTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXFONTS-3"><code>TEXFONTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-texfonts_002emap"><code>texfonts.map</code></a>:</td><td> </td><td valign="top"><a href="#Fontmap">Fontmap</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXFORMATS"><code>TEXFORMATS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXINDEXSTYLE"><code>TEXINDEXSTYLE</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXINPUTS"><code>TEXINPUTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXINPUTS-1"><code>TEXINPUTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXMF"><code>TEXMF</code></a>:</td><td> </td><td valign="top"><a href="#TeX-directory-structure">TeX directory structure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-texmf_002ecnf"><code>texmf.cnf</code></a>:</td><td> </td><td valign="top"><a href="#Specially_002drecognized-files">Specially-recognized files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-texmf_002ecnf-missing_002c-warning-about"><samp>texmf.cnf</samp> missing, warning about</a>:</td><td> </td><td valign="top"><a href="#Config-files">Config files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-texmf_002ecnf_002c-and-variable-expansion"><code>texmf.cnf<span class="roman">, and variable expansion</span></code></a>:</td><td> </td><td valign="top"><a href="#Variable-expansion">Variable expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-texmf_002ecnf_002c-definition-for"><code>texmf.cnf<span class="roman">, definition for</span></code></a>:</td><td> </td><td valign="top"><a href="#Config-files">Config files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-texmf_002ecnf_002c-source-for-path"><code>texmf.cnf<span class="roman">, source for path</span></code></a>:</td><td> </td><td valign="top"><a href="#Path-sources">Path sources</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXMFCNF"><code>TEXMFCNF</code></a>:</td><td> </td><td valign="top"><a href="#Config-files">Config files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXMFCNF-1"><code>TEXMFCNF</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXMFDBS"><code>TEXMFDBS</code></a>:</td><td> </td><td valign="top"><a href="#ls_002dR">ls-R</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXMFDBS-1"><code>TEXMFDBS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXMFINI"><code>TEXMFINI</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXMFINI-1"><code>TEXMFINI</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXMFINI-2"><code>TEXMFINI</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXMFLOG"><code>TEXMFLOG</code></a>:</td><td> </td><td valign="top"><a href="#Logging">Logging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXMFOUTPUT"><code>TEXMFOUTPUT</code></a>:</td><td> </td><td valign="top"><a href="#mktex-script-names">mktex script names</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXMFSCRIPTS"><code>TEXMFSCRIPTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-texmfvar"><code>texmfvar</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXMFVAR"><code>TEXMFVAR</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXPICTS"><code>TEXPICTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXPKS"><code>TEXPKS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXPOOL"><code>TEXPOOL</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXPSHEADERS"><code>TEXPSHEADERS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXPSHEADERS-1"><code>TEXPSHEADERS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXSIZES"><code>TEXSIZES</code></a>:</td><td> </td><td valign="top"><a href="#Fallback-font">Fallback font</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXSOURCES"><code>TEXSOURCES</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEX_005fHUSH"><code>TEX_HUSH</code></a>:</td><td> </td><td valign="top"><a href="#Searching-overview">Searching overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEX_005fHUSH-1"><code>TEX_HUSH</code></a>:</td><td> </td><td valign="top"><a href="#Suppressing-warnings">Suppressing warnings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TFMFONTS"><code>TFMFONTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tilde-expansion">tilde expansion</a>:</td><td> </td><td valign="top"><a href="#Tilde-expansion">Tilde expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tilde_002ec"><code>tilde.c</code></a>:</td><td> </td><td valign="top"><a href="#Tilde-expansion">Tilde expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-time-system-call"><code>time <span class="roman">system call</span></code></a>:</td><td> </td><td valign="top"><a href="#Logging">Logging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tolerance-for-glyph-lookup">tolerance for glyph lookup</a>:</td><td> </td><td valign="top"><a href="#Basic-glyph-lookup">Basic glyph lookup</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-trailing-_002f-in-home-directory">trailing ‘<samp>/</samp>’ in home directory</a>:</td><td> </td><td valign="top"><a href="#Tilde-expansion">Tilde expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-trailing-colons">trailing colons</a>:</td><td> </td><td valign="top"><a href="#Default-expansion">Default expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TRFONTS"><code>TRFONTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-trick-for-detecting-leaf-directories">trick for detecting leaf directories</a>:</td><td> </td><td valign="top"><a href="#Subdirectory-expansion">Subdirectory expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-trojan-horse-attack">trojan horse attack</a>:</td><td> </td><td valign="top"><a href="#Security">Security</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-try_005fstd_005fextension_005ffirst"><code>try_std_extension_first</code></a>:</td><td> </td><td valign="top"><a href="#File-lookup">File lookup</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TTFONTS"><code>TTFONTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tug_002eorg"><code>tug.org</code></a>:</td><td> </td><td valign="top"><a href="#unixtex_002eftp">unixtex.ftp</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-typeface-directory_002c-omitting">typeface directory, omitting</a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-typeface-directory_002c-omitting-1">typeface directory, omitting</a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-U">U</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-unable-to-find-files">unable to find files</a>:</td><td> </td><td valign="top"><a href="#Unable-to-find-files">Unable to find files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-unable-to-generate-fonts">unable to generate fonts</a>:</td><td> </td><td valign="top"><a href="#Unable-to-generate-fonts">Unable to generate fonts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-uname"><code>uname</code></a>:</td><td> </td><td valign="top"><a href="#Bug-checklist">Bug checklist</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-unixtex_002eftp"><code>unixtex.ftp</code></a>:</td><td> </td><td valign="top"><a href="#unixtex_002eftp">unixtex.ftp</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-unknown-special-warnings">unknown special warnings</a>:</td><td> </td><td valign="top"><a href="#Suppressing-warnings">Suppressing warnings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-unreadable-file-warnings">unreadable file warnings</a>:</td><td> </td><td valign="top"><a href="#Suppressing-warnings">Suppressing warnings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-unreadable-files">unreadable files</a>:</td><td> </td><td valign="top"><a href="#Searching-overview">Searching overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-unusable-ls_002dR-warning">unusable <samp>ls-R</samp> warning</a>:</td><td> </td><td valign="top"><a href="#ls_002dR">ls-R</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-usage-patterns_002c-finding">usage patterns, finding</a>:</td><td> </td><td valign="top"><a href="#Logging">Logging</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-USERPROFILE_002c-as-_007e-expansion"><code>USERPROFILE<span class="roman">, as ~ expansion</span></code></a>:</td><td> </td><td valign="top"><a href="#Tilde-expansion">Tilde expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-USE_005fTEXMFVAR"><code>USE_TEXMFVAR</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-USE_005fVARTEXFONTS"><code>USE_VARTEXFONTS</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-V">V</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-varfonts"><code>varfonts</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-variable-expansion">variable expansion</a>:</td><td> </td><td valign="top"><a href="#Variable-expansion">Variable expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-variable_002ec"><code>variable.c</code></a>:</td><td> </td><td valign="top"><a href="#Variable-expansion">Variable expansion</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-variable_002eh"><code>variable.h</code></a>:</td><td> </td><td valign="top"><a href="#Programming-with-config-files">Programming with config files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-VARTEXFONTS"><code>VARTEXFONTS</code></a>:</td><td> </td><td valign="top"><a href="#mktex-configuration">mktex configuration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-VAX-11_002f750">VAX 11/750</a>:</td><td> </td><td valign="top"><a href="#History">History</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-version-numbers_002c-determining">version numbers, determining</a>:</td><td> </td><td valign="top"><a href="#Bug-checklist">Bug checklist</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-VF-files_002c-not-found">VF files, not found</a>:</td><td> </td><td valign="top"><a href="#Searching-overview">Searching overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-VFFONTS"><code>VFFONTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Vojta_002c-Paul">Vojta, Paul</a>:</td><td> </td><td valign="top"><a href="#History">History</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-W">W</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-Walsh_002c-Norman">Walsh, Norman</a>:</td><td> </td><td valign="top"><a href="#History">History</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-warning-about-unusable-ls_002dR">warning about unusable <samp>ls-R</samp></a>:</td><td> </td><td valign="top"><a href="#ls_002dR">ls-R</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-warning_002c-about-missing-texmf_002ecnf">warning, about missing <samp>texmf.cnf</samp></a>:</td><td> </td><td valign="top"><a href="#Config-files">Config files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-warnings_002c-file-access">warnings, file access</a>:</td><td> </td><td valign="top"><a href="#Searching-overview">Searching overview</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-warnings_002c-suppressing">warnings, suppressing</a>:</td><td> </td><td valign="top"><a href="#Suppressing-warnings">Suppressing warnings</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-WEB2C"><code>WEB2C</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Weber_002c-Olaf">Weber, Olaf</a>:</td><td> </td><td valign="top"><a href="#History">History</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-WEBINPUTS"><code>WEBINPUTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-whitespace_002c-in-fontmap-files">whitespace, in fontmap files</a>:</td><td> </td><td valign="top"><a href="#Fontmap">Fontmap</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-whitespace_002c-not-ignored-on-continuation-lines">whitespace, not ignored on continuation lines</a>:</td><td> </td><td valign="top"><a href="#Config-files">Config files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-www_002etug_002eorg"><code>www.tug.org</code></a>:</td><td> </td><td valign="top"><a href="#unixtex_002eftp">unixtex.ftp</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-X">X</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-XDvi"><code>XDvi</code></a>:</td><td> </td><td valign="top"><a href="#Specially_002drecognized-files">Specially-recognized files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-XDVIFONTS"><code>XDVIFONTS</code></a>:</td><td> </td><td valign="top"><a href="#Supported-file-formats">Supported file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-XDVIMAKEPK"><code>XDVIMAKEPK</code></a>:</td><td> </td><td valign="top"><a href="#mktex-script-names">mktex script names</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-XDVISIZES"><code>XDVISIZES</code></a>:</td><td> </td><td valign="top"><a href="#Fallback-font">Fallback font</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-Z">Z</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-zuhn_002c-david">zuhn, david</a>:</td><td> </td><td valign="top"><a href="#History">History</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +</table> +<table><tr><th valign="top">Jump to: </th><td><a class="summary-letter" href="#Index_cp_symbol-1"><b>!</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-2"><b>$</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-3"><b>-</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-4"><b>.</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-5"><b>/</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-6"><b>2</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-7"><b>8</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-8"><b>:</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-9"><b>\</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-10"><b>{</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-11"><b>~</b></a> + +<br> +<a class="summary-letter" href="#Index_cp_letter-A"><b>A</b></a> + +<a class="summary-letter" href="#Index_cp_letter-B"><b>B</b></a> + +<a class="summary-letter" href="#Index_cp_letter-C"><b>C</b></a> + +<a class="summary-letter" href="#Index_cp_letter-D"><b>D</b></a> + +<a class="summary-letter" href="#Index_cp_letter-E"><b>E</b></a> + +<a class="summary-letter" href="#Index_cp_letter-F"><b>F</b></a> + +<a class="summary-letter" href="#Index_cp_letter-G"><b>G</b></a> + +<a class="summary-letter" href="#Index_cp_letter-H"><b>H</b></a> + +<a class="summary-letter" href="#Index_cp_letter-I"><b>I</b></a> + +<a class="summary-letter" href="#Index_cp_letter-K"><b>K</b></a> + +<a class="summary-letter" href="#Index_cp_letter-L"><b>L</b></a> + +<a class="summary-letter" href="#Index_cp_letter-M"><b>M</b></a> + +<a class="summary-letter" href="#Index_cp_letter-N"><b>N</b></a> + +<a class="summary-letter" href="#Index_cp_letter-O"><b>O</b></a> + +<a class="summary-letter" href="#Index_cp_letter-P"><b>P</b></a> + +<a class="summary-letter" href="#Index_cp_letter-Q"><b>Q</b></a> + +<a class="summary-letter" href="#Index_cp_letter-R"><b>R</b></a> + +<a class="summary-letter" href="#Index_cp_letter-S"><b>S</b></a> + +<a class="summary-letter" href="#Index_cp_letter-T"><b>T</b></a> + +<a class="summary-letter" href="#Index_cp_letter-U"><b>U</b></a> + +<a class="summary-letter" href="#Index_cp_letter-V"><b>V</b></a> + +<a class="summary-letter" href="#Index_cp_letter-W"><b>W</b></a> + +<a class="summary-letter" href="#Index_cp_letter-X"><b>X</b></a> + +<a class="summary-letter" href="#Index_cp_letter-Z"><b>Z</b></a> + +</td></tr></table> + +<hr> + + + +</body> +</html> diff --git a/Master/texmf-dist/doc/kpathsea/kpathsea.pdf b/Master/texmf-dist/doc/kpathsea/kpathsea.pdf Binary files differindex bd7c6392ae9..db9db052f77 100644 --- a/Master/texmf-dist/doc/kpathsea/kpathsea.pdf +++ b/Master/texmf-dist/doc/kpathsea/kpathsea.pdf diff --git a/Master/texmf-dist/doc/texlive/tlbuild/tlbuild.html b/Master/texmf-dist/doc/texlive/tlbuild/tlbuild.html new file mode 100644 index 00000000000..f7c79a93a00 --- /dev/null +++ b/Master/texmf-dist/doc/texlive/tlbuild/tlbuild.html @@ -0,0 +1,6544 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- This file documents the TeX Live build system and more. + +Copyright (C) 2013, 2014 Karl Berry & Peter Breitenlohner. + +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 +approved by the TeX Users Group. --> +<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Building TeX Live (2014)</title> + +<meta name="description" content="Building TeX Live (2014)"> +<meta name="keywords" content="Building TeX Live (2014)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<link href="#Top" rel="start" title="Top"> +<link href="#Index" rel="index" title="Index"> +<link href="#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="dir.html#Top" rel="up" title="(dir)"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.indentedblock {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smallindentedblock {margin-left: 3.2em; font-size: smaller} +div.smalllisp {margin-left: 3.2em} +kbd {font-style:oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space:nowrap} +span.nolinebreak {white-space:nowrap} +span.roman {font-family:serif; font-weight:normal} +span.sansserif {font-family:sans-serif; font-weight:normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000"> +<h1 class="settitle" align="center">Building TeX Live (2014)</h1> + + + + + + + + +<a name="SEC_Overview"></a> +<h2 class="shortcontents-heading">Short Table of Contents</h2> + +<div class="shortcontents"> +<ul class="no-bullet"> +<li><a name="stoc-Introduction-1" href="#toc-Introduction-1">1 Introduction</a></li> +<li><a name="stoc-Overview-of-build-system-1" href="#toc-Overview-of-build-system-1">2 Overview of build system</a></li> +<li><a name="stoc-Prerequisites-1" href="#toc-Prerequisites-1">3 Prerequisites</a></li> +<li><a name="stoc-Building-1" href="#toc-Building-1">4 Building</a></li> +<li><a name="stoc-Installing-1" href="#toc-Installing-1">5 Installing</a></li> +<li><a name="stoc-Layout-and-infrastructure-1" href="#toc-Layout-and-infrastructure-1">6 Layout and infrastructure</a></li> +<li><a name="stoc-Configure-options-1" href="#toc-Configure-options-1">7 Configure options</a></li> +<li><a name="stoc-Cross-compilation-1" href="#toc-Cross-compilation-1">8 Cross compilation</a></li> +<li><a name="stoc-Coding-conventions-1" href="#toc-Coding-conventions-1">9 Coding conventions</a></li> +<li><a name="stoc-install_002dtl-1" href="#toc-install_002dtl-1">Appendix A install-tl</a></li> +<li><a name="stoc-tlmgr-1" href="#toc-tlmgr-1">Appendix B tlmgr</a></li> +<li><a name="stoc-Index-1" href="#toc-Index-1">Index</a></li> +</ul> +</div> + +<a name="SEC_Contents"></a> +<h2 class="contents-heading">Table of Contents</h2> + +<div class="contents"> + +<ul class="no-bullet"> + <li><a name="toc-Introduction-1" href="#Introduction">1 Introduction</a></li> + <li><a name="toc-Overview-of-build-system-1" href="#Overview-of-build-system">2 Overview of build system</a></li> + <li><a name="toc-Prerequisites-1" href="#Prerequisites">3 Prerequisites</a></li> + <li><a name="toc-Building-1" href="#Building">4 Building</a> + <ul class="no-bullet"> + <li><a name="toc-Build-iteration-1" href="#Build-iteration">4.1 Build iteration</a></li> + <li><a name="toc-Build-problems-1" href="#Build-problems">4.2 Build problems</a></li> + <li><a name="toc-Build-in-parallel-1" href="#Build-in-parallel">4.3 Build in parallel</a></li> + <li><a name="toc-Build-distribution-1" href="#Build-distribution">4.4 Build distribution</a></li> + <li><a name="toc-Build-one-package-1" href="#Build-one-package">4.5 Build one package</a></li> + </ul></li> + <li><a name="toc-Installing-1" href="#Installing">5 Installing</a> + <ul class="no-bullet"> + <li><a name="toc-Installation-directories-1" href="#Installation-directories">5.1 Installation directories</a></li> + <li><a name="toc-Linked-scripts-1" href="#Linked-scripts">5.2 Linked scripts</a></li> + <li><a name="toc-Distro-builds-1" href="#Distro-builds">5.3 Distro builds</a></li> + </ul></li> + <li><a name="toc-Layout-and-infrastructure-1" href="#Layout-and-infrastructure">6 Layout and infrastructure</a> + <ul class="no-bullet"> + <li><a name="toc-Build-system-tools-1" href="#Build-system-tools">6.1 Build system tools</a></li> + <li><a name="toc-Top_002dlevel-directories-1" href="#Top_002dlevel-directories">6.2 Top-level directories</a></li> + <li><a name="toc-Autoconf-macros-1" href="#Autoconf-macros">6.3 Autoconf macros</a> + <ul class="no-bullet"> + <li><a name="toc-General-setup-macros-1" href="#General-setup-macros">6.3.1 General setup macros</a></li> + <li><a name="toc-Macros-for-programs-1" href="#Macros-for-programs">6.3.2 Macros for programs</a></li> + <li><a name="toc-Macros-for-compilers-1" href="#Macros-for-compilers">6.3.3 Macros for compilers</a></li> + <li><a name="toc-Macros-for-libraries-1" href="#Macros-for-libraries">6.3.4 Macros for libraries</a></li> + <li><a name="toc-Macros-for-library-and-header-flags-1" href="#Macros-for-library-and-header-flags">6.3.5 Macros for library and header flags</a></li> + <li><a name="toc-Macros-for-Windows-1" href="#Macros-for-Windows">6.3.6 Macros for Windows</a></li> + </ul></li> + <li><a name="toc-Library-modules-1" href="#Library-modules">6.4 Library modules</a> + <ul class="no-bullet"> + <li><a name="toc-The-png-library-in-libs_002flibpng" href="#png-library">6.4.1 The <code>png</code> library in <samp>libs/libpng</samp></a></li> + <li><a name="toc-The-zlib-library-in-libs_002fzlib" href="#zlib-library">6.4.2 The <code>zlib</code> library in <samp>libs/zlib</samp></a></li> + <li><a name="toc-The-freetype-library-in-libs_002ffreetype2" href="#freetype-library">6.4.3 The <code>freetype</code> library in <samp>libs/freetype2</samp></a></li> + <li><a name="toc-The-kpathsea-library-in-texk_002fkpathsea" href="#kpathsea-library">6.4.4 The <code>kpathsea</code> library in <samp>texk/kpathsea</samp></a></li> + </ul></li> + <li><a name="toc-Program-modules-1" href="#Program-modules">6.5 Program modules</a> + <ul class="no-bullet"> + <li><a name="toc-The-t1utils-package-in-utils_002ft1utils" href="#t1utils-package">6.5.1 The <code>t1utils</code> package in <samp>utils/t1utils</samp></a></li> + <li><a name="toc-The-xindy-package-in-utils_002fxindy" href="#xindy-package">6.5.2 The <code>xindy</code> package in <samp>utils/xindy</samp></a></li> + <li><a name="toc-The-xdvik-package-in-texk_002fxdvik" href="#xdvik-package">6.5.3 The <code>xdvik</code> package in <samp>texk/xdvik</samp></a></li> + <li><a name="toc-The-subdirectory-utils_002fasymptote" href="#asymptote">6.5.4 The subdirectory <samp>utils/asymptote</samp></a></li> + </ul></li> + <li><a name="toc-Extending-TeX-Live-1" href="#Extending-TeX-Live">6.6 Extending TeX Live</a> + <ul class="no-bullet"> + <li><a name="toc-Adding-a-new-program-module-1" href="#Adding-a-new-program-module">6.6.1 Adding a new program module</a></li> + <li><a name="toc-Adding-a-new-generic-library-module-1" href="#Adding-a-new-generic-library-module">6.6.2 Adding a new generic library module</a></li> + <li><a name="toc-Adding-a-new-TeX_002dspecific-library-module-1" href="#Adding-a-new-TeX_002dspecific-library-module">6.6.3 Adding a new TeX-specific library module</a></li> + </ul></li> + </ul></li> + <li><a name="toc-Configure-options-1" href="#Configure-options">7 Configure options</a> + <ul class="no-bullet"> + <li><a name="toc-Global-configure-options-1" href="#Global-configure-options">7.1 Global configure options</a> + <ul class="no-bullet"> + <li><a name="toc-_002d_002ddisable_002dnative_002dtexlive_002dbuild-1" href="#g_t_002d_002ddisable_002dnative_002dtexlive_002dbuild">7.1.1 <code>--disable-native-texlive-build</code></a></li> + <li><a name="toc-_002d_002dprefix_002c-_002d_002dbindir_002c-_2026" href="#g_t_002d_002dprefix-_002d_002dbindir-_2026">7.1.2 <code>--prefix</code>, <code>--bindir</code>, …</a></li> + <li><a name="toc-_002d_002ddisable_002dlargefile-1" href="#g_t_002d_002ddisable_002dlargefile">7.1.3 <code>--disable-largefile</code></a></li> + <li><a name="toc-_002d_002ddisable_002dmissing-1" href="#g_t_002d_002ddisable_002dmissing">7.1.4 <code>--disable-missing</code></a></li> + <li><a name="toc-_002d_002denable_002dcompiler_002dwarnings_003dlevel-1" href="#g_t_002d_002denable_002dcompiler_002dwarnings_003dlevel">7.1.5 <code>--enable-compiler-warnings=</code><var>level</var></a></li> + <li><a name="toc-_002d_002denable_002dcxx_002druntime_002dhack-1" href="#g_t_002d_002denable_002dcxx_002druntime_002dhack">7.1.6 <code>--enable-cxx-runtime-hack</code></a></li> + <li><a name="toc-_002d_002denable_002dmaintainer_002dmode-1" href="#g_t_002d_002denable_002dmaintainer_002dmode">7.1.7 <code>--enable-maintainer-mode</code></a></li> + <li><a name="toc-_002d_002denable_002dmultiplatform-1" href="#g_t_002d_002denable_002dmultiplatform">7.1.8 <code>--enable-multiplatform</code></a></li> + <li><a name="toc-_002d_002denable_002dshared-1" href="#g_t_002d_002denable_002dshared">7.1.9 <code>--enable-shared</code></a></li> + <li><a name="toc-_002d_002denable_002dsilent_002drules-1" href="#g_t_002d_002denable_002dsilent_002drules">7.1.10 <code>--enable-silent-rules</code></a></li> + <li><a name="toc-_002d_002dwithout_002dln_002ds-1" href="#g_t_002d_002dwithout_002dln_002ds">7.1.11 <code>--without-ln-s</code></a></li> + <li><a name="toc-_002d_002dwithout_002dx-1" href="#g_t_002d_002dwithout_002dx">7.1.12 <code>--without-x</code></a></li> + </ul></li> + <li><a name="toc-Program_002dspecific-configure-options-1" href="#Program_002dspecific-configure-options">7.2 Program-specific configure options</a> + <ul class="no-bullet"> + <li><a name="toc-_002d_002denable_002dprog_002c-_002d_002ddisable_002dprog" href="#g_t_002d_002denable_002dprog-_002d_002ddisable_002dprog">7.2.1 <code>--enable-<var>prog</var></code>, <code>--disable-<var>prog</var></code></a></li> + <li><a name="toc-_002d_002ddisable_002dall_002dpkgs-1" href="#g_t_002d_002ddisable_002dall_002dpkgs">7.2.2 <code>--disable-all-pkgs</code></a></li> + <li><a name="toc-Configure-options-for-texk_002fweb2c-1" href="#Configure-options-for-texk_002fweb2c">7.2.3 Configure options for <samp>texk/web2c</samp></a></li> + <li><a name="toc-Configure-options-for-texk_002fbibtex_002dx-1" href="#Configure-options-for-texk_002fbibtex_002dx">7.2.4 Configure options for <samp>texk/bibtex-x</samp></a></li> + <li><a name="toc-Configure-options-for-texk_002fdvipdfm_002dx-1" href="#Configure-options-for-texk_002fdvipdfm_002dx">7.2.5 Configure options for <samp>texk/dvipdfm-x</samp></a></li> + <li><a name="toc-Configure-options-for-texk_002fdvisvgm-1" href="#Configure-options-for-texk_002fdvisvgm">7.2.6 Configure options for <samp>texk/dvisvgm</samp></a></li> + <li><a name="toc-Configure-options-for-texk_002ftexlive-1" href="#Configure-options-for-texk_002ftexlive">7.2.7 Configure options for <samp>texk/texlive</samp></a></li> + <li><a name="toc-Configure-options-for-texk_002fxdvik-1" href="#Configure-options-for-texk_002fxdvik">7.2.8 Configure options for <samp>texk/xdvik</samp></a></li> + <li><a name="toc-Configure-options-for-utils_002fxindy-1" href="#Configure-options-for-utils_002fxindy">7.2.9 Configure options for <samp>utils/xindy</samp></a></li> + </ul></li> + <li><a name="toc-Library_002dspecific-configure-options-1" href="#Library_002dspecific-configure-options">7.3 Library-specific configure options</a> + <ul class="no-bullet"> + <li><a name="toc-Configure-options-for-kpathsea-1" href="#Configure-options-for-kpathsea">7.3.1 Configure options for <code>kpathsea</code></a></li> + <li><a name="toc-Configure-options-for-system-poppler-1" href="#Configure-options-for-system-poppler">7.3.2 Configure options for system <code>poppler</code></a></li> + </ul></li> + <li><a name="toc-Variables-for-configure-1" href="#Variables-for-configure">7.4 Variables for configure</a></li> + </ul></li> + <li><a name="toc-Cross-compilation-1" href="#Cross-compilation">8 Cross compilation</a> + <ul class="no-bullet"> + <li><a name="toc-Cross-configuring-1" href="#Cross-configuring">8.1 Cross configuring</a></li> + <li><a name="toc-Cross-problems-1" href="#Cross-problems">8.2 Cross problems</a></li> + </ul></li> + <li><a name="toc-Coding-conventions-1" href="#Coding-conventions">9 Coding conventions</a> + <ul class="no-bullet"> + <li><a name="toc-Declarations-and-definitions-1" href="#Declarations-and-definitions">9.1 Declarations and definitions</a></li> + <li><a name="toc-Const-1" href="#Const">9.2 Const</a></li> + </ul></li> + <li><a name="toc-install_002dtl-1" href="#install_002dtl">Appendix A install-tl</a> + <ul class="no-bullet"> + <li><a name="toc-NAME" href="#install_002dtl-NAME">A.1 NAME</a></li> + <li><a name="toc-SYNOPSIS" href="#install_002dtl-SYNOPSIS">A.2 SYNOPSIS</a></li> + <li><a name="toc-DESCRIPTION" href="#install_002dtl-DESCRIPTION">A.3 DESCRIPTION</a></li> + <li><a name="toc-REFERENCES" href="#install_002dtl-REFERENCES">A.4 REFERENCES</a></li> + <li><a name="toc-OPTIONS" href="#install_002dtl-OPTIONS">A.5 OPTIONS</a></li> + <li><a name="toc-ENVIRONMENT-VARIABLES" href="#install_002dtl-ENVIRONMENT-VARIABLES">A.6 ENVIRONMENT VARIABLES</a></li> + <li><a name="toc-AUTHORS-AND-COPYRIGHT" href="#install_002dtl-AUTHORS-AND-COPYRIGHT">A.7 AUTHORS AND COPYRIGHT</a></li> + </ul></li> + <li><a name="toc-tlmgr-1" href="#tlmgr">Appendix B tlmgr</a> + <ul class="no-bullet"> + <li><a name="toc-NAME-1" href="#tlmgr-NAME">B.1 NAME</a></li> + <li><a name="toc-SYNOPSIS-1" href="#tlmgr-SYNOPSIS">B.2 SYNOPSIS</a></li> + <li><a name="toc-DESCRIPTION-1" href="#tlmgr-DESCRIPTION">B.3 DESCRIPTION</a></li> + <li><a name="toc-EXAMPLES" href="#tlmgr-EXAMPLES">B.4 EXAMPLES</a></li> + <li><a name="toc-OPTIONS-1" href="#tlmgr-OPTIONS">B.5 OPTIONS</a></li> + <li><a name="toc-ACTIONS" href="#tlmgr-ACTIONS">B.6 ACTIONS</a> + <ul class="no-bullet"> + <li><a name="toc-help" href="#tlmgr-help">B.6.1 help</a></li> + <li><a name="toc-version" href="#tlmgr-version">B.6.2 version</a></li> + <li><a name="toc-backup-_005b_002d_002dclean_005b_003dN_005d_005d-_005b_002d_002dbackupdir-dir_005d-_005b_002d_002dall-_007c-pkg_005d_002e_002e_002e" href="#tlmgr-backup-_005b_002d_002dclean_005b_003dN_005d_005d-_005b_002d_002dbackupdir-dir_005d-_005b_002d_002dall-_007c-pkg_005d_002e_002e_002e">B.6.3 backup [–clean[=<em>N</em>]] [–backupdir <em>dir</em>] [–all | <em>pkg</em>]...</a></li> + <li><a name="toc-candidates-pkg" href="#tlmgr-candidates-pkg">B.6.4 candidates <em>pkg</em></a></li> + <li><a name="toc-check-_005boption_005d_002e_002e_002e-_005bfiles_007cdepends_007cexecutes_007crunfiles_007call_005d" href="#tlmgr-check-_005boption_005d_002e_002e_002e-_005bfiles_007cdepends_007cexecutes_007crunfiles_007call_005d">B.6.5 check [<em>option</em>]... [files|depends|executes|runfiles|all]</a></li> + <li><a name="toc-conf-_005btexmf_007ctlmgr_007cupdmap-_005b_002d_002dconffile-file_005d-_005b_002d_002ddelete_005d-_005bkey-_005bvalue_005d_005d_005d" href="#tlmgr-conf-_005btexmf_007ctlmgr_007cupdmap-_005b_002d_002dconffile-file_005d-_005b_002d_002ddelete_005d-_005bkey-_005bvalue_005d_005d_005d">B.6.6 conf [texmf|tlmgr|updmap [–conffile <em>file</em>] [–delete] [<em>key</em> [<em>value</em>]]]</a></li> + <li><a name="toc-dump_002dtlpdb-_005b_002d_002dlocal_007c_002d_002dremote_005d" href="#tlmgr-dump_002dtlpdb-_005b_002d_002dlocal_007c_002d_002dremote_005d">B.6.7 dump-tlpdb [–local|–remote]</a></li> + <li><a name="toc-generate-_005boption_005d_002e_002e_002e-what" href="#tlmgr-generate-_005boption_005d_002e_002e_002e-what">B.6.8 generate [<em>option</em>]... <em>what</em></a></li> + <li><a name="toc-gui" href="#tlmgr-gui">B.6.9 gui</a></li> + <li><a name="toc-info-_005boption_002e_002e_002e_005d-_005bcollections_007cschemes_007cpkg_002e_002e_002e_005d" href="#tlmgr-info-_005boption_002e_002e_002e_005d-_005bcollections_007cschemes_007cpkg_002e_002e_002e_005d">B.6.10 info [<em>option</em>...] [collections|schemes|<em>pkg</em>...]</a></li> + <li><a name="toc-init_002dusertree" href="#tlmgr-init_002dusertree">B.6.11 init-usertree</a></li> + <li><a name="toc-install-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e" href="#tlmgr-install-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e">B.6.12 install [<em>option</em>]... <em>pkg</em>...</a></li> + <li><a name="toc-option" href="#tlmgr-option">B.6.13 option</a></li> + <li><a name="toc-paper" href="#tlmgr-paper">B.6.14 paper</a></li> + <li><a name="toc-path-_005b_002d_002dw32mode_003duser_007cadmin_005d-_005badd_007cremove_005d" href="#tlmgr-path-_005b_002d_002dw32mode_003duser_007cadmin_005d-_005badd_007cremove_005d">B.6.15 path [–w32mode=user|admin] [add|remove]</a></li> + <li><a name="toc-pinning" href="#tlmgr-pinning">B.6.16 pinning</a></li> + <li><a name="toc-platform-list_007cadd_007cremove-platform_002e_002e_002e" href="#tlmgr-platform-list_007cadd_007cremove-platform_002e_002e_002e">B.6.17 platform list|add|remove <em>platform</em>...</a></li> + <li><a name="toc-platform-set-platform" href="#tlmgr-platform-set-platform">B.6.18 platform set <em>platform</em></a></li> + <li><a name="toc-platform-set-auto" href="#tlmgr-platform-set-auto">B.6.19 platform set auto</a></li> + <li><a name="toc-postaction-_005b_002d_002dw32mode_003duser_007cadmin_005d-_005b_002d_002dfileassocmode_003d1_007c2_005d-_005b_002d_002dall_005d-_005binstall_007cremove_005d-_005bshortcut_007cfileassoc_007cscript_005d-_005bpkg_005d_002e_002e_002e" href="#tlmgr-postaction-_005b_002d_002dw32mode_003duser_007cadmin_005d-_005b_002d_002dfileassocmode_003d1_007c2_005d-_005b_002d_002dall_005d-_005binstall_007cremove_005d-_005bshortcut_007cfileassoc_007cscript_005d-_005bpkg_005d_002e_002e_002e">B.6.20 postaction [–w32mode=user|admin] [–fileassocmode=1|2] [–all] [install|remove] [shortcut|fileassoc|script] [<em>pkg</em>]...</a></li> + <li><a name="toc-print_002dplatform" href="#tlmgr-print_002dplatform">B.6.21 print-platform</a></li> + <li><a name="toc-restore-_005b_002d_002dbackupdir-dir_005d-_005b_002d_002dall-_007c-pkg-_005brev_005d_005d" href="#tlmgr-restore-_005b_002d_002dbackupdir-dir_005d-_005b_002d_002dall-_007c-pkg-_005brev_005d_005d">B.6.22 restore [–backupdir <em>dir</em>] [–all | <em>pkg</em> [<em>rev</em>]]</a></li> + <li><a name="toc-remove-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e" href="#tlmgr-remove-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e">B.6.23 remove [<em>option</em>]... <em>pkg</em>...</a></li> + <li><a name="toc-repository" href="#tlmgr-repository">B.6.24 repository</a></li> + <li><a name="toc-search-_005boption_002e_002e_002e_005d-what" href="#tlmgr-search-_005boption_002e_002e_002e_005d-what">B.6.25 search [<em>option</em>...] <em>what</em></a> + <ul class="no-bullet"> + <li><a name="toc-search-_005boption_002e_002e_002e_005d-_002d_002dfile-what" href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dfile-what">B.6.25.1 search [<em>option</em>...] –file <em>what</em></a></li> + <li><a name="toc-search-_005boption_002e_002e_002e_005d-_002d_002dtaxonomy-what" href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dtaxonomy-what">B.6.25.2 search [<em>option</em>...] –taxonomy <em>what</em></a></li> + <li><a name="toc-search-_005boption_002e_002e_002e_005d-_002d_002dkeyword-what" href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dkeyword-what">B.6.25.3 search [<em>option</em>...] –keyword <em>what</em></a></li> + <li><a name="toc-search-_005boption_002e_002e_002e_005d-_002d_002dfunctionality-what" href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dfunctionality-what">B.6.25.4 search [<em>option</em>...] –functionality <em>what</em></a></li> + <li><a name="toc-search-_005boption_002e_002e_002e_005d-_002d_002dcharacterization-what" href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dcharacterization-what">B.6.25.5 search [<em>option</em>...] –characterization <em>what</em></a></li> + <li><a name="toc-search-_005boption_002e_002e_002e_005d-_002d_002dall-what" href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dall-what">B.6.25.6 search [<em>option</em>...] –all <em>what</em></a></li> + </ul></li> + <li><a name="toc-uninstall" href="#tlmgr-uninstall">B.6.26 uninstall</a></li> + <li><a name="toc-update-_005boption_005d_002e_002e_002e-_005bpkg_005d_002e_002e_002e" href="#tlmgr-update-_005boption_005d_002e_002e_002e-_005bpkg_005d_002e_002e_002e">B.6.27 update [<em>option</em>]... [<em>pkg</em>]...</a></li> + </ul></li> + <li><a name="toc-USER-MODE" href="#tlmgr-USER-MODE">B.7 USER MODE</a> + <ul class="no-bullet"> + <li><a name="toc-user-mode-install" href="#tlmgr-user-mode-install">B.7.1 user mode install</a></li> + <li><a name="toc-user-mode-backup_003b-restore_003b-remove_003b-update" href="#tlmgr-user-mode-backup_003b-restore_003b-remove_003b-update">B.7.2 user mode backup; restore; remove; update</a></li> + <li><a name="toc-user-mode-generate_003b-option_003b-paper" href="#tlmgr-user-mode-generate_003b-option_003b-paper">B.7.3 user mode generate; option; paper</a></li> + </ul></li> + <li><a name="toc-CONFIGURATION-FILE-FOR-TLMGR" href="#tlmgr-CONFIGURATION-FILE-FOR-TLMGR">B.8 CONFIGURATION FILE FOR TLMGR</a></li> + <li><a name="toc-TAXONOMIES" href="#tlmgr-TAXONOMIES">B.9 TAXONOMIES</a></li> + <li><a name="toc-MULTIPLE-REPOSITORIES" href="#tlmgr-MULTIPLE-REPOSITORIES">B.10 MULTIPLE REPOSITORIES</a> + <ul class="no-bullet"> + <li><a name="toc-Pinning" href="#tlmgr-Pinning">B.10.1 Pinning</a></li> + </ul></li> + <li><a name="toc-GUI-FOR-TLMGR" href="#tlmgr-GUI-FOR-TLMGR">B.11 GUI FOR TLMGR</a> + <ul class="no-bullet"> + <li><a name="toc-Main-display" href="#tlmgr-Main-display">B.11.1 Main display</a> + <ul class="no-bullet"> + <li><a name="toc-Display-configuration-area" href="#tlmgr-Display-configuration-area">B.11.1.1 Display configuration area</a></li> + <li><a name="toc-Package-list-area" href="#tlmgr-Package-list-area">B.11.1.2 Package list area</a></li> + <li><a name="toc-Main-display-action-buttons" href="#tlmgr-Main-display-action-buttons">B.11.1.3 Main display action buttons</a></li> + </ul></li> + <li><a name="toc-Menu-bar" href="#tlmgr-Menu-bar">B.11.2 Menu bar</a></li> + </ul></li> + <li><a name="toc-MACHINE_002dREADABLE-OUTPUT" href="#tlmgr-MACHINE_002dREADABLE-OUTPUT">B.12 MACHINE-READABLE OUTPUT</a> + <ul class="no-bullet"> + <li><a name="toc-Machine_002dreadable-update-and-install-output" href="#tlmgr-Machine_002dreadable-update-and-install-output">B.12.1 Machine-readable <code>update</code> and <code>install</code> output</a></li> + <li><a name="toc-Machine_002dreadable-option-output" href="#tlmgr-Machine_002dreadable-option-output">B.12.2 Machine-readable <code>option</code> output</a></li> + </ul></li> + <li><a name="toc-AUTHORS-AND-COPYRIGHT-1" href="#tlmgr-AUTHORS-AND-COPYRIGHT">B.13 AUTHORS AND COPYRIGHT</a></li> + </ul></li> + <li><a name="toc-Index-1" href="#Index">Index</a></li> +</ul> +</div> + + +<a name="Top"></a> +<div class="header"> +<p> +Next: <a href="#Introduction" accesskey="n" rel="next">Introduction</a>, Up: <a href="dir.html#Top" accesskey="u" rel="up">(dir)</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Building-TeX-Live-_00282014_0029"></a> +<h1 class="top">Building TeX Live (2014)</h1> + +<p>For an overview of this manual, see <a href="#Introduction">Introduction</a>. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Introduction" accesskey="1">Introduction</a>:</td><td> </td><td align="left" valign="top">About this manual. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Overview-of-build-system" accesskey="2">Overview of build system</a>:</td><td> </td><td align="left" valign="top">The TeX Live build system. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Prerequisites" accesskey="3">Prerequisites</a>:</td><td> </td><td align="left" valign="top">Requirements for building TeX Live. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Building" accesskey="4">Building</a>:</td><td> </td><td align="left" valign="top">The overall build process. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Installing" accesskey="5">Installing</a>:</td><td> </td><td align="left" valign="top">How and where installation happens (or not). +</td></tr> +<tr><td align="left" valign="top">• <a href="#Layout-and-infrastructure" accesskey="6">Layout and infrastructure</a>:</td><td> </td><td align="left" valign="top">Autoconf macros, etc., in detail. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Configure-options" accesskey="7">Configure options</a>:</td><td> </td><td align="left" valign="top">List of all configure options. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Cross-compilation" accesskey="8">Cross compilation</a>:</td><td> </td><td align="left" valign="top">Building on host X for target Y. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Coding-conventions" accesskey="9">Coding conventions</a>:</td><td> </td><td align="left" valign="top">Conventions to follow. +</td></tr> +<tr><td align="left" valign="top">• <a href="#install_002dtl">install-tl</a>:</td><td> </td><td align="left" valign="top">The TeX Live installer. +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr">tlmgr</a>:</td><td> </td><td align="left" valign="top">The native TeX Live package manager. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Index">Index</a>:</td><td> </td><td align="left" valign="top">General index. +</td></tr> +</table> + + +<hr> +<a name="Introduction"></a> +<div class="header"> +<p> +Next: <a href="#Overview-of-build-system" accesskey="n" rel="next">Overview of build system</a>, Previous: <a href="#Top" accesskey="p" rel="prev">Top</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Introduction-1"></a> +<h2 class="chapter">1 Introduction</h2> + +<a name="index-introduction"></a> + +<p>This manual (dated May 2014) corresponds to the TeX Live +2014 release. +</p> +<p>This manual is aimed at system installers and programmers, and focuses +on how to configure, build, and develop the TeX Live (TL) sources. The +sources can be acquired in a number of ways; see +<a href="http://tug.org/texlive/svn">http://tug.org/texlive/svn</a>. +</p> +<p>This manual does not duplicate the (primarily user-level) information +found in other TL documentation resources, such as: +</p> +<ul> +<li> The TeX Live web pages: <a href="http://tug.org/texlive">http://tug.org/texlive</a>. + +</li><li> The web page with an overview of how to build the binaries which +are distributed with TeX Live: <a href="http://tug.org/texlive/build.html">http://tug.org/texlive/build.html</a>. + +</li><li> The TeX Live user manual: <a href="http://tug.org/texlive/doc.html">http://tug.org/texlive/doc.html</a>, or +run <code>texdoc texlive</code>. + +</li><li> Other TeX-related Texinfo manuals (see <cite><a href="web2c.html#Top">Web2c</a></cite>, +<cite><a href="kpathsea.html#Top">Kpathsea</a></cite>, etc.): +<a href="http://tug.org/texinfohtml/">http://tug.org/texinfohtml/</a>, or check the ‘<samp>TeX</samp>’ category in +the GNU Info system. + +</li><li> Package documentation: +<a href="http://tug.org/texlive/Contents/live/doc.html">http://tug.org/texlive/Contents/live/doc.html</a>, or the +<samp>doc.html</samp> file at the top level of the installed TL. + +</li></ul> + +<p>As an exception, the full documentation for <code>install-tl</code> and +<code>tlmgr</code> is included here, just because it is convenient to do so. +The same text is available online (linked from +<a href="http://tug.org/texlive/doc.html">http://tug.org/texlive/doc.html</a>, or by invoking the program with +‘<samp>--help</samp>’ (or look at the end of the source file). +</p> + + +<hr> +<a name="Overview-of-build-system"></a> +<div class="header"> +<p> +Next: <a href="#Prerequisites" accesskey="n" rel="next">Prerequisites</a>, Previous: <a href="#Introduction" accesskey="p" rel="prev">Introduction</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Overview-of-build-system-1"></a> +<h2 class="chapter">2 Overview of build system</h2> + +<a name="index-build-system_002c-design-of"></a> + +<a name="index-Autoconf"></a> +<a name="index-Automake"></a> +<a name="index-Libtool"></a> +<a name="index-tests_002c-running"></a> +<p>The TeX Live build system was redesigned in 2009, consistently using +Autoconf, Automake, and Libtool. Thus<br> <code>configure && +make && make check && make install</code><br>or the basically-equivalent +top-level <code>Build</code> script suffice to build and install the TL +programs. The <code>make check</code> clause performs various tests of the +generated programs—not strictly required but strongly recommended. +Running <code>configure --help</code> will display a comprehensive list of +all <code>configure</code> options. +</p> +<p>The main components of the TL build system are: +</p> +<dl compact="compact"> +<dt><samp>libs/<var>lib</var></samp></dt> +<dd><p>Generic libraries. +</p> +</dd> +<dt><samp>texk/<var>lib</var></samp></dt> +<dd><p>TeX-specific libraries in subdirectories, notably +<var>lib</var>=<code>kpathsea</code>. (The other one is <samp>texk/ptexenc</samp>.) +</p> +</dd> +<dt><samp>texk/<var>prog</var></samp></dt> +<dd><p>TeX-specific programs (that use Kpathsea). +</p> +</dd> +<dt><samp>utils/<var>prog</var></samp></dt> +<dd><p>Other programs (that don’t use Kpathsea). +</p> +</dd> +</dl> + +<a name="index-kpse_002dpkgs_002em4"></a> +<p>The primary design goal of the build system is modularity. Each +program and library module (or package) specifies its own requirements +and properties, such as required libraries, whether an installed +(system) version of a library can be used, <code>configure</code> options to +be seen at the top-level, and more. An explicit list of all available +modules is kept in only one, central, place (<samp>m4/kpse-pkgs.m4</samp>). +</p> +<p>A second, related goal is to configure and build each library before +configuring any other (program or library) module which uses that +library. This allows checking for properties and features of a +library built as part of the TL tree in much the same way as for a +system version of that library. +</p> +<p>All generic libraries and several programs are maintained +independently. The corresponding modules use (most of) the +distributed source tree and document any modifications of that source. +</p> +<p>All this is for the sake of simplifying both upgrading of modules +maintained independently and integrating new modules into the +TL build system. (Not to say that either task is trivial.) +</p> + +<hr> +<a name="Prerequisites"></a> +<div class="header"> +<p> +Next: <a href="#Building" accesskey="n" rel="next">Building</a>, Previous: <a href="#Overview-of-build-system" accesskey="p" rel="prev">Overview of build system</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Prerequisites-1"></a> +<h2 class="chapter">3 Prerequisites</h2> + +<a name="index-prerequisites-for-building"></a> +<a name="index-requirements-for-building"></a> + +<a name="index-compilers_002c-C-and-C_002b_002b"></a> +<p>Overall, building the TeX Live programs, when using all libraries from +the TL source tree, requires only C and C++ compilers and GNU +<code>make</code>. (If <code>make</code> from your <code>PATH</code> is not GNU make, +you can set <code>MAKE</code> in the environment to whatever is necessary.) +</p> +<a name="index-GNU-make_002c-required"></a> +<a name="index-gmake_002c-required"></a> +<a name="index-FreeType"></a> +<p>Indeed, GNU <code>make</code> is required only because of some +third-party libraries, notably FreeType; all the TL-maintained +directories (and Automake/Autoconf output in general) should work with +any reasonable <code>make</code>. +</p> +<p>However, a few programs in the tree have additional requirements: +</p> +<dl compact="compact"> +<dt><samp>web2c</samp></dt> +<dd><a name="index-perl_002c-required-by-web2c_002c-etc_002e"></a> +<p>requires <code>perl</code> for some tests run by <code>make check</code>. +</p> +</dd> +<dt><samp>xdvik</samp></dt> +<dt><samp>xpdfopen</samp></dt> +<dd><a name="index-X11_002c-required-by-X-clients"></a> +<p>require X11 headers and libraries, often in “development” packages +that are not installed by default. +</p> +</dd> +<dt><samp>xetex</samp></dt> +<dd><a name="index-fontconfig-library_002c-required-by-xetex"></a> +<p>requires <samp>fontconfig</samp> (again both headers and library). +</p> +</dd> +<dt><samp>xindy</samp></dt> +<dd><a name="index-clisp_002c-required-by-xindy"></a> +<a name="index-ffcall_002c-required-by-xindy"></a> +<p>requires GNU <code>clisp</code> and in addition <code>perl</code>, <code>latex</code>, +and <code>pdflatex</code> to build the rules and/or documentation. +</p> +</dd> +</dl> + +<p>Lacking the required tools, building these +programs must avoided, e.g.,<br> +<code>configure --without-x --disable-xetex --disable-xindy</code> +</p> +<p>Modifying source files induces more requirements, as one might expect: +</p> +<ul> +<li> Modification of any <code>.y</code> or <code>.l</code> source files requires +<samp>bison</samp> or <samp>flex</samp> to updatete the corresponding C sources. + +</li><li> Modification of the sources for <code>.info</code> files requires +<code>makeinfo</code>. + +</li><li> Modification of any part of the build system (M4 macros, +<samp>configure.ac</samp>, <samp>Makefile.am</samp>, or their fragments) requires +GNU M4, GNU Autoconf, GNU Automake, and GNU Libtool to update the +generated files. See <a href="#Build-system-tools">Build system tools</a>. + +</li></ul> + +<p>If you haven’t modified any source files, and infrastructure tools +such as <code>autoconf</code> or <code>makeinfo</code> are still being run, check +your timestamps—notably, <code>use-commit-times</code> must be set to +<code>yes</code> in your Subversion configuration (see <a href="#Build-system-tools">Build system tools</a>). Barring buggy commits, no infrastructure tools are needed to +do a normal build. +</p> + +<hr> +<a name="Building"></a> +<div class="header"> +<p> +Next: <a href="#Installing" accesskey="n" rel="next">Installing</a>, Previous: <a href="#Prerequisites" accesskey="p" rel="prev">Prerequisites</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Building-1"></a> +<h2 class="chapter">4 Building</h2> + +<a name="index-building"></a> +<a name="index-overall-build-process"></a> + +<a name="index-Build-script"></a> +<p>The top-level <samp>Build</samp> script is intended to simplify building the +binaries distributed with TeX Live itself—we call this the “native” +TL build. It configures and makes everything in a subdirectory of the +main build tree (default <samp>Work/</samp>), installs everything in an +other subdirectory (default <samp>inst/</samp>), and finally runs <code>make +check</code>. The exact directory and command names can be specified via +environment variables and a few leading options. All remaining +arguments (assignments or options) are passed to the <samp>configure</samp> +script. Please take a look at the script itself for more information; +it is not complicated. +</p> +<a name="index-source-directory-building_002c-not-supported"></a> +<a name="index-build-directory_002c-required"></a> +<p>An alternative, and the one we will mainly discuss here, is to run +<code>configure</code> and <code>make</code> oneself in a suitable empty +subdirectory. Building in the source directory itself is not +supported (sorry). +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Build-iteration" accesskey="1">Build iteration</a>:</td><td> </td><td align="left" valign="top">What <code>configure</code> and <code>make</code> do. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Build-problems" accesskey="2">Build problems</a>:</td><td> </td><td align="left" valign="top">If the build fails. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Build-in-parallel" accesskey="3">Build in parallel</a>:</td><td> </td><td align="left" valign="top">Simultaneous <code>make</code> processes. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Build-distribution" accesskey="4">Build distribution</a>:</td><td> </td><td align="left" valign="top">Making a distribution tarball. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Build-one-package" accesskey="5">Build one package</a>:</td><td> </td><td align="left" valign="top">Example of working on just one program. +</td></tr> +</table> + + +<hr> +<a name="Build-iteration"></a> +<div class="header"> +<p> +Next: <a href="#Build-problems" accesskey="n" rel="next">Build problems</a>, Up: <a href="#Building" accesskey="u" rel="up">Building</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Build-iteration-1"></a> +<h3 class="section">4.1 Build iteration</h3> + +<a name="index-build-iteration"></a> +<a name="index-iteration-through-sources_002c-by-configure-and-make"></a> + +<p>Running the top-level <samp>configure</samp> script configures the top level +and the subdirectories <samp>libs</samp>, <samp>utils</samp>, and <samp>texk</samp>. +Running <code>make</code> at the top-level first iterates over all +TeX-specific libraries, and then runs <code>make</code> in +<samp>libs</samp>, <samp>utils</samp>, and <samp>texk</samp> to iterate over all generic +libraries, utility programs, and TeX-specific programs. These +iterations consist of two steps: +</p> +<ol> +<li> For each library or program module not yet configured, run +<code>configure</code>, adding the configure option <code>--disable-build</code> +if the module need not be built, otherwise running <code>make all</code>. + +</li><li> For each library or program module that must be built, run +<code>make</code> for the selected target(s): <code>default</code> or +<code>all</code> to (re-)build, <code>check</code> to run tests, <code>install</code>, +etc. + +</li></ol> + +<p>Running the top-level <code>make</code> a second time iterates again over +all the library and program modules, but finds (should find) nothing +to be done unless some source files have been modified. +</p> + +<hr> +<a name="Build-problems"></a> +<div class="header"> +<p> +Next: <a href="#Build-in-parallel" accesskey="n" rel="next">Build in parallel</a>, Previous: <a href="#Build-iteration" accesskey="p" rel="prev">Build iteration</a>, Up: <a href="#Building" accesskey="u" rel="up">Building</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Build-problems-1"></a> +<h3 class="section">4.2 Build problems</h3> + +<a name="index-build-problems"></a> +<a name="index-problems-with-build"></a> +<a name="index-failure-to-build"></a> +<a name="index-_002d_002dno_002dclean-Build-option"></a> +<p>If configuring or building a module fails, you could either +(a) find and fix the problem, or (b) remove the subdirectory +for that module from the build tree, and rerun the top-level +<code>make</code> (or <samp>Build</samp> with <code>--no-clean</code> as its first +argument). +</p> + +<hr> +<a name="Build-in-parallel"></a> +<div class="header"> +<p> +Next: <a href="#Build-distribution" accesskey="n" rel="next">Build distribution</a>, Previous: <a href="#Build-problems" accesskey="p" rel="prev">Build problems</a>, Up: <a href="#Building" accesskey="u" rel="up">Building</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Build-in-parallel-1"></a> +<h3 class="section">4.3 Build in parallel</h3> + +<a name="index-building-in-parallel"></a> +<a name="index-parallel-build"></a> +<a name="index-cache-for-configure"></a> + +<a name="index-dependencies_002c-with-several-output-files"></a> +<a name="index-_002dj-make-option"></a> +<p>The TL build system carefully formulates dependencies as well as +<code>make</code> rules when a tool (such as <code>tangle</code>, <code>ctangle</code>, +or <code>convert</code>) creates several output files. This allows for +parallel builds (<code>make -j <var>n</var></code> with <em><var>n</var>>1</em> or even +<code>make -j</code>) that can considerably speed up the TL build. +</p> +<a name="index-cache-file_002c-for-configure"></a> +<a name="index-_002dC-configure-option"></a> +<p>Incidentally, a noticeable speed-up can also be (independently) gained +by using a configure cache file, i.e., with the option <code>-C</code> +(recommended). +</p> + +<hr> +<a name="Build-distribution"></a> +<div class="header"> +<p> +Next: <a href="#Build-one-package" accesskey="n" rel="next">Build one package</a>, Previous: <a href="#Build-in-parallel" accesskey="p" rel="prev">Build in parallel</a>, Up: <a href="#Building" accesskey="u" rel="up">Building</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Build-distribution-1"></a> +<h3 class="section">4.4 Build distribution</h3> + +<a name="index-building-a-distribution"></a> +<a name="index-distribution-tarball_002c-making"></a> + +<a name="index-dist-and-distcheck-targets-for-make"></a> +<p>Running <code>make dist</code> at the top-level creates a tarball +<samp>tex-live-<var>yyyy</var>-<var>mm</var>-<var>dd</var>.tar.xz</samp> from the TL source +tree. Running <code>make distcheck</code> also verifies that this tarball +suffices to build and install all of TL. +</p> +<p>This is useful for checking consistency of the source tree and +Makefiles, but the result is not a complete or even usable TeX +system, since all the support files are lacking; see <a href="#Installing">Installing</a>. +</p> +<hr> +<a name="Build-one-package"></a> +<div class="header"> +<p> +Previous: <a href="#Build-distribution" accesskey="p" rel="prev">Build distribution</a>, Up: <a href="#Building" accesskey="u" rel="up">Building</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Build-one-package-1"></a> +<h3 class="section">4.5 Build one package</h3> + +<a name="index-build-one-package"></a> +<a name="index-one-package_002c-building"></a> + +<a name="index-_002d_002ddisable_002dall_002dpackages-configure-option"></a> +<a name="index-build-on-demand"></a> +<p>To build one package, the basic idea is to use the <code>configure</code> +option <code>--disable-all-pkgs</code> (see <a href="#g_t_002d_002ddisable_002dall_002dpkgs"><code>--disable-all-pkgs</code></a>). +Then all program and library modules are configured but none are made. +However, the <samp>Makefile</samp>s still contain all build rules and +dependencies and can be invoked to build an individual program or +library and causes to first build any required libraries. +</p> +<p>This “build-on-demand” procedure is used, e.g., in the <code>luatex</code> +repository to build LuaTeX, essentially from a subset of the +complete TeX Live tree. Similarly, when, e.g., building the original +e-TeX has been disabled (as it is by default), one can run +<code>make etex</code> (or <code>make etex.exe</code>) in <samp>texk/web2c/</samp> to +build e-TeX (although there is no comparably simple way to install +e-TeX). +</p> +<p>If you want to work on a single program within the TL sources, this is +the recommended way to do it. Here is an example from start to +finish for working on <code>dvipdfmx</code>. +</p> +<div class="example"> +<pre class="example">mkdir mydir && cd mydir # new working directory + +# Get sources (<a href="http://tug.org/texlive/svn">http://tug.org/texlive/svn</a>) +rsync -a --delete --exclude=.svn --exclude=Work \ + tug.org::tldevsrc/Build/source/ . + +# Create build directory: +mkdir Work && cd Work + +# Do the configure: +../configure --disable-all-pkgs --enable-dvipdfm-x \ + -C CFLAGS=-g CXXFLAGS=-g >&outc + +# Do the make: +make >&outm + +# Test: +cd texk/dvipdfmx +make check +</pre></div> + +<p>Then you modify source files in <samp>mydir/texk/dvipdfm-x</samp> and rerun +<code>make</code> in <samp>mydir/Work/texk/dvipdfm-x</samp> to rebuild. +</p> +<p>The second line the <code>configure</code> are invocation shows examples of +extra things you likely want to specify if you intend to hack the +sources (and not just build binaries): the <code>-C</code> speeds up +<code>configure</code>, and the <code>CFLAGS</code> and <code>CXXFLAGS</code> are to +eliminate compiler optimization for debugging purposes. +</p> +<p>Of course, one should actually look at the output and check that +things are working. There are many <code>configure</code> options you can +tweak as desired; check the output from <code>configure --help</code>. +</p> +<a name="index-size-of-source-tree"></a> +<p>Finally, the above retrieves the entire TL source tree (some 300mb). +It is natural to ask if this is really necessary. Strictly speaking, +the answer is no, but it is vastly more convenient to do so. If you +cut down the source tree, you must also give additional +<code>configure</code> flags to individually disable using system versions +of libraries, or the intricacies of the dependencies (such as +<code>teckit</code> requiring <code>zlib</code>) will have undesired side effects. +For an example, see the <code>build-pdftex.sh</code> script in the +<code>pdftex</code> development sources (<a href="http://pdftex.org">http://pdftex.org</a>), which are +indeed a cut-down TL source tree. +</p> + +<hr> +<a name="Installing"></a> +<div class="header"> +<p> +Next: <a href="#Layout-and-infrastructure" accesskey="n" rel="next">Layout and infrastructure</a>, Previous: <a href="#Building" accesskey="p" rel="prev">Building</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Installing-1"></a> +<h2 class="chapter">5 Installing</h2> + +<a name="index-installing"></a> +<p>This section discusses the results of <code>make install</code> in the +source tree. +</p> +<a name="index-support-files_002c-separate-from-build"></a> +<a name="index-texlive_002etlpdb_002c-TeX-Live-database"></a> +<a name="index-install_002dtl_002c-TeX-Live-installer"></a> +<a name="index-plain_002etex_002c-not-in-source-tree"></a> +<p>The main consideration is that <code>make install</code> is not enough to +make a usable TeX installation. Beyond the compiled binaries, +(thousands of) support files are needed; just as a first example +<samp>plain.tex</samp> is not in the source tree. +</p> +<p>These support files are maintained completely independently and are +not present in the source tree. The best basis for dealing with them +is the TeX Live (plain text) database in +<samp>Master/tlpkg/texlive.tlpdb</samp>, and/or the TeX Live installer, +<code>install-tl</code>. More information is under <samp>Master/tlpkg</samp> and +at <a href="http://tug.org/texlive/distro.html">http://tug.org/texlive/distro.html</a>. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Installation-directories" accesskey="1">Installation directories</a>:</td><td> </td><td align="left" valign="top">The prefix, <code>bindir</code>, etc., directories. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Linked-scripts" accesskey="2">Linked scripts</a>:</td><td> </td><td align="left" valign="top">Scripts not maintained in the sources. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Distro-builds" accesskey="3">Distro builds</a>:</td><td> </td><td align="left" valign="top">Configuring and building for OS distributions. +</td></tr> +</table> + + +<hr> +<a name="Installation-directories"></a> +<div class="header"> +<p> +Next: <a href="#Linked-scripts" accesskey="n" rel="next">Linked scripts</a>, Up: <a href="#Installing" accesskey="u" rel="up">Installing</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Installation-directories-1"></a> +<h3 class="section">5.1 Installation directories</h3> + +<a name="index-installation-directories"></a> +<a name="index-directories_002c-for-installation"></a> +<a name="index-paths_002c-for-installation"></a> + +<p>Running <code>make install</code> (or <code>make install-strip</code>) installs +executables in <code><var>bindir</var></code>, libraries in <code><var>libdir</var></code>, +headers in <code><var>includedir</var></code>, general data (including “linked +scripts”, see <a href="#Linked-scripts">Linked scripts</a>) in +<code><var>datarootdir</var>/texmf-dist</code>, man pages in <code><var>mandir</var></code>, +and Info files in <code><var>infodir</var></code>. +</p> +<p>The values of these directories are determined by <code>configure</code> +and can be specified explictly as options such as +<code>--prefix=<var>prefix</var></code> or <code>--bindir=<var>bindir</var></code>; +otherwise, they are given by their usual Autoconf defaults: +</p> +<div class="example"> +<pre class="example"><var>prefix</var> /usr/local +<var>exec_prefix</var> <var>prefix</var> +<var>bindir</var> <var>exec_prefix</var>/bin +<var>libdir</var> <var>exec_prefix</var>/lib +<var>includedir</var> <var>prefix</var>/include +<var>datarootdir</var> <var>prefix</var>/share +<var>mandir</var> <var>datarootdir</var>/man +<var>infodir</var> <var>datarootdir</var>/info +</pre></div> + +<p>… except possibly modified as follows: +</p> +<ul> +<li> If the option <code>--enable-multiplatform</code> is given, +<code>/<var>platform</var></code> (i.e., the canonical platform name) is appended +to <code><var>bindir</var></code> and <code><var>libdir</var></code>. This is implied for a +native TL build. + +</li></ul> + +<p>The top-level <samp>configure</samp> script displays all these +installation paths. +</p> +<p>For the native TL build, the <code>Build</code> script leaves the binaries +in <samp>./inst/bin/<var>std-platform-name</var></samp>. The new binaries are +not directly usable from that location; they need to be copied to +<samp>Master/bin/<var>tl-platform</var></samp>. The other files and directories +that end up in <samp>./inst/</samp> are ignored. +</p> + +<hr> +<a name="Linked-scripts"></a> +<div class="header"> +<p> +Next: <a href="#Distro-builds" accesskey="n" rel="next">Distro builds</a>, Previous: <a href="#Installation-directories" accesskey="p" rel="prev">Installation directories</a>, Up: <a href="#Installing" accesskey="u" rel="up">Installing</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Linked-scripts-1"></a> +<h3 class="section">5.2 Linked scripts</h3> + +<a name="index-linked-scripts"></a> +<a name="index-scripts_002c-linked-and-not-maintained"></a> + +<a name="index-symlinks_002c-used-for-scripts"></a> +<a name="index-wrapper-binary-for-scripts-on-Windows"></a> +<a name="index-Windows_002c-invoking-scripts-on"></a> +<p>Quite a few executables are architecture-independent shell, Perl, or +other interpreted scripts, rather than compiled binaries. A few are +maintained as part of the TL source tree, but most are maintained +elsewhere with copies under <samp>texk/texlive/linked_scripts</samp>. +</p> +<p>These so-called <em>linked scripts</em> are installed under +<code><var>datarootdir</var>/texmf-dist/scripts</code>; for Unix-like systems a +symbolic link is made in <code><var>bindir</var></code>. For example, a symlink +points from <code><var>bindir</var>/ps2eps</code> to +<code><var>datarootdir</var>/texmf-dist/scripts/ps2eps/ps2eps.pl</code>. For +Windows, a standard wrapper binary (e.g., +<code><var>bindir</var>/ps2eps.exe</code>) serves the same purpose. (The source +for the wrapper is in <samp>texk/texlive/w32_wrapper</samp>.) +</p> +<p>One reason for this is to avoid having many copies of the same +script; a more important reason is that it guarantees the scripts will +stay in sync across the different supported operating systems. +</p> +<a name="index-asymptote"></a> +<a name="index-biber"></a> +<a name="index-xindy"></a> +<a name="index-xz"></a> +<a name="index-wget"></a> +<p>Most important of all, we want the <code><var>bindir</var></code> resulting from +the build to be as close as possible to what is in the TL +distribution. At present, there are a few exceptions—Asymptote, +Biber, Xindy—and each one creates considerable extra work. We don’t +want to add more. (See <a href="http://tug.org/texlive/build.html">http://tug.org/texlive/build.html</a> for +information about building those exceptions, as well as the <code>xz</code> +and <code>wget</code> programs that are used in the TL infrastructure.) +</p> + +<hr> +<a name="Distro-builds"></a> +<div class="header"> +<p> +Previous: <a href="#Linked-scripts" accesskey="p" rel="prev">Linked scripts</a>, Up: <a href="#Installing" accesskey="u" rel="up">Installing</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Distro-builds-1"></a> +<h3 class="section">5.3 Distro builds</h3> + +<a name="index-distro_002c-building-for"></a> +<a name="index-operating-system-distribution_002c-building-for"></a> +<a name="index-system-distribution_002c-building-for"></a> + +<a name="index-GNU_002fLinux-distro"></a> +<a name="index-BSD-distro"></a> +<p>Although they use the same code base, building for the native TL +distribution as shipped by the TeX user groups is typically quite +different from a “distro” build needed by, e.g., a full GNU/Linux or +BSD operating system distribution. +</p> +<a name="index-shared-libraries_002c-using-vs_002e-avoiding"></a> +<p>The native TL distribution uses shared libraries only when absolutely +necessary (<samp>libc</samp>, <samp>libm</samp>, X11 libraries, and +<samp>libfontconfig</samp>). However, a distro typically wants to use as +many shared libraries as possible from elsewhere on the system, +including TeX-specific libraries such as <samp>libkpathsea</samp> (even +though Kpathsea has never officially been released as a shared +library, but we digress). In addition, the installation paths will, +in general, be completely different. +</p> +<p>Here are the <code>configure</code> options that distro builds are likely to +find most relevant: +</p> +<dl compact="compact"> +<dt><code>--disable-native-texlive-build</code></dt> +<dd><p>This must be specified to avoid interference from the many tweaks we +do for the native TL build. +</p> +</dd> +<dt><code>--with-banner-add=/<var>SomeDistro</var></code></dt> +<dd><p>This isn’t technically required, but is strongly recommended, so your +build and your distro can be distinguished from others. +</p> +</dd> +<dt><code>--enable-shared</code></dt> +<dd><p>Build shared versions of the TeX-specific libraries (uses +<code>libtool</code>). +</p> +</dd> +<dt><code>--disable-static</code></dt> +<dd><p>Do not build the static versions of the TeX-specific libraries. +</p> +</dd> +<dt><code>--with-system-<var>lib</var></code></dt> +<dd><p>Use system versions for as many libraries <var>lib</var> as possible. +<code>configure --help</code> will give you the list of possibilities. +</p> +</dd> +<dt><code>--with-<var>lib</var>-includes=<var>dir</var></code></dt> +<dt><code>--with-<var>lib</var>-libdir=<var>dir</var></code></dt> +<dd><p>If needed, allows you to specify where the headers/code are for the +given library <var>lib</var>. +</p> +</dd> +<dt><code>--prefix=/usr</code></dt> +<dt><code>--prefix=/opt/TeXLive</code></dt> +<dd><p>Or whatever your convention is. The default is <samp>/usr/local</samp> and +you shouldn’t install there for a distro. +</p> +</dd> +<dt><code>--libdir=\${exec_prefix}/lib64</code></dt> +<dd><p>May be needed for 64-bit bi-architecture (GNU/Linux) systems. +</p> +</dd> +</dl> + +<a name="index-Preining_002c-Norbert"></a> +<a name="index-adapting-TeX-Live-for-distros"></a> +<p>You will need to take care of the support files mentioned above +(see <a href="#Installing">Installing</a>), and many other issues, such as font maps, +languages, and formats, independently of the build. Norbert Preining +has written a detailed article on adapting TL for distros: +<a href="http://tug.org/TUGboat/tb34-3/tb108preining-distro.pdf">http://tug.org/TUGboat/tb34-3/tb108preining-distro.pdf</a>. (If the +article needs updating in the future, perhaps we will merge it into +this document.) +</p> + +<hr> +<a name="Layout-and-infrastructure"></a> +<div class="header"> +<p> +Next: <a href="#Configure-options" accesskey="n" rel="next">Configure options</a>, Previous: <a href="#Installing" accesskey="p" rel="prev">Installing</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Layout-and-infrastructure-1"></a> +<h2 class="chapter">6 Layout and infrastructure</h2> + +<a name="index-layout-of-sources"></a> +<a name="index-source-tree"></a> + +<p>The TeX Live source tree is the subtree rooted at <samp>Build/source</samp> of +the complete TL distribution and contains the sources for all executables +distributed by TL, as well as <code>configure</code> scripts and <code>make</code> +rules to build and install them together with some of their support +files. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Build-system-tools" accesskey="1">Build system tools</a>:</td><td> </td><td align="left" valign="top">If modifying infrastructure files. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Top_002dlevel-directories" accesskey="2">Top-level directories</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Autoconf-macros" accesskey="3">Autoconf macros</a>:</td><td> </td><td align="left" valign="top">TL-specific Autoconf macros. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Library-modules" accesskey="4">Library modules</a>:</td><td> </td><td align="left" valign="top">Details on some specific libraries, +</td></tr> +<tr><td align="left" valign="top">• <a href="#Program-modules" accesskey="5">Program modules</a>:</td><td> </td><td align="left" valign="top">and on some programs. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Extending-TeX-Live" accesskey="6">Extending TeX Live</a>:</td><td> </td><td align="left" valign="top">Adding a new module. +</td></tr> +</table> + + +<hr> +<a name="Build-system-tools"></a> +<div class="header"> +<p> +Next: <a href="#Top_002dlevel-directories" accesskey="n" rel="next">Top-level directories</a>, Up: <a href="#Layout-and-infrastructure" accesskey="u" rel="up">Layout and infrastructure</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Build-system-tools-1"></a> +<h3 class="section">6.1 Build system tools</h3> + +<a name="index-tools_002c-for-building"></a> +<a name="index-GNU-tools_002c-needed-for-building"></a> +<a name="index-infrastructure_002c-tools-needed-for"></a> + +<p>As mentioned above (see <a href="#Prerequisites">Prerequisites</a>), a normal build requires +very little. On the other hand, if you want to modify the TeX Live +infrastructure sources, such as <samp>configure.ac</samp> or +<samp>Makefile.am</samp> files, you will need to have several additional +tools installed. +</p> +<p>In general, the TL build system uses the latest released versions of +the GNU build tools, installed directly from the original GNU releases +(e.g., by building them with <code>configure --prefix=/usr/local/gnu</code> +and having <code>PATH</code> start with <samp>/usr/local/gnu/bin</samp>). We have +found that trying to use the versions of these tools packaged for +distros causes many extra hassles, so don’t do that, tempting as it +may be. +</p> +<p>Currently the versions we use are: +</p> +<div class="display"> +<pre class="display">autoconf (GNU Autoconf) 2.69 +automake (GNU automake) 1.14.1 +bison (GNU Bison) 3.0.2 +flex 2.5.39 +ltmain.sh (GNU libtool) 2.4.2 +m4 (GNU M4) 1.4.17 +makeinfo (GNU texinfo) 5.2 +</pre></div> + +<a name="index-reautoconf"></a> +<a name="index-_002d_002denable_002dmaintainer_002dmode-configure-option"></a> +<p>These versions should be used to update the generated files (e.g., +<samp>configure</samp> or <samp>Makefile.in</samp>) in all or parts of the TL tree +after their dependencies have been changed. This can be done +explicitly with the top-level <code>reautoconf</code> script or implicitly +by using the configure option <code>--enable-maintainer-mode</code>. +</p> +<a name="index-Subversion-repository"></a> +<a name="index-timestamps_002c-in-repository"></a> +<a name="index-use_002dcommit_002dtimes_002c-Subversion"></a> +<p>The files in the Subversion repository (see +<a href="http://tug.org/texlive/svn">http://tug.org/texlive/svn</a>) are all up to date, but +unfortunately this may not be reflected by their timestamps. (For +starters, be sure to set <samp>use-commit-times=yes</samp> in +<samp>~/.subversion/config</samp> or the equivalent.) +</p> +<a name="index-touching-files-to-avoid-rerunning"></a> +<a name="index-make-_002dt"></a> +<p>To avoid unnecessary runs of <code>bison</code>, <code>flex</code>, or +<code>makeinfo</code> it may be necessary to <code>touch</code> the generated +(<samp>.c</samp>, <samp>.h</samp>, or <samp>.info</samp>) files. With +<code>--enable-maintainer-mode</code> it may also be necessary to +<code>touch</code> first <samp>aclocal.m4</samp>, then <samp>configure</samp> and +<samp>config.h.in</samp> (or <samp>c-auto.in</samp>), and finally all +<samp>Makefile.in</samp> files. Perhaps <code>make -t</code> will help. +</p> + +<hr> +<a name="Top_002dlevel-directories"></a> +<div class="header"> +<p> +Next: <a href="#Autoconf-macros" accesskey="n" rel="next">Autoconf macros</a>, Previous: <a href="#Build-system-tools" accesskey="p" rel="prev">Build system tools</a>, Up: <a href="#Layout-and-infrastructure" accesskey="u" rel="up">Layout and infrastructure</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Top_002dlevel-directories-1"></a> +<h3 class="section">6.2 Top-level directories</h3> + +<a name="index-directories_002c-top_002dlevel"></a> +<a name="index-top_002dlevel-directories"></a> + +<p>Here is a brief description of the top-level directories in the TeX Live +source tree. +</p> +<p>As mentioned at the beginning of the chapter (see <a href="#Overview-of-build-system">Overview of build system</a>), the main source directories are <samp>texk/</samp> +(TeX-specific programs and libraries), <samp>utils/</samp> (additional +programs), and <samp>libs</samp> (generic libraries). +</p> +<a name="index-am_002f-top_002dlevel-directory"></a> +<a name="index-m4_002f-top_002dlevel-directory"></a> +<p>The top-level directories <samp>am/</samp> and <samp>m4/</samp> contain +<samp>Makefile.am</samp> fragments and Autoconf macros, respectively, used +in many places. Specifically, the file <samp>m4/kpse-pkgs.m4</samp> +contains lists of all program and library modules; missing modules are +silently ignored. (This helps in creating cut-down source trees.) +</p> +<p>Each module contributes fragments (in separate files) defining its +capabilities and requirements to the <samp>configure.ac</samp> scripts at +the top-level and in the subdirectories <samp>libs</samp>, <samp>utils</samp>, and +<samp>texk</samp>. The fragments from program modules supply +<code>configure</code> options to disable or enable building them; those +from library modules specify if an installed (system) version of that +library can be used. This ultimately determines which modules need to +be built—although all modules must be configured for the benefit of +<samp>make</samp> targets such as <code>dist</code> or <code>distcheck</code>. +</p> +<a name="index-config_002eguess_002c-config_002esub"></a> +<a name="index-Gnulib_002c-used-for-common-files"></a> +<p>The top-level <samp>build-aux/</samp> directory contains the common files +<samp>compile</samp>, <samp>config.guess</samp>, <samp>config.sub</samp>, +<samp>depcomp</samp>, etc. for most packages, pulled from the GNU Gnulib +sources (<a href="http://www.gnu.org/software/gnulib">http://www.gnu.org/software/gnulib</a>), which in turn +synchronizes with the appropriate ultimate upstream repository. There +are, however, independent copies in, e.g., +<samp>libs/freetype2/freetype-*/builds/unix/</samp>, and similar places. +The <code>reautoconf</code> script does not touch those, but a TL cron job +keeps them in sync (nightly). +</p> +<a name="index-extra_002f-top_002dlevel-directory"></a> +<p>The directory <samp>extra/</samp> contains things which are not part of the +TL build, but are present just for (someone’s) convenience, e.g., +<samp>epstopdf</samp> which is developed here. +</p> + +<hr> +<a name="Autoconf-macros"></a> +<div class="header"> +<p> +Next: <a href="#Library-modules" accesskey="n" rel="next">Library modules</a>, Previous: <a href="#Top_002dlevel-directories" accesskey="p" rel="prev">Top-level directories</a>, Up: <a href="#Layout-and-infrastructure" accesskey="u" rel="up">Layout and infrastructure</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Autoconf-macros-1"></a> +<h3 class="section">6.3 Autoconf macros</h3> + +<a name="index-autoconf-macros"></a> + + + +<p>Here we describe some of the Autoconf macros used in several +modules–not a complete list, by any means. These general macros are +supplemented by module-specific macros in directories such as +<samp>texk/dvipng/m4/</samp>; some of those are described in <a href="#Library-modules">Library modules</a> and see <a href="#Program-modules">Program modules</a>. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#General-setup-macros" accesskey="1">Setup</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Macros-for-programs" accesskey="2">Programs</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Macros-for-compilers" accesskey="3">Compilers</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Macros-for-libraries" accesskey="4">Libraries</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Macros-for-library-and-header-flags" accesskey="5">Flags</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Macros-for-Windows" accesskey="6">Windows</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + +<hr> +<a name="General-setup-macros"></a> +<div class="header"> +<p> +Next: <a href="#Macros-for-programs" accesskey="n" rel="next">Macros for programs</a>, Up: <a href="#Autoconf-macros" accesskey="u" rel="up">Autoconf macros</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="General-setup-macros-1"></a> +<h4 class="subsection">6.3.1 General setup macros</h4> + +<a name="index-general-setup-macros"></a> +<a name="index-setup-macros_002c-general"></a> +<a name="index-macros_002c-general-setup"></a> +<p>The TL sources use two general setup macros: +</p> +<dl> +<dt><a name="index-KPSE_005fBASIC"></a>Macro: <strong>KPSE_BASIC</strong> <em>(<var>name</var>, [<var>more-options</var>])</em></dt> +<dd><p>Initialize the basic TL infrastructure for module <var>name</var>:<br> <code>AM_INIT_AUTOMAKE([foreign <var>more-options</var>])</code><br> <code>AM_MAINTAINER_MODE</code><br> <code>KPSE_COMPILER_WARNINGS</code><br> +and make sure the C compiler understands function prototypes. This is +used for all generic library and program modules. +</p></dd></dl> + +<dl> +<dt><a name="index-KPSE_005fCOMMON"></a>Macro: <strong>KPSE_COMMON</strong> <em>(<var>name</var>, [<var>more-options</var>])</em></dt> +<dd><p>Like <code>KPSE_BASIC</code> but add:<br> <code>LT_PREREQ([2.2.6])</code><br> <code>LT_INIT([win32-dll])</code><br> <code>AC_SYS_LARGEFILE</code><br> <code>AC_FUNC_FSEEKO</code><br>and check for frequently used functions, +headers, types, and structures. This is used for TeX-specific +modules. +</p></dd></dl> + + +<hr> +<a name="Macros-for-programs"></a> +<div class="header"> +<p> +Next: <a href="#Macros-for-compilers" accesskey="n" rel="next">Macros for compilers</a>, Previous: <a href="#General-setup-macros" accesskey="p" rel="prev">General setup macros</a>, Up: <a href="#Autoconf-macros" accesskey="u" rel="up">Autoconf macros</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Macros-for-programs-1"></a> +<h4 class="subsection">6.3.2 Macros for programs</h4> + +<a name="index-macros_002c-for-programs"></a> +<p>Macros for program checks: +</p> +<dl> +<dt><a name="index-KPSE_005fCHECK_005fLATEX"></a>Macro: <strong>KPSE_CHECK_LATEX</strong></dt> +<dd><p>Set <code>LATEX</code> to the name of the first of <code>latex</code>, +<code>elatex</code>, or <code>lambda</code> which exists in <code>PATH</code>, or to +<code>no</code> if none of them exists. Call <code>AC_SUBST</code> for +<code>LATEX</code>. The result of this test can be overridden by setting +the <code>LATEX</code> environment variable or the cache variable +<code>ac_cv_prog_LATEX</code>. +</p></dd></dl> + +<dl> +<dt><a name="index-KPSE_005fCHECK_005fPDFLATEX"></a>Macro: <strong>KPSE_CHECK_PDFLATEX</strong></dt> +<dd><p>Check for <code>pdflatex</code> in <code>PATH</code> and set <code>PDFLATEX</code>. +</p></dd></dl> + +<dl> +<dt><a name="index-KPSE_005fCHECK_005fPERL"></a>Macro: <strong>KPSE_CHECK_PERL</strong></dt> +<dd><p>Check for <code>perl</code> or <code>perl5</code> in <code>PATH</code> and set +<code>PERL</code>. +</p></dd></dl> + +<dl> +<dt><a name="index-KPSE_005fPROG_005fLEX"></a>Macro: <strong>KPSE_PROG_LEX</strong></dt> +<dd><p>Call <code>AC_PROG_LEX</code> and add the flag <code>-l</code> for <code>flex</code>. +</p></dd></dl> + + +<hr> +<a name="Macros-for-compilers"></a> +<div class="header"> +<p> +Next: <a href="#Macros-for-libraries" accesskey="n" rel="next">Macros for libraries</a>, Previous: <a href="#Macros-for-programs" accesskey="p" rel="prev">Macros for programs</a>, Up: <a href="#Autoconf-macros" accesskey="u" rel="up">Autoconf macros</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Macros-for-compilers-1"></a> +<h4 class="subsection">6.3.3 Macros for compilers</h4> + +<a name="index-macros_002c-for-compilers"></a> + +<p>Macros for compiler-related checks: +</p> +<dl> +<dt><a name="index-KPSE_005fCOMPILER_005fWARNINGS"></a>Macro: <strong>KPSE_COMPILER_WARNINGS</strong></dt> +<dd><a name="index-WARNING_005fC_005bXX_005dFLAGS"></a> +<p>When using the (Objective) C/C++ compiler, set +<code>WARNING_[OBJ]C[XX</code>]FLAGS to suitable warning flags (depending on +the value given to or implied for <code>--enable-compiler-warnings</code>). +Call <code>AC_SUBST</code> for them. At the moment this only works for GNU +compilers, but could be extended to others if necessary. +</p> +<a name="index-kpse_005fcv_005fwarning_005fcflags"></a> +<p>This macro caches its results in the <code>kpse_cv_warning_cflags</code>, +… variables. +</p></dd></dl> + +<dl> +<dt><a name="index-KPSE_005fCOMPILER_005fVISIBILITY"></a>Macro: <strong>KPSE_COMPILER_VISIBILITY</strong></dt> +<dd><p>When using the C or C++ compiler, try to set +<code>VISIBILITY_C[XX]FLAGS</code> to flags to hide external symbols. Call +<code>AC_SUBST</code> for this variable. At the moment this only tests for +the compiler option <code>-fvisibility=hidden</code>, but that could be +extended with more checks if necessary. +</p> +<a name="index-kpse_005fcv_005fvisibility_005fc_005bxx_005dflags"></a> +<p>This macro caches its results in the <code>kpse_cv_visibility_cflags</code> +or <code>kpse_cv_visibility_cxxflags</code> variable. +</p></dd></dl> + +<dl> +<dt><a name="index-KPSE_005fCXX_005fHACK"></a>Macro: <strong>KPSE_CXX_HACK</strong></dt> +<dd><a name="index-static-linking-for-C_002b_002b"></a> +<a name="index-linking-C_002b_002b-libraries-statically"></a> +<a name="index-_002d_002denable_002dcxx_002druntime_002dhack-configure-option"></a> +<a name="index-libstc_002b_002b_002c-statically-linking"></a> +<p>Provide the configure option <code>--enable-cxx-runtime-hack</code>. If +enabled and when using <code>g++</code>, try to statically link with +<samp>libstdc++</samp>, somewhat improving portability of the resulting +binary. +</p> +<a name="index-kpse_005fcv_005fcxx_005fhack"></a> +<p>This macro caches its result in the <code>kpse_cv_cxx_hack</code> variable. +</p></dd></dl> + + +<hr> +<a name="Macros-for-libraries"></a> +<div class="header"> +<p> +Next: <a href="#Macros-for-library-and-header-flags" accesskey="n" rel="next">Macros for library and header flags</a>, Previous: <a href="#Macros-for-compilers" accesskey="p" rel="prev">Macros for compilers</a>, Up: <a href="#Autoconf-macros" accesskey="u" rel="up">Autoconf macros</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Macros-for-libraries-1"></a> +<h4 class="subsection">6.3.4 Macros for libraries</h4> + +<a name="index-macros_002c-for-libraries"></a> +<p>One macro for a library check: +</p> +<dl> +<dt><a name="index-KPSE_005fLARGEFILE"></a>Macro: <strong>KPSE_LARGEFILE</strong> <em>(<var>variable</var>, [<var>extra-define</var>])</em></dt> +<dd><p>Call <code>AC_SYS_LARGEFILE</code> and <code>AC_FUNC_FSEEKO</code> and append +suitable <code>-D</code> flags (optionally including +<code>-D<var>extra-define</var></code>) to <var>variable</var>. +</p></dd></dl> + + +<hr> +<a name="Macros-for-library-and-header-flags"></a> +<div class="header"> +<p> +Next: <a href="#Macros-for-Windows" accesskey="n" rel="next">Macros for Windows</a>, Previous: <a href="#Macros-for-libraries" accesskey="p" rel="prev">Macros for libraries</a>, Up: <a href="#Autoconf-macros" accesskey="u" rel="up">Autoconf macros</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Macros-for-library-and-header-flags-1"></a> +<h4 class="subsection">6.3.5 Macros for library and header flags</h4> + +<a name="index-macros_002c-for-library-and-header-flags"></a> +<a name="index-flags_002c-macros-for-library-and-header"></a> +<a name="index-KPSE_005fLIB_005fFLAGS"></a> +<p>Each library module <samp>libs/<var>lib</var></samp> or <samp>texk/<var>lib</var></samp> is +supplemented by a macro <code>KPSE_<var>LIB</var>_FLAGS</code> (all uppercase) +that provides make variables for that library. E.g., for +<samp>libs/libpng</samp>: +</p> +<dl> +<dt><a name="index-KPSE_005fLIBPNG_005fFLAGS"></a>Macro: <strong>KPSE_LIBPNG_FLAGS</strong></dt> +<dd><p>Provide the configure option <code>--with-system-libpng</code>. Set and +<code>AC_SUBST</code> <code>make</code> variables for modules using this library +(either an installed version or from the TeX Live tree): <code>LIBPNG_INCLUDES</code> +for use in CPPFLAGS, LIBPNG_LIBS for use in LDADD, LIBPNG_DEPEND for +use as dependency, and LIBPNG_RULE defining <code>make</code> rules to +rebuild the library. +</p></dd></dl> + +<dl> +<dt><a name="index-KPSE_005fADD_005fFLAGS"></a>Macro: <strong>KPSE_ADD_FLAGS</strong> <em>(<var>libname</var>)</em></dt> +<dd><p>Temporarily extend CPPFLAGS and LIBS with the values required for the +library module <code><var>name</var></code>. +</p></dd></dl> + +<dl> +<dt><a name="index-KPSE_005fRESTORE_005fFLAGS"></a>Macro: <strong>KPSE_RESTORE_FLAGS</strong></dt> +<dd><p>Restore <code>CPPFLAGS</code> and <code>LIBS</code> to their original values. +</p></dd></dl> + +<p>As an example, the <samp>configure.ac</samp> file for a hypothetical program +<samp>utils/foo</samp> using <samp>libpng</samp>, and hence <samp>zlib</samp>, would +contain +</p><div class="example"> +<pre class="example">KPSE_ZLIB_FLAGS +KPSE_LIBPNG_FLAGS +</pre></div> + +<p>and its <samp>Makefile.am</samp> would be along these lines: +</p><div class="example"> +<pre class="example">bin_PROGRAMS = foo +AM_CPPFLAGS = ${ZLIB_INCLUDES} ${LIBPNG_INCLUDES} +foo_LDADD = ${ZLIB_LIBS} ${LIBPNG_LIBS} +foo_DEPENDENCIES = ${ZLIB_DEPEND} ${LIBPNG_DEPEND} +## Rebuild libz +@ZLIB_RULE@ +## Rebuild libpng +@LIBPNG_RULE@ +</pre></div> + +<p>If it was necessary to examine whether certain <samp>zlib</samp> or +<samp>libpng</samp> features were available, <samp>configure.ac</samp> should be +continued this way: +</p><div class="example"> +<pre class="example">KPSE_ADD_FLAGS([zlib]) +… # <span class="roman">tests for <samp>zlib</samp> features, if any</span> +KPSE_ADD_FLAGS([libpng]) +… # <span class="roman">tests for <samp>libpng</samp> features</span> +KPSE_RESTORE_FLAGS # <span class="roman">restore <code>CPPFLAGS</code> and <code>LIBS</code></span> +</pre></div> + + +<hr> +<a name="Macros-for-Windows"></a> +<div class="header"> +<p> +Previous: <a href="#Macros-for-library-and-header-flags" accesskey="p" rel="prev">Macros for library and header flags</a>, Up: <a href="#Autoconf-macros" accesskey="u" rel="up">Autoconf macros</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Macros-for-Windows-1"></a> +<h4 class="subsection">6.3.6 Macros for Windows</h4> + +<a name="index-macros_002c-for-Windows"></a> +<a name="index-Windows_002c-macros-for"></a> +<p>Windows differs in several aspects from Unix-like systems, many of +them due to the lack of symbolic links. +</p> +<dl> +<dt><a name="index-KPSE_005fCHECK_005fWIN32"></a>Macro: <strong>KPSE_CHECK_WIN32</strong></dt> +<dd><a name="index-kpse_005fcv_005fhave_005fwin32"></a> +<p>Check if compiling for a Windows system. The result is <code>no</code> for +Unix-like systems (including Cygwin), <code>mingw32</code> for Windows with +GCC, or <code>native</code> for Windows with MSVC. The result is cached in +the <code>kpse_cv_have_win32</code> variable. +</p></dd></dl> + +<dl> +<dt><a name="index-KPSE_005fCOND_005fWIN32"></a>Macro: <strong>KPSE_COND_WIN32</strong></dt> +<dd><a name="index-WIN32_002c-Automake-conditional"></a> +<p>Call <code>KPSE_CHECK_WIN32</code> and define the Automake conditional +<code>WIN32</code> (<code>true</code> if the value of <code>kpse_cv_have_win32</code> is +not <code>no</code>). +</p></dd></dl> + +<dl> +<dt><a name="index-KPSE_005fCOND_005fMINGW32"></a>Macro: <strong>KPSE_COND_MINGW32</strong></dt> +<dd><a name="index-MINGW32_002c-Automake-conditional"></a> +<p>Call <code>KPSE_COND_WIN32</code> and define the Automake conditional +<code>MINGW32</code> (<code>true</code> if the value of <code>kpse_cv_have_win32</code> is +<code>mingw32</code>). +</p></dd></dl> + +<dl> +<dt><a name="index-KPSE_005fCOND_005fWIN32_005fWRAP"></a>Macro: <strong>KPSE_COND_WIN32_WRAP</strong></dt> +<dd><a name="index-WIN32_005fWRAP_002c-Automake-conditional"></a> +<a name="index-runscript_002eexe"></a> +<p>Call <code>KPSE_COND_WIN32</code> and define the Automake conditional +<code>WIN32_WRAP</code> (<code>true</code> if the standard Windows wrapper +(<samp>texk/texlive/w32_wrapper/runscript.exe</samp>) exists. This wrapper +is used on Windows instead of symlinks for the “linked scripts” +(see <a href="#Linked-scripts">Linked scripts</a>). +</p></dd></dl> + +<dl> +<dt><a name="index-KPSE_005fWIN32_005fCALL"></a>Macro: <strong>KPSE_WIN32_CALL</strong></dt> +<dd><a name="index-callexe_002ec"></a> +<p>Call <code>KPSE_COND_WIN32</code>, check if the file +<samp>texk/texlive/w32_wrapper/callexe.c</samp> exists; if it does, create a +symlink in the build tree. Compiling <samp>callexe.c</samp> with +<code>-DEXEPROG='"<var>foo</var>.exe"'</code> and installing <samp>callexe.exe</samp> +as <code><var>bar</var>.exe</code> is used on Windows instead of a symlink +<code><var>bar</var>-><var>foo</var></code> for Unix-like systems. +</p></dd></dl> + + +<hr> +<a name="Library-modules"></a> +<div class="header"> +<p> +Next: <a href="#Program-modules" accesskey="n" rel="next">Program modules</a>, Previous: <a href="#Autoconf-macros" accesskey="p" rel="prev">Autoconf macros</a>, Up: <a href="#Layout-and-infrastructure" accesskey="u" rel="up">Layout and infrastructure</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Library-modules-1"></a> +<h3 class="section">6.4 Library modules</h3> + +<a name="index-library-modules"></a> +<a name="index-modules_002c-for-libraries"></a> +<p>Here we discuss some specifics for a few of the libraries in TL, both +for the details themselves, and as a way of illuminating the general +structure and variation. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#png-library" accesskey="1"><code>png</code> library</a>:</td><td> </td><td align="left" valign="top"><samp>libs/libpng</samp> +</td></tr> +<tr><td align="left" valign="top">• <a href="#zlib-library" accesskey="2"><code>zlib</code> library</a>:</td><td> </td><td align="left" valign="top"><samp>libs/zlib</samp> +</td></tr> +<tr><td align="left" valign="top">• <a href="#freetype-library" accesskey="3"><code>freetype</code> library</a>:</td><td> </td><td align="left" valign="top"><samp>libs/freetype2</samp> +</td></tr> +<tr><td align="left" valign="top">• <a href="#kpathsea-library" accesskey="4"><code>kpathsea</code> library</a>:</td><td> </td><td align="left" valign="top"><samp>texk/kpathsea</samp> +</td></tr> +</table> + +<hr> +<a name="png-library"></a> +<div class="header"> +<p> +Next: <a href="#zlib-library" accesskey="n" rel="next"><code>zlib</code> library</a>, Up: <a href="#Library-modules" accesskey="u" rel="up">Library modules</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="The-png-library-in-libs_002flibpng"></a> +<h4 class="subsection">6.4.1 The <code>png</code> library in <samp>libs/libpng</samp></h4> + +<a name="index-png-library"></a> +<a name="index-libpng-library"></a> +<p>This generic library uses the source tree in, e.g., the subdirectory +<samp>libpng-1.5.17</samp> with all modifications for TL recorded in +<samp>libpng-1.5.17-PATCHES/*</samp>. The <samp>configure.ac</samp> fragment +<samp>ac/withenable.ac</samp> contains +</p> +<div class="example"> +<pre class="example">KPSE_WITH_LIB([libpng], [zlib]) +</pre></div> + +<p>specifying the module name, and indicating the dependency on +<code>zlib</code>. A third literal argument <code>tree</code> would specify that +the library from the TeX Live tree cannot be replaced by a system +version. That not being the case here, a second fragment +<samp>ac/libpng.ac</samp> contains +</p> +<a name="index-KPSE_005fTRY_005fLIB"></a> +<div class="example"> +<pre class="example">KPSE_TRY_LIB([libpng], + [#include <png.h>], + [png_structp png; png_voidp io; png_rw_ptr fn; +png_set_read_fn(png, io, fn);]) +</pre></div> + +<p>thus providing the simple C code +</p> +<div class="example"> +<pre class="example">#include <png.h> +int main () +{ png_structp png; png_voidp io; png_rw_ptr fn; + png_set_read_fn(png, io, fn); + return 0; } +</pre></div> + +<a name="index-KPSE_005fTRY_005fLIBXX"></a> +<p>which Autoconf uses to verify the usability of a system +version with C code. The analogous macro <code>KPSE_TRY_LIBXX</code> would +check using C++ code. These fragments are included by +<samp>configure.ac</samp> at the top level. +</p> +<p>For this library, among many other modules, a proxy build system for +TL is used (<samp>configure.ac</samp>, <samp>Makefile.am</samp>, and +<samp>include/Makefile.am</samp>), ignoring the distributed one. +Consequently, a few generated files and auxiliary scripts are removed +from the distributed source tree. The public headers <samp>png.h</samp>, +<samp>pngconf.h</samp>, and <samp>pnglibconf.h</samp> are “installed” (as +symlinks) under <samp>include/</samp> in the build tree exactly as they are +for a system version under, e.g., <samp>/usr/include/</samp>. +</p> +<a name="index-kpse_002dlibpng_002dflags_002em4"></a> +<a name="index-KPSE_005fLIBPNG_005fFLAGS-1"></a> +<p>The module is supplemented by the file <samp>m4/kpse-libpng-flags.m4</samp> +that defines the M4 macro <code>KPSE_LIBPNG_FLAGS</code> used by all modules +depending on this library in their <samp>configure.ac</samp> to generate the +<code>make</code> variables <code>LIBPNG_INCLUDES</code> for use in +<code>CPPFLAGS</code>, <code>LIBPNG_LIBS</code> for use in <code>LDADD</code>, +<code>LIBPNG_DEPEND</code> for use as dependencies, and <code>LIBPNG_RULE</code> +defining <code>make</code> rules to rebuild the library. +</p> +<p><samp>m4/kpse-libpng-flags.m4</samp> also supplies the configure option +<code>--with-system-libpng</code> and uses <code>pkg-config</code> to determine +the flags required for the system library. +</p> + +<hr> +<a name="zlib-library"></a> +<div class="header"> +<p> +Next: <a href="#freetype-library" accesskey="n" rel="next"><code>freetype</code> library</a>, Previous: <a href="#png-library" accesskey="p" rel="prev"><code>png</code> library</a>, Up: <a href="#Library-modules" accesskey="u" rel="up">Library modules</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="The-zlib-library-in-libs_002fzlib"></a> +<h4 class="subsection">6.4.2 The <code>zlib</code> library in <samp>libs/zlib</samp></h4> + +<a name="index-zlib-library"></a> + +<a name="index-kpse_002dzlib_002dflags_002em4"></a> +<p>This generic library is very much analogous to <code>libpng</code>, but +without the dependency on any other library. The file +<samp>m4/kpse-zlib-flags.m4</samp> supplies the configure option +<code>--with-system-zlib</code>, as well as <code>--with-zlib-includes</code> and +<code>--with-zlib-libdir</code> to specify non-standard locations of the +<code>zlib</code> headers and/or library. +</p> + +<hr> +<a name="freetype-library"></a> +<div class="header"> +<p> +Next: <a href="#kpathsea-library" accesskey="n" rel="next"><code>kpathsea</code> library</a>, Previous: <a href="#zlib-library" accesskey="p" rel="prev"><code>zlib</code> library</a>, Up: <a href="#Library-modules" accesskey="u" rel="up">Library modules</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="The-freetype-library-in-libs_002ffreetype2"></a> +<h4 class="subsection">6.4.3 The <code>freetype</code> library in <samp>libs/freetype2</samp></h4> + +<a name="index-freetype-library"></a> + +<a name="index-freetype_002dconfig"></a> +<p>This module uses a wrapper build system with an almost trivial +<samp>configure.ac</samp> and with a <samp>Makefile.am</samp> that invokes +<code>configure</code> and <code>make</code> for the distributed source, followed +by <code>make install</code> with the build tree as destination. The flags +required for the system library are obtained through +<code>freetype-config</code>. +</p> + +<hr> +<a name="kpathsea-library"></a> +<div class="header"> +<p> +Previous: <a href="#freetype-library" accesskey="p" rel="prev"><code>freetype</code> library</a>, Up: <a href="#Library-modules" accesskey="u" rel="up">Library modules</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="The-kpathsea-library-in-texk_002fkpathsea"></a> +<h4 class="subsection">6.4.4 The <code>kpathsea</code> library in <samp>texk/kpathsea</samp></h4> + +<a name="index-kpathsea-library"></a> + +<p>This is one of the TeX-specific libraries that are maintained as +part of TeX Live (see <cite><a href="kpathsea.html#Top">Kpathsea</a></cite>). Despite being a core +part of the TeX system, it is not a terribly special case in the +infrastructure. The TeX libraries are Libtool libraries (static +and/or shared) and are installed by <code>make install</code> together with +the programs. They are, however, not part of the TL DVD as +distributed by TeX user groups, and have never been officially +released for standalone use. +</p> +<a name="index-_002d_002dwith_002dsystem_002dkpathsea"></a> +<p>It is possible, and possibly even useful for distro builds +(see <a href="#Distro-builds">Distro builds</a>, to specify the configure option +<code>--with-system-kpathsea</code> in order to use a system version of the +library and it may then be necessary to specify +<code>--with-kpathsea-includes</code> and/or <code>--with-kpathsea-libdir</code>. +</p> +<a name="index-kpathsea_002eac"></a> +<a name="index-mktex_002eac"></a> +<a name="index-_002d_002denable_002dmktextfm_002ddefault"></a> +<a name="index-mktextfm"></a> +<p>In addition to <samp>ac/withenable.ac</samp> and <samp>ac/kpathsea.ac</samp> there +is a third fragment <samp>ac/mktex.ac</samp> included by both +<samp>ac/withenable.ac</samp> and <samp>configure.ac</samp> that supplies +configure options such as <code>--enable-mktextfm-default</code>, which +determine the compile time default of whether or not to run +<code>mktextfm</code> to generate a missing <samp>.tfm</samp> file. In any case, +however, the command line options <code>-mktex=tfm</code> or +<code>-no-mktex=tfm</code> for the TeX-like engines override this default. +</p> + +<hr> +<a name="Program-modules"></a> +<div class="header"> +<p> +Next: <a href="#Extending-TeX-Live" accesskey="n" rel="next">Extending TeX Live</a>, Previous: <a href="#Library-modules" accesskey="p" rel="prev">Library modules</a>, Up: <a href="#Layout-and-infrastructure" accesskey="u" rel="up">Layout and infrastructure</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Program-modules-1"></a> +<h3 class="section">6.5 Program modules</h3> + +<a name="index-program-modules"></a> +<a name="index-modules_002c-for-programs"></a> +<p>As with libraries (see <a href="#Library-modules">Library modules</a>), here we discuss the +details for a few of the programs in TL. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#t1utils-package" accesskey="1"><code>t1utils</code> package</a>:</td><td> </td><td align="left" valign="top"><samp>utils/t1utils</samp> +</td></tr> +<tr><td align="left" valign="top">• <a href="#xindy-package" accesskey="2"><code>xindy</code> package</a>:</td><td> </td><td align="left" valign="top"><samp>utils/xindy</samp> +</td></tr> +<tr><td align="left" valign="top">• <a href="#xdvik-package" accesskey="3"><code>xdvik</code> package</a>:</td><td> </td><td align="left" valign="top"><samp>texk/xdvik</samp> +</td></tr> +<tr><td align="left" valign="top">• <a href="#asymptote" accesskey="4"><code>asymptote</code></a>:</td><td> </td><td align="left" valign="top"><samp>utils/asymptote</samp> +</td></tr> +</table> + + +<hr> +<a name="t1utils-package"></a> +<div class="header"> +<p> +Next: <a href="#xindy-package" accesskey="n" rel="next"><code>xindy</code> package</a>, Up: <a href="#Program-modules" accesskey="u" rel="up">Program modules</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="The-t1utils-package-in-utils_002ft1utils"></a> +<h4 class="subsection">6.5.1 The <code>t1utils</code> package in <samp>utils/t1utils</samp></h4> + +<a name="index-t1utils-package"></a> + +<p>Once again we use the distributed source tree <samp>t1utils-1.38</samp> with +modifications documented in <samp>t1utils-1.38-PATCHES/*</samp> and a proxy +build system consisting of <samp>configure.ac</samp> and <samp>Makefile.am</samp>. +The fragment <samp>ac/withenable.ac</samp> contains +</p> +<div class="example"> +<pre class="example">KPSE_ENABLE_PROG([t1utils]) +</pre></div> + +<p>specifying the module name without any dependencies, and +supplies the configure option <code>--disable-t1utils</code>. +</p> + +<hr> +<a name="xindy-package"></a> +<div class="header"> +<p> +Next: <a href="#xdvik-package" accesskey="n" rel="next"><code>xdvik</code> package</a>, Previous: <a href="#t1utils-package" accesskey="p" rel="prev"><code>t1utils</code> package</a>, Up: <a href="#Program-modules" accesskey="u" rel="up">Program modules</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="The-xindy-package-in-utils_002fxindy"></a> +<h4 class="subsection">6.5.2 The <code>xindy</code> package in <samp>utils/xindy</samp></h4> + +<a name="index-xindy-1"></a> + +<p>This module uses the distributed source tree <samp>xindy-2.4</samp> with +modifications documented in <samp>xindy-2.4-PATCHES/*</samp>, a proxy +<samp>configure.ac</samp>, and a wrapper <samp>Makefile.am</samp> that descends +into <samp>xindy-2.4</samp>. The <code>xindy</code> build requires that the +distributed <samp>Makefile</samp>s allow a <code>VPATH</code> build, can handle +all targets, and do not refer to <code>${top_srcdir}</code> or +<code>${top_builddir}</code>. The fragment <code>ac/withenable.ac</code> +contains +</p> +<div class="example"> +<pre class="example">KPSE_ENABLE_PROG([xindy], , [disable native]) +m4_include(kpse_TL[utils/xindy/ac/xindy.ac]) +m4_include(kpse_TL[utils/xindy/ac/clisp.ac]) +</pre></div> + +<p>where <code>disable</code> in the third argument indicates that +<code>xindy</code> is only built if explicitly enabled by the user with +<code>configure --enable-xindy</code> (the need for <code>clisp</code> is too +painful to require by default), and <code>native</code> disallows cross +compilation. The additional fragments <samp>ac/xindy.ac</samp> and +<samp>ac/clisp.ac</samp> specify more <code>configure</code> options to be seen at +the top level with <samp>ac/xindy.ac</samp> also included by +<samp>configure.ac</samp>. +</p> + +<hr> +<a name="xdvik-package"></a> +<div class="header"> +<p> +Next: <a href="#asymptote" accesskey="n" rel="next"><code>asymptote</code></a>, Previous: <a href="#xindy-package" accesskey="p" rel="prev"><code>xindy</code> package</a>, Up: <a href="#Program-modules" accesskey="u" rel="up">Program modules</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="The-xdvik-package-in-texk_002fxdvik"></a> +<h4 class="subsection">6.5.3 The <code>xdvik</code> package in <samp>texk/xdvik</samp></h4> + +<a name="index-xdvik"></a> + +<p>This package is maintained as part of the TeX Live tree with sources in +its top level directory and the subdirectory <samp>gui</samp>. The fragment +<code>ac/withenable.ac</code> contains +</p> +<div class="example"> +<pre class="example">dnl extra_dirs = texk/xdvik/squeeze +KPSE_ENABLE_PROG([xdvik], [kpathsea freetype2], [x]) +m4_include(kpse_TL[texk/xdvik/ac/xdvik.ac]) +</pre></div> + +<a name="index-squeeze_002fconfigure_002eac"></a> +<a name="index-cross-compilation_002c-with-host-binary"></a> +<p>thus specifying the dependency on the <code>kpathsea</code>, +<code>freetype</code>, and X11 libraries. The M4 comment (following +<code>dnl</code>) signals the subsidiary <samp>squeeze/configure.ac</samp>. This +is needed because the main executable <samp>xdvi-bin</samp> (to be installed +as, e.g., <samp>xdvi-xaw</samp>) is for the <code>host</code> system whereas the +auxiliary program <samp>squeeze/squeeze</samp> has to run on the +<code>build</code> system and in a cross compilation they differ. +</p> +<a name="index-_002d_002dwith_002dxdvi_002dx_002dtoolkit"></a> +<p>The additional fragment <code>ac/xdvik.ac</code> is also included by +<samp>configure.ac</samp> and supplies the configure option +<code>--with-xdvi-x-toolkit</code> also seen at the top-level. +</p> + +<hr> +<a name="asymptote"></a> +<div class="header"> +<p> +Previous: <a href="#xdvik-package" accesskey="p" rel="prev"><code>xdvik</code> package</a>, Up: <a href="#Program-modules" accesskey="u" rel="up">Program modules</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="The-subdirectory-utils_002fasymptote"></a> +<h4 class="subsection">6.5.4 The subdirectory <samp>utils/asymptote</samp></h4> + +<a name="index-asymptote-1"></a> +<a name="index-xasy"></a> + +<a name="index-OpenGL_002c-required-for-Asymptote"></a> +<p>This subdirectory contains the sources for <samp>asy</samp> and <samp>xasy</samp> +but due to its complexity and prerequisites (e.g., OpenGL) it is +not part of the TL build system. These programs must be built and +installed independently, but are included on the TL DVD together with +their support files. +</p> + +<hr> +<a name="Extending-TeX-Live"></a> +<div class="header"> +<p> +Previous: <a href="#Program-modules" accesskey="p" rel="prev">Program modules</a>, Up: <a href="#Layout-and-infrastructure" accesskey="u" rel="up">Layout and infrastructure</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Extending-TeX-Live-1"></a> +<h3 class="section">6.6 Extending TeX Live</h3> + +<a name="index-extending-TeX-Live"></a> +<a name="index-adding-to-TeX-Live"></a> + +<p>This section outlines the basic process for adding new packages to the +TL build system. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Adding-a-new-program-module" accesskey="1">Adding a new program module</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Adding-a-new-generic-library-module" accesskey="2">Adding a new generic library module</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Adding-a-new-TeX_002dspecific-library-module" accesskey="3">Adding a new TeX-specific library module</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> +<a name="Adding-a-new-program-module"></a> +<div class="header"> +<p> +Next: <a href="#Adding-a-new-generic-library-module" accesskey="n" rel="next">Adding a new generic library module</a>, Up: <a href="#Extending-TeX-Live" accesskey="u" rel="up">Extending TeX Live</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Adding-a-new-program-module-1"></a> +<h4 class="subsection">6.6.1 Adding a new program module</h4> + +<a name="index-adding-a-new-program"></a> +<a name="index-program-module_002c-adding"></a> + +<a name="index-kpse_005ftexk_005fpkgs"></a> +<p>A TeX-specific program module in a subdirectory +<samp>texk/<var>prog</var></samp> may use the TeX-specific libraries and is +included by adding its name <samp><var>prog</var></samp> to the M4 list +<code>kpse_texk_pkgs</code> defined in <samp>m4/kpse-pkgs.m4</samp>. +</p> +<a name="index-kpse_005futils_005fpkgs"></a> +<p>A generic program module in a subdirectory <samp>utils/<var>prog</var></samp> +must not use the TeX-specific libraries and is included by adding +its name <samp><var>prog</var></samp> to the M4 list <code>kpse_utils_pkgs</code> in +<samp>m4/kpse-pkgs.m4</samp>. +</p> +<a name="index-withenable_002eac_002c-for-new-modules"></a> +<a name="index-KPSE_005fENABLE_005fPROG"></a> +<p>In either case, apart from the program sources and build system +(<samp>configure.ac</samp> and <samp>Makefile.am</samp>), the subdirectory +<samp>texk/<var>prog</var></samp> or <samp>utils/<var>prog</var></samp> must provide a +fragment <samp>ac/withenable.ac</samp> that contains the M4 macro +<code>KPSE_ENABLE_PROG</code> defined in <samp>m4/kpse-setup.m4</samp> with +<code><var>prog</var></code> as the mandatory first argument and three optional +arguments: +</p> +<ol> +<li> a list of required libraries from the TL tree; + +</li><li> a list of options (<code>disable</code> if this module is not to be +built without the configure option <code>--enable-<var>prog</var></code>, +<code>native</code> if cross compilation is not possible, <code>x</code> if the +program requires X11 libraries); + +</li><li> and a comment added to the help text for the <code>configure</code> +option <code>--enable-<var>prog</var></code> or <code>--disable-<var>prog</var></code>. +</li></ol> + +<p>If the module requires specific configure options to be seen at the +top-level, they should be defined in an additional fragment +<samp>ac/<var>prog</var>.ac</samp> included from <samp>ac/withenable.ac</samp> and +<samp>configure.ac</samp>. +</p> + +<hr> +<a name="Adding-a-new-generic-library-module"></a> +<div class="header"> +<p> +Next: <a href="#Adding-a-new-TeX_002dspecific-library-module" accesskey="n" rel="next">Adding a new TeX-specific library module</a>, Previous: <a href="#Adding-a-new-program-module" accesskey="p" rel="prev">Adding a new program module</a>, Up: <a href="#Extending-TeX-Live" accesskey="u" rel="up">Extending TeX Live</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Adding-a-new-generic-library-module-1"></a> +<h4 class="subsection">6.6.2 Adding a new generic library module</h4> + +<a name="index-adding-a-new-generic-library"></a> +<a name="index-generic-library-module_002c-adding"></a> +<a name="index-library-module_002c-generic_002c-adding"></a> + +<a name="index-kpse_005flibs_005fpkgs"></a> +<p>A generic library module in a subdirectory <samp>libs/<var>lib</var></samp> must +not depend on TeX-specific libraries, by definition. It is +included by adding its name <samp><var>lib</var></samp> to the M4 list +<code>kpse_libs_pkgs</code> in <samp>m4/kpse-pkgs.m4</samp>—before any other +libraries from the TeX Live tree on which it depends. +</p> +<a name="index-KPSE_005fWITH_005fLIB"></a> +<p>As with program modules, the subdirectory <samp>libs/<var>lib</var></samp> must +contain the sources and build system for the library (and any +installable support programs) and a fragment <samp>ac/withenable.ac</samp> +that contains the M4 macro <code>KPSE_WITH_LIB</code> defined in +<samp>m4/kpse-setup.m4</samp> with <code><var>lib</var></code> as the mandatory first +argument and two optional arguments: a list of required libraries from +the TL tree, and a list of options (currently there is only one: +specify <code>tree</code> if this library cannot be replaced by a system +version). +</p> +<a name="index-KPSE_005fTRY_005fLIB-1"></a> +<a name="index-KPSE_005fTRY_005fLIBXX-1"></a> +<p>If a system version can be used, a second fragment +<samp>ac/<var>lib</var>.ac</samp> is needed, containing the M4 macro +<code>KPSE_TRY_LIB</code> (or <code>KPSE_TRY_LIBXX</code>) with <code><var>lib</var></code> +as the mandatory first argument and two additional arguments for the +Autoconf macro <code>AC_LANG_PROGRAM</code> used to compile and link a small +C (or C++) program as sanity check for using the system library. +</p> +<a name="index-KPSE_005fLIB_005fFLAGS-1"></a> +<p>In addition a file <samp>m4/kpse-<var>lib</var>-flags</samp> (at the top level) +must define the M4 macro <code>KPSE_<var>LIB</var>_FLAGS</code> (all uppercase) +setting up the <code>make</code> variables <code><var>LIB</var>_INCLUDES</code>, +<code><var>LIB</var>_LIBS</code>, <code><var>LIB</var>_DEPEND</code>, and +<code><var>LIB</var>_RULE</code> with the values required for <code>CPPFLAGS</code>, +<code>LDADD</code>, dependencies, and a (multi-line) <code>make</code> rule to +rebuild the library when necessary. All of that is needed for the +library from the TL tree and, if supported, for a system version. +</p> +<a name="index-_002d_002dwith_002dsystem_002dlib"></a> +<a name="index-KPSE_005fLIB_005fSYSTEM_005fFLAGS"></a> +<a name="index-KPSE_005fALL_005fSYSTEM_005fFLAGS"></a> +<p>If a system library is allowed, <code>KPSE_<var>LIB</var>_FLAGS</code> also +provides the configure option <code>--with-system-<var>lib</var></code> and uses +the additional M4 macro <code>KPSE_<var>LIB</var>_SYSTEM_FLAGS</code> to generate +the <code>make</code> variables for a system library. Furthermore the +definition of the M4 macro <code>KPSE_ALL_SYSTEM_FLAGS</code> in +<samp>m4/kpse-pkgs.m4</samp> must be extended by the line:<br> <code>AC_REQUIRE([KPSE_<var>LIB</var>_SYSTEM_FLAGS])</code> +</p> + +<hr> +<a name="Adding-a-new-TeX_002dspecific-library-module"></a> +<div class="header"> +<p> +Previous: <a href="#Adding-a-new-generic-library-module" accesskey="p" rel="prev">Adding a new generic library module</a>, Up: <a href="#Extending-TeX-Live" accesskey="u" rel="up">Extending TeX Live</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Adding-a-new-TeX_002dspecific-library-module-1"></a> +<h4 class="subsection">6.6.3 Adding a new TeX-specific library module</h4> + +<a name="index-adding-a-new-TeX_002dspecific-library"></a> +<a name="index-TeX_002dspecific-library-module_002c-adding"></a> +<a name="index-library-module_002c-TeX_002dspecific_002c-adding"></a> + +<p>A TeX-specific library module in a subdirectory +<samp>texk/<var>lib</var></samp> may depend on other TeX-specific libraries +but must not depend on any generic library from the TL tree. It is +included in the same general ways as a generic library (see the +previous section), with these modifications: +</p> +<ul> +<li> <a name="index-kpse_005ftexlibs_005fpkgs"></a> +The library name <code><var>lib</var></code> is added to the M4 list +<code>kpse_texlibs_pkgs</code> also in <samp>m4/kpse-pkgs.m4</samp>. + +</li><li> <a name="index-KPSE_005fWITH_005fTEXLIB"></a> +The fragment <code>ac/withenable.ac</code> must use <code>KPSE_WITH_TEXLIB</code>. +</li></ul> + + +<hr> +<a name="Configure-options"></a> +<div class="header"> +<p> +Next: <a href="#Cross-compilation" accesskey="n" rel="next">Cross compilation</a>, Previous: <a href="#Layout-and-infrastructure" accesskey="p" rel="prev">Layout and infrastructure</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Configure-options-1"></a> +<h2 class="chapter">7 Configure options</h2> + +<a name="index-configure-options"></a> + +<p>Corresponding to the large number of program and library modules there +are a large number <code>configure</code> options, most of which are +described here. The command<br> <code>configure --help</code><br>at the +top level gives an exhaustive list of all global options and a few +important module-specific ones, whereas, e.g.,<br> <code>texk/lcdf-typetools/configure --help</code><br> also displays the +<code>lcdf-typetools</code> specific options, which are not shown by the +top-level <code>--help</code>. +</p> +<a name="index-environment-variables_002c-for-configure"></a> +<p>The help text also mentions several influential environment variables, +but for TeX Live it is better to specify them as assigments on the +command line. +</p> +<p>The <samp>./Build</samp> script used to make the binaries shipped with TeX Live +invokes the top-level <code>configure</code> with a few additional options +(see <a href="#Building">Building</a>). The defaults discussed below are those for the +actual <code>configure</code> script; invoking <code>configure</code> via +<samp>./Build</samp> may yield different results. +</p> +<p>Defaults for most options are set at the top level and propagated +explicitly to all subdirectories. Options specified on the command +line are checked for consistency but never modified. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Global-configure-options" accesskey="1">Global configure options</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Program_002dspecific-configure-options" accesskey="2">Program-specific configure options</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Library_002dspecific-configure-options" accesskey="3">Library-specific configure options</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Variables-for-configure" accesskey="4">Variables for configure</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> +<a name="Global-configure-options"></a> +<div class="header"> +<p> +Next: <a href="#Program_002dspecific-configure-options" accesskey="n" rel="next">Program-specific configure options</a>, Up: <a href="#Configure-options" accesskey="u" rel="up">Configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Global-configure-options-1"></a> +<h3 class="section">7.1 Global configure options</h3> + +<a name="index-global-configure-options"></a> +<a name="index-configure-options_002c-global"></a> +<p>Here are the global configure options. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#g_t_002d_002ddisable_002dnative_002dtexlive_002dbuild" accesskey="1"><code>--disable-native-texlive-build</code></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_002d_002dprefix-_002d_002dbindir-_2026" accesskey="2"><code>--prefix</code> <code>--bindir</code> …</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_002d_002ddisable_002dlargefile" accesskey="3"><code>--disable-largefile</code></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_002d_002ddisable_002dmissing" accesskey="4"><code>--disable-missing</code></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_002d_002denable_002dcompiler_002dwarnings_003dlevel" accesskey="5"><code>--enable-compiler-warnings=</code><var>level</var></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_002d_002denable_002dcxx_002druntime_002dhack" accesskey="6"><code>--enable-cxx-runtime-hack</code></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_002d_002denable_002dmaintainer_002dmode" accesskey="7"><code>--enable-maintainer-mode</code></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_002d_002denable_002dmultiplatform" accesskey="8"><code>--enable-multiplatform</code></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_002d_002denable_002dshared" accesskey="9"><code>--enable-shared</code></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_002d_002denable_002dsilent_002drules"><code>--enable-silent-rules</code></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_002d_002dwithout_002dln_002ds"><code>--without-ln-s</code></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_002d_002dwithout_002dx"><code>--without-x</code></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> +<a name="g_t_002d_002ddisable_002dnative_002dtexlive_002dbuild"></a> +<div class="header"> +<p> +Next: <a href="#g_t_002d_002dprefix-_002d_002dbindir-_2026" accesskey="n" rel="next"><code>--prefix</code> <code>--bindir</code> …</a>, Up: <a href="#Global-configure-options" accesskey="u" rel="up">Global configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_002d_002ddisable_002dnative_002dtexlive_002dbuild-1"></a> +<h4 class="subsection">7.1.1 <code>--disable-native-texlive-build</code></h4> + +<a name="index-_002d_002ddisable_002dnative_002dtexlive_002dbuild"></a> +<p>If enabled (the default), build for a TL binary distribution as +shipped by the TeX user groups. This requires GNU <code>make</code> and +implies <code>--enable-multiplatform</code> and +<code>--enable-cxx-runtime-hack</code> (unless they are explicitly disabled), +and enforces <code>--disable-shared</code>. +</p> +<p>If building TL for a GNU/Linux or other distribution, this should be +disabled and system versions of most libraries would be used +(see <a href="#Distro-builds">Distro builds</a>). This may fail without GNU <code>make</code>, but +will be tried regardless. +</p> +<a name="index-_002d_002denable_002dtexlive_002dbuild"></a> +<p>A related option, <code>--enable-texlive-build</code>, is automatically +passed to all subdirectories (and cannot be disabled). Subdirectories +that can also be built independently from the TL tree (such as +<samp>utils/xindy</samp> and <samp>texk/dvipng</samp>) can use this option, e.g., +to choose TL-specific installation paths. +</p> + +<hr> +<a name="g_t_002d_002dprefix-_002d_002dbindir-_2026"></a> +<div class="header"> +<p> +Next: <a href="#g_t_002d_002ddisable_002dlargefile" accesskey="n" rel="next"><code>--disable-largefile</code></a>, Previous: <a href="#g_t_002d_002ddisable_002dnative_002dtexlive_002dbuild" accesskey="p" rel="prev"><code>--disable-native-texlive-build</code></a>, Up: <a href="#Global-configure-options" accesskey="u" rel="up">Global configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_002d_002dprefix_002c-_002d_002dbindir_002c-_2026"></a> +<h4 class="subsection">7.1.2 <code>--prefix</code>, <code>--bindir</code>, …</h4> + +<a name="index-_002d_002dprefix-configure-option"></a> +<a name="index-_002d_002dbindir-configure-option"></a> +<p>These standard Autoconf options specify various installation +directories as usual. For the complete list, see <a href="#Installation-directories">Installation directories</a>. +</p> +<a name="index-DESTDIR"></a> +<p>Also as usual, all values are prefixed by the value of <code>DESTDIR</code>, +if set, on the <code>make</code> command line (see <a href="http://www.gnu.org/software/automake/manual/automake.html#Staged-Installs">Installation in a temporary location</a> in <cite>GNU Automake</cite>). +</p> + +<hr> +<a name="g_t_002d_002ddisable_002dlargefile"></a> +<div class="header"> +<p> +Next: <a href="#g_t_002d_002ddisable_002dmissing" accesskey="n" rel="next"><code>--disable-missing</code></a>, Previous: <a href="#g_t_002d_002dprefix-_002d_002dbindir-_2026" accesskey="p" rel="prev"><code>--prefix</code> <code>--bindir</code> …</a>, Up: <a href="#Global-configure-options" accesskey="u" rel="up">Global configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_002d_002ddisable_002dlargefile-1"></a> +<h4 class="subsection">7.1.3 <code>--disable-largefile</code></h4> + +<a name="index-_002d_002ddisable_002dlargefile"></a> +<a name="index-large-file-support"></a> +<a name="index-LFS-_0028large-file-support_0029"></a> +<p>Omit large file support (LFS), needed on most 32-bit Unix systems for +files with 2GB or more. Regardless of this, the size of <code>DVI</code> +and <code>GF</code> files must always be <em><2</em>GB, due to the file format +specifications. +</p> +<a name="index-size-of-PDF-and-PS-files"></a> +<a name="index-PDF-files_002c-size-of"></a> +<a name="index-PostScript-files_002c-size-of"></a> +<p>With LFS, there is no fixed limit on the size of PDF files created by +<samp>pdftex</samp> or PostScript files created by <samp>dvips</samp>. The size +of PDF images included by <samp>pdftex</samp> must, however, be <em><4</em>GB +when using <samp>xpdf</samp> and <em><2</em>GB when using older versions of +<samp>poppler</samp> (even on 64-bit systems with LFS), whereas +<samp>poppler</samp> versions 0.23 and later impose no such limit. +</p> + +<hr> +<a name="g_t_002d_002ddisable_002dmissing"></a> +<div class="header"> +<p> +Next: <a href="#g_t_002d_002denable_002dcompiler_002dwarnings_003dlevel" accesskey="n" rel="next"><code>--enable-compiler-warnings=</code><var>level</var></a>, Previous: <a href="#g_t_002d_002ddisable_002dlargefile" accesskey="p" rel="prev"><code>--disable-largefile</code></a>, Up: <a href="#Global-configure-options" accesskey="u" rel="up">Global configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_002d_002ddisable_002dmissing-1"></a> +<h4 class="subsection">7.1.4 <code>--disable-missing</code></h4> + +<a name="index-_002d_002ddisable_002dmissing"></a> +<p>Immediately terminate the build process if a requested program or feature +must be disabled, e.g., due to missing libraries. This can help when +figuring out a specific (sub)set of modules to enable. +</p> + +<hr> +<a name="g_t_002d_002denable_002dcompiler_002dwarnings_003dlevel"></a> +<div class="header"> +<p> +Next: <a href="#g_t_002d_002denable_002dcxx_002druntime_002dhack" accesskey="n" rel="next"><code>--enable-cxx-runtime-hack</code></a>, Previous: <a href="#g_t_002d_002ddisable_002dmissing" accesskey="p" rel="prev"><code>--disable-missing</code></a>, Up: <a href="#Global-configure-options" accesskey="u" rel="up">Global configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_002d_002denable_002dcompiler_002dwarnings_003dlevel-1"></a> +<h4 class="subsection">7.1.5 <code>--enable-compiler-warnings=</code><var>level</var></h4> + +<a name="index-_002d_002denable_002dcompiler_002dwarnings_003dlevel"></a> +<p>Enable various levels of compiler warnings for (Objective) C and C++: +the <var>level</var> value can be one of: <code>no min yes max all</code>. +The default is <code>yes</code> in <code>maintainer-mode</code> (see below) and +<code>min</code> otherwise. This option defines +<code>WARNING_[OBJ]C[XX]FLAGS</code> but these flags are not used in all +library and program modules. Using them should help to resolve +portability problems. +</p> +<p>At present, these warning flags are only defined for the GNU compilers +but flags for other compilers could be added when needed. +</p> + +<hr> +<a name="g_t_002d_002denable_002dcxx_002druntime_002dhack"></a> +<div class="header"> +<p> +Next: <a href="#g_t_002d_002denable_002dmaintainer_002dmode" accesskey="n" rel="next"><code>--enable-maintainer-mode</code></a>, Previous: <a href="#g_t_002d_002denable_002dcompiler_002dwarnings_003dlevel" accesskey="p" rel="prev"><code>--enable-compiler-warnings=</code><var>level</var></a>, Up: <a href="#Global-configure-options" accesskey="u" rel="up">Global configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_002d_002denable_002dcxx_002druntime_002dhack-1"></a> +<h4 class="subsection">7.1.6 <code>--enable-cxx-runtime-hack</code></h4> + +<p>If enabled (as it is for the native TL build) and when using +<code>g++</code>, try to statically link with <code>libstdc++</code>, somewhat +improving portability of the resulting binary. See <a href="#Macros-for-compilers">Macros for compilers</a>. +</p> + +<hr> +<a name="g_t_002d_002denable_002dmaintainer_002dmode"></a> +<div class="header"> +<p> +Next: <a href="#g_t_002d_002denable_002dmultiplatform" accesskey="n" rel="next"><code>--enable-multiplatform</code></a>, Previous: <a href="#g_t_002d_002denable_002dcxx_002druntime_002dhack" accesskey="p" rel="prev"><code>--enable-cxx-runtime-hack</code></a>, Up: <a href="#Global-configure-options" accesskey="u" rel="up">Global configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_002d_002denable_002dmaintainer_002dmode-1"></a> +<h4 class="subsection">7.1.7 <code>--enable-maintainer-mode</code></h4> + +<a name="index-_002d_002denable_002dmaintainer_002dmode"></a> +<p>Enable <samp>make</samp> rules and dependencies not useful (and sometimes +confusing) to the casual user. This requires current versions of the +GNU build tools (see <a href="#Build-system-tools">Build system tools</a>), as it automatically +rebuilds infrastructure files as needed. See <a href="http://www.gnu.org/software/automake/manual/automake.html#maintainer_002dmode"><code>missing</code> and <code>AM_MAINTAINER_MODE</code></a> in <cite>GNU Automake</cite>. +</p> + +<hr> +<a name="g_t_002d_002denable_002dmultiplatform"></a> +<div class="header"> +<p> +Next: <a href="#g_t_002d_002denable_002dshared" accesskey="n" rel="next"><code>--enable-shared</code></a>, Previous: <a href="#g_t_002d_002denable_002dmaintainer_002dmode" accesskey="p" rel="prev"><code>--enable-maintainer-mode</code></a>, Up: <a href="#Global-configure-options" accesskey="u" rel="up">Global configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_002d_002denable_002dmultiplatform-1"></a> +<h4 class="subsection">7.1.8 <code>--enable-multiplatform</code></h4> + +<a name="index-_002d_002denable_002dmultiplatform"></a> +<a name="index-exec_005fprefix"></a> +<a name="index-_002d_002dlibdir"></a> +<p>If enabled, install executables and libraries in per-platform +subdirectories of <samp><var>eprefix</var>/bin</samp> and +<samp><var>eprefix</var>/lib</samp> where <var>eprefix</var> is the value given or +implied for <code>exec_prefix</code>. This can be overridden by explicitly +<code>--bindir=<var>dir</var></code> or <code>--libdir=<var>dir</var></code>. In any case, +the values for <code>bindir</code> and <code>libdir</code> are automatically +propagated to all subdirectories. +</p> + +<hr> +<a name="g_t_002d_002denable_002dshared"></a> +<div class="header"> +<p> +Next: <a href="#g_t_002d_002denable_002dsilent_002drules" accesskey="n" rel="next"><code>--enable-silent-rules</code></a>, Previous: <a href="#g_t_002d_002denable_002dmultiplatform" accesskey="p" rel="prev"><code>--enable-multiplatform</code></a>, Up: <a href="#Global-configure-options" accesskey="u" rel="up">Global configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_002d_002denable_002dshared-1"></a> +<h4 class="subsection">7.1.9 <code>--enable-shared</code></h4> + +<a name="index-_002d_002denable_002dshared"></a> +<p>Build shared versions of the TeX-specific libraries such as +<samp>libkpathsea</samp>. This is not allowed for a native TL build (i.e., +<code>--disable-native-texlive-build</code> must also be specified). +</p> + +<hr> +<a name="g_t_002d_002denable_002dsilent_002drules"></a> +<div class="header"> +<p> +Next: <a href="#g_t_002d_002dwithout_002dln_002ds" accesskey="n" rel="next"><code>--without-ln-s</code></a>, Previous: <a href="#g_t_002d_002denable_002dshared" accesskey="p" rel="prev"><code>--enable-shared</code></a>, Up: <a href="#Global-configure-options" accesskey="u" rel="up">Global configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_002d_002denable_002dsilent_002drules-1"></a> +<h4 class="subsection">7.1.10 <code>--enable-silent-rules</code></h4> + +<a name="index-_002d_002denable_002dsilent_002drules"></a> +<p>Enable the use of less verbose build rules. When using GNU +<code>make</code> (or another <code>make</code> implementation supporting nested +variable expansions), you can specify <code>V=1</code> on the <code>make</code> command +line to get more verbosity, or <code>V=0</code> to get less, regardless of +this option. +</p> + +<hr> +<a name="g_t_002d_002dwithout_002dln_002ds"></a> +<div class="header"> +<p> +Next: <a href="#g_t_002d_002dwithout_002dx" accesskey="n" rel="next"><code>--without-x</code></a>, Previous: <a href="#g_t_002d_002denable_002dsilent_002drules" accesskey="p" rel="prev"><code>--enable-silent-rules</code></a>, Up: <a href="#Global-configure-options" accesskey="u" rel="up">Global configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_002d_002dwithout_002dln_002ds-1"></a> +<h4 class="subsection">7.1.11 <code>--without-ln-s</code></h4> + +<a name="index-_002d_002dwithout_002dln_002ds"></a> +<p>Required when using a system without a working <code>ln -s</code> to build +binaries for a Unix-like system. However, <code>make install</code> will +not create anything useful and might even fail. +</p> + +<hr> +<a name="g_t_002d_002dwithout_002dx"></a> +<div class="header"> +<p> +Previous: <a href="#g_t_002d_002dwithout_002dln_002ds" accesskey="p" rel="prev"><code>--without-ln-s</code></a>, Up: <a href="#Global-configure-options" accesskey="u" rel="up">Global configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_002d_002dwithout_002dx-1"></a> +<h4 class="subsection">7.1.12 <code>--without-x</code></h4> + +<a name="index-_002d_002dwithout_002dx"></a> +<p>Disable all programs using the X Window System. +</p> + +<hr> +<a name="Program_002dspecific-configure-options"></a> +<div class="header"> +<p> +Next: <a href="#Library_002dspecific-configure-options" accesskey="n" rel="next">Library-specific configure options</a>, Previous: <a href="#Global-configure-options" accesskey="p" rel="prev">Global configure options</a>, Up: <a href="#Configure-options" accesskey="u" rel="up">Configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Program_002dspecific-configure-options-1"></a> +<h3 class="section">7.2 Program-specific configure options</h3> + +<a name="index-program_002dspecific-configure-options"></a> +<a name="index-configure-options_002c-program_002dspecific"></a> +<p>Here are (some of) the program-specific <code>configure</code> options. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#g_t_002d_002denable_002dprog-_002d_002ddisable_002dprog" accesskey="1"><code>--enable-<var>prog</var></code> <code>--disable-<var>prog</var></code></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_002d_002ddisable_002dall_002dpkgs" accesskey="2"><code>--disable-all-pkgs</code></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Configure-options-for-texk_002fweb2c" accesskey="3">Configure options for <samp>texk/web2c</samp></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Configure-options-for-texk_002fbibtex_002dx" accesskey="4">Configure options for <samp>texk/bibtex-x</samp></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Configure-options-for-texk_002fdvipdfm_002dx" accesskey="5">Configure options for <samp>texk/dvipdfm-x</samp></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Configure-options-for-texk_002fdvisvgm" accesskey="6">Configure options for <samp>texk/dvisvgm</samp></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Configure-options-for-texk_002ftexlive" accesskey="7">Configure options for <samp>texk/texlive</samp></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Configure-options-for-texk_002fxdvik" accesskey="8">Configure options for <samp>texk/xdvik</samp></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Configure-options-for-utils_002fxindy" accesskey="9">Configure options for <samp>utils/xindy</samp></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> +<a name="g_t_002d_002denable_002dprog-_002d_002ddisable_002dprog"></a> +<div class="header"> +<p> +Next: <a href="#g_t_002d_002ddisable_002dall_002dpkgs" accesskey="n" rel="next"><code>--disable-all-pkgs</code></a>, Up: <a href="#Program_002dspecific-configure-options" accesskey="u" rel="up">Program-specific configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_002d_002denable_002dprog_002c-_002d_002ddisable_002dprog"></a> +<h4 class="subsection">7.2.1 <code>--enable-<var>prog</var></code>, <code>--disable-<var>prog</var></code></h4> + +<a name="index-_002d_002denable_002dprog"></a> +<a name="index-_002d_002ddisable_002dprog"></a> +<p>Do or do not build and install the program(s) of the module <code><var>prog</var></code>. +</p> + +<hr> +<a name="g_t_002d_002ddisable_002dall_002dpkgs"></a> +<div class="header"> +<p> +Next: <a href="#Configure-options-for-texk_002fweb2c" accesskey="n" rel="next">Configure options for <samp>texk/web2c</samp></a>, Previous: <a href="#g_t_002d_002denable_002dprog-_002d_002ddisable_002dprog" accesskey="p" rel="prev"><code>--enable-<var>prog</var></code> <code>--disable-<var>prog</var></code></a>, Up: <a href="#Program_002dspecific-configure-options" accesskey="u" rel="up">Program-specific configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_002d_002ddisable_002dall_002dpkgs-1"></a> +<h4 class="subsection">7.2.2 <code>--disable-all-pkgs</code></h4> + +<a name="index-_002d_002ddisable_002dall_002dpkgs"></a> +<p>Do not build any program modules by default—only those explicitly +enabled. This is useful when one wants to work on only a single +program, which is specified with an additional <code>--enable</code> option, +e.g., <code>--enable-dvipdfm-x</code>. It’s still simplest to check out and +configure the whole source tree, but at least only the program you are +interested in, and its dependencies, are built. The <code>configure</code> +will generally take less than a minute with everything disabled. (It +is a good idea to run <code>make check</code> after doing this, and after +making any changes, to ensure that whatever tests have been written +still pass.) +</p> +<p>Without this option, all modules are built except those that are +explicitly disabled or specify <code>disable</code> in their +<samp>ac/withenable.ac</samp> fragment. +</p> + +<hr> +<a name="Configure-options-for-texk_002fweb2c"></a> +<div class="header"> +<p> +Next: <a href="#Configure-options-for-texk_002fbibtex_002dx" accesskey="n" rel="next">Configure options for <samp>texk/bibtex-x</samp></a>, Previous: <a href="#g_t_002d_002ddisable_002dall_002dpkgs" accesskey="p" rel="prev"><code>--disable-all-pkgs</code></a>, Up: <a href="#Program_002dspecific-configure-options" accesskey="u" rel="up">Program-specific configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Configure-options-for-texk_002fweb2c-1"></a> +<h4 class="subsection">7.2.3 Configure options for <samp>texk/web2c</samp></h4> + +<a name="index-configure-options_002c-for-web2c"></a> + +<a name="index-_002d_002dwith_002dbanner_002dadd_003dstr"></a> +<p><code>--with-banner-add=<var>str</var></code><br>Add <code><var>str</var></code> to the +default version string (<code>TeX Live <var>year</var></code> or <code>Web2C +<var>year</var></code>) appended to banner lines. This is ignored for a native +TL build, but distro builds should specify, e.g., +<code>/<var>SomeDistro</var></code>. +</p> +<a name="index-_002d_002dwith_002deditor_003dcmd"></a> +<p><code>--with-editor=<var>cmd</var></code><br>Specify the command +<code><var>cmd</var></code> to invoke from the <code>e</code> option of TeX-like engines, +replacing the default <code>vi +%d '%s'</code> for Unix or <code>texworks +--position=%d "%s"</code> for Windows. +</p> +<a name="index-_002d_002dwith_002dfontconfig_002dincludes_003ddir"></a> +<a name="index-_002d_002dwith_002dfontconfig_002dlibdir_003ddir"></a> +<p><code>--with-fontconfig-includes=<var>dir</var></code>, +<code>--with-fontconfig-libdir=<var>dir</var></code><br>Building XeTeX on +non-Mac systems requires the <code>fontconfig</code> library headers and +code. If one or both of these options are given, the required flags +are derived from them; otherwise, they are determined via +<samp>pkg-config</samp> (if present). +</p> +<a name="index-X-toolkit"></a> +<a name="index-libXt"></a> +<a name="index-Xlib"></a> +<p><code>--with-mf-x-toolkit</code><br>Use the X toolkit (<samp>libXt</samp>) for +Metafont (the default is to use the lowest-level <samp>Xlib</samp> support; +it seems this has the best chance of working across X installations +nowadays). +</p> +<a name="index-_002d_002ddisable_002ddump_002dshare"></a> +<a name="index-LittleEndian-architectures"></a> +<p><code>--disable-dump-share</code><br>Make the <code>fmt</code>/<code>base</code> +dump files architecture dependent (somewhat faster on LittleEndian +architectures). +</p> +<a name="index-_002d_002ddisable_002dipc"></a> +<a name="index-interprocess-communication"></a> +<p><code>--disable-ipc</code><br>Disable TeX’s <code>--ipc</code> option. +</p> +<a name="index-_002d_002ddisable_002dmf_002dnowin"></a> +<a name="index-mf_002dnowin"></a> +<p><code>--disable-mf-nowin</code><br>Do not build a separate +non-graphically-capable Metafont (<samp>mf-nowin</samp>). +</p> +<a name="index-_002d_002ddisable_002domfonts"></a> +<a name="index-opl2ofm_002c-et-al_002e"></a> +<p><code>--disable-omfonts</code><br>Build the WEB versions of the +Omega font utilities <samp>ofm2opl</samp>, <samp>opl2ofm</samp>, <samp>ovf2ovp</samp>, +and <code>ovp2ovf</code> instead of the C version <samp>omfonts</samp>. The WEB +and C versions should be roughly equivalent. +</p> +<a name="index-_002d_002ddisable_002dtex"></a> +<a name="index-_002d_002denable_002detex"></a> +<a name="index-web2c_002eac"></a> +<p><code>--disable-tex</code>, <code>--enable-etex</code>, …<br>Do not or +do build the various TeX, Metafont, and MetaPost engines (defaults are +defined in the fragment <samp>texk/web2c/ac/web2c.ac</samp>). +</p> +<a name="index-_002d_002ddisable_002dweb_002dprogs"></a> +<p><code>--disable-web-progs</code><br>Do not build the core WEB programs +<samp>bibtex</samp>, …, <samp>weave</samp>. Useful if, e.g., you only want +to (re)build some engines. +</p> +<a name="index-_002d_002denable_002dauto_002dcore"></a> +<a name="index-preloaded-binaries"></a> +<p><code>--enable-auto-core</code><br>This option causes TeX and Metafont +to produce a core dump when a particular hacky filename is +encountered, for use in creating preloaded binaries. This is rarely +done nowadays. +</p> +<a name="index-_002d_002denable_002dlibtool_002dhack"></a> +<a name="index-libtool_002c-hack-for-avoiding-excessive-linking"></a> +<p><code>--enable-libtool-hack</code><br> +If enabled (which is the default for all platforms), prevents +<code>libtool</code> from linking explicitly with dependencies of +<samp>libfontconfig</samp> such as <samp>libexpat</samp>. +</p> +<a name="index-_002d_002denable_002d_002awin-for-Metafont-window-support"></a> +<p><code>--enable-*win</code><br>Include various types of other window +support for Metafont (EPSF output, <code>mftalk</code>, old terminals, …). +</p> +<a name="index-_002d_002denable_002dtex_002dsynctex"></a> +<a name="index-_002d_002ddisable_002detex_002dsynctex"></a> +<a name="index-synctex"></a> +<p><code>--enable-tex-synctex</code>, <code>--disable-etex-synctex</code>, +…<br>Build the TeX engines with or without <code>SyncTeX</code> +support; ignored for a native TeX Live build, defaults are again defined +in <samp>texk/web2c/ac/web2c.ac</samp>. +</p> + +<hr> +<a name="Configure-options-for-texk_002fbibtex_002dx"></a> +<div class="header"> +<p> +Next: <a href="#Configure-options-for-texk_002fdvipdfm_002dx" accesskey="n" rel="next">Configure options for <samp>texk/dvipdfm-x</samp></a>, Previous: <a href="#Configure-options-for-texk_002fweb2c" accesskey="p" rel="prev">Configure options for <samp>texk/web2c</samp></a>, Up: <a href="#Program_002dspecific-configure-options" accesskey="u" rel="up">Program-specific configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Configure-options-for-texk_002fbibtex_002dx-1"></a> +<h4 class="subsection">7.2.4 Configure options for <samp>texk/bibtex-x</samp></h4> + +<a name="index-configure-options_002c-for-bibtex_002dx"></a> +<a name="index-bibtex8"></a> +<a name="index-bibtexu"></a> +<a name="index-bibtex_002dx"></a> +<p>The former programs <code>bibtex8</code> and <code>bibtexu</code> have been merged +into the module <code>bibtex-x</code> (extended BibTeX). +</p> +<a name="index-_002d_002ddisable_002dbibtex8"></a> +<p><code>--disable-bibtex8</code><br>Do not build the <samp>bibtex8</samp> program. +</p> +<p>–disable-bibtexu +<code>--disable-bibtexu</code><br>Do not build the <samp>bibtexu</samp> program +(building <samp>bibtexu</samp> requires <code>ICU</code> libraries). +</p> + +<hr> +<a name="Configure-options-for-texk_002fdvipdfm_002dx"></a> +<div class="header"> +<p> +Next: <a href="#Configure-options-for-texk_002fdvisvgm" accesskey="n" rel="next">Configure options for <samp>texk/dvisvgm</samp></a>, Previous: <a href="#Configure-options-for-texk_002fbibtex_002dx" accesskey="p" rel="prev">Configure options for <samp>texk/bibtex-x</samp></a>, Up: <a href="#Program_002dspecific-configure-options" accesskey="u" rel="up">Program-specific configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Configure-options-for-texk_002fdvipdfm_002dx-1"></a> +<h4 class="subsection">7.2.5 Configure options for <samp>texk/dvipdfm-x</samp></h4> + +<a name="index-configure-options_002c-for-dvipdfm_002dx"></a> +<a name="index-dvipdfmx"></a> +<a name="index-xdvipdfmx"></a> + +<p>The former modules <code>dvipdfmx</code> (extended DVI to PDF converter) and +<code>xdvipdfmx</code> (the same, as used by XeTeX) have been merged into +<code>dvipdfm-x</code> at the source level. Two separate binaries are still +created by default. In addition, <samp>dvipdfm</samp> is created as a +symlink to <samp>dvipdfmx</samp>, with backward-compatible (very slightly +different) behavior. +</p> +<a name="index-_002d_002ddisable_002ddvipdfmx"></a> +<p><code>--disable-dvipdfmx</code><br>Do not build the <samp>dvipdfmx</samp> +program or create the <samp>dvipdfm</samp> symlink. +</p> +<a name="index-_002d_002ddisable_002dxdvipdfmx"></a> +<p><code>--disable-xdvipdfmx</code><br>Do not build the <samp>xdvipdfmx</samp> +program (building <samp>xdvipdfmx</samp> requires the <code>freetype</code> library). +</p> + +<hr> +<a name="Configure-options-for-texk_002fdvisvgm"></a> +<div class="header"> +<p> +Next: <a href="#Configure-options-for-texk_002ftexlive" accesskey="n" rel="next">Configure options for <samp>texk/texlive</samp></a>, Previous: <a href="#Configure-options-for-texk_002fdvipdfm_002dx" accesskey="p" rel="prev">Configure options for <samp>texk/dvipdfm-x</samp></a>, Up: <a href="#Program_002dspecific-configure-options" accesskey="u" rel="up">Program-specific configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Configure-options-for-texk_002fdvisvgm-1"></a> +<h4 class="subsection">7.2.6 Configure options for <samp>texk/dvisvgm</samp></h4> + +<a name="index-configure-options_002c-for-dvisvgm"></a> +<a name="index-dvisvgm"></a> + +<a name="index-_002d_002dwith_002dsystem_002dlibgs"></a> +<p><code>--with-system-libgs</code><br>Build <samp>dvisvgm</samp> using installed +Ghostscript (<code>gs</code>) headers and library (not allowed for a native +TL build). The default is to load the <code>gs</code> library at runtime if +possible, or otherwise disable support for PostScript specials. +</p> +<a name="index-_002d_002dwithout_002dlibgs"></a> +<p><code>--without-libgs</code><br>Build <samp>dvisvgm</samp> without PostScript +support at all. Because the dynamic loading just mention defeats all +attempts at static linking, the result can crash due to library +incompatibilities, e.g., on CentOS 5. +</p> +<a name="index-_002d_002dwith_002dlibgs_002dincludes_002c-_002dlibdir"></a> +<p><code>--with-libgs-includes=<var>dir</var></code>, +<code>--with-libgs-libdir=<var>dir</var></code><br>Specify non-standard locations +of the Ghostscript headers and library. +</p> + +<hr> +<a name="Configure-options-for-texk_002ftexlive"></a> +<div class="header"> +<p> +Next: <a href="#Configure-options-for-texk_002fxdvik" accesskey="n" rel="next">Configure options for <samp>texk/xdvik</samp></a>, Previous: <a href="#Configure-options-for-texk_002fdvisvgm" accesskey="p" rel="prev">Configure options for <samp>texk/dvisvgm</samp></a>, Up: <a href="#Program_002dspecific-configure-options" accesskey="u" rel="up">Program-specific configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Configure-options-for-texk_002ftexlive-1"></a> +<h4 class="subsection">7.2.7 Configure options for <samp>texk/texlive</samp></h4> + +<a name="index-configure-options_002c-for-texk_002ftexlive"></a> +<a name="index-_002d_002ddisable_002dlinked_002dscripts"></a> +<p><code>--disable-linked-scripts</code><br>Do not install the “linked +scripts” (see <a href="#Linked-scripts">Linked scripts</a>), except for the TL scripts required +to run <code>texlinks</code>. +</p> + +<hr> +<a name="Configure-options-for-texk_002fxdvik"></a> +<div class="header"> +<p> +Next: <a href="#Configure-options-for-utils_002fxindy" accesskey="n" rel="next">Configure options for <samp>utils/xindy</samp></a>, Previous: <a href="#Configure-options-for-texk_002ftexlive" accesskey="p" rel="prev">Configure options for <samp>texk/texlive</samp></a>, Up: <a href="#Program_002dspecific-configure-options" accesskey="u" rel="up">Program-specific configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Configure-options-for-texk_002fxdvik-1"></a> +<h4 class="subsection">7.2.8 Configure options for <samp>texk/xdvik</samp></h4> + +<a name="index-configure-options_002c-for-xdvik"></a> +<a name="index-xdvik-1"></a> + +<a name="index-_002d_002dwith_002dgs_003dfilename"></a> +<p><code>--with-gs=<var>filename</var></code><br>Hardwire the location of Ghostscript +(<samp>gs</samp>). +</p> +<a name="index-_002d_002dwith_002dxdvi_002dx_002dtoolkit_003dkit"></a> +<a name="index-motif"></a> +<a name="index-xaw"></a> +<p><code>--with-xdvi-x-toolkit=<var>kit</var></code><br>Use toolkit +<code><var>kit</var></code> for <samp>xdvik</samp>, one of: <code>motif xaw xaw3d +neXtaw</code>. The default is <code>motif</code> if available, else <code>xaw</code>. +</p> +<a name="index-_002d_002denable_002dxi2_002dscrolling"></a> +<a name="index-XInput"></a> +<a name="index-scrolling"></a> +<p><code>--enable-xi2-scrolling</code><br>Use XInput 2.1 “smooth scrolling” +if available. (default: yes, except for a native TL build). +</p> + +<hr> +<a name="Configure-options-for-utils_002fxindy"></a> +<div class="header"> +<p> +Previous: <a href="#Configure-options-for-texk_002fxdvik" accesskey="p" rel="prev">Configure options for <samp>texk/xdvik</samp></a>, Up: <a href="#Program_002dspecific-configure-options" accesskey="u" rel="up">Program-specific configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Configure-options-for-utils_002fxindy-1"></a> +<h4 class="subsection">7.2.9 Configure options for <samp>utils/xindy</samp></h4> + +<a name="index-configure-options_002c-for-xindy"></a> +<a name="index-xindy-2"></a> + +<a name="index-_002d_002denable_002dxindy_002drules"></a> +<p><code>--enable-xindy-rules</code><br>Build and install <code>xindy</code> rules +(default: yes, except for a native TL build). +</p> +<a name="index-_002d_002denable_002dxindy_002ddocs"></a> +<p><code>--enable-xindy-docs</code><br>Build and install <code>xindy</code> +documentation (default: yes, except for a native TL build). +</p> +<a name="index-_002d_002dwith_002dclisp_002druntime_003dfilename"></a> +<a name="index-lisp_002erun_002c-lisp_002eexe"></a> +<a name="index-CLISP"></a> +<p><code>--with-clisp-runtime=<var>filename</var></code><br>Specifies the +Full path for the CLISP runtime file (<samp>lisp.run</samp> or +<samp>lisp.exe</samp>) to be installed. When specified as <code>default</code> +(the default for a native TL build) the path is determined by the +CLISP executable; the value <code>system</code> (not allowed for a native TL +build, but the default for a non-native one) indicates that +<samp>xindy</samp> will use the installed version of <samp>clisp</samp> (which +must be identical to the one used to build <samp>xindy</samp>). +</p> +<a name="index-_002d_002dwith_002drecode"></a> +<a name="index-recode"></a> +<a name="index-iconv"></a> +<p><code>--with-recode</code><br>Use <samp>recode</samp> instead of <samp>iconv</samp> +to build the <code>xindy</code> rules and documentation, required for some +systems where <samp>iconv</samp> is missing or broken. +</p> + +<hr> +<a name="Library_002dspecific-configure-options"></a> +<div class="header"> +<p> +Next: <a href="#Variables-for-configure" accesskey="n" rel="next">Variables for configure</a>, Previous: <a href="#Program_002dspecific-configure-options" accesskey="p" rel="prev">Program-specific configure options</a>, Up: <a href="#Configure-options" accesskey="u" rel="up">Configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Library_002dspecific-configure-options-1"></a> +<h3 class="section">7.3 Library-specific configure options</h3> + +<a name="index-library_002dspecific-configure-options"></a> +<a name="index-configure-options_002c-library_002dspecific"></a> +<p>Here are (some of) the library-specific <code>configure</code> options, +starting with this generic one: +</p> +<a name="index-_002d_002dwith_002dsystem_002dlib-1"></a> +<p><code>--with-system-<var>lib</var></code> +</p> +<p>Use an installed (system) version of the library <code><var>lib</var></code>; +this option exists for most libraries, but is not allowed for a native +TL build. Using a system version implies also using the system +versions of all libraries (if any) that <var>lib</var> depends on. +</p> +<a name="index-_002d_002dwith_002dlib_002dincludes_003ddir_002c-_002dlibdir"></a> +<p>For many libraries <code>--with-<var>lib</var>-includes=<var>dir</var></code> and +<code>--with-<var>lib</var>-libdir=<var>dir</var></code> to specify non-standard +search locations; others use <samp>pkg-config</samp> or similar to determine +the required flags. +</p> +<p>The top-level <samp>configure</samp> script performs a consistency check for all +required system libraries and bails out if tests fail. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Configure-options-for-kpathsea" accesskey="1">Configure options for <code>kpathsea</code></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Configure-options-for-system-poppler" accesskey="2">Configure options for system <code>poppler</code></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> +<a name="Configure-options-for-kpathsea"></a> +<div class="header"> +<p> +Next: <a href="#Configure-options-for-system-poppler" accesskey="n" rel="next">Configure options for system <code>poppler</code></a>, Up: <a href="#Library_002dspecific-configure-options" accesskey="u" rel="up">Library-specific configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Configure-options-for-kpathsea-1"></a> +<h4 class="subsection">7.3.1 Configure options for <code>kpathsea</code></h4> + +<a name="index-configure-options_002c-for-kpathsea"></a> + +<p><code>--enable-<var>cmd</var>-default</code>, +<code>--disable-<var>cmd</var>-default</code><br>Determine the compile time default +whether or not to run <var>cmd</var>, one of: +</p><dl compact="compact"> +<dt><code>mkocp</code></dt> +<dd><p>(Omega compiled translation process file) +</p></dd> +<dt><code>mkofm</code></dt> +<dd><p>(Omega font metrics file) +</p></dd> +<dt><code>mktexfmt</code></dt> +<dd><p>(format/base dump file) +</p></dd> +<dt><code>mktexmf</code></dt> +<dd><p>(Metafont source) +</p></dd> +<dt><code>mktexpk</code></dt> +<dd><p>(PK bitmap font) +</p></dd> +<dt><code>mktextex</code></dt> +<dd><p>(TeX source) +</p></dd> +<dt><code>mktextfm</code></dt> +<dd><p>(TFM file) +</p></dd> +</dl> + +<p>to generate the specified type of file dynamically. +The default can be overridden by the user in any case. +</p> + +<hr> +<a name="Configure-options-for-system-poppler"></a> +<div class="header"> +<p> +Previous: <a href="#Configure-options-for-kpathsea" accesskey="p" rel="prev">Configure options for <code>kpathsea</code></a>, Up: <a href="#Library_002dspecific-configure-options" accesskey="u" rel="up">Library-specific configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Configure-options-for-system-poppler-1"></a> +<h4 class="subsection">7.3.2 Configure options for system <code>poppler</code></h4> + +<a name="index-configure-options_002c-for-system-poppler"></a> + +<a name="index-poppler"></a> +<a name="index-xpdf-as-library"></a> +<p>Building LuaTeX and XeTeX requires <code>poppler</code>, either from +the TL tree or system headers and library. Building pdfTeX +requires either <code>xpdf</code> from the TeX Live tree or system +<code>poppler</code> headers and library. +</p> +<a name="index-_002d_002dwith_002dsystem_002dpoppler"></a> +<p><code>--with-system-poppler</code><br>Use a system version (0.18 or +newer) of <code>poppler</code> for LuaTeX and XeTeX, and use +<samp>pkg-config</samp> to obtain the required flags. +</p> +<a name="index-_002d_002dwith_002dsystem_002dxpdf"></a> +<p><code>--with-system-xpdf</code><br>Use a system version (0.12 or better) +of <code>poppler</code> (and <samp>pkg-config</samp>) for pdfTeX instead of +<code>xpdf</code> from the TL tree. See <a href="#g_t_002d_002ddisable_002dlargefile"><code>--disable-largefile</code></a>. +</p> +<hr> +<a name="Variables-for-configure"></a> +<div class="header"> +<p> +Previous: <a href="#Library_002dspecific-configure-options" accesskey="p" rel="prev">Library-specific configure options</a>, Up: <a href="#Configure-options" accesskey="u" rel="up">Configure options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Variables-for-configure-1"></a> +<h3 class="section">7.4 Variables for configure</h3> + +<a name="index-variables-for-configure"></a> +<a name="index-configure-variables"></a> + +<p>The values for these variables can be specified as <code>configure</code> +arguments of the form <code><var>VAR</var>=<var>value</var></code>. They can also be +defined in the environment, but that might not work for cross +compilations. +</p> +<dl compact="compact"> +<dt><code>CC</code> +<a name="index-CC"></a> +</dt> +<dt><code>CXX</code> +<a name="index-CXX"></a> +</dt> +<dt><code>CPPFLAGS</code> +<a name="index-CPPFLAGS"></a> +</dt> +<dd><p>And plenty more. As usual with Autoconf, these variables specify the +name (or full path) of compilers, preprocessor flags, and similar. +See <a href="GNU Autoconf.html#Preset-Output-Variables">(GNU Autoconf)autoconf</a>. +</p> +</dd> +<dt><code>CLISP</code> +<a name="index-CLISP-1"></a> +</dt> +<dd><a name="index-clisp"></a> +<p>Name (or full path) of the <samp>clisp</samp> executable, used to build +<code>xindy</code>. +</p> +</dd> +<dt><code>FT2_CONFIG</code> +<a name="index-FT2_005fCONFIG"></a> +</dt> +<dt><code>ICU_CONFIG</code> +<a name="index-ICU_005fCONFIG"></a> +</dt> +<dt><code>PKG_CONFIG</code> +<a name="index-PKG_005fCONFIG"></a> +</dt> +<dd><a name="index-freetype_002dconfig-1"></a> +<a name="index-icu_002dconfig"></a> +<a name="index-libfreetype"></a> +<a name="index-ICU-libraries"></a> +<p>These specify the name (or path) for the <samp>freetype-config</samp>, +<samp>icu-config</samp>, and <samp>pkg-config</samp> commands used to determine the +flags required for system versions of <samp>libfreetype</samp>, the ICU +libraries, or many other libraries. +</p> +</dd> +<dt><code>KPSEWHICH</code> +<a name="index-KPSEWHICH"></a> +</dt> +<dd><a name="index-kpsewhich"></a> +<p>Name (or path) of an installed <samp>kpsewhich</samp> binary, used by +<code>make check</code> to determine the location of, e.g., +<samp>cmbx10.tfm</samp>. +</p> +</dd> +<dt><code>MAKE</code> +<a name="index-MAKE"></a> +</dt> +<dt><code>SED</code> +<a name="index-SED"></a> +</dt> +<dd><p>And more. Name (or path) of the <code>make</code>, <code>sed</code>, and similar +programs; used at the top level and propagated to all subdirectories. +</p> +</dd> +<dt><code>PERL</code> +<a name="index-PERL"></a> +</dt> +<dt><code>LATEX</code> +<a name="index-LATEX"></a> +</dt> +<dt><code>PDFLATEX</code> +<a name="index-PDFLATEX"></a> +</dt> +<dd><p>Name (or full path) for the <samp>perl</samp>, <samp>latex</samp>, and <samp>pdflatex</samp> +commands used, e.g., to build the <code>xindy</code> documentation. +</p> +</dd> +</dl> + + +<hr> +<a name="Cross-compilation"></a> +<div class="header"> +<p> +Next: <a href="#Coding-conventions" accesskey="n" rel="next">Coding conventions</a>, Previous: <a href="#Configure-options" accesskey="p" rel="prev">Configure options</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Cross-compilation-1"></a> +<h2 class="chapter">8 Cross compilation</h2> + +<a name="index-cross-compilation"></a> +<p>In a cross compilation a <em>build</em> system is used to create +binaries to be executed on a <em>host</em> system with different +hardware and/or operating system. +</p> +<a name="index-native-cross-compilation"></a> +<p>In simple cases, the build system can execute binaries for the host +system. This typically occurs for bi-arch systems where, e.g., +<code>i386-linux</code> binaries can run on <code>x86_64-linux</code> systems and +<code>win32</code> binaries can run on <code>win64</code> systems. Although +sometimes called “native cross”, technically this is not cross +compilation at all. In most such cases it suffices to specify +suitable compiler flags. It might be useful to add the configure +option <code>--build=<var>host</var></code> to get the correct canonical host +name, but note that this should <em>not</em> be <code>--host=<var>host</var></code> +(see <a href="http://www.gnu.org/software/autoconf/manual/autoconf.html#Hosts-and-Cross_002dCompilation">Hosts and Cross-Compilation</a> in <cite>GNU Autoconf</cite>). +</p> +<p>In order to build, e.g., 32-bit binaries with <code>clang</code> on a 64-bit +OSX system one could use <br> <code>./Build --build=i386-apple-darwin +CC='clang -arch i386'</code> \ <br> <code>CXX='clang++ -arch i386' OBJCXX='clang++ -arch i386'</code> +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Cross-configuring" accesskey="1">Cross configuring</a>:</td><td> </td><td align="left" valign="top">Configuring for cross compilation. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Cross-problems" accesskey="2">Cross problems</a>:</td><td> </td><td align="left" valign="top">Cross compilation problems. +</td></tr> +</table> + + +<hr> +<a name="Cross-configuring"></a> +<div class="header"> +<p> +Next: <a href="#Cross-problems" accesskey="n" rel="next">Cross problems</a>, Up: <a href="#Cross-compilation" accesskey="u" rel="up">Cross compilation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Cross-configuring-1"></a> +<h3 class="section">8.1 Cross configuring</h3> + +<a name="index-cross-compilation-configuring"></a> +<a name="index-configuring_002c-for-cross-compilation"></a> + +<a name="index-_002d_002dhost_003dhost"></a> +<a name="index-_002d_002dbuild_003dhost"></a> +<p>In a standard cross compilation, binaries for the host system cannot +execute on the build system and it is necessary to specify the +configure options <code>--host=<var>host</var></code> and +<code>--build=<var>build</var></code> with two different values. +</p> +<p>Building binaries requires suitable “cross” tools, e.g., compiler, +linker, and archiver, and perhaps a “cross” version of +<code>pkg-config</code> and similar to locate host system libraries. +Autoconf expects that these cross tools are given by their usual +variables or found under their usual name prefixed with +<code><var>host</var>-</code>. Here a list of such tools and corresponding +variables: +</p> +<div class="example"> +<pre class="example"><code>ar</code> AR +<code>freetype-config</code> FT2_CONFIG +<code>g++</code> CXX +<code>gcc</code> CC +<code>icu-config</code> ICU_CONFIG +<code>objdump</code> OBJDUMP +<code>pkg-config</code> PKG_CONFIG +<code>ranlib</code> RANLIB +<code>strip</code> STRIP +</pre></div> + +<a name="index-mingw32"></a> +<p>In order to, e.g., build <code>mingw32</code> binaries on +<code>x86_64-linux</code> with a cross compiler found as +<samp>i386-pc-mingw32-gcc</samp> one would specify +</p> +<div class="example"> +<pre class="example">--host=i386-pc-mingw32 --build=x86_64-linux-gnu +</pre></div> + +<p>or perhaps +</p> +<div class="example"> +<pre class="example">--host=mingw32 --build=x86_64-linux CC=i386-pc-mingw32-gcc +</pre></div> + +<p>but this latter, especially, might require adding <code>CXX</code> and others. +</p> +<p>Configure arguments such as <code>CFLAGS=…</code> refer to the cross +compiler. If necessary, you can specify compilers and flags for the +few auxiliary C and C++ programs required for the build process as +configure arguments +</p> +<a name="index-BUILDCC_002c-BUILDCFLAGS_002c-_2026"></a> +<div class="example"> +<pre class="example">BUILDCC=… +BUILDCPPFLAGS=… +BUILDCFLAGS=… +BUILDCXX=… +BUILDCXXFLAGS=… +BUILDLDFLAGS=… +</pre></div> + + +<hr> +<a name="Cross-problems"></a> +<div class="header"> +<p> +Previous: <a href="#Cross-configuring" accesskey="p" rel="prev">Cross configuring</a>, Up: <a href="#Cross-compilation" accesskey="u" rel="up">Cross compilation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Cross-problems-1"></a> +<h3 class="section">8.2 Cross problems</h3> + +<a name="index-cross-compilation-problems"></a> + +<p>The fact that binaries for the host system cannot be executed on the +build system causes some problems. +</p> +<p>One problem is that configure tests using <code>AC_RUN_IFELSE</code> can +compile and link the test program but cannot execute it. Such tests +should be avoided if possible and otherwise must supply a pessimistic +test result. +</p> +<a name="index-squeeze"></a> +<a name="index-web2c-program"></a> +<a name="index-freetype-cross-compiling"></a> +<a name="index-CC_005fBUILD"></a> +<p>Another problem arises if the build process must execute some +(auxiliary or installable) programs. Auxiliary programs can be placed +into a subdirectory that is configured natively as is done for +<samp>texk/web2c/web2c</samp>, <samp>texk/dvipsk/squeeze</samp>, and +<samp>texk/xdvik/squeeze</samp>. The module <samp>libs/freetype2</samp> uses the +value of <code>CC_BUILD</code>, <samp><var>build</var>-gcc</samp>, <samp>gcc</samp>, or +<samp>cc</samp> as compiler for the auxiliary program. +</p> +<a name="index-txt2zlib"></a> +<p>Building LuaTeX (or LuaJITTeX) uses the auxiliary program +<samp>txt2zlib</samp> to create <samp>pdflua.c</samp> and, if necessary, update the +distributed version of that file. In a cross compilation we simply use that +distributed file. +</p> +<a name="index-ICU-cross-compiling"></a> +<p>The situation for installable programs needed by the build process is +somewhat different. A quite expensive possibility, chosen for the ICU +libraries in module <samp>libs/icu</samp>, is to first compile natively for +the build system and in a second step to use these (uninstalled) +programs during the cross compilation. +</p> +<a name="index-tangle"></a> +<a name="index-ctangle"></a> +<a name="index-otangle"></a> +<a name="index-tie"></a> +<p>This approach would also be possible for the tools such as +<samp>tangle</samp> used in the module <samp>texk/web2c</samp> to build the WEB +programs, but that would require first building a native +<code>kpathsea</code> library. To avoid this complication, cross +compilation of the WEB or CWEB programs requires sufficiently recent +installed versions of <samp>tangle</samp>, <samp>ctangle</samp>, <samp>otangle</samp>, +and <samp>tie</samp>. +</p> +<a name="index-xindy-cross-compiling-impossible"></a> +<p>Building <code>xindy</code> requires running the host system <samp>clisp</samp> +binary, thus cross compilation is not possible. +</p> + +<hr> +<a name="Coding-conventions"></a> +<div class="header"> +<p> +Next: <a href="#install_002dtl" accesskey="n" rel="next">install-tl</a>, Previous: <a href="#Cross-compilation" accesskey="p" rel="prev">Cross compilation</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Coding-conventions-1"></a> +<h2 class="chapter">9 Coding conventions</h2> + +<a name="index-coding-conventions"></a> +<a name="index-conventions_002c-coding"></a> + +<p>Ideally, building all of TeX Live with <code>--enable-compiler-warnings=max</code> +should produce no (GCC) compiler warnings at all. In spite of +considerable efforts into that direction we are still far from that goal and +there are reasons that we may never fully reach it. Below are some rules +about declarations of functions or variables and the use of <code>const</code>. +These rules should be applied to all parts of the TeX Live tree, except some of +those maintained independently. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Declarations-and-definitions" accesskey="1">Declarations and definitions</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Const" accesskey="2">Const</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> +<a name="Declarations-and-definitions"></a> +<div class="header"> +<p> +Next: <a href="#Const" accesskey="n" rel="next">Const</a>, Up: <a href="#Coding-conventions" accesskey="u" rel="up">Coding conventions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Declarations-and-definitions-1"></a> +<h3 class="section">9.1 Declarations and definitions</h3> + +<a name="index-declarations-and-definitions_002c-in-source-code"></a> +<a name="index-source-code-declarations"></a> +<a name="index-ANSI-C"></a> +<a name="index-C_002c-ANSI_002c-required"></a> +<a name="index-C99_002c-avoided"></a> + +<a name="C-standards"></a> +<h4 class="subsubheading">C standards</h4> + +<p>The TeX Live build system no longer supports pre-ANSI C compilers. Thus +all function prototypes and definitions must conform to the ANSI C +standard (including <code>void</code> in the declaration of C functions with +no parameters). On the other hand, TL is built for a wide variety of +systems, not all of which support the C99 standard. Therefore using +C99 features should be avoided if that can easily be done. In +particular C code must not contain declarations after statements or +C++-style comments. +</p> +<a name="index-chktex"></a> +<a name="index-stpcpy"></a> +<p>If some C99 (or later) constructs must be used, the module should +verify that they are available and otherwise provide an alternative. +For example, the module <samp>texk/chktex</samp> uses the C99 function +<code>stpcpy()</code> that may or may not be available on a particular +system. It uses <code>AC_CHECK_DECLS([stpcpy])</code> in +<samp>configure.ac</samp> to test this, and provides the perhaps slightly +less efficient alternative +</p> +<div class="example"> +<pre class="example">#if !(defined HAVE_DECL_STPCPY && HAVE_DECL_STPCPY) +#static inline char *stpcpy(char *dest, const char *src) +{ + return strcpy(dest, src) + strlen(src); +} +#endif +</pre></div> + +<p>in the file <samp>Utility.h</samp>. +</p> + +<a name="Static-functions"></a> +<h4 class="subsubheading">Static functions</h4> + +<a name="index-static-functions"></a> +<p>Functions used in only one file should be declared <code>static</code>; they +require no prototype except as forward declaration. +</p> +<a name="Extern-functions"></a> +<h4 class="subsubheading">Extern functions</h4> + +<a name="index-extern-functions"></a> +<p>Functions not declared <code>static</code>, usually because they are used in +several files, require an (<code>extern</code>) prototype in exactly one +header file, which is included in the file defining the function and +in all files using that function—this is the only way to guarantee +consistency between definition and use. There should be no +<code>extern</code> declarations sprinkled throughout the C code (with or +without comments as to where that function is defined). +</p> +<a name="Variable-declarations"></a> +<h4 class="subsubheading">Variable declarations</h4> + +<a name="index-variable-declarations_002c-in-source-code"></a> +<p>The declaration of global variables follows analogous rules: they are +either declared <code>static</code> if used in only one file or declared +<code>extern</code> in exactly one header and instantiated in exactly one +file. +</p> +<hr> +<a name="Const"></a> +<div class="header"> +<p> +Previous: <a href="#Declarations-and-definitions" accesskey="p" rel="prev">Declarations and definitions</a>, Up: <a href="#Coding-conventions" accesskey="u" rel="up">Coding conventions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Const-1"></a> +<h3 class="section">9.2 Const</h3> + +<a name="index-const"></a> + +<p>The <code>const</code> feature of C is valuable, but easy to mis-use. +</p> +<a name="Function-parameters"></a> +<h4 class="subsubheading">Function parameters</h4> + +<p>Ideally, a function parameter not modified by the function should be +declared as <code>const</code>. This is important in particular for strings +(<code>char*</code>) because the actual arguments are often string literals. +It is perfectly legitimate and safe to use a type <code>char*</code> value +for a type <code>const char*</code> variable (in an assignment, as +initializer, as function argument, or as return value). It is equally +safe to use a type <code>char**</code> value for a type <code>const +char*const*</code> variable, but not for a type <code>const char**</code> variable +since that might cause modification of a quantity supposed to be +constant. +</p> +<a name="index-X11-headers_002c-and-const"></a> +<a name="index-libfreetype_002c-and-const"></a> +<p>Getting all <code>const</code> qualifiers right can get quite involved but +can almost always be done. There are only a couple notable +exceptions: the X11 headers are full of declarations that ought to use +<code>const</code> but do not, and the same is true to some extent for +<samp>libfreetype</samp> (but, thankfully, not for <code>zlib</code> nowadays). +</p> +<a name="What-must-be-avoided-with-const"></a> +<h4 class="subsubheading">What must be avoided with <code>const</code></h4> + +<a name="index-warning_002c-discards-qualifiers"></a> +<a name="index-discards-qualifiers-warning"></a> +<p>The GCC compiler warnings “assignment discards qualifiers…” +and analogous warnings for “initialization”, “passing arg”, or +“return” must be strenously avoided in our own code. The only +exception is when they are caused by X11 headers or macros or other +third party code. +</p> +<a name="What-should-be-avoided-with-const"></a> +<h4 class="subsubheading">What should be avoided with <code>const</code></h4> + +<a name="index-type-cast_002c-avoiding"></a> +<p>A type cast, e.g., from <code>const char*</code> to <code>char*</code> does not +solve any problems; depending on warning options, it may only hide +them. Therefore such casts should be avoided whenever possible and +otherwise must be carefully analyzed to make sure that they cannot +cause the modification of quantities supposed to be constant. +</p> +<hr> +<a name="install_002dtl"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr" accesskey="n" rel="next">tlmgr</a>, Previous: <a href="#Coding-conventions" accesskey="p" rel="prev">Coding conventions</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="install_002dtl-1"></a> +<h2 class="appendix">Appendix A install-tl</h2> + +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#install_002dtl-NAME" accesskey="1">install-tl NAME</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#install_002dtl-SYNOPSIS" accesskey="2">install-tl SYNOPSIS</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#install_002dtl-DESCRIPTION" accesskey="3">install-tl DESCRIPTION</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#install_002dtl-REFERENCES" accesskey="4">install-tl REFERENCES</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#install_002dtl-OPTIONS" accesskey="5">install-tl OPTIONS</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#install_002dtl-ENVIRONMENT-VARIABLES" accesskey="6">install-tl ENVIRONMENT VARIABLES</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#install_002dtl-AUTHORS-AND-COPYRIGHT" accesskey="7">install-tl AUTHORS AND COPYRIGHT</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + +<hr> +<a name="install_002dtl-NAME"></a> +<div class="header"> +<p> +Next: <a href="#install_002dtl-SYNOPSIS" accesskey="n" rel="next">install-tl SYNOPSIS</a>, Up: <a href="#install_002dtl" accesskey="u" rel="up">install-tl</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="NAME"></a> +<h3 class="appendixsec">A.1 NAME</h3> + +<p>install-tl - TeX Live cross-platform installer +</p> +<hr> +<a name="install_002dtl-SYNOPSIS"></a> +<div class="header"> +<p> +Next: <a href="#install_002dtl-DESCRIPTION" accesskey="n" rel="next">install-tl DESCRIPTION</a>, Previous: <a href="#install_002dtl-NAME" accesskey="p" rel="prev">install-tl NAME</a>, Up: <a href="#install_002dtl" accesskey="u" rel="up">install-tl</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="SYNOPSIS"></a> +<h3 class="appendixsec">A.2 SYNOPSIS</h3> + +<p>install-tl [<em>option</em>]... +</p> +<p>install-tl.bat [<em>option</em>]... +</p> +<hr> +<a name="install_002dtl-DESCRIPTION"></a> +<div class="header"> +<p> +Next: <a href="#install_002dtl-REFERENCES" accesskey="n" rel="next">install-tl REFERENCES</a>, Previous: <a href="#install_002dtl-SYNOPSIS" accesskey="p" rel="prev">install-tl SYNOPSIS</a>, Up: <a href="#install_002dtl" accesskey="u" rel="up">install-tl</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="DESCRIPTION"></a> +<h3 class="appendixsec">A.3 DESCRIPTION</h3> + +<p>This installer creates a runnable TeX Live installation from various +media, including over the network. The installer works across all +platforms supported by TeX Live. For information on initially +downloading the TeX Live, see <a href="http://tug.org/texlive/acquire.html">http://tug.org/texlive/acquire.html</a>. +</p> +<p>The basic idea of TeX Live installation is to choose one of the +top-level <em>schemes</em>, each of which is defined as a different set of +<em>collections</em> and <em>packages</em>, where a collection is a set of packages, +and a package is what contains actual files. +</p> +<p>Within the installer, you can choose a scheme, and further customize the +set of collections to install, but not the set of the packages. To do +that, use <code>tlmgr</code> (reference below) after the initial installation is +completely. +</p> +<p>The default is <code>scheme-full</code>, to install everything, and this is highly +recommended. +</p> +<hr> +<a name="install_002dtl-REFERENCES"></a> +<div class="header"> +<p> +Next: <a href="#install_002dtl-OPTIONS" accesskey="n" rel="next">install-tl OPTIONS</a>, Previous: <a href="#install_002dtl-DESCRIPTION" accesskey="p" rel="prev">install-tl DESCRIPTION</a>, Up: <a href="#install_002dtl" accesskey="u" rel="up">install-tl</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="REFERENCES"></a> +<h3 class="appendixsec">A.4 REFERENCES</h3> + +<p>Post-installation configuration, package updates, and much more, are +handled through <strong>tlmgr</strong>(1), the TeX Live Manager +(<a href="http://tug.org/texlive/tlmgr.html">http://tug.org/texlive/tlmgr.html</a>). +</p> +<p>The most up-to-date version of this documentation is on the Internet at +<a href="http://tug.org/texlive/doc/install-tl.html">http://tug.org/texlive/doc/install-tl.html</a>. +</p> +<p>For the full documentation of TeX Live, see +<a href="http://tug.org/texlive/doc">http://tug.org/texlive/doc</a>. +</p> +<hr> +<a name="install_002dtl-OPTIONS"></a> +<div class="header"> +<p> +Next: <a href="#install_002dtl-ENVIRONMENT-VARIABLES" accesskey="n" rel="next">install-tl ENVIRONMENT VARIABLES</a>, Previous: <a href="#install_002dtl-REFERENCES" accesskey="p" rel="prev">install-tl REFERENCES</a>, Up: <a href="#install_002dtl" accesskey="u" rel="up">install-tl</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="OPTIONS"></a> +<h3 class="appendixsec">A.5 OPTIONS</h3> + +<p>As usual, all options can be specified in any order, and with either a +leading <code>-</code> or <code>--</code>. An argument value can be separated from its +option by either a space or <code>=</code>. +</p> +<dl compact="compact"> +<dt><strong>-gui</strong> [[=]<em>module</em>]</dt> +<dd><a name="install_002dtl-_002dgui-_005b_005b_003d_005dmodule_005d"></a> +<p>If no <em>module</em> is given starts the <code>perltk</code> (see below) GUI installer. +</p> +<p>If <em>module</em> is given loads the given installer module. Currently the +following modules are supported: +</p> +<dl compact="compact"> +<dt><code>text</code></dt> +<dd><a name="install_002dtl-text"></a> +<p>The text mode user interface (default on Unix systems). Same as the +<code>-no-gui</code> option. +</p> +</dd> +<dt><code>wizard</code></dt> +<dd><a name="install_002dtl-wizard"></a> +<p>The wizard mode user interface (default on Windows), asking only minimal +questions before installing all of TeX Live. +</p> +</dd> +<dt><code>perltk</code></dt> +<dd><a name="install_002dtl-perltk"></a> +<p>The expert GUI installer, providing access to more options. +Can also be invoked on Windows by running <code>install-tl-advanced.bat</code>. +</p> +</dd> +</dl> + +<p>The <code>perltk</code> and <code>wizard</code> modules, and thus also when calling with a +bare <code>-gui</code> (without <em>module</em>), requires the Perl/Tk module +(<a href="http://tug.org/texlive/distro.html#perltk">http://tug.org/texlive/distro.html#perltk</a>); if Perl/Tk is not +available, installation continues in text mode. +</p> +</dd> +<dt><strong>-no-gui</strong></dt> +<dd><a name="install_002dtl-_002dno_002dgui"></a> +<p>Use the text mode installer (default except on Windows). +</p> +</dd> +<dt><strong>-lang</strong> <em>llcode</em></dt> +<dd><a name="install_002dtl-_002dlang-llcode"></a> +<p>By default, the GUI tries to deduce your language from the environment +(on Windows via the registry, on Unix via <code>LC_MESSAGES</code>). If that fails +you can select a different language by giving this option with a +language code (based on ISO 639-1). Currently supported (but not +necessarily completely translated) are: English (en, default), Czech +(cs), German (de), French (fr), Italian (it), Japanese (ja), Dutch (nl), +Polish (pl), Brazilian Portuguese (pt_BR), Russian (ru), Slovak (sk), +Slovenian (sl), Serbian (sr), Ukrainian (uk), Vietnamese (vi), +simplified Chinese (zh_CN), and traditional Chinese (zh_TW). +</p> +</dd> +<dt><strong>-repository</strong> <em>url|path</em></dt> +<dd><a name="install_002dtl-_002drepository-url_007cpath"></a> +<p>Specify the package repository to be used as the source of the +installation, either a local directory via <code>/path/to/directory</code> or a +<code>file:/</code> url, or a network location via a <code>http://</code> or <code>ftp://</code> url. +(No other protocols are supported.) +</p> +<p>The default is to pick a mirror automatically, using +<a href="http://mirror.ctan.org/systems/texlive/tlnet">http://mirror.ctan.org/systems/texlive/tlnet</a>; the chosen mirror is +used for the entire download. You can use the special argument <code>ctan</code> +as an abbreviation for this. See <a href="http://ctan.org">http://ctan.org</a> for more about CTAN +and its mirrors. +</p> +<p>If the repository is on the network, trailing <code>/</code> characters and/or +trailing <code>/tlpkg</code> and <code>/archive</code> components are ignored. For example, +you could choose a particular CTAN mirror with something like this: +</p> +<pre class="verbatim"> -repository http://ctan.example.org/its/ctan/dir/systems/texlive/tlnet +</pre> +<p>Of course a real hostname and its particular top-level CTAN path +have to be specified. The list of CTAN mirrors is available at +<a href="http://ctan.org/mirrors">http://ctan.org/mirrors</a>. +</p> +<p>If the repository is local, the installation type (compressed or live) is +automatically determined, by checking for the presence of a +<code>archive</code> directory relative to the root. Compressed is +preferred if both are available, since it is faster. Here’s an example +of using a local directory: +</p> +<pre class="verbatim"> -repository /local/TL/repository +</pre> +<p>After installation is complete, you can use that installation as the +repository for another installation. If you chose to install less than +the full scheme containing all packages, the list of available schemes +will be adjusted accordingly. +</p> +<p>For backward compatibility and convenience, <code>--location</code> and <code>--repo</code> +are accepted as aliases for this option. +</p> +</dd> +<dt><strong>-select-repository</strong></dt> +<dd><a name="install_002dtl-_002dselect_002drepository"></a> +<p>This option allows manual selection of a mirror from the current list of +active CTAN mirrors. This option is supported in all installer modes +(text, wizard, perltk), and will also offer to install from local media +if available, or from a repository specified on the command line (see +above). It’s useful when the (default) automatic redirection does not +choose a good host for you. +</p> +</dd> +<dt><strong>-all-options</strong></dt> +<dd><a name="install_002dtl-_002dall_002doptions"></a> +<p>Normally options not relevant to the current platform are not shown +(i.e., when running on Unix, Windows-specific options are omitted). +Giving this command line option allows configuring settings in the +final <code>texlive.tlpdb</code> that do not have any immediate effect. +</p> +</dd> +<dt><strong>-custom-bin</strong> <em>path</em></dt> +<dd><a name="install_002dtl-_002dcustom_002dbin-path"></a> +<p>If you have built your own set of TeX Live binaries (perhaps because +your platform was not supported by TeX Live out of the box), this option +allows you to specify the <em>path</em> to a directory where the binaries for +the current system are present. The installation will continue as +usual, but at the end all files from <em>path</em> are copied over to +<code>bin/custom/</code> under your installation directory and this <code>bin/custom/</code> +directory is what will be added to the path for the post-install +actions. (By the way, for information on building TeX Live, see +<a href="http://tug.org/texlive/build.html">http://tug.org/texlive/build.html</a>). +</p> +</dd> +<dt><strong>-debug-translation</strong></dt> +<dd><a name="install_002dtl-_002ddebug_002dtranslation"></a> +<p>In GUI mode, this switch makes <code>tlmgr</code> report any missing, or more +likely untranslated, messages to standard error. Helpful for +translators to see what remains to be done. +</p> +</dd> +<dt><strong>-force-platform</strong> <em>platform</em></dt> +<dd><a name="install_002dtl-_002dforce_002dplatform-platform"></a> +<p>Instead of auto-detecting the current platform, use <em>platform</em>. +Binaries for this platform must be present and they must actually be +runnable, or installation will fail. <code>-force-arch</code> is a synonym. +</p> +</dd> +<dt><strong>-help</strong>, <strong>–help</strong>, <strong>-?</strong></dt> +<dd><a name="install_002dtl-_002dhelp_002c-_002d_002dhelp_002c-_002d_003f"></a> +<p>Display this help and exit (on the web via +<a href="http://tug.org/texlive/doc/install-tl.html">http://tug.org/texlive/doc/install-tl.html</a>). Sometimes the +<code>perldoc</code> and/or <code>PAGER</code> programs on the system have problems, +possibly resulting in control characters being literally output. This +can’t always be detected, but you can set the <code>NOPERLDOC</code> environment +variable and <code>perldoc</code> will not be used. +</p> +</dd> +<dt><strong>-in-place</strong></dt> +<dd><a name="install_002dtl-_002din_002dplace"></a> +<p>This is a quick-and-dirty installation option in case you already have +an rsync or svn checkout of TeX Live. It will use the checkout as-is +and will just do the necessary post-install. Be warned that the file +<code>tlpkg/texlive.tlpdb</code> may be rewritten, that removal has to be done +manually, and that the only realistic way to maintain this installation +is to redo it from time to time. This option is not available via the +installer interfaces. USE AT YOUR OWN RISK. +</p> +</dd> +<dt><strong>-logfile</strong> <em>file</em></dt> +<dd><a name="install_002dtl-_002dlogfile-file"></a> +<p>Write both all messages (informational, debugging, warnings) to <em>file</em>, +in addition to standard output or standard error. +</p> +<p>If this option is not given, the installer will create a log file +in the root of the writable installation tree, +for example, <code>/usr/local/texlive/YYYY/install-tl.log</code> for the <em>YYYY</em> +release. +</p> +</dd> +<dt><strong>-no-cls</strong></dt> +<dd><a name="install_002dtl-_002dno_002dcls"></a> +<p>(only for text mode installer) do not clear the screen when entering +a new menu (for debugging purposes). +</p> +</dd> +<dt><strong>-non-admin</strong></dt> +<dd><a name="install_002dtl-_002dnon_002dadmin"></a> +<p>For Windows only: configure for the current user, not for all users. +</p> +</dd> +<dt><strong>–persistent-downloads</strong></dt> +<dd><a name="install_002dtl-_002d_002dpersistent_002ddownloads"></a> +</dd> +<dt><strong>–no-persistent-downloads</strong></dt> +<dd><a name="install_002dtl-_002d_002dno_002dpersistent_002ddownloads"></a> +<p>For network installs, activating this option makes the installer try to +set up a persistent connection using the <code>Net::LWP</code> Perl module. This +opens only one connection between your computer and the server per +session and reuses it, instead of initiating a new download for each +package, which typically yields a significant speed-up. +</p> +<p>This option is turned on by default, and the installation program will +fall back to using <code>wget</code> if this is not possible. To disable usage of +LWP and persistent connections, use <code>--no-persistent-downloads</code>. +</p> +</dd> +<dt><strong>-portable</strong></dt> +<dd><a name="install_002dtl-_002dportable"></a> +<p>Install for portable use, e.g., on a USB stick. Also selectable from +within the perltk and text installers. +</p> +</dd> +<dt><strong>-print-platform</strong></dt> +<dd><a name="install_002dtl-_002dprint_002dplatform"></a> +<p>Print the TeX Live identifier for the detected platform +(hardware/operating system) combination to standard output, and exit. +<code>-print-arch</code> is a synonym. +</p> +</dd> +<dt><strong>-profile</strong> <em>profile</em></dt> +<dd><a name="install_002dtl-_002dprofile-profile"></a> +<p>Load the file <em>profile</em> and do the installation with no user +interaction, that is, a batch (unattended) install. +</p> +<p>A <em>profile</em> file contains all the values needed to perform an +installation. After a normal installation has finished, a profile for +that exact installation is written to the file +DEST/tlpkg/texlive.profile. That file can be given as the argument to +<code>-profile</code> to redo the exact same installation on a different system, +for example. Alternatively, you can use a custom profile, most easily +created by starting from a generated one and changing values, or an +empty file, which will take all the defaults. +</p> +<p>Normally a profile has to specify the value <code>1</code> for each collection to +be installed, even if the scheme is specified. This follows from the +logic of the installer in that you can first select a scheme and then +change the collections being installed. But for convenience there is an +exception to this within profiles: If the profile contains a variable +for <code>selected_scheme</code> and <em>no</em> collection variables at all are defined +in the profile, then the collections which the specified scheme requires +are installed. +</p> +<p>Thus, a line <code>selected_scheme scheme-medium</code> together with the +definitions of the installation directories (<code>TEXDIR</code>, <code>TEXMFHOME</code>, +<code>TEXMFLOCAL</code>, <code>TEXMFSYSCONFIG</code>, <code>TEXMFSYSVAR</code>) suffices to install +the medium scheme with all default options. +</p> +</dd> +<dt><strong>-q</strong></dt> +<dd><a name="install_002dtl-_002dq"></a> +<p>Omit normal informational messages. +</p> +</dd> +<dt><strong>-scheme</strong> <em>scheme</em></dt> +<dd><a name="install_002dtl-_002dscheme-scheme"></a> +<p>Schemes are the highest level of package grouping in TeX Live; the +default is to use the <code>full</code> scheme, which includes everything. This +option overrides that default. You can change the scheme again before +the actual installation with the usual menu. The <em>scheme</em> argument may +optionally have a prefix <code>scheme-</code>. The list of supported scheme names +depends on what your package repository provides; see the interactive +menu list. +</p> +</dd> +<dt><strong>-v</strong></dt> +<dd><a name="install_002dtl-_002dv"></a> +<p>Include verbose debugging messages; repeat for maximum debugging, as in +<code>-v -v</code>. (Further repeats are accepted but ignored.) +</p> +</dd> +<dt><strong>-version</strong>, <strong>–version</strong></dt> +<dd><a name="install_002dtl-_002dversion_002c-_002d_002dversion"></a> +<p>Output version information and exit. If <code>-v</code> has also been given the +revisions of the used modules are reported, too. +</p> +</dd> +</dl> + +<hr> +<a name="install_002dtl-ENVIRONMENT-VARIABLES"></a> +<div class="header"> +<p> +Next: <a href="#install_002dtl-AUTHORS-AND-COPYRIGHT" accesskey="n" rel="next">install-tl AUTHORS AND COPYRIGHT</a>, Previous: <a href="#install_002dtl-OPTIONS" accesskey="p" rel="prev">install-tl OPTIONS</a>, Up: <a href="#install_002dtl" accesskey="u" rel="up">install-tl</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="ENVIRONMENT-VARIABLES"></a> +<h3 class="appendixsec">A.6 ENVIRONMENT VARIABLES</h3> + +<p>For ease in scripting and debugging, <code>install-tl</code> will look for the +following environment variables. They are not of interest in normal +user installations. +</p> +<dl compact="compact"> +<dt><code>TEXLIVE_INSTALL_ENV_NOCHECK</code></dt> +<dd><a name="install_002dtl-TEXLIVE_005fINSTALL_005fENV_005fNOCHECK"></a> +<p>Omit the check for environment variables containing the string <code>tex</code>. +People developing TeX-related software are likely to have many such +variables. +</p> +</dd> +<dt><code>TEXLIVE_INSTALL_NO_CONTEXT_CACHE</code></dt> +<dd><a name="install_002dtl-TEXLIVE_005fINSTALL_005fNO_005fCONTEXT_005fCACHE"></a> +<p>Omit creating the ConTeXt cache. This is useful for redistributors. +</p> +</dd> +<dt><code>TEXLIVE_INSTALL_PREFIX</code></dt> +<dd><a name="install_002dtl-TEXLIVE_005fINSTALL_005fPREFIX"></a> +</dd> +<dt><code>TEXLIVE_INSTALL_TEXMFCONFIG</code></dt> +<dd><a name="install_002dtl-TEXLIVE_005fINSTALL_005fTEXMFCONFIG"></a> +</dd> +<dt><code>TEXLIVE_INSTALL_TEXMFHOME</code></dt> +<dd><a name="install_002dtl-TEXLIVE_005fINSTALL_005fTEXMFHOME"></a> +</dd> +<dt><code>TEXLIVE_INSTALL_TEXMFLOCAL</code></dt> +<dd><a name="install_002dtl-TEXLIVE_005fINSTALL_005fTEXMFLOCAL"></a> +</dd> +<dt><code>TEXLIVE_INSTALL_TEXMFSYSCONFIG</code></dt> +<dd><a name="install_002dtl-TEXLIVE_005fINSTALL_005fTEXMFSYSCONFIG"></a> +</dd> +<dt><code>TEXLIVE_INSTALL_TEXMFSYSVAR</code></dt> +<dd><a name="install_002dtl-TEXLIVE_005fINSTALL_005fTEXMFSYSVAR"></a> +</dd> +<dt><code>TEXLIVE_INSTALL_TEXMFVAR</code></dt> +<dd><a name="install_002dtl-TEXLIVE_005fINSTALL_005fTEXMFVAR"></a> +<p>Specify the respective directories. +</p> +</dd> +<dt><code>NOPERLDOC</code></dt> +<dd><a name="install_002dtl-NOPERLDOC"></a> +<p>Don’t try to run the <code>--help</code> message through <code>perldoc</code>. +</p> +</dd> +</dl> + +<hr> +<a name="install_002dtl-AUTHORS-AND-COPYRIGHT"></a> +<div class="header"> +<p> +Previous: <a href="#install_002dtl-ENVIRONMENT-VARIABLES" accesskey="p" rel="prev">install-tl ENVIRONMENT VARIABLES</a>, Up: <a href="#install_002dtl" accesskey="u" rel="up">install-tl</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="AUTHORS-AND-COPYRIGHT"></a> +<h3 class="appendixsec">A.7 AUTHORS AND COPYRIGHT</h3> + +<p>This script and its documentation were written for the TeX Live +distribution (<a href="http://tug.org/texlive">http://tug.org/texlive</a>) and both are licensed under the +GNU General Public License Version 2 or later. +</p> +<hr> +<a name="tlmgr"></a> +<div class="header"> +<p> +Next: <a href="#Index" accesskey="n" rel="next">Index</a>, Previous: <a href="#install_002dtl" accesskey="p" rel="prev">install-tl</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="tlmgr-1"></a> +<h2 class="appendix">Appendix B tlmgr</h2> + +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#tlmgr-NAME" accesskey="1">tlmgr NAME</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-SYNOPSIS" accesskey="2">tlmgr SYNOPSIS</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-DESCRIPTION" accesskey="3">tlmgr DESCRIPTION</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-EXAMPLES" accesskey="4">tlmgr EXAMPLES</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-OPTIONS" accesskey="5">tlmgr OPTIONS</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-ACTIONS" accesskey="6">tlmgr ACTIONS</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-USER-MODE" accesskey="7">tlmgr USER MODE</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-CONFIGURATION-FILE-FOR-TLMGR" accesskey="8">tlmgr CONFIGURATION FILE FOR TLMGR</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-TAXONOMIES" accesskey="9">tlmgr TAXONOMIES</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-MULTIPLE-REPOSITORIES">tlmgr MULTIPLE REPOSITORIES</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-GUI-FOR-TLMGR">tlmgr GUI FOR TLMGR</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-MACHINE_002dREADABLE-OUTPUT">tlmgr MACHINE-READABLE OUTPUT</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-AUTHORS-AND-COPYRIGHT">tlmgr AUTHORS AND COPYRIGHT</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + +<hr> +<a name="tlmgr-NAME"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-SYNOPSIS" accesskey="n" rel="next">tlmgr SYNOPSIS</a>, Up: <a href="#tlmgr" accesskey="u" rel="up">tlmgr</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="NAME-1"></a> +<h3 class="appendixsec">B.1 NAME</h3> + +<p>tlmgr - the TeX Live Manager +</p> +<hr> +<a name="tlmgr-SYNOPSIS"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-DESCRIPTION" accesskey="n" rel="next">tlmgr DESCRIPTION</a>, Previous: <a href="#tlmgr-NAME" accesskey="p" rel="prev">tlmgr NAME</a>, Up: <a href="#tlmgr" accesskey="u" rel="up">tlmgr</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="SYNOPSIS-1"></a> +<h3 class="appendixsec">B.2 SYNOPSIS</h3> + +<p>tlmgr [<em>option</em>]... <em>action</em> [<em>option</em>]... [<em>operand</em>]... +</p> +<hr> +<a name="tlmgr-DESCRIPTION"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-EXAMPLES" accesskey="n" rel="next">tlmgr EXAMPLES</a>, Previous: <a href="#tlmgr-SYNOPSIS" accesskey="p" rel="prev">tlmgr SYNOPSIS</a>, Up: <a href="#tlmgr" accesskey="u" rel="up">tlmgr</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="DESCRIPTION-1"></a> +<h3 class="appendixsec">B.3 DESCRIPTION</h3> + +<p><strong>tlmgr</strong> manages an existing TeX Live installation, both packages and +configuration options. For information on initially downloading and +installing TeX Live, see <a href="http://tug.org/texlive/acquire.html">http://tug.org/texlive/acquire.html</a>. +</p> +<p>The most up-to-date version of this documentation (updated nightly from +the development sources) is available at +<a href="http://tug.org/texlive/tlmgr.html">http://tug.org/texlive/tlmgr.html</a>, along with procedures for updating +<code>tlmgr</code> itself and information about test versions. +</p> +<p>TeX Live is organized into a few top-level <em>schemes</em>, each of which is +specified as a different set of <em>collections</em> and <em>packages</em>, where a +collection is a set of packages, and a package is what contains actual +files. Schemes typically contain a mix of collections and packages, but +each package is included in exactly one collection, no more and no less. +A TeX Live installation can be customized and managed at any level. +</p> +<p>See <a href="http://tug.org/texlive/doc">http://tug.org/texlive/doc</a> for all the TeX Live documentation +available. +</p> +<hr> +<a name="tlmgr-EXAMPLES"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-OPTIONS" accesskey="n" rel="next">tlmgr OPTIONS</a>, Previous: <a href="#tlmgr-DESCRIPTION" accesskey="p" rel="prev">tlmgr DESCRIPTION</a>, Up: <a href="#tlmgr" accesskey="u" rel="up">tlmgr</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="EXAMPLES"></a> +<h3 class="appendixsec">B.4 EXAMPLES</h3> + +<p>After successfully installing TeX Live, here are a few common operations +with <code>tlmgr</code>: +</p> +<dl compact="compact"> +<dt><code>tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet</code></dt> +<dd><a name="tlmgr-tlmgr-option-repository-http_003a_002f_002fmirror_002ectan_002eorg_002fsystems_002ftexlive_002ftlnet"></a> +<p>Tell <code>tlmgr</code> to use a nearby CTAN mirror for future updates; useful if +you installed TeX Live from the DVD image and want continuing updates. +</p> +</dd> +<dt><code>tlmgr update --list</code></dt> +<dd><a name="tlmgr-tlmgr-update-_002d_002dlist"></a> +<p>Report what would be updated without actually updating anything. +</p> +</dd> +<dt><code>tlmgr update --all</code></dt> +<dd><a name="tlmgr-tlmgr-update-_002d_002dall"></a> +<p>Make your local TeX installation correspond to what is in the package +repository (typically useful when updating from CTAN). +</p> +</dd> +<dt><code>tlmgr info</code> <em>pkg</em></dt> +<dd><a name="tlmgr-tlmgr-info-pkg"></a> +<p>Display detailed information about <em>pkg</em>, such as the installation +status and description. +</p> +</dd> +</dl> + +<p>For all the capabilities and details of <code>tlmgr</code>, please read the +following voluminous information. +</p> +<hr> +<a name="tlmgr-OPTIONS"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-ACTIONS" accesskey="n" rel="next">tlmgr ACTIONS</a>, Previous: <a href="#tlmgr-EXAMPLES" accesskey="p" rel="prev">tlmgr EXAMPLES</a>, Up: <a href="#tlmgr" accesskey="u" rel="up">tlmgr</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="OPTIONS-1"></a> +<h3 class="appendixsec">B.5 OPTIONS</h3> + +<p>The following options to <code>tlmgr</code> are global options, not specific to +any action. All options, whether global or action-specific, can be +given anywhere on the command line, and in any order. The first +non-option argument will be the main action. In all cases, +<code>--</code><em>option</em> and <code>-</code><em>option</em> are equivalent, and an <code>=</code> is optional +between an option name and its value. +</p> +<dl compact="compact"> +<dt><strong>–repository</strong> <em>url|path</em></dt> +<dd><a name="tlmgr-_002d_002drepository-url_007cpath"></a> +<p>Specifies the package repository from which packages should be installed +or updated, overriding the default package repository found in the +installation’s TeX Live Package Database (a.k.a. the TLPDB, defined +entirely in the file <code>tlpkg/texlive.tlpdb</code>). The documentation for +<code>install-tl</code> has more details about this +(<a href="http://tug.org/texlive/doc/install-tl.html">http://tug.org/texlive/doc/install-tl.html</a>). +</p> +<p><code>--repository</code> changes the repository location only for the current +run; to make a permanent change, use <code>option repository</code> (see the +<a href="#tlmgr-option">option</a> action). +</p> +<p>For backward compatibility and convenience, <code>--location</code> and <code>--repo</code> +are accepted as aliases for this option. +</p> +</dd> +<dt><strong>–gui</strong> [<em>action</em>]</dt> +<dd><a name="tlmgr-_002d_002dgui-_005baction_005d"></a> +<p><code>tlmgr</code> has a graphical interface as well as the command line +interface. You can give this option, <code>--gui</code>, together with an action +to be brought directly into the respective screen of the GUI. For +example, running +</p> +<pre class="verbatim"> tlmgr --gui update +</pre> +<p>starts you directly at the update screen. If no action is given, the +GUI will be started at the main screen. +</p> +</dd> +<dt><strong>–gui-lang</strong> <em>llcode</em></dt> +<dd><a name="tlmgr-_002d_002dgui_002dlang-llcode"></a> +<p>By default, the GUI tries to deduce your language from the environment +(on Windows via the registry, on Unix via <code>LC_MESSAGES</code>). If that fails +you can select a different language by giving this option with a +language code (based on ISO 639-1). Currently supported (but not +necessarily completely translated) are: English (en, default), Czech +(cs), German (de), French (fr), Italian (it), Japanese (ja), Dutch (nl), +Polish (pl), Brazilian Portuguese (pt_BR), Russian (ru), Slovak (sk), +Slovenian (sl), Serbian (sr), Ukrainian (uk), Vietnamese (vi), +simplified Chinese (zh_CN), and traditional Chinese (zh_TW). +</p> +</dd> +<dt><strong>–debug-translation</strong></dt> +<dd><a name="tlmgr-_002d_002ddebug_002dtranslation"></a> +<p>In GUI mode, this switch tells <code>tlmgr</code> to report any untranslated (or +missing) messages to standard error. This can help translators to see +what remains to be done. +</p> +</dd> +<dt><strong>–machine-readable</strong></dt> +<dd><a name="tlmgr-_002d_002dmachine_002dreadable"></a> +<p>Instead of the normal output intended for human consumption, write (to +standard output) a fixed format more suitable for machine parsing. See +the <a href="#tlmgr-MACHINE_002dREADABLE-OUTPUT">MACHINE-READABLE OUTPUT</a> section below. +</p> +</dd> +<dt><strong>–no-execute-actions</strong></dt> +<dd><a name="tlmgr-_002d_002dno_002dexecute_002dactions"></a> +<p>Suppress the execution of the execute actions as defined in the tlpsrc +files. Documented only for completeness, as this is only useful in +debugging. +</p> +</dd> +<dt><strong>–package-logfile</strong> <em>file</em></dt> +<dd><a name="tlmgr-_002d_002dpackage_002dlogfile-file"></a> +<p><code>tlmgr</code> logs all package actions (install, remove, update, failed +updates, failed restores) to a separate log file, by default +<code>TEXMFSYSVAR/web2c/tlmgr.log</code>. This option allows you to specific a +different file for the log. +</p> +</dd> +<dt><strong>–pause</strong></dt> +<dd><a name="tlmgr-_002d_002dpause"></a> +<p>This option makes <code>tlmgr</code> wait for user input before exiting. Useful on +Windows to avoid disappearing command windows. +</p> +</dd> +<dt><strong>–persistent-downloads</strong></dt> +<dd><a name="tlmgr-_002d_002dpersistent_002ddownloads"></a> +</dd> +<dt><strong>–no-persistent-downloads</strong></dt> +<dd><a name="tlmgr-_002d_002dno_002dpersistent_002ddownloads"></a> +<p>For network-based installations, this option (on by default) makes +<code>tlmgr</code> try to set up a persistent connection (using the <code>LWP</code> Perl +module). The idea is to open and reuse only one connection per session +between your computer and the server, instead of initiating a new +download for each package. +</p> +<p>If this is not possible, <code>tlmgr</code> will fall back to using <code>wget</code>. To +disable these persistent connections, use <code>--no-persistent-downloads</code>. +</p> +</dd> +<dt><strong>–pin-file</strong></dt> +<dd><a name="tlmgr-_002d_002dpin_002dfile"></a> +<p>Change the pinning file location from <code>TEXMFLOCAL/tlpkg/pinning.txt</code> +(see <a href="#tlmgr-Pinning">Pinning</a> below). Documented only for completeness, as this is +only useful in debugging. +</p> +</dd> +<dt><strong>–usermode</strong></dt> +<dd><a name="tlmgr-_002d_002dusermode"></a> +<p>Activates user mode for this run of <code>tlmgr</code>; see <a href="#tlmgr-USER-MODE">USER MODE</a> below. +</p> +</dd> +<dt><strong>–usertree</strong> <em>dir</em></dt> +<dd><a name="tlmgr-_002d_002dusertree-dir"></a> +<p>Uses <em>dir</em> for the tree in user mode; see <a href="#tlmgr-USER-MODE">USER MODE</a> below. +</p> +</dd> +</dl> + +<p>The standard options for TeX Live programs are also accepted: +<code>--help/-h/-?</code>, <code>--version</code>, <code>-q</code> (no informational messages), <code>-v</code> +(debugging messages, can be repeated). For the details about these, see +the <code>TeXLive::TLUtils</code> documentation. +</p> +<p>The <code>--version</code> option shows version information about the TeX Live +release and about the <code>tlmgr</code> script itself. If <code>-v</code> is also given, +revision number for the loaded TeX Live Perl modules are shown, too. +</p> +<hr> +<a name="tlmgr-ACTIONS"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-USER-MODE" accesskey="n" rel="next">tlmgr USER MODE</a>, Previous: <a href="#tlmgr-OPTIONS" accesskey="p" rel="prev">tlmgr OPTIONS</a>, Up: <a href="#tlmgr" accesskey="u" rel="up">tlmgr</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="ACTIONS"></a> +<h3 class="appendixsec">B.6 ACTIONS</h3> + +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#tlmgr-help" accesskey="1">tlmgr help</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-version" accesskey="2">tlmgr version</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-backup-_005b_002d_002dclean_005b_003dN_005d_005d-_005b_002d_002dbackupdir-dir_005d-_005b_002d_002dall-_007c-pkg_005d_002e_002e_002e" accesskey="3">tlmgr backup [--clean[=<em>N</em>]] [--backupdir <em>dir</em>] [--all | <em>pkg</em>]...</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-candidates-pkg" accesskey="4">tlmgr candidates <em>pkg</em></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-check-_005boption_005d_002e_002e_002e-_005bfiles_007cdepends_007cexecutes_007crunfiles_007call_005d" accesskey="5">tlmgr check [<em>option</em>]... [files|depends|executes|runfiles|all]</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-conf-_005btexmf_007ctlmgr_007cupdmap-_005b_002d_002dconffile-file_005d-_005b_002d_002ddelete_005d-_005bkey-_005bvalue_005d_005d_005d" accesskey="6">tlmgr conf [texmf|tlmgr|updmap [--conffile <em>file</em>] [--delete] [<em>key</em> [<em>value</em>]]]</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-dump_002dtlpdb-_005b_002d_002dlocal_007c_002d_002dremote_005d" accesskey="7">tlmgr dump-tlpdb [--local|--remote]</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-generate-_005boption_005d_002e_002e_002e-what" accesskey="8">tlmgr generate [<em>option</em>]... <em>what</em></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-gui" accesskey="9">tlmgr gui</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-info-_005boption_002e_002e_002e_005d-_005bcollections_007cschemes_007cpkg_002e_002e_002e_005d">tlmgr info [<em>option</em>...] [collections|schemes|<em>pkg</em>...]</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-init_002dusertree">tlmgr init-usertree</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-install-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e">tlmgr install [<em>option</em>]... <em>pkg</em>...</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-option">tlmgr option</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-paper">tlmgr paper</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-path-_005b_002d_002dw32mode_003duser_007cadmin_005d-_005badd_007cremove_005d">tlmgr path [--w32mode=user|admin] [add|remove]</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-pinning">tlmgr pinning</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-platform-list_007cadd_007cremove-platform_002e_002e_002e">tlmgr platform list|add|remove <em>platform</em>...</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-platform-set-platform">tlmgr platform set <em>platform</em></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-platform-set-auto">tlmgr platform set auto</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-postaction-_005b_002d_002dw32mode_003duser_007cadmin_005d-_005b_002d_002dfileassocmode_003d1_007c2_005d-_005b_002d_002dall_005d-_005binstall_007cremove_005d-_005bshortcut_007cfileassoc_007cscript_005d-_005bpkg_005d_002e_002e_002e">tlmgr postaction [--w32mode=user|admin] [--fileassocmode=1|2] [--all] [install|remove] [shortcut|fileassoc|script] [<em>pkg</em>]...</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-print_002dplatform">tlmgr print-platform</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-restore-_005b_002d_002dbackupdir-dir_005d-_005b_002d_002dall-_007c-pkg-_005brev_005d_005d">tlmgr restore [--backupdir <em>dir</em>] [--all | <em>pkg</em> [<em>rev</em>]]</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-remove-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e">tlmgr remove [<em>option</em>]... <em>pkg</em>...</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-repository">tlmgr repository</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-what">tlmgr search [<em>option</em>...] <em>what</em></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-uninstall">tlmgr uninstall</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-update-_005boption_005d_002e_002e_002e-_005bpkg_005d_002e_002e_002e">tlmgr update [<em>option</em>]... [<em>pkg</em>]...</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + +<hr> +<a name="tlmgr-help"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-version" accesskey="n" rel="next">tlmgr version</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="help"></a> +<h4 class="appendixsubsec">B.6.1 help</h4> + +<p>Display this help information and exit (same as <code>--help</code>, and on the +web at <a href="http://tug.org/texlive/doc/tlmgr.html">http://tug.org/texlive/doc/tlmgr.html</a>). Sometimes the +<code>perldoc</code> and/or <code>PAGER</code> programs on the system have problems, +resulting in control characters being literally output. This can’t +always be detected, but you can set the <code>NOPERLDOC</code> environment +variable and <code>perldoc</code> will not be used. +</p> +<hr> +<a name="tlmgr-version"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-backup-_005b_002d_002dclean_005b_003dN_005d_005d-_005b_002d_002dbackupdir-dir_005d-_005b_002d_002dall-_007c-pkg_005d_002e_002e_002e" accesskey="n" rel="next">tlmgr backup [--clean[=<em>N</em>]] [--backupdir <em>dir</em>] [--all | <em>pkg</em>]...</a>, Previous: <a href="#tlmgr-help" accesskey="p" rel="prev">tlmgr help</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="version"></a> +<h4 class="appendixsubsec">B.6.2 version</h4> + +<p>Gives version information (same as <code>--version</code>). +</p> +<p>If <code>-v</code> has been given the revisions of the used modules are reported, too. +</p> +<hr> +<a name="tlmgr-backup-_005b_002d_002dclean_005b_003dN_005d_005d-_005b_002d_002dbackupdir-dir_005d-_005b_002d_002dall-_007c-pkg_005d_002e_002e_002e"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-candidates-pkg" accesskey="n" rel="next">tlmgr candidates <em>pkg</em></a>, Previous: <a href="#tlmgr-version" accesskey="p" rel="prev">tlmgr version</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="backup-_005b_002d_002dclean_005b_003dN_005d_005d-_005b_002d_002dbackupdir-dir_005d-_005b_002d_002dall-_007c-pkg_005d_002e_002e_002e"></a> +<h4 class="appendixsubsec">B.6.3 backup [–clean[=<em>N</em>]] [–backupdir <em>dir</em>] [–all | <em>pkg</em>]...</h4> + +<p>If the <code>--clean</code> option is not specified, this action makes a backup of +the given packages, or all packages given <code>--all</code>. These backups are +saved to the value of the <code>--backupdir</code> option, if that is an existing and +writable directory. If <code>--backupdir</code> is not given, the <code>backupdir</code> +option setting in the TLPDB is used, if present. If both are missing, +no backups are made. +</p> +<p>If the <code>--clean</code> option is specified, backups are pruned (removed) +instead of saved. The optional integer value <em>N</em> may be specified to +set the number of backups that will be retained when cleaning. If <code>N</code> +is not given, the value of the <code>autobackup</code> option is used. If both are +missing, an error is issued. For more details of backup pruning, see +the <code>option</code> action. +</p> +<p>Options: +</p> +<dl compact="compact"> +<dt><strong>–backupdir</strong> <em>directory</em></dt> +<dd><a name="tlmgr-_002d_002dbackupdir-directory"></a> +<p>Overrides the <code>backupdir</code> option setting in the TLPDB. +The <em>directory</em> argument is required and must specify an existing, +writable directory where backups are to be placed. +</p> +</dd> +<dt><strong>–all</strong></dt> +<dd><a name="tlmgr-_002d_002dall"></a> +<p>If <code>--clean</code> is not specified, make a backup of all packages in the TeX +Live installation; this will take quite a lot of space and time. If +<code>--clean</code> is specified, all packages are pruned. +</p> +</dd> +<dt><strong>–clean</strong>[=<em>N</em>]</dt> +<dd><a name="tlmgr-_002d_002dclean_005b_003dN_005d"></a> +<p>Instead of making backups, prune the backup directory of old backups, as +explained above. The optional integer argument <em>N</em> overrides the +<code>autobackup</code> option set in the TLPDB. You must use <code>--all</code> or a list +of packages together with this option, as desired. +</p> +</dd> +<dt><strong>–dry-run</strong></dt> +<dd><a name="tlmgr-_002d_002ddry_002drun"></a> +<p>Nothing is actually backed up or removed; instead, the actions to be +performed are written to the terminal. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-candidates-pkg"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-check-_005boption_005d_002e_002e_002e-_005bfiles_007cdepends_007cexecutes_007crunfiles_007call_005d" accesskey="n" rel="next">tlmgr check [<em>option</em>]... [files|depends|executes|runfiles|all]</a>, Previous: <a href="#tlmgr-backup-_005b_002d_002dclean_005b_003dN_005d_005d-_005b_002d_002dbackupdir-dir_005d-_005b_002d_002dall-_007c-pkg_005d_002e_002e_002e" accesskey="p" rel="prev">tlmgr backup [--clean[=<em>N</em>]] [--backupdir <em>dir</em>] [--all | <em>pkg</em>]...</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="candidates-pkg"></a> +<h4 class="appendixsubsec">B.6.4 candidates <em>pkg</em></h4> + +<dl compact="compact"> +<dt><strong>candidates <em>pkg</em></strong></dt> +<dd><a name="tlmgr-candidates-pkg-1"></a> +<p>Shows the available candidate repositories for package <em>pkg</em>. +See <a href="#tlmgr-MULTIPLE-REPOSITORIES">MULTIPLE REPOSITORIES</a> below. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-check-_005boption_005d_002e_002e_002e-_005bfiles_007cdepends_007cexecutes_007crunfiles_007call_005d"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-conf-_005btexmf_007ctlmgr_007cupdmap-_005b_002d_002dconffile-file_005d-_005b_002d_002ddelete_005d-_005bkey-_005bvalue_005d_005d_005d" accesskey="n" rel="next">tlmgr conf [texmf|tlmgr|updmap [--conffile <em>file</em>] [--delete] [<em>key</em> [<em>value</em>]]]</a>, Previous: <a href="#tlmgr-candidates-pkg" accesskey="p" rel="prev">tlmgr candidates <em>pkg</em></a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="check-_005boption_005d_002e_002e_002e-_005bfiles_007cdepends_007cexecutes_007crunfiles_007call_005d"></a> +<h4 class="appendixsubsec">B.6.5 check [<em>option</em>]... [files|depends|executes|runfiles|all]</h4> + +<p>Executes one (or all) check(s) on the consistency of the installation. +</p> +<dl compact="compact"> +<dt><strong>files</strong></dt> +<dd><a name="tlmgr-files"></a> +<p>Checks that all files listed in the local TLPDB (<code>texlive.tlpdb</code>) are +actually present, and lists those missing. +</p> +</dd> +<dt><strong>depends</strong></dt> +<dd><a name="tlmgr-depends"></a> +<p>Lists those packages which occur as dependencies in an installed collections, +but are themselves not installed, and those packages that are not +contained in any collection. +</p> +<p>If you call <code>tlmgr check collections</code> this test will be carried out +instead since former versions for <code>tlmgr</code> called it that way. +</p> +</dd> +<dt><strong>executes</strong></dt> +<dd><a name="tlmgr-executes"></a> +<p>Check that the files referred to by <code>execute</code> directives in the TeX +Live Database are present. +</p> +</dd> +<dt><strong>runfiles</strong></dt> +<dd><a name="tlmgr-runfiles"></a> +<p>List those filenames that are occurring more than one time in the runfiles. +</p> +</dd> +</dl> + +<p>Options: +</p> +<dl compact="compact"> +<dt><strong>–use-svn</strong></dt> +<dd><a name="tlmgr-_002d_002duse_002dsvn"></a> +<p>Use the output of <code>svn status</code> instead of listing the files; for +checking the TL development repository. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-conf-_005btexmf_007ctlmgr_007cupdmap-_005b_002d_002dconffile-file_005d-_005b_002d_002ddelete_005d-_005bkey-_005bvalue_005d_005d_005d"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-dump_002dtlpdb-_005b_002d_002dlocal_007c_002d_002dremote_005d" accesskey="n" rel="next">tlmgr dump-tlpdb [--local|--remote]</a>, Previous: <a href="#tlmgr-check-_005boption_005d_002e_002e_002e-_005bfiles_007cdepends_007cexecutes_007crunfiles_007call_005d" accesskey="p" rel="prev">tlmgr check [<em>option</em>]... [files|depends|executes|runfiles|all]</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="conf-_005btexmf_007ctlmgr_007cupdmap-_005b_002d_002dconffile-file_005d-_005b_002d_002ddelete_005d-_005bkey-_005bvalue_005d_005d_005d"></a> +<h4 class="appendixsubsec">B.6.6 conf [texmf|tlmgr|updmap [–conffile <em>file</em>] [–delete] [<em>key</em> [<em>value</em>]]]</h4> + +<p>With only <code>conf</code>, show general configuration information for TeX Live, +including active configuration files, path settings, and more. This is +like the <code>texconfig conf</code> call, but works on all supported platforms. +</p> +<p>With either <code>conf texmf</code>, <code>conf tlmgr</code>, or <code>conf updmap</code> given in +addition, shows all key/value pairs (i.e., all settings) as saved in +<code>ROOT/texmf.cnf</code>, the tlmgr configuration file (see below), or the +first found (via kpsewhich) <code>updmap.cfg</code> file, respectively. +</p> +<p>If <em>key</em> is given in addition, shows the value of only that <em>key</em> in +the respective file. If option <em>–delete</em> is also given, the +configuration file – it is removed, not just commented out! +</p> +<p>If <em>value</em> is given in addition, <em>key</em> is set to <em>value</em> in the +respective file. <em>No error checking is done!</em> +</p> +<p>In all cases the file used can be explicitly specified via the option +<code>--conffile <em>file</em></code>, in case one wants to operate on a different file. +</p> +<p>Practical application: if the execution of (some or all) system commands +via <code>\write18</code> was left enabled during installation, you can disable +it afterwards: +</p> +<pre class="verbatim"> tlmgr conf texmf shell_escape 0 +</pre> +<p>A more complicated example: the <code>TEXMFHOME</code> tree (see the main TeX Live +guide, <a href="http://tug.org/texlive/doc.html">http://tug.org/texlive/doc.html</a>) can be set to multiple +directories, but they must be enclosed in braces and separated by +commas, so quoting the value to the shell is a good idea. Thus: +</p> +<pre class="verbatim"> tlmgr conf texmf TEXMFHOME "{~/texmf,~/texmfbis}" +</pre> +<p>Warning: The general facility is here, but tinkering with settings in +this way is very strongly discouraged. Again, no error checking on +either keys or values is done, so any sort of breakage is possible. +</p> +<hr> +<a name="tlmgr-dump_002dtlpdb-_005b_002d_002dlocal_007c_002d_002dremote_005d"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-generate-_005boption_005d_002e_002e_002e-what" accesskey="n" rel="next">tlmgr generate [<em>option</em>]... <em>what</em></a>, Previous: <a href="#tlmgr-conf-_005btexmf_007ctlmgr_007cupdmap-_005b_002d_002dconffile-file_005d-_005b_002d_002ddelete_005d-_005bkey-_005bvalue_005d_005d_005d" accesskey="p" rel="prev">tlmgr conf [texmf|tlmgr|updmap [--conffile <em>file</em>] [--delete] [<em>key</em> [<em>value</em>]]]</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="dump_002dtlpdb-_005b_002d_002dlocal_007c_002d_002dremote_005d"></a> +<h4 class="appendixsubsec">B.6.7 dump-tlpdb [–local|–remote]</h4> + +<p>Dump complete local or remote TLPDB to standard output, as-is. The +output is analogous to the <code>--machine-readable</code> output; see +<a href="#tlmgr-MACHINE_002dREADABLE-OUTPUT">MACHINE-READABLE OUTPUT</a> section. +</p> +<p>Options: +</p> +<dl compact="compact"> +<dt><strong>–local</strong></dt> +<dd><a name="tlmgr-_002d_002dlocal"></a> +<p>Dump the local tlpdb. +</p> +</dd> +<dt><strong>–remote</strong></dt> +<dd><a name="tlmgr-_002d_002dremote"></a> +<p>Dump the remote tlpdb. +</p> +</dd> +</dl> + +<p>Exactly one of <code>--local</code> and <code>--remote</code> must be given. +</p> +<p>In either case, the first line of the output specifies the repository +location, in this format: +</p> +<pre class="verbatim"> "location-url" "\t" location +</pre> +<p>where <code>location-url</code> is the literal field name, followed by a tab, and +<em>location</em> is the file or url to the repository. +</p> +<p>Line endings may be either LF or CRLF depending on the current platform. +</p> +<hr> +<a name="tlmgr-generate-_005boption_005d_002e_002e_002e-what"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-gui" accesskey="n" rel="next">tlmgr gui</a>, Previous: <a href="#tlmgr-dump_002dtlpdb-_005b_002d_002dlocal_007c_002d_002dremote_005d" accesskey="p" rel="prev">tlmgr dump-tlpdb [--local|--remote]</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="generate-_005boption_005d_002e_002e_002e-what"></a> +<h4 class="appendixsubsec">B.6.8 generate [<em>option</em>]... <em>what</em></h4> + +<dl compact="compact"> +<dt><strong>generate language</strong></dt> +<dd><a name="tlmgr-generate-language"></a> +</dd> +<dt><strong>generate language.dat</strong></dt> +<dd><a name="tlmgr-generate-language_002edat"></a> +</dd> +<dt><strong>generate language.def</strong></dt> +<dd><a name="tlmgr-generate-language_002edef"></a> +</dd> +<dt><strong>generate language.dat.lua</strong></dt> +<dd><a name="tlmgr-generate-language_002edat_002elua"></a> +</dd> +<dt><strong>generate fmtutil</strong></dt> +<dd><a name="tlmgr-generate-fmtutil"></a> +</dd> +</dl> + +<p>The <code>generate</code> action overwrites any manual changes made in the +respective files: it recreates them from scratch based on the +information of the installed packages, plus local adaptions. +The TeX Live installer and <code>tlmgr</code> routinely call <code>generate</code> for +all of these files. +</p> +<p>For managing your own fonts, please read the <code>updmap --help</code> +information and/or <a href="http://tug.org/fonts/fontinstall.html">http://tug.org/fonts/fontinstall.html</a>. +</p> +<p>In more detail: <code>generate</code> remakes any of the configuration files +<code>language.dat</code>, <code>language.def</code>, <code>language.dat.lua</code>, and +<code>fmtutil.cnf</code>, from the information present in the local TLPDB, plus +locally-maintained files. +</p> +<p>The locally-maintained files are <code>language-local.dat</code>, +<code>language-local.def</code>, <code>language-local.dat.lua</code>, or +<code>fmtutil-local.cnf</code>, searched for in <code>TEXMFLOCAL</code> in the respective +directories. If local additions are present, the final file is made by +starting with the main file, omitting any entries that the local file +specifies to be disabled, and finally appending the local file. +</p> +<p>(Historical note: The formerly supported <code>updmap-local.cfg</code> is no longer +read, since <code>updmap</code> now supports multiple <code>updmap.cfg</code> files. Thus, +local additions can and should be put into an <code>updmap.cfg</code> file in +<code>TEXMFLOCAL</code>. The <code>generate updmap</code> action no longer exists.) +</p> +<p>Local files specify entries to be disabled with a comment line, namely +one of these: +</p> +<pre class="verbatim"> #!NAME + %!NAME + --!NAME +</pre> +<p>where <code>fmtutil.cnf</code> uses <code>#</code>, <code>language.dat</code> and <code>language.def</code> use +<code>%</code>, and <code>language.dat.lua</code> use <code>--</code>. In all cases, the <em>name</em> is +the respective format name or hyphenation pattern identifier. +Examples: +</p> +<pre class="verbatim"> #!pdflatex + %!german + --!usenglishmax +</pre> +<p>(Of course, you’re not likely to actually want to disable those +particular items. They’re just examples.) +</p> +<p>After such a disabling line, the local file can include another entry +for the same item, if a different definition is desired. In general, +except for the special disabling lines, the local files follow the same +syntax as the master files. +</p> +<p>The form <code>generate language</code> recreates all three files <code>language.dat</code>, +<code>language.def</code>, and <code>language.dat.lua</code>, while the forms with an +extension recreates only that given language file. +</p> +<p>Options: +</p> +<dl compact="compact"> +<dt><strong>–dest</strong> <em>output_file</em></dt> +<dd><a name="tlmgr-_002d_002ddest-output_005ffile"></a> +<p>specifies the output file (defaults to the respective location in +<code>TEXMFSYSVAR</code>). If <code>--dest</code> is given to <code>generate language</code>, it +serves as a basename onto which <code>.dat</code> will be appended for the name of +the <code>language.dat</code> output file, <code>.def</code> will be appended to the value +for the name of the <code>language.def</code> output file, and <code>.dat.lua</code> to the +name of the <code>language.dat.lua</code> file. (This is just to avoid +overwriting; if you want a specific name for each output file, we +recommend invoking <code>tlmgr</code> twice.) +</p> +</dd> +<dt><strong>–localcfg</strong> <em>local_conf_file</em></dt> +<dd><a name="tlmgr-_002d_002dlocalcfg-local_005fconf_005ffile"></a> +<p>specifies the (optional) local additions (defaults to the respective +location in <code>TEXMFLOCAL</code>). +</p> +</dd> +<dt><strong>–rebuild-sys</strong></dt> +<dd><a name="tlmgr-_002d_002drebuild_002dsys"></a> +<p>tells tlmgr to run necessary programs after config files have been +regenerated. These are: +<code>fmtutil-sys --all</code> after <code>generate fmtutil</code>, +<code>fmtutil-sys --byhyphen .../language.dat</code> after <code>generate language.dat</code>, +and +<code>fmtutil-sys --byhyphen .../language.def</code> after <code>generate language.def</code>. +</p> +<p>These subsequent calls cause the newly-generated files to actually take +effect. This is not done by default since those calls are lengthy +processes and one might want to made several related changes in +succession before invoking these programs. +</p> +</dd> +</dl> + +<p>The respective locations are as follows: +</p> +<pre class="verbatim"> tex/generic/config/language.dat (and language-local.dat); + tex/generic/config/language.def (and language-local.def); + tex/generic/config/language.dat.lua (and language-local.dat.lua); + web2c/fmtutil.cnf (and fmtutil-local.cnf); +</pre> +<hr> +<a name="tlmgr-gui"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-info-_005boption_002e_002e_002e_005d-_005bcollections_007cschemes_007cpkg_002e_002e_002e_005d" accesskey="n" rel="next">tlmgr info [<em>option</em>...] [collections|schemes|<em>pkg</em>...]</a>, Previous: <a href="#tlmgr-generate-_005boption_005d_002e_002e_002e-what" accesskey="p" rel="prev">tlmgr generate [<em>option</em>]... <em>what</em></a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="gui"></a> +<h4 class="appendixsubsec">B.6.9 gui</h4> + +<p>Start the graphical user interface. See <strong>GUI</strong> below. +</p> +<hr> +<a name="tlmgr-info-_005boption_002e_002e_002e_005d-_005bcollections_007cschemes_007cpkg_002e_002e_002e_005d"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-init_002dusertree" accesskey="n" rel="next">tlmgr init-usertree</a>, Previous: <a href="#tlmgr-gui" accesskey="p" rel="prev">tlmgr gui</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="info-_005boption_002e_002e_002e_005d-_005bcollections_007cschemes_007cpkg_002e_002e_002e_005d"></a> +<h4 class="appendixsubsec">B.6.10 info [<em>option</em>...] [collections|schemes|<em>pkg</em>...]</h4> + +<p>With no argument, lists all packages available at the package +repository, prefixing those already installed with <code>i</code>. +</p> +<p>With the single word <code>collections</code> or <code>schemes</code> as the argument, lists +the request type instead of all packages. +</p> +<p>With any other arguments, display information about <em>pkg</em>: the name, +category, short and long description, installation status, and TeX Live +revision number. If <em>pkg</em> is not locally installed, searches in the +remote installation source. +</p> +<p>It also displays information taken from the TeX Catalogue, namely the +package version, date, and license. Consider these, especially the +package version, as approximations only, due to timing skew of the +updates of the different pieces. By contrast, the <code>revision</code> value +comes directly from TL and is reliable. +</p> +<p>The former actions <code>show</code> and <code>list</code> are merged into this action, +but are still supported for backward compatibility. +</p> +<p>Options: +</p> +<dl compact="compact"> +<dt><strong>–list</strong></dt> +<dd><a name="tlmgr-_002d_002dlist"></a> +<p>If the option <code>--list</code> is given with a package, the list of contained +files is also shown, including those for platform-specific dependencies. +When given with schemes and collections, <code>--list</code> outputs their +dependencies in a similar way. +</p> +</dd> +<dt><strong>–only-installed</strong></dt> +<dd><a name="tlmgr-_002d_002donly_002dinstalled"></a> +<p>If this options is given, the installation source will +not be used; only locally installed packages, collections, or schemes +are listed. +(Does not work for listing of packages for now) +</p> +</dd> +<dt><strong>–taxonomy</strong></dt> +<dd><a name="tlmgr-_002d_002dtaxonomy"></a> +</dd> +<dt><strong>–keyword</strong></dt> +<dd><a name="tlmgr-_002d_002dkeyword"></a> +</dd> +<dt><strong>–functionality</strong></dt> +<dd><a name="tlmgr-_002d_002dfunctionality"></a> +</dd> +<dt><strong>–characterization</strong></dt> +<dd><a name="tlmgr-_002d_002dcharacterization"></a> +<p>In addition to the normal data displayed, also display information for +given packages from the corresponding taxonomy (or all of them). See +<a href="#tlmgr-TAXONOMIES">TAXONOMIES</a> below for details. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-init_002dusertree"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-install-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e" accesskey="n" rel="next">tlmgr install [<em>option</em>]... <em>pkg</em>...</a>, Previous: <a href="#tlmgr-info-_005boption_002e_002e_002e_005d-_005bcollections_007cschemes_007cpkg_002e_002e_002e_005d" accesskey="p" rel="prev">tlmgr info [<em>option</em>...] [collections|schemes|<em>pkg</em>...]</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="init_002dusertree"></a> +<h4 class="appendixsubsec">B.6.11 init-usertree</h4> + +<p>Sets up a texmf tree for so-called user mode management, either the +default user tree (<code>TEXMFHOME</code>), or one specified on the command line +with <code>--usertree</code>. See <a href="#tlmgr-USER-MODE">USER MODE</a> below. +</p> +<hr> +<a name="tlmgr-install-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-option" accesskey="n" rel="next">tlmgr option</a>, Previous: <a href="#tlmgr-init_002dusertree" accesskey="p" rel="prev">tlmgr init-usertree</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="install-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e"></a> +<h4 class="appendixsubsec">B.6.12 install [<em>option</em>]... <em>pkg</em>...</h4> + +<p>Install each <em>pkg</em> given on the command line. By default this installs +all packages on which the given <em>pkg</em>s are dependent, also. Options: +</p> +<dl compact="compact"> +<dt><strong>–file</strong></dt> +<dd><a name="tlmgr-_002d_002dfile"></a> +<p>Instead of fetching a package from the installation repository, use +the package files given on the command line. These files must +be standard TeX Live package files (with contained tlpobj file). +</p> +</dd> +<dt><strong>–reinstall</strong></dt> +<dd><a name="tlmgr-_002d_002dreinstall"></a> +<p>Reinstall a package (including dependencies for collections) even if it +already seems to be installed (i.e, is present in the TLPDB). This is +useful to recover from accidental removal of files in the hierarchy. +</p> +<p>When re-installing, only dependencies on normal packages are followed +(i.e., not those of category Scheme or Collection). +</p> +</dd> +<dt><strong>–no-depends</strong></dt> +<dd><a name="tlmgr-_002d_002dno_002ddepends"></a> +<p>Do not install dependencies. (By default, installing a package ensures +that all dependencies of this package are fulfilled.) +</p> +</dd> +<dt><strong>–no-depends-at-all</strong></dt> +<dd><a name="tlmgr-_002d_002dno_002ddepends_002dat_002dall"></a> +<p>Normally, when you install a package which ships binary files the +respective binary package will also be installed. That is, for a +package <code>foo</code>, the package <code>foo.i386-linux</code> will also be installed on +an <code>i386-linux</code> system. This option suppresses this behavior, and also +implies <code>--no-depends</code>. Don’t use it unless you are sure of what you +are doing. +</p> +</dd> +<dt><strong>–dry-run</strong></dt> +<dd><a name="tlmgr-_002d_002ddry_002drun-1"></a> +<p>Nothing is actually installed; instead, the actions to be performed are +written to the terminal. +</p> +</dd> +<dt><strong>–force</strong></dt> +<dd><a name="tlmgr-_002d_002dforce"></a> +<p>If updates to <code>tlmgr</code> itself (or other parts of the basic +infrastructure) are present, <code>tlmgr</code> will bail out and not perform the +installation unless this option is given. Not recommended. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-option"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-paper" accesskey="n" rel="next">tlmgr paper</a>, Previous: <a href="#tlmgr-install-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e" accesskey="p" rel="prev">tlmgr install [<em>option</em>]... <em>pkg</em>...</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="option"></a> +<h4 class="appendixsubsec">B.6.13 option</h4> + +<dl compact="compact"> +<dt><strong>option [show]</strong></dt> +<dd><a name="tlmgr-option-_005bshow_005d"></a> +</dd> +<dt><strong>option showall</strong></dt> +<dd><a name="tlmgr-option-showall"></a> +</dd> +<dt><strong>option <em>key</em> [<em>value</em>]</strong></dt> +<dd><a name="tlmgr-option-key-_005bvalue_005d"></a> +</dd> +</dl> + +<p>The first form shows the global TeX Live settings currently saved in the +TLPDB with a short description and the <code>key</code> used for changing it in +parentheses. +</p> +<p>The second form is similar, but also shows options which can be defined +but are not currently set to any value. +</p> +<p>In the third form, if <em>value</em> is not given, the setting for <em>key</em> is +displayed. If <em>value</em> is present, <em>key</em> is set to <em>value</em>. +</p> +<p>Possible values for <em>key</em> are (run <code>tlmgr option showall</code> for +the definitive list): +</p> +<pre class="verbatim"> repository (default package repository), + formats (create formats at installation time), + postcode (run postinst code blobs) + docfiles (install documentation files), + srcfiles (install source files), + backupdir (default directory for backups), + autobackup (number of backups to keep). + sys_bin (directory to which executables are linked by the path action) + sys_man (directory to which man pages are linked by the path action) + sys_info (directory to which Info files are linked by the path action) + desktop_integration (Windows-only: create Start menu shortcuts) + fileassocs (Windows-only: change file associations) + multiuser (Windows-only: install for all users) +</pre> +<p>One common use of <code>option</code> is to permanently change the installation to +get further updates from the Internet, after originally installing from +DVD. To do this, you can run +</p> +<pre class="verbatim"> tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet +</pre> +<p>The <code>install-tl</code> documentation has more information about the possible +values for <code>repository</code>. (For backward compatibility, <code>location</code> can +be used as alternative name for <code>repository</code>.) +</p> +<p>If <code>formats</code> is set (this is the default), then formats are regenerated +when either the engine or the format files have changed. Disable this +only when you know what you are doing. +</p> +<p>The <code>postcode</code> option controls execution of per-package +postinstallation action code. It is set by default, and again disabling +is not likely to be of interest except perhaps to developers. +</p> +<p>The <code>docfiles</code> and <code>srcfiles</code> options control the installation of +their respective files of a package. By default both are enabled (1). +This can be disabled (set to 0) if disk space is (very) limited. +</p> +<p>The options <code>autobackup</code> and <code>backupdir</code> determine the defaults for +the actions <code>update</code>, <code>backup</code> and <code>restore</code>. These three actions +need a directory in which to read or write the backups. If +<code>--backupdir</code> is not specified on the command line, the <code>backupdir</code> +option value is used (if set). +</p> +<p>The <code>autobackup</code> option (de)activates automatic generation of backups. +Its value is an integer. If the <code>autobackup</code> value is <code>-1</code>, no +backups are removed. If <code>autobackup</code> is 0 or more, it specifies the +number of backups to keep. Thus, backups are disabled if the value is +0. In the <code>--clean</code> mode of the <code>backup</code> action this option also +specifies the number to be kept. +</p> +<p>To setup <code>autobackup</code> to <code>-1</code> on the command line, use: +</p> +<pre class="verbatim"> tlmgr option -- autobackup -1 +</pre> +<p>The <code>--</code> avoids having the <code>-1</code> treated as an option. (<code>--</code> stops +parsing for options at the point where it appears; this is a general +feature across most Unix programs.) +</p> +<p>The <code>sys_bin</code>, <code>sys_man</code>, and <code>sys_info</code> options are used on +Unix-like systems to control the generation of links for executables, +info files and man pages. See the <code>path</code> action for details. +</p> +<p>The last three options control behaviour on Windows installations. If +<code>desktop_integration</code> is set, then some packages will install items in +a sub-folder of the Start menu for <code>tlmgr gui</code>, documentation, etc. If +<code>fileassocs</code> is set, Windows file associations are made (see also the +<code>postaction</code> action). Finally, if <code>multiuser</code> is set, then adaptions +to the registry and the menus are done for all users on the system +instead of only the current user. All three options are on by default. +</p> +<hr> +<a name="tlmgr-paper"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-path-_005b_002d_002dw32mode_003duser_007cadmin_005d-_005badd_007cremove_005d" accesskey="n" rel="next">tlmgr path [--w32mode=user|admin] [add|remove]</a>, Previous: <a href="#tlmgr-option" accesskey="p" rel="prev">tlmgr option</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="paper"></a> +<h4 class="appendixsubsec">B.6.14 paper</h4> + +<dl compact="compact"> +<dt><strong>paper [a4|letter]</strong></dt> +<dd><a name="tlmgr-paper-_005ba4_007cletter_005d"></a> +</dd> +<dt><strong>[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [<em>papersize</em>|–list]<!-- /@w --></strong></dt> +<dd><a name="tlmgr-_005bxdvi_007cpdftex_007cdvips_007cdvipdfmx_007ccontext_007cpsutils_005d-paper-_005bpapersize_007c_002d_002dlist_005d"></a> +</dd> +</dl> + +<p>With no arguments (<code>tlmgr paper</code>), shows the default paper size setting +for all known programs. +</p> +<p>With one argument (e.g., <code>tlmgr paper a4</code>), sets the default for all +known programs to that paper size. +</p> +<p>With a program given as the first argument and no paper size specified +(e.g., <code>tlmgr dvips paper</code>), shows the default paper size for that +program. +</p> +<p>With a program given as the first argument and a paper size as the last +argument (e.g., <code>tlmgr dvips paper a4</code>), set the default for that +program to that paper size. +</p> +<p>With a program given as the first argument and <code>--list</code> given as the +last argument (e.g., <code>tlmgr dvips paper --list</code>), shows all valid paper +sizes for that program. The first size shown is the default. +</p> +<p>Incidentally, this syntax of having a specific program name before the +<code>paper</code> keyword is unusual. It is inherited from the longstanding +<code>texconfig</code> script, which supports other configuration settings for +some programs, notably <code>dvips</code>. <code>tlmgr</code> does not support those extra +settings. +</p> +<hr> +<a name="tlmgr-path-_005b_002d_002dw32mode_003duser_007cadmin_005d-_005badd_007cremove_005d"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-pinning" accesskey="n" rel="next">tlmgr pinning</a>, Previous: <a href="#tlmgr-paper" accesskey="p" rel="prev">tlmgr paper</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="path-_005b_002d_002dw32mode_003duser_007cadmin_005d-_005badd_007cremove_005d"></a> +<h4 class="appendixsubsec">B.6.15 path [–w32mode=user|admin] [add|remove]</h4> + +<p>On Unix, merely adds or removes symlinks for binaries, man pages, and +info pages in the system directories specified by the respective options +(see the <a href="#tlmgr-option">option</a> description above). Does not change any +initialization files, either system or personal. +</p> +<p>On Windows, the registry part where the binary directory is added or +removed is determined in the following way: +</p> +<p>If the user has admin rights, and the option <code>--w32mode</code> is not given, +the setting <em>w32_multi_user</em> determines the location (i.e., if it is +on then the system path, otherwise the user path is changed). +</p> +<p>If the user has admin rights, and the option <code>--w32mode</code> is given, this +option determines the path to be adjusted. +</p> +<p>If the user does not have admin rights, and the option <code>--w32mode</code> +is not given, and the setting <em>w32_multi_user</em> is off, the user path +is changed, while if the setting <em>w32_multi_user</em> is on, a warning is +issued that the caller does not have enough privileges. +</p> +<p>If the user does not have admin rights, and the option <code>--w32mode</code> +is given, it must be <strong>user</strong> and the user path will be adjusted. If a +user without admin rights uses the option <code>--w32mode admin</code> a warning +is issued that the caller does not have enough privileges. +</p> +<hr> +<a name="tlmgr-pinning"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-platform-list_007cadd_007cremove-platform_002e_002e_002e" accesskey="n" rel="next">tlmgr platform list|add|remove <em>platform</em>...</a>, Previous: <a href="#tlmgr-path-_005b_002d_002dw32mode_003duser_007cadmin_005d-_005badd_007cremove_005d" accesskey="p" rel="prev">tlmgr path [--w32mode=user|admin] [add|remove]</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="pinning"></a> +<h4 class="appendixsubsec">B.6.16 pinning</h4> + +<p>The <code>pinning</code> action manages the pinning file, see <a href="#tlmgr-Pinning">Pinning</a> below. +</p> +<dl compact="compact"> +<dt><code>pinning show</code></dt> +<dd><a name="tlmgr-pinning-show"></a> +<p>Shows the current pinning data. +</p> +</dd> +<dt><code>pinning add</code> <em>repo</em> <em>pkgglob</em>...</dt> +<dd><a name="tlmgr-pinning-add-repo-pkgglob_002e_002e_002e"></a> +<p>Pins the packages matching the <em>pkgglob</em>(s) to the repository +<em>repo</em>. +</p> +</dd> +<dt><code>pinning remove</code> <em>repo</em> <em>pkgglob</em>...</dt> +<dd><a name="tlmgr-pinning-remove-repo-pkgglob_002e_002e_002e"></a> +<p>Any packages recorded in the pinning file matching the <pkgglob>s for +the given repository <em>repo</em> are removed. +</p> +</dd> +<dt><code>pinning remove <em>repo</em> --all</code></dt> +<dd><a name="tlmgr-pinning-remove-repo-_002d_002dall"></a> +<p>Remove all pinning data for repository <em>repo</em>. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-platform-list_007cadd_007cremove-platform_002e_002e_002e"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-platform-set-platform" accesskey="n" rel="next">tlmgr platform set <em>platform</em></a>, Previous: <a href="#tlmgr-pinning" accesskey="p" rel="prev">tlmgr pinning</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="platform-list_007cadd_007cremove-platform_002e_002e_002e"></a> +<h4 class="appendixsubsec">B.6.17 platform list|add|remove <em>platform</em>...</h4> + +<hr> +<a name="tlmgr-platform-set-platform"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-platform-set-auto" accesskey="n" rel="next">tlmgr platform set auto</a>, Previous: <a href="#tlmgr-platform-list_007cadd_007cremove-platform_002e_002e_002e" accesskey="p" rel="prev">tlmgr platform list|add|remove <em>platform</em>...</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="platform-set-platform"></a> +<h4 class="appendixsubsec">B.6.18 platform set <em>platform</em></h4> + +<hr> +<a name="tlmgr-platform-set-auto"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-postaction-_005b_002d_002dw32mode_003duser_007cadmin_005d-_005b_002d_002dfileassocmode_003d1_007c2_005d-_005b_002d_002dall_005d-_005binstall_007cremove_005d-_005bshortcut_007cfileassoc_007cscript_005d-_005bpkg_005d_002e_002e_002e" accesskey="n" rel="next">tlmgr postaction [--w32mode=user|admin] [--fileassocmode=1|2] [--all] [install|remove] [shortcut|fileassoc|script] [<em>pkg</em>]...</a>, Previous: <a href="#tlmgr-platform-set-platform" accesskey="p" rel="prev">tlmgr platform set <em>platform</em></a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="platform-set-auto"></a> +<h4 class="appendixsubsec">B.6.19 platform set auto</h4> + +<p><code>platform list</code> lists the TeX Live names of all the platforms +(a.k.a. architectures), (<code>i386-linux</code>, ...) available at the package +repository. +</p> +<p><code>platform add</code> <em>platform</em>... adds the executables for each given platform +<em>platform</em> to the installation from the repository. +</p> +<p><code>platform remove</code> <em>platform</em>... removes the executables for each given +platform <em>platform</em> from the installation, but keeps the currently +running platform in any case. +</p> +<p><code>platform set</code> <em>platform</em> switches TeX Live to always use the given +platform instead of auto detection. +</p> +<p><code>platform set auto</code> switches TeX Live to auto detection mode for platform. +</p> +<p>Platform detection is needed to select the proper <code>xz</code>, <code>xzdec</code> and +<code>wget</code> binaries that are shipped with TeX Live. +</p> +<p><code>arch</code> is a synonym for <code>platform</code>. +</p> +<p>Options: +</p> +<dl compact="compact"> +<dt><strong>–dry-run</strong></dt> +<dd><a name="tlmgr-_002d_002ddry_002drun-2"></a> +<p>Nothing is actually installed; instead, the actions to be performed are +written to the terminal. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-postaction-_005b_002d_002dw32mode_003duser_007cadmin_005d-_005b_002d_002dfileassocmode_003d1_007c2_005d-_005b_002d_002dall_005d-_005binstall_007cremove_005d-_005bshortcut_007cfileassoc_007cscript_005d-_005bpkg_005d_002e_002e_002e"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-print_002dplatform" accesskey="n" rel="next">tlmgr print-platform</a>, Previous: <a href="#tlmgr-platform-set-auto" accesskey="p" rel="prev">tlmgr platform set auto</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="postaction-_005b_002d_002dw32mode_003duser_007cadmin_005d-_005b_002d_002dfileassocmode_003d1_007c2_005d-_005b_002d_002dall_005d-_005binstall_007cremove_005d-_005bshortcut_007cfileassoc_007cscript_005d-_005bpkg_005d_002e_002e_002e"></a> +<h4 class="appendixsubsec">B.6.20 postaction [–w32mode=user|admin] [–fileassocmode=1|2] [–all] [install|remove] [shortcut|fileassoc|script] [<em>pkg</em>]...</h4> + +<p>Carry out the postaction <code>shortcut</code>, <code>fileassoc</code>, or <code>script</code> given +as the second required argument in install or remove mode (which is the +first required argument), for either the packages given on the command +line, or for all if <code>--all</code> is given. +</p> +<p>If the option <code>--w32mode</code> is given the value <code>user</code>, all actions will +only be carried out in the user-accessible parts of the +registry/filesystem, while the value <code>admin</code> selects the system-wide +parts of the registry for the file associations. If you do not have +enough permissions, using <code>--w32mode=admin</code> will not succeed. +</p> +<p><code>--fileassocmode</code> specifies the action for file associations. If it is +set to 1 (the default), only new associations are added; if it is set to +2, all associations are set to the TeX Live programs. (See also +<code>option fileassocs</code>.) +</p> +<hr> +<a name="tlmgr-print_002dplatform"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-restore-_005b_002d_002dbackupdir-dir_005d-_005b_002d_002dall-_007c-pkg-_005brev_005d_005d" accesskey="n" rel="next">tlmgr restore [--backupdir <em>dir</em>] [--all | <em>pkg</em> [<em>rev</em>]]</a>, Previous: <a href="#tlmgr-postaction-_005b_002d_002dw32mode_003duser_007cadmin_005d-_005b_002d_002dfileassocmode_003d1_007c2_005d-_005b_002d_002dall_005d-_005binstall_007cremove_005d-_005bshortcut_007cfileassoc_007cscript_005d-_005bpkg_005d_002e_002e_002e" accesskey="p" rel="prev">tlmgr postaction [--w32mode=user|admin] [--fileassocmode=1|2] [--all] [install|remove] [shortcut|fileassoc|script] [<em>pkg</em>]...</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="print_002dplatform"></a> +<h4 class="appendixsubsec">B.6.21 print-platform</h4> + +<p>Print the TeX Live identifier for the detected platform +(hardware/operating system) combination to standard output, and exit. +<code>--print-arch</code> is a synonym. +</p> +<hr> +<a name="tlmgr-restore-_005b_002d_002dbackupdir-dir_005d-_005b_002d_002dall-_007c-pkg-_005brev_005d_005d"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-remove-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e" accesskey="n" rel="next">tlmgr remove [<em>option</em>]... <em>pkg</em>...</a>, Previous: <a href="#tlmgr-print_002dplatform" accesskey="p" rel="prev">tlmgr print-platform</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="restore-_005b_002d_002dbackupdir-dir_005d-_005b_002d_002dall-_007c-pkg-_005brev_005d_005d"></a> +<h4 class="appendixsubsec">B.6.22 restore [–backupdir <em>dir</em>] [–all | <em>pkg</em> [<em>rev</em>]]</h4> + +<p>Restore a package from a previously-made backup. +</p> +<p>If <code>--all</code> is given, try to restore the latest revision of all +package backups found in the backup directory. +</p> +<p>Otherwise, if neither <em>pkg</em> nor <em>rev</em> are given, list the available backup +revisions for all packages. +</p> +<p>With <em>pkg</em> given but no <em>rev</em>, list all available backup revisions of +<em>pkg</em>. +</p> +<p>When listing available packages tlmgr shows the revision and in +parenthesis the creation time if available (in format yyyy-mm-dd hh:mm). +</p> +<p>With both <em>pkg</em> and <em>rev</em>, tries to restore the package from the +specified backup. +</p> +<p>Options: +</p> +<dl compact="compact"> +<dt><strong>–all</strong></dt> +<dd><a name="tlmgr-_002d_002dall-1"></a> +<p>Try to restore the latest revision of all package backups found in the +backup directory. Additional non-option arguments (like <em>pkg</em>) are not +allowed. +</p> +</dd> +<dt><strong>–backupdir</strong> <em>directory</em></dt> +<dd><a name="tlmgr-_002d_002dbackupdir-directory-1"></a> +<p>Specify the directory where the backups are to be found. If not given it +will be taken from the configuration setting in the TLPDB. +</p> +</dd> +<dt><strong>–dry-run</strong></dt> +<dd><a name="tlmgr-_002d_002ddry_002drun-3"></a> +<p>Nothing is actually restored; instead, the actions to be performed are +written to the terminal. +</p> +</dd> +<dt><strong>–force</strong></dt> +<dd><a name="tlmgr-_002d_002dforce-1"></a> +<p>Don’t ask questions. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-remove-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-repository" accesskey="n" rel="next">tlmgr repository</a>, Previous: <a href="#tlmgr-restore-_005b_002d_002dbackupdir-dir_005d-_005b_002d_002dall-_007c-pkg-_005brev_005d_005d" accesskey="p" rel="prev">tlmgr restore [--backupdir <em>dir</em>] [--all | <em>pkg</em> [<em>rev</em>]]</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="remove-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e"></a> +<h4 class="appendixsubsec">B.6.23 remove [<em>option</em>]... <em>pkg</em>...</h4> + +<p>Remove each <em>pkg</em> specified. Removing a collection removes all package +dependencies (unless <code>--no-depends</code> is specified), but not any +collection dependencies of that collection. However, when removing a +package, dependencies are never removed. Options: +</p> +<dl compact="compact"> +<dt><strong>–no-depends</strong></dt> +<dd><a name="tlmgr-_002d_002dno_002ddepends-1"></a> +<p>Do not remove dependent packages. +</p> +</dd> +<dt><strong>–no-depends-at-all</strong></dt> +<dd><a name="tlmgr-_002d_002dno_002ddepends_002dat_002dall-1"></a> +<p>See above under <strong>install</strong> (and beware). +</p> +</dd> +<dt><strong>–force</strong></dt> +<dd><a name="tlmgr-_002d_002dforce-2"></a> +<p>By default, removal of a package or collection that is a dependency of +another collection or scheme is not allowed. With this option, the +package will be removed unconditionally. Use with care. +</p> +<p>A package that has been removed using the <code>--force</code> option because it +is still listed in an installed collection or scheme will not be +updated, and will be mentioned as <strong>forcibly removed</strong> in the output of +<strong>tlmgr update –list</strong>. +</p> +</dd> +<dt><strong>–dry-run</strong></dt> +<dd><a name="tlmgr-_002d_002ddry_002drun-4"></a> +<p>Nothing is actually removed; instead, the actions to be performed are +written to the terminal. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-repository"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-what" accesskey="n" rel="next">tlmgr search [<em>option</em>...] <em>what</em></a>, Previous: <a href="#tlmgr-remove-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e" accesskey="p" rel="prev">tlmgr remove [<em>option</em>]... <em>pkg</em>...</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="repository"></a> +<h4 class="appendixsubsec">B.6.24 repository</h4> + +<dl compact="compact"> +<dt><strong>repository list</strong></dt> +<dd><a name="tlmgr-repository-list"></a> +</dd> +<dt><strong>repository list <em>path|tag</em></strong></dt> +<dd><a name="tlmgr-repository-list-path_007ctag"></a> +</dd> +<dt><strong>repository add <em>path</em> [<em>tag</em>]</strong></dt> +<dd><a name="tlmgr-repository-add-path-_005btag_005d"></a> +</dd> +<dt><strong>repository remove <em>path|tag</em></strong></dt> +<dd><a name="tlmgr-repository-remove-path_007ctag"></a> +</dd> +<dt><strong>repository set <em>path</em>[#<em>tag</em>] [<em>path</em>[#<em>tag</em>] ...]</strong></dt> +<dd><a name="tlmgr-repository-set-path_005b_0023tag_005d-_005bpath_005b_0023tag_005d-_002e_002e_002e_005d"></a> +<p>This action manages the list of repositories. See <a href="#tlmgr-MULTIPLE-REPOSITORIES">MULTIPLE +REPOSITORIES</a> below for detailed explanations. +</p> +<p>The first form (<code>list</code>) lists all configured repositories and the +respective tags if set. If a path, url, or tag is given after the +<code>list</code> keyword, it is interpreted as source from where to +initialize a TeX Live Database and lists the contained packages. +This can also be an up-to-now not used repository, both locally +and remote. If one pass in addition <code>--with-platforms</code>, for each +package the available platforms (if any) are listed, too. +</p> +<p>The third form (<code>add</code>) adds a repository +(optionally attaching a tag) to the list of repositories. The forth +form (<code>remove</code>) removes a repository, either by full path/url, or by +tag. The last form (<code>set</code>) sets the list of repositories to the items +given on the command line, not keeping previous settings +</p> +<p>In all cases, one of the repositories must be tagged as <code>main</code>; +otherwise, all operations will fail! +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-search-_005boption_002e_002e_002e_005d-what"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-uninstall" accesskey="n" rel="next">tlmgr uninstall</a>, Previous: <a href="#tlmgr-repository" accesskey="p" rel="prev">tlmgr repository</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="search-_005boption_002e_002e_002e_005d-what"></a> +<h4 class="appendixsubsec">B.6.25 search [<em>option</em>...] <em>what</em></h4> + +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dfile-what" accesskey="1">tlmgr search [<em>option</em>...] --file <em>what</em></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dtaxonomy-what" accesskey="2">tlmgr search [<em>option</em>...] --taxonomy <em>what</em></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dkeyword-what" accesskey="3">tlmgr search [<em>option</em>...] --keyword <em>what</em></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dfunctionality-what" accesskey="4">tlmgr search [<em>option</em>...] --functionality <em>what</em></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dcharacterization-what" accesskey="5">tlmgr search [<em>option</em>...] --characterization <em>what</em></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dall-what" accesskey="6">tlmgr search [<em>option</em>...] --all <em>what</em></a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + +<hr> +<a name="tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dfile-what"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dtaxonomy-what" accesskey="n" rel="next">tlmgr search [<em>option</em>...] --taxonomy <em>what</em></a>, Up: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-what" accesskey="u" rel="up">tlmgr search [<em>option</em>...] <em>what</em></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="search-_005boption_002e_002e_002e_005d-_002d_002dfile-what"></a> +<h4 class="appendixsubsubsec">B.6.25.1 search [<em>option</em>...] –file <em>what</em></h4> + +<hr> +<a name="tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dtaxonomy-what"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dkeyword-what" accesskey="n" rel="next">tlmgr search [<em>option</em>...] --keyword <em>what</em></a>, Previous: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dfile-what" accesskey="p" rel="prev">tlmgr search [<em>option</em>...] --file <em>what</em></a>, Up: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-what" accesskey="u" rel="up">tlmgr search [<em>option</em>...] <em>what</em></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="search-_005boption_002e_002e_002e_005d-_002d_002dtaxonomy-what"></a> +<h4 class="appendixsubsubsec">B.6.25.2 search [<em>option</em>...] –taxonomy <em>what</em></h4> + +<hr> +<a name="tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dkeyword-what"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dfunctionality-what" accesskey="n" rel="next">tlmgr search [<em>option</em>...] --functionality <em>what</em></a>, Previous: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dtaxonomy-what" accesskey="p" rel="prev">tlmgr search [<em>option</em>...] --taxonomy <em>what</em></a>, Up: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-what" accesskey="u" rel="up">tlmgr search [<em>option</em>...] <em>what</em></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="search-_005boption_002e_002e_002e_005d-_002d_002dkeyword-what"></a> +<h4 class="appendixsubsubsec">B.6.25.3 search [<em>option</em>...] –keyword <em>what</em></h4> + +<hr> +<a name="tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dfunctionality-what"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dcharacterization-what" accesskey="n" rel="next">tlmgr search [<em>option</em>...] --characterization <em>what</em></a>, Previous: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dkeyword-what" accesskey="p" rel="prev">tlmgr search [<em>option</em>...] --keyword <em>what</em></a>, Up: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-what" accesskey="u" rel="up">tlmgr search [<em>option</em>...] <em>what</em></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="search-_005boption_002e_002e_002e_005d-_002d_002dfunctionality-what"></a> +<h4 class="appendixsubsubsec">B.6.25.4 search [<em>option</em>...] –functionality <em>what</em></h4> + +<hr> +<a name="tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dcharacterization-what"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dall-what" accesskey="n" rel="next">tlmgr search [<em>option</em>...] --all <em>what</em></a>, Previous: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dfunctionality-what" accesskey="p" rel="prev">tlmgr search [<em>option</em>...] --functionality <em>what</em></a>, Up: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-what" accesskey="u" rel="up">tlmgr search [<em>option</em>...] <em>what</em></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="search-_005boption_002e_002e_002e_005d-_002d_002dcharacterization-what"></a> +<h4 class="appendixsubsubsec">B.6.25.5 search [<em>option</em>...] –characterization <em>what</em></h4> + +<hr> +<a name="tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dall-what"></a> +<div class="header"> +<p> +Previous: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-_002d_002dcharacterization-what" accesskey="p" rel="prev">tlmgr search [<em>option</em>...] --characterization <em>what</em></a>, Up: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-what" accesskey="u" rel="up">tlmgr search [<em>option</em>...] <em>what</em></a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="search-_005boption_002e_002e_002e_005d-_002d_002dall-what"></a> +<h4 class="appendixsubsubsec">B.6.25.6 search [<em>option</em>...] –all <em>what</em></h4> + +<p>By default, search the names, short descriptions, and long descriptions +of all locally installed packages for the argument <em>what</em>, interpreted +as a regular expression. +</p> +<p>Options: +</p> +<dl compact="compact"> +<dt><strong>–global</strong></dt> +<dd><a name="tlmgr-_002d_002dglobal"></a> +<p>Search the TeX Live Database of the installation medium, instead of the +local installation. +</p> +</dd> +<dt><strong>–word</strong></dt> +<dd><a name="tlmgr-_002d_002dword"></a> +<p>Restrict the search to match only full words. For example, searching for +<code>table</code> with this option will not output packages containing the +word <code>tables</code> (unless they also contain the word <code>table</code> on its own). +</p> +</dd> +<dt><strong>–list</strong></dt> +<dd><a name="tlmgr-_002d_002dlist-1"></a> +<p>If a search for any (or all) taxonomies is done, by specifying one of +the taxonomy options below, then instead of searching for packages, list +the entire corresponding taxonomy (or all of them). See +<a href="#tlmgr-TAXONOMIES">TAXONOMIES</a> below. +</p> +</dd> +</dl> + +<p>Other search options are selected by specifying one of the following: +</p> +<dl compact="compact"> +<dt><strong>–file</strong></dt> +<dd><a name="tlmgr-_002d_002dfile-1"></a> +<p>List all filenames containing <em>what</em>. +</p> +</dd> +<dt><strong>–taxonomy</strong></dt> +<dd><a name="tlmgr-_002d_002dtaxonomy-1"></a> +</dd> +<dt><strong>–keyword</strong></dt> +<dd><a name="tlmgr-_002d_002dkeyword-1"></a> +</dd> +<dt><strong>–functionality</strong></dt> +<dd><a name="tlmgr-_002d_002dfunctionality-1"></a> +</dd> +<dt><strong>–characterization</strong></dt> +<dd><a name="tlmgr-_002d_002dcharacterization-1"></a> +<p>Search in the corresponding taxonomy (or all) instead of the package +descriptions. See <a href="#tlmgr-TAXONOMIES">TAXONOMIES</a> below. +</p> +</dd> +<dt><strong>–all</strong></dt> +<dd><a name="tlmgr-_002d_002dall-2"></a> +<p>Search for package names, descriptions, and taxonomies, but not files. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-uninstall"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-update-_005boption_005d_002e_002e_002e-_005bpkg_005d_002e_002e_002e" accesskey="n" rel="next">tlmgr update [<em>option</em>]... [<em>pkg</em>]...</a>, Previous: <a href="#tlmgr-search-_005boption_002e_002e_002e_005d-what" accesskey="p" rel="prev">tlmgr search [<em>option</em>...] <em>what</em></a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="uninstall"></a> +<h4 class="appendixsubsec">B.6.26 uninstall</h4> + +<p>Uninstalls the entire TeX Live installation. Options: +</p> +<dl compact="compact"> +<dt><strong>–force</strong></dt> +<dd><a name="tlmgr-_002d_002dforce-3"></a> +<p>Do not ask for confirmation, remove immediately. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-update-_005boption_005d_002e_002e_002e-_005bpkg_005d_002e_002e_002e"></a> +<div class="header"> +<p> +Previous: <a href="#tlmgr-uninstall" accesskey="p" rel="prev">tlmgr uninstall</a>, Up: <a href="#tlmgr-ACTIONS" accesskey="u" rel="up">tlmgr ACTIONS</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="update-_005boption_005d_002e_002e_002e-_005bpkg_005d_002e_002e_002e"></a> +<h4 class="appendixsubsec">B.6.27 update [<em>option</em>]... [<em>pkg</em>]...</h4> + +<p>Updates the packages given as arguments to the latest version available +at the installation source. Either <code>--all</code> or at least one <em>pkg</em> name +must be specified. Options: +</p> +<dl compact="compact"> +<dt><strong>–all</strong></dt> +<dd><a name="tlmgr-_002d_002dall-3"></a> +<p>Update all installed packages except for <code>tlmgr</code> itself. Thus, if +updates to <code>tlmgr</code> itself are present, this will simply give an error, +unless also the option <code>--force</code> or <code>--self</code> is given. (See below.) +</p> +<p>In addition to updating the installed packages, during the update of a +collection the local installation is (by default) synchronized to the +status of the collection on the server, for both additions and removals. +</p> +<p>This means that if a package has been removed on the server (and thus +has also been removed from the respective collection), <code>tlmgr</code> will +remove the package in the local installation. This is called +“auto-remove” and is announced as such when using the option +<code>--list</code>. This auto-removal can be suppressed using the option +<code>--no-auto-remove</code> (not recommended, see option description). +</p> +<p>Analogously, if a package has been added to a collection on the server +that is also installed locally, it will be added to the local +installation. This is called “auto-install” and is announced as such +when using the option <code>--list</code>. This auto-installation can be +suppressed using the option <code>--no-auto-install</code>. +</p> +<p>An exception to the collection dependency checks (including the +auto-installation of packages just mentioned) are those that have been +“forcibly removed” by you, that is, you called <code>tlmgr remove --force</code> +on them. (See the <code>remove</code> action documentation.) To reinstall any +such forcibly removed packages use <code>--reinstall-forcibly-removed</code>. +</p> +<p>If you want to exclude some packages from the current update run (e.g., +due to a slow link), see the <code>--exclude</code> option below. +</p> +</dd> +<dt><strong>–self</strong></dt> +<dd><a name="tlmgr-_002d_002dself"></a> +<p>Update <code>tlmgr</code> itself (that is, the infrastructure packages) if updates +to it are present. On Windows this includes updates to the private Perl +interpreter shipped inside TeX Live. +</p> +<p>If this option is given together with either <code>--all</code> or a list of +packages, then <code>tlmgr</code> will be updated first and, if this update +succeeds, the new version will be restarted to complete the rest of the +updates. +</p> +<p>In short: +</p> +<pre class="verbatim"> tlmgr update --self # update infrastructure only + tlmgr update --self --all # update infrastructure and all packages + tlmgr update --force --all # update all packages but *not* infrastructure + # ... this last at your own risk, not recommended! +</pre> +</dd> +<dt><strong>–dry-run</strong></dt> +<dd><a name="tlmgr-_002d_002ddry_002drun-5"></a> +<p>Nothing is actually installed; instead, the actions to be performed are +written to the terminal. This is a more detailed report than <code>--list</code>. +</p> +</dd> +<dt><strong>–list</strong> [<em>pkg</em>]</dt> +<dd><a name="tlmgr-_002d_002dlist-_005bpkg_005d"></a> +<p>Concisely list the packages which would be updated, newly installed, or +removed, without actually changing anything. +If <code>--all</code> is also given, all available updates are listed. +If <code>--self</code> is given, but not <code>--all</code>, only updates to the +critical packages (tlmgr, texlive infrastructure, perl on Windows, etc.) +are listed. +If neither <code>--all</code> nor <code>--self</code> is given, and in addition no <em>pkg</em> is +given, then <code>--all</code> is assumed (thus, <code>tlmgr update --list</code> is the +same as <code>tlmgr update --list --all</code>). +If neither <code>--all</code> nor <code>--self</code> is given, but specific package names are +given, those packages are checked for updates. +</p> +</dd> +<dt><strong>–exclude</strong> <em>pkg</em></dt> +<dd><a name="tlmgr-_002d_002dexclude-pkg"></a> +<p>Exclude <em>pkg</em> from the update process. If this option is given more +than once, its arguments accumulate. +</p> +<p>An argument <em>pkg</em> excludes both the package <em>pkg</em> itself and all +its related platform-specific packages <em>pkg.ARCH</em>. For example, +</p> +<pre class="verbatim"> tlmgr update --all --exclude a2ping +</pre> +<p>will not update <code>a2ping</code>, <code>a2ping.i386-linux</code>, or +any other <code>a2ping.</code><em>ARCH</em> package. +</p> +<p>If this option specifies a package that would otherwise be a candidate +for auto-installation, auto-removal, or reinstallation of a forcibly +removed package, <code>tlmgr</code> quits with an error message. Excludes are not +supported in these circumstances. +</p> +</dd> +<dt><strong>–no-auto-remove</strong> [<em>pkg</em>]...</dt> +<dd><a name="tlmgr-_002d_002dno_002dauto_002dremove-_005bpkg_005d_002e_002e_002e"></a> +<p>By default, <code>tlmgr</code> tries to remove packages which have disappeared on +the server, as described above under <code>--all</code>. This option prevents +such removals, either for all packages (with <code>--all</code>), or for just the +given <em>pkg</em> names. This can lead to an inconsistent TeX installation, +since packages are not infrequently renamed or replaced by their +authors. Therefore this is not recommend. +</p> +</dd> +<dt><strong>–no-auto-install</strong> [<em>pkg</em>]...</dt> +<dd><a name="tlmgr-_002d_002dno_002dauto_002dinstall-_005bpkg_005d_002e_002e_002e"></a> +<p>Under normal circumstances <code>tlmgr</code> will install packages which are new +on the server, as described above under <code>--all</code>. This option prevents +any such automatic installation, either for all packages (with +<code>--all</code>), or the given <em>pkg</em> names. +</p> +<p>Furthermore, after the <code>tlmgr</code> run using this has finished, the +packages that would have been auto-installed <em>will be considered as +forcibly removed</em>. So, if <code>foobar</code> is the only new package on the +server, then +</p> +<pre class="verbatim"> tlmgr update --all --no-auto-install +</pre> +<p>is equivalent to +</p> +<pre class="verbatim"> tlmgr update --all + tlmgr remove --force foobar +</pre> +</dd> +<dt><strong>–reinstall-forcibly-removed</strong></dt> +<dd><a name="tlmgr-_002d_002dreinstall_002dforcibly_002dremoved"></a> +<p>Under normal circumstances <code>tlmgr</code> will not install packages that have +been forcibly removed by the user; that is, removed with <code>remove +--force</code>, or whose installation was prohibited by <code>--no-auto-install</code> +during an earlier update. +</p> +<p>This option makes <code>tlmgr</code> ignore the forcible removals and re-install +all such packages. This can be used to completely synchronize an +installation with the server’s idea of what is available: +</p> +<pre class="verbatim"> tlmgr update --reinstall-forcibly-removed --all +</pre> +</dd> +<dt><strong>–backup</strong> and <strong>–backupdir</strong> <em>directory</em></dt> +<dd><a name="tlmgr-_002d_002dbackup-and-_002d_002dbackupdir-directory"></a> +<p>These two options control the creation of backups of packages <em>before</em> +updating; that is, backup of packages as currently installed. If +neither of these options are given, no backup package will be saved. If +<code>--backupdir</code> is given and specifies a writable directory then a backup +will be made in that location. If only <code>--backup</code> is given, then a +backup will be made to the directory previously set via the <code>option</code> +action (see below). If both are given then a backup will be made to the +specified <em>directory</em>. +</p> +<p>You can set options via the <code>option</code> action to automatically create +backups for all packages, and/or keep only a certain number of +backups. Please see the <code>option</code> action for details. +</p> +<p><code>tlmgr</code> always makes a temporary backup when updating packages, in case +of download or other failure during an update. In contrast, the purpose +of this <code>--backup</code> option is to allow you to save a persistent backup +in case the actual <em>content</em> of the update causes problems, e.g., +introduces an incompatibility. +</p> +<p>The <code>restore</code> action explains how to restore from a backup. +</p> +</dd> +<dt><strong>–no-depends</strong></dt> +<dd><a name="tlmgr-_002d_002dno_002ddepends-2"></a> +<p>If you call for updating a package normally all depending packages +will also be checked for updates and updated if necessary. This switch +suppresses this behavior. +</p> +</dd> +<dt><strong>–no-depends-at-all</strong></dt> +<dd><a name="tlmgr-_002d_002dno_002ddepends_002dat_002dall-2"></a> +<p>See above under <strong>install</strong> (and beware). +</p> +</dd> +<dt><strong>–force</strong></dt> +<dd><a name="tlmgr-_002d_002dforce-4"></a> +<p>Force update of normal packages, without updating <code>tlmgr</code> itself +(unless the <code>--self</code> option is also given). Not recommended. +</p> +<p>Also, <code>update --list</code> is still performed regardless of this option. +</p> +</dd> +</dl> + +<p>If the package on the server is older than the package already installed +(e.g., if the selected mirror is out of date), <code>tlmgr</code> does not +downgrade. Also, packages for uninstalled platforms are not installed. +</p> +<hr> +<a name="tlmgr-USER-MODE"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-CONFIGURATION-FILE-FOR-TLMGR" accesskey="n" rel="next">tlmgr CONFIGURATION FILE FOR TLMGR</a>, Previous: <a href="#tlmgr-ACTIONS" accesskey="p" rel="prev">tlmgr ACTIONS</a>, Up: <a href="#tlmgr" accesskey="u" rel="up">tlmgr</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="USER-MODE"></a> +<h3 class="appendixsec">B.7 USER MODE</h3> + +<p><code>tlmgr</code> provides a restricted way, called “user mode”, to manage +arbitrary texmf trees in the same way as the main installation. For +example, this allows people without write permissions on the +installation location to update/install packages into a tree of their +own. +</p> +<p><code>tlmgr</code> is switched into user mode with the command line option +<code>--usermode</code>. It does not switch automatically, nor is there any +configuration file setting for it. Thus, this option has to be +explicitly given every time user mode is to be activated. +</p> +<p>This mode of <code>tlmgr</code> works on a user tree, by default the value of the +<code>TEXMFHOME</code> variable. This can be overridden with the command line +option <code>--usertree</code>. In the following when we speak of the user tree +we mean either <code>TEXMFHOME</code> or the one given on the command line. +</p> +<p>Not all actions are allowed in user mode; <code>tlmgr</code> will warn you and not +carry out any problematic actions. Currently not supported (and +probably will never be) is the <code>platform</code> action. The <code>gui</code> action is +currently not supported, but may be in a future release. +</p> +<p>Some <code>tlmgr</code> actions don’t need any write permissions and thus work the +same in user mode and normal mode. Currently these are: <code>check</code>, +<code>help</code>, <code>list</code>, <code>print-platform</code>, <code>search</code>, <code>show</code>, <code>version</code>. +</p> +<p>On the other hand, most of the actions dealing with package management +do need write permissions, and thus behave differently in user mode, as +described below: <code>install</code>, <code>update</code>, <code>remove</code>, <code>option</code>, <code>paper</code>, +<code>generate</code>, <code>backup</code>, <code>restore</code>, <code>uninstall</code>, <code>symlinks</code>. +</p> +<p>Before using <code>tlmgr</code> in user mode, you have to set up the user tree +with the <code>init-usertree</code> action. This creates <em>usertree</em><code>/web2c</code> and +<em>usertree</em><code>/tlpkg/tlpobj</code>, and a minimal +<em>usertree</em><code>/tlpkg/texlive.tlpdb</code>. At that point, you can tell +<code>tlmgr</code> to do the (supported) actions by adding the <code>--usermode</code> +command line option. +</p> +<p>In user mode the file <em>usertree</em><code>/tlpkg/texlive.tlpdb</code> contains only +the packages that have been installed into the user tree using <code>tlmgr</code>, +plus additional options from the “virtual” package +<code>00texlive.installation</code> (similar to the main installation’s +<code>texlive.tlpdb</code>). +</p> +<p>All actions on packages in user mode can only be carried out on packages +that are known as <code>relocatable</code>. This excludes all packages containing +executables and a few other core packages. Of the 2500 or so packages +currently in TeX Live the vast majority are relocatable and can be +installed into a user tree. +</p> +<p>Description of changes of actions in user mode: +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#tlmgr-user-mode-install" accesskey="1">tlmgr user mode install</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-user-mode-backup_003b-restore_003b-remove_003b-update" accesskey="2">tlmgr user mode backup; restore; remove; update</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-user-mode-generate_003b-option_003b-paper" accesskey="3">tlmgr user mode generate; option; paper</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + +<hr> +<a name="tlmgr-user-mode-install"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-user-mode-backup_003b-restore_003b-remove_003b-update" accesskey="n" rel="next">tlmgr user mode backup; restore; remove; update</a>, Up: <a href="#tlmgr-USER-MODE" accesskey="u" rel="up">tlmgr USER MODE</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="user-mode-install"></a> +<h4 class="appendixsubsec">B.7.1 user mode install</h4> + +<p>In user mode, the <code>install</code> action checks that the package and all +dependencies are all either relocated or already installed in the system +installation. If this is the case, it unpacks all containers to be +installed into the user tree (to repeat, that’s either <code>TEXMFHOME</code> or +the value of <code>--usertree</code>) and add the respective packages to the user +tree’s <code>texlive.tlpdb</code> (creating it if need be). +</p> +<p>Currently installing a collection in user mode installs all dependent +packages, but in contrast to normal mode, does <em>not</em> install dependent +collections. For example, in normal mode <code>tlmgr install +collection-context</code> would install <code>collection-basic</code> and other +collections, while in user mode, <em>only</em> the packages mentioned in +<code>collection-context</code> are installed. +</p> +<hr> +<a name="tlmgr-user-mode-backup_003b-restore_003b-remove_003b-update"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-user-mode-generate_003b-option_003b-paper" accesskey="n" rel="next">tlmgr user mode generate; option; paper</a>, Previous: <a href="#tlmgr-user-mode-install" accesskey="p" rel="prev">tlmgr user mode install</a>, Up: <a href="#tlmgr-USER-MODE" accesskey="u" rel="up">tlmgr USER MODE</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="user-mode-backup_003b-restore_003b-remove_003b-update"></a> +<h4 class="appendixsubsec">B.7.2 user mode backup; restore; remove; update</h4> + +<p>In user mode, these actions check that all packages to be acted on are +installed in the user tree before proceeding; otherwise, they behave +just as in normal mode. +</p> +<hr> +<a name="tlmgr-user-mode-generate_003b-option_003b-paper"></a> +<div class="header"> +<p> +Previous: <a href="#tlmgr-user-mode-backup_003b-restore_003b-remove_003b-update" accesskey="p" rel="prev">tlmgr user mode backup; restore; remove; update</a>, Up: <a href="#tlmgr-USER-MODE" accesskey="u" rel="up">tlmgr USER MODE</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="user-mode-generate_003b-option_003b-paper"></a> +<h4 class="appendixsubsec">B.7.3 user mode generate; option; paper</h4> + +<p>In user mode, these actions operate only on the user tree’s +configuration files and/or <code>texlive.tlpdb</code>. +creates configuration files in user tree +</p> +<hr> +<a name="tlmgr-CONFIGURATION-FILE-FOR-TLMGR"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-TAXONOMIES" accesskey="n" rel="next">tlmgr TAXONOMIES</a>, Previous: <a href="#tlmgr-USER-MODE" accesskey="p" rel="prev">tlmgr USER MODE</a>, Up: <a href="#tlmgr" accesskey="u" rel="up">tlmgr</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="CONFIGURATION-FILE-FOR-TLMGR"></a> +<h3 class="appendixsec">B.8 CONFIGURATION FILE FOR TLMGR</h3> + +<p>A small subset of the command line options can be set in a config file +for <code>tlmgr</code> which resides in <code>TEXMFCONFIG/tlmgr/config</code>. By default, the +config file is in <code>~/.texliveYYYY/texmf-config/tlmgr/config</code> (replacing +<code>YYYY</code> with the year of your TeX Live installation). This is <em>not</em> +<code>TEXMFSYSVAR</code>, so that the file is specific to a single user. +</p> +<p>In this file, empty lines and lines starting with # are ignored. All +other lines must look like +</p> +<pre class="verbatim"> key = value +</pre> +<p>where the allowed keys are <code>gui-expertmode</code> (value 0 or 1), +<code>persistent-downloads</code> (value 0 or 1), <code>auto-remove</code> (value 0 or 1), +and <code>gui-lang</code> (value like in the command line option). +</p> +<p><code>persistent-downloads</code>, <code>gui-lang</code>, and <code>auto-remove</code> correspond to +the respective command line options of the same name. <code>gui-expertmode</code> +switches between the full GUI and a simplified GUI with only the +important and mostly used settings. +</p> +<hr> +<a name="tlmgr-TAXONOMIES"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-MULTIPLE-REPOSITORIES" accesskey="n" rel="next">tlmgr MULTIPLE REPOSITORIES</a>, Previous: <a href="#tlmgr-CONFIGURATION-FILE-FOR-TLMGR" accesskey="p" rel="prev">tlmgr CONFIGURATION FILE FOR TLMGR</a>, Up: <a href="#tlmgr" accesskey="u" rel="up">tlmgr</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="TAXONOMIES"></a> +<h3 class="appendixsec">B.9 TAXONOMIES</h3> + +<p>tlmgr allows searching and listing of various categorizations, which we +call <em>taxonomies</em>, as provided by an enhanced TeX Catalogue (available +for testing at <a href="http://az.ctan.org">http://az.ctan.org</a>). This is useful when, for +example, you don’t know a specific package name but have an idea of the +functionality you need; or when you want to see all packages relating to +a given area. +</p> +<p>There are three different taxonomies, specified by the following +options: +</p> +<dl compact="compact"> +<dt><code>--keyword</code></dt> +<dd><a name="tlmgr-_002d_002dkeyword-2"></a> +<p>The keywords, as specified at <a href="http://az.ctan.org/keyword">http://az.ctan.org/keyword</a>. +</p> +</dd> +<dt><code>--functionality</code></dt> +<dd><a name="tlmgr-_002d_002dfunctionality-2"></a> +<p>The “by-topic” categorization created by J\"urgen Fenn, as specified +at <a href="http://az.ctan.org/characterization/by-function">http://az.ctan.org/characterization/by-function</a>. +</p> +</dd> +<dt><code>--characterization</code></dt> +<dd><a name="tlmgr-_002d_002dcharacterization-2"></a> +<p>Both the primary and secondary functionalities, as specified at +<a href="http://az.ctan.org/characterization/choose_dimen">http://az.ctan.org/characterization/choose_dimen</a>. +</p> +</dd> +<dt><code>--taxonomy</code></dt> +<dd><a name="tlmgr-_002d_002dtaxonomy-2"></a> +<p>Operate on all the taxonomies. +</p> +</dd> +</dl> + +<p>The taxonomies are updated nightly and stored within TeX Live, so +Internet access is not required to search them. +</p> +<p>Examples: +</p> +<pre class="verbatim"> tlmgr search --taxonomy exercise # check all taxonomies for "exercise" + tlmgr search --taxonomy --word table # check for "table" on its own + tlmgr search --list --keyword # dump entire keyword taxonomy + tlmgr show --taxonomy pdftex # show pdftex package information, + # including all taxonomy entries +</pre> +<hr> +<a name="tlmgr-MULTIPLE-REPOSITORIES"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-GUI-FOR-TLMGR" accesskey="n" rel="next">tlmgr GUI FOR TLMGR</a>, Previous: <a href="#tlmgr-TAXONOMIES" accesskey="p" rel="prev">tlmgr TAXONOMIES</a>, Up: <a href="#tlmgr" accesskey="u" rel="up">tlmgr</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="MULTIPLE-REPOSITORIES"></a> +<h3 class="appendixsec">B.10 MULTIPLE REPOSITORIES</h3> + +<p>The main TeX Live repository contains a vast array of packages. +Nevertheless, additional local repositories can be useful to provide +locally-installed resources, such as proprietary fonts and house styles. +Also, alternative package repositories distribute packages that cannot +or should not be included in TeX Live, for whatever reason. +</p> +<p>The simplest and most reliable method is to temporarily set the +installation source to any repository (with the <code>-repository</code> or +<code>option repository</code> command line options), and perform your operations. +</p> +<p>When you are using multiple repositories over a sustained time, however, +explicitly switching between them becomes inconvenient. Thus, it’s +possible to tell <code>tlmgr</code> about additional repositories you want to use. +The basic command is <code>tlmgr repository add</code>. The rest of this section +explains further. +</p> +<p>When using multiple repositories, one of them has to be set as the main +repository, which distributes most of the installed packages. When you +switch from a single repository installation to a multiple repository +installation, the previous sole repository will be set as the main +repository. +</p> +<p>By default, even if multiple repositories are configured, packages are +<em>still</em> <em>only</em> installed from the main repository. Thus, simply +adding a second repository does not actually enable installation of +anything from there. You also have to specify which packages should be +taken from the new repository, by specifying so-called “pinning” +rules, described next. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#tlmgr-Pinning" accesskey="1">tlmgr Pinning</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + +<hr> +<a name="tlmgr-Pinning"></a> +<div class="header"> +<p> +Up: <a href="#tlmgr-MULTIPLE-REPOSITORIES" accesskey="u" rel="up">tlmgr MULTIPLE REPOSITORIES</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Pinning"></a> +<h4 class="appendixsubsec">B.10.1 Pinning</h4> + +<p>When a package <code>foo</code> is pinned to a repository, a package <code>foo</code> in any +other repository, even if it has a higher revision number, will not be +considered an installable candidate. +</p> +<p>As mentioned above, by default everything is pinned to the main +repository. Let’s now go through an example of setting up a second +repository and enabling updates of a package from it. +</p> +<p>First, check that we have support for multiple repositories, and have +only one enabled (as is the case by default): +</p> +<pre class="verbatim"> $ tlmgr repository list + List of repositories (with tags if set): + /var/www/norbert/tlnet +</pre> +<p>Ok. Let’s add the <code>tlcontrib</code> repository (this is a real +repository, hosted at <a href="http://tlcontrib.metatex.org">http://tlcontrib.metatex.org</a>, maintained by +Taco Hoekwater et al.), with the tag <code>tlcontrib</code>: +</p> +<pre class="verbatim"> $ tlmgr repository add http://tlcontrib.metatex.org/2012 tlcontrib +</pre> +<p>Check the repository list again: +</p> +<pre class="verbatim"> $ tlmgr repository list + List of repositories (with tags if set): + http://tlcontrib.metatex.org/2012 (tlcontrib) + /var/www/norbert/tlnet (main) +</pre> +<p>Now we specify a pinning entry to get the package <code>context</code> from +<code>tlcontrib</code>: +</p> +<pre class="verbatim"> $ tlmgr pinning add tlcontrib context +</pre> +<p>Check that we can find <code>context</code>: +</p> +<pre class="verbatim"> $ tlmgr show context + tlmgr: package repositories: + ... + package: context + repository: tlcontrib/26867 + ... +</pre> +<p>- install <code>context</code>: +</p> +<pre class="verbatim"> $ tlmgr install context + tlmgr: package repositories: + ... + [1/1, ??:??/??:??] install: context @tlcontrib [ +</pre> +<p>In the output here you can see that the <code>context</code> package has been +installed from the <code>tlcontrib</code> repository (<code>@tlcontrib</code>). +</p> +<p>Finally, <code>tlmgr pinning</code> also supports removing certain or all packages +from a given repository: +</p> +<pre class="verbatim"> $ tlmgr pinning remove tlcontrib context # remove just context + $ tlmgr pinning remove tlcontrib --all # take nothing from tlcontrib +</pre> +<p>A summary of the <code>tlmgr pinning</code> actions is given above. +</p> +<hr> +<a name="tlmgr-GUI-FOR-TLMGR"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-MACHINE_002dREADABLE-OUTPUT" accesskey="n" rel="next">tlmgr MACHINE-READABLE OUTPUT</a>, Previous: <a href="#tlmgr-MULTIPLE-REPOSITORIES" accesskey="p" rel="prev">tlmgr MULTIPLE REPOSITORIES</a>, Up: <a href="#tlmgr" accesskey="u" rel="up">tlmgr</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="GUI-FOR-TLMGR"></a> +<h3 class="appendixsec">B.11 GUI FOR TLMGR</h3> + +<p>The graphical user interface for <code>tlmgr</code> needs Perl/Tk to be installed. +For Windows the necessary modules are shipped within TeX Live, for all +other (i.e., Unix-based) systems Perl/Tk (as well as Perl of course) has +to be installed. <a href="http://tug.org/texlive/distro.html#perltk">http://tug.org/texlive/distro.html#perltk</a> has a +list of invocations for some distros. +</p> +<p>When started with <code>tlmgr gui</code> the graphical user interface will be +shown. The main window contains a menu bar, the main display, and a +status area where messages normally shown on the console are displayed. +</p> +<p>Within the main display there are three main parts: the <code>Display +configuration</code> area, the list of packages, and the action buttons. +</p> +<p>Also, at the top right the currently loaded repository is shown; this +also acts as a button and when clicked will try to load the default +repository. To load a different repository, see the <code>tlmgr</code> menu item. +</p> +<p>Finally, the status area at the bottom of the window gives additional +information about what is going on. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#tlmgr-Main-display" accesskey="1">tlmgr Main display</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-Menu-bar" accesskey="2">tlmgr Menu bar</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + +<hr> +<a name="tlmgr-Main-display"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-Menu-bar" accesskey="n" rel="next">tlmgr Menu bar</a>, Up: <a href="#tlmgr-GUI-FOR-TLMGR" accesskey="u" rel="up">tlmgr GUI FOR TLMGR</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Main-display"></a> +<h4 class="appendixsubsec">B.11.1 Main display</h4> + +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#tlmgr-Display-configuration-area" accesskey="1">tlmgr Display configuration area</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-Package-list-area" accesskey="2">tlmgr Package list area</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-Main-display-action-buttons" accesskey="3">tlmgr Main display action buttons</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + +<hr> +<a name="tlmgr-Display-configuration-area"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-Package-list-area" accesskey="n" rel="next">tlmgr Package list area</a>, Up: <a href="#tlmgr-Main-display" accesskey="u" rel="up">tlmgr Main display</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Display-configuration-area"></a> +<h4 class="appendixsubsubsec">B.11.1.1 Display configuration area</h4> + +<p>The first part of the main display allows you to specify (filter) which +packages are shown. By default, all are shown. Changes here are +reflected right away. +</p> +<dl compact="compact"> +<dt>Status</dt> +<dd><a name="tlmgr-Status"></a> +<p>Select whether to show all packages (the default), only those installed, +only those <em>not</em> installed, or only those with update available. +</p> +</dd> +<dt>Category</dt> +<dd><a name="tlmgr-Category"></a> +<p>Select which categories are shown: packages, collections, and/or +schemes. These are briefly explained in the <a href="#tlmgr-DESCRIPTION">DESCRIPTION</a> section +above. +</p> +</dd> +<dt>Match</dt> +<dd><a name="tlmgr-Match"></a> +<p>Select packages matching for a specific pattern. By default, this uses +the same algorithm as <code>tlmgr search</code>, i.e., searches everything: +descriptions, taxonomies, and/or filenames. You can also select any +subset for searching. +</p> +</dd> +<dt>Selection</dt> +<dd><a name="tlmgr-Selection"></a> +<p>Select packages to those selected, those not selected, or all. Here, +“selected” means that the checkbox in the beginning of the line of a +package is ticked. +</p> +</dd> +<dt>Display configuration buttons</dt> +<dd><a name="tlmgr-Display-configuration-buttons"></a> +<p>To the right there are three buttons: select all packages, select none +(a.k.a. deselect all), and reset all these filters to the defaults, +i.e., show all available. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-Package-list-area"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-Main-display-action-buttons" accesskey="n" rel="next">tlmgr Main display action buttons</a>, Previous: <a href="#tlmgr-Display-configuration-area" accesskey="p" rel="prev">tlmgr Display configuration area</a>, Up: <a href="#tlmgr-Main-display" accesskey="u" rel="up">tlmgr Main display</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Package-list-area"></a> +<h4 class="appendixsubsubsec">B.11.1.2 Package list area</h4> + +<p>The second are of the main display lists all installed packages. If a +repository is loaded, those that are available but not installed are +also listed. +</p> +<p>Double clicking on a package line pops up an informational window with +further details: the long description, included files, etc. +</p> +<p>Each line of the package list consists of the following items: +</p> +<dl compact="compact"> +<dt>a checkbox</dt> +<dd><a name="tlmgr-a-checkbox"></a> +<p>Used to select particular packages; some of the action buttons (see +below) work only on the selected packages. +</p> +</dd> +<dt>package name</dt> +<dd><a name="tlmgr-package-name"></a> +<p>The name (identifier) of the package as given in the database. +</p> +</dd> +<dt>local revision (and version)</dt> +<dd><a name="tlmgr-local-revision-_0028and-version_0029"></a> +<p>If the package is installed the TeX Live revision number for the +installed package will be shown. If there is a catalogue version given +in the database for this package, it will be shown in parentheses. +However, the catalogue version, unlike the TL revision, is not +guaranteed to reflect what is actually installed. +</p> +</dd> +<dt>remote revision (and version)</dt> +<dd><a name="tlmgr-remote-revision-_0028and-version_0029"></a> +<p>If a repository has been loaded the revision of the package in the +repository (if present) is shown. As with the local column, if a +catalogue version is provided it will be displayed. And also as with +the local column, the catalogue version may be stale. +</p> +</dd> +<dt>short description</dt> +<dd><a name="tlmgr-short-description"></a> +<p>The short description of the package. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-Main-display-action-buttons"></a> +<div class="header"> +<p> +Previous: <a href="#tlmgr-Package-list-area" accesskey="p" rel="prev">tlmgr Package list area</a>, Up: <a href="#tlmgr-Main-display" accesskey="u" rel="up">tlmgr Main display</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Main-display-action-buttons"></a> +<h4 class="appendixsubsubsec">B.11.1.3 Main display action buttons</h4> + +<p>Below the list of packages are several buttons: +</p> +<dl compact="compact"> +<dt>Update all installed</dt> +<dd><a name="tlmgr-Update-all-installed"></a> +<p>This calls <code>tlmgr update --all</code>, i.e., tries to update all available +packages. Below this button is a toggle to allow reinstallation of +previously removed packages as part of this action. +</p> +<p>The other four buttons only work on the selected packages, i.e., those +where the checkbox at the beginning of the package line is ticked. +</p> +</dd> +<dt>Update</dt> +<dd><a name="tlmgr-Update"></a> +<p>Update only the selected packages. +</p> +</dd> +<dt>Install</dt> +<dd><a name="tlmgr-Install"></a> +<p>Install the selected packages; acts like <code>tlmgr install</code>, i.e., also +installs dependencies. Thus, installing a collection installs all its +constituent packages. +</p> +</dd> +<dt>Remove</dt> +<dd><a name="tlmgr-Remove"></a> +<p>Removes the selected packages; acts like <code>tlmgr remove</code>, i.e., it will +also remove dependencies of collections (but not dependencies of normal +packages). +</p> +</dd> +<dt>Backup</dt> +<dd><a name="tlmgr-Backup"></a> +<p>Makes a backup of the selected packages; acts like <code>tlmgr backup</code>. This +action needs the option <code>backupdir</code> set (see <code>Options -</code> General>). +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-Menu-bar"></a> +<div class="header"> +<p> +Previous: <a href="#tlmgr-Main-display" accesskey="p" rel="prev">tlmgr Main display</a>, Up: <a href="#tlmgr-GUI-FOR-TLMGR" accesskey="u" rel="up">tlmgr GUI FOR TLMGR</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Menu-bar"></a> +<h4 class="appendixsubsec">B.11.2 Menu bar</h4> + +<p>The following entries can be found in the menu bar: +</p> +<dl compact="compact"> +<dt><code>tlmgr</code> menu</dt> +<dd><a name="tlmgr-tlmgr-menu"></a> +<p>The items here load various repositories: the default as specified in +the TeX Live database, the default network repository, the repository +specified on the command line (if any), and an arbitrarily +manually-entered one. Also has the so-necessary <code>quit</code> operation. +</p> +</dd> +<dt><code>Options menu</code></dt> +<dd><a name="tlmgr-Options-menu"></a> +<p>Provides access to several groups of options: <code>Paper</code> (configuration of +default paper sizes), <code>Platforms</code> (only on Unix, configuration of the +supported/installed platforms), <code>GUI Language</code> (select language used in +the GUI interface), and <code>General</code> (everything else). +</p> +<p>Several toggles are also here. The first is <code>Expert options</code>, which is +set by default. If you turn this off, the next time you start the GUI a +simplified screen will be shown that display only the most important +functionality. This setting is saved in the configuration file of +<code>tlmgr</code>; see <a href="#tlmgr-CONFIGURATION-FILE-FOR-TLMGR">CONFIGURATION FILE FOR TLMGR</a> for details. +</p> +<p>The other toggles are all off by default: for debugging output, to +disable the automatic installation of new packages, and to disable the +automatic removal of packages deleted from the server. Playing with the +choices of what is or isn’t installed may lead to an inconsistent TeX Live +installation; e.g., when a package is renamed. +</p> +</dd> +<dt><code>Actions menu</code></dt> +<dd><a name="tlmgr-Actions-menu"></a> +<p>Provides access to several actions: update the filename database (aka +<code>ls-R</code>, <code>mktexlsr</code>, <code>texhash</code>), rebuild all formats (<code>fmtutil-sys +--all</code>), update the font map database (<code>updmap-sys</code>), restore from a backup +of a package, and use of symbolic links in system directories (not on +Windows). +</p> +<p>The final action is to remove the entire TeX Live installation (also not +on Windows). +</p> +</dd> +<dt><code>Help menu</code></dt> +<dd><a name="tlmgr-Help-menu"></a> +<p>Provides access to the TeX Live manual (also on the web at +<a href="http://tug.org/texlive/doc.html">http://tug.org/texlive/doc.html</a>) and the usual “About” box. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-MACHINE_002dREADABLE-OUTPUT"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-AUTHORS-AND-COPYRIGHT" accesskey="n" rel="next">tlmgr AUTHORS AND COPYRIGHT</a>, Previous: <a href="#tlmgr-GUI-FOR-TLMGR" accesskey="p" rel="prev">tlmgr GUI FOR TLMGR</a>, Up: <a href="#tlmgr" accesskey="u" rel="up">tlmgr</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="MACHINE_002dREADABLE-OUTPUT"></a> +<h3 class="appendixsec">B.12 MACHINE-READABLE OUTPUT</h3> + +<p>With the <code>--machine-readable</code> option, <code>tlmgr</code> writes to stdout in the +fixed line-oriented format described here, and the usual informational +messages for human consumption are written to stderr (normally they are +written to stdout). The idea is that a program can get all the +information it needs by reading stdout. +</p> +<p>Currently this option only applies to the +<a href="#tlmgr-update-_005boption_005d_002e_002e_002e-_005bpkg_005d_002e_002e_002e">update</a>, +<a href="#tlmgr-install-_005boption_005d_002e_002e_002e-pkg_002e_002e_002e">install</a>, and +<a href="#tlmgr-option">option</a> actions. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#tlmgr-Machine_002dreadable-update-and-install-output" accesskey="1">tlmgr Machine-readable <code>update</code> and <code>install</code> output</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#tlmgr-Machine_002dreadable-option-output" accesskey="2">tlmgr Machine-readable <code>option</code> output</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + +<hr> +<a name="tlmgr-Machine_002dreadable-update-and-install-output"></a> +<div class="header"> +<p> +Next: <a href="#tlmgr-Machine_002dreadable-option-output" accesskey="n" rel="next">tlmgr Machine-readable <code>option</code> output</a>, Up: <a href="#tlmgr-MACHINE_002dREADABLE-OUTPUT" accesskey="u" rel="up">tlmgr MACHINE-READABLE OUTPUT</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Machine_002dreadable-update-and-install-output"></a> +<h4 class="appendixsubsec">B.12.1 Machine-readable <code>update</code> and <code>install</code> output</h4> + +<p>The output format is as follows: +</p> +<pre class="verbatim"> fieldname "\t" value + ... + "end-of-header" + pkgname status localrev serverrev size runtime esttot + ... + "end-of-updates" + other output from post actions, not in machine readable form +</pre> +<p>The header section currently has two fields: <code>location-url</code> (the +repository source from which updates are being drawn), and +<code>total-bytes</code> (the total number of bytes to be downloaded). +</p> +<p>The <em>localrev</em> and <em>serverrev</em> fields for each package are the +revision numbers in the local installation and server repository, +respectively. The <em>size</em> field is the number of bytes to be +downloaded, i.e., the size of the compressed tar file for a network +installation, not the unpacked size. The runtime and esttot fields +are only present for updated and auto-install packages, and contain +the currently passed time since start of installation/updates +and the estimated total time. +</p> +<p>Line endings may be either LF or CRLF depending on the current platform. +</p> +<dl compact="compact"> +<dt><code>location-url</code> <em>location</em></dt> +<dd><a name="tlmgr-location_002durl-location"></a> +<p>The <em>location</em> may be a url (including <code>file:///foo/bar/...</code>), or a +directory name (<code>/foo/bar</code>). It is the package repository from which +the new package information was drawn. +</p> +</dd> +<dt><code>total-bytes</code> <em>count</em></dt> +<dd><a name="tlmgr-total_002dbytes-count"></a> +<p>The <em>count</em> is simply a decimal number, the sum of the sizes of all the +packages that need updating or installing (which are listed subsequently). +</p> +</dd> +</dl> + +<p>Then comes a line with only the literal string <code>end-of-header</code>. +</p> +<p>Each following line until a line with literal string <code>end-of-updates</code> +reports on one package. The fields on +each line are separated by a tab. Here are the fields. +</p> +<dl compact="compact"> +<dt><em>pkgname</em></dt> +<dd><a name="tlmgr-pkgname"></a> +<p>The TeX Live package identifier, with a possible platform suffix for +executables. For instance, <code>pdftex</code> and <code>pdftex.i386-linux</code> are given +as two separate packages, one on each line. +</p> +</dd> +<dt><em>status</em></dt> +<dd><a name="tlmgr-status"></a> +<p>The status of the package update. One character, as follows: +</p> +<dl compact="compact"> +<dt><code>d</code></dt> +<dd><a name="tlmgr-d"></a> +<p>The package was removed on the server. +</p> +</dd> +<dt><code>f</code></dt> +<dd><a name="tlmgr-f"></a> +<p>The package was removed in the local installation, even though a +collection depended on it. (E.g., the user ran <code>tlmgr remove +--force</code>.) +</p> +</dd> +<dt><code>u</code></dt> +<dd><a name="tlmgr-u"></a> +<p>Normal update is needed. +</p> +</dd> +<dt><code>r</code></dt> +<dd><a name="tlmgr-r"></a> +<p>Reversed non-update: the locally-installed version is newer than the +version on the server. +</p> +</dd> +<dt><code>a</code></dt> +<dd><a name="tlmgr-a"></a> +<p>Automatically-determined need for installation, the package is new on +the server and is (most probably) part of an installed collection. +</p> +</dd> +<dt><code>i</code></dt> +<dd><a name="tlmgr-i"></a> +<p>Package will be installed and isn’t present in the local installation +(action install). +</p> +</dd> +<dt><code>I</code></dt> +<dd><a name="tlmgr-I"></a> +<p>Package is already present but will be reinstalled (action install). +</p> +</dd> +</dl> + +</dd> +<dt><em>localrev</em></dt> +<dd><a name="tlmgr-localrev"></a> +<p>The revision number of the installed package, or <code>-</code> if it is not +present locally. +</p> +</dd> +<dt><em>serverrev</em></dt> +<dd><a name="tlmgr-serverrev"></a> +<p>The revision number of the package on the server, or <code>-</code> if it is not +present on the server. +</p> +</dd> +<dt><em>size</em></dt> +<dd><a name="tlmgr-size"></a> +<p>The size in bytes of the package on the server. The sum of all the +package sizes is given in the <code>total-bytes</code> header field mentioned above. +</p> +</dd> +<dt><em>runtime</em></dt> +<dd><a name="tlmgr-runtime"></a> +<p>The run time since start of installations or updates. +</p> +</dd> +<dt><em>esttot</em></dt> +<dd><a name="tlmgr-esttot"></a> +<p>The estimated total time. +</p> +</dd> +</dl> + +<hr> +<a name="tlmgr-Machine_002dreadable-option-output"></a> +<div class="header"> +<p> +Previous: <a href="#tlmgr-Machine_002dreadable-update-and-install-output" accesskey="p" rel="prev">tlmgr Machine-readable <code>update</code> and <code>install</code> output</a>, Up: <a href="#tlmgr-MACHINE_002dREADABLE-OUTPUT" accesskey="u" rel="up">tlmgr MACHINE-READABLE OUTPUT</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Machine_002dreadable-option-output"></a> +<h4 class="appendixsubsec">B.12.2 Machine-readable <code>option</code> output</h4> + +<p>The output format is as follows: +</p> +<pre class="verbatim"> key "\t" value +</pre> +<p>If a value is not saved in the database the string <code>(not set)</code> is shown. +</p> +<p>If you are developing a program that uses this output, and find that +changes would be helpful, do not hesitate to write the mailing list. +</p> +<hr> +<a name="tlmgr-AUTHORS-AND-COPYRIGHT"></a> +<div class="header"> +<p> +Previous: <a href="#tlmgr-MACHINE_002dREADABLE-OUTPUT" accesskey="p" rel="prev">tlmgr MACHINE-READABLE OUTPUT</a>, Up: <a href="#tlmgr" accesskey="u" rel="up">tlmgr</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="AUTHORS-AND-COPYRIGHT-1"></a> +<h3 class="appendixsec">B.13 AUTHORS AND COPYRIGHT</h3> + +<p>This script and its documentation were written for the TeX Live +distribution (<a href="http://tug.org/texlive">http://tug.org/texlive</a>) and both are licensed under the +GNU General Public License Version 2 or later. +</p> + +<hr> +<a name="Index"></a> +<div class="header"> +<p> +Previous: <a href="#tlmgr" accesskey="p" rel="prev">tlmgr</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Index-1"></a> +<h2 class="unnumbered">Index</h2> + +<table><tr><th valign="top">Jump to: </th><td><a class="summary-letter" href="#Index_cp_symbol-1"><b>-</b></a> + +<br> +<a class="summary-letter" href="#Index_cp_letter-A"><b>A</b></a> + +<a class="summary-letter" href="#Index_cp_letter-B"><b>B</b></a> + +<a class="summary-letter" href="#Index_cp_letter-C"><b>C</b></a> + +<a class="summary-letter" href="#Index_cp_letter-D"><b>D</b></a> + +<a class="summary-letter" href="#Index_cp_letter-E"><b>E</b></a> + +<a class="summary-letter" href="#Index_cp_letter-F"><b>F</b></a> + +<a class="summary-letter" href="#Index_cp_letter-G"><b>G</b></a> + +<a class="summary-letter" href="#Index_cp_letter-I"><b>I</b></a> + +<a class="summary-letter" href="#Index_cp_letter-K"><b>K</b></a> + +<a class="summary-letter" href="#Index_cp_letter-L"><b>L</b></a> + +<a class="summary-letter" href="#Index_cp_letter-M"><b>M</b></a> + +<a class="summary-letter" href="#Index_cp_letter-N"><b>N</b></a> + +<a class="summary-letter" href="#Index_cp_letter-O"><b>O</b></a> + +<a class="summary-letter" href="#Index_cp_letter-P"><b>P</b></a> + +<a class="summary-letter" href="#Index_cp_letter-R"><b>R</b></a> + +<a class="summary-letter" href="#Index_cp_letter-S"><b>S</b></a> + +<a class="summary-letter" href="#Index_cp_letter-T"><b>T</b></a> + +<a class="summary-letter" href="#Index_cp_letter-U"><b>U</b></a> + +<a class="summary-letter" href="#Index_cp_letter-V"><b>V</b></a> + +<a class="summary-letter" href="#Index_cp_letter-W"><b>W</b></a> + +<a class="summary-letter" href="#Index_cp_letter-X"><b>X</b></a> + +<a class="summary-letter" href="#Index_cp_letter-Z"><b>Z</b></a> + +</td></tr></table> +<table class="index-cp" border="0"> +<tr><td></td><th align="left">Index Entry</th><td> </td><th align="left"> Section</th></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-1">-</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dbindir-configure-option"><code>--bindir configure <span class="roman">option</span></code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002dprefix-_002d_002dbindir-_2026"><code>--prefix</code> <code>--bindir</code> …</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dbuild_003dhost"><code>--build=<var>host</var></code></a>:</td><td> </td><td valign="top"><a href="#Cross-configuring">Cross configuring</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002dall_002dpackages-configure-option"><code>--disable-all-packages configure <span class="roman">option</span></code></a>:</td><td> </td><td valign="top"><a href="#Build-one-package">Build one package</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002dall_002dpkgs"><code>--disable-all-pkgs</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002ddisable_002dall_002dpkgs"><code>--disable-all-pkgs</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002dbibtex8"><code>--disable-bibtex8</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fbibtex_002dx">Configure options for <samp>texk/bibtex-x</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002ddump_002dshare"><code>--disable-dump-share</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002ddvipdfmx"><code>--disable-dvipdfmx</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fdvipdfm_002dx">Configure options for <samp>texk/dvipdfm-x</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002detex_002dsynctex"><code>--disable-etex-synctex</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002dipc"><code>--disable-ipc</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002dlargefile"><code>--disable-largefile</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002ddisable_002dlargefile"><code>--disable-largefile</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002dlinked_002dscripts"><code>--disable-linked-scripts</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002ftexlive">Configure options for <samp>texk/texlive</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002dmf_002dnowin"><code>--disable-mf-nowin</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002dmissing"><code>--disable-missing</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002ddisable_002dmissing"><code>--disable-missing</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002dnative_002dtexlive_002dbuild"><code>--disable-native-texlive-build</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002ddisable_002dnative_002dtexlive_002dbuild"><code>--disable-native-texlive-build</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002domfonts"><code>--disable-omfonts</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002dprog"><code>--disable-<var>prog</var></code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002denable_002dprog-_002d_002ddisable_002dprog"><code>--enable-<var>prog</var></code> <code>--disable-<var>prog</var></code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002dtex"><code>--disable-tex</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002dweb_002dprogs"><code>--disable-web-progs</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002dxdvipdfmx"><code>--disable-xdvipdfmx</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fdvipdfm_002dx">Configure options for <samp>texk/dvipdfm-x</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002d_002awin-for-Metafont-window-support"><code>--enable-*win <span class="roman">for Metafont window support</span></code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dauto_002dcore"><code>--enable-auto-core</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dcompiler_002dwarnings_003dlevel"><code>--enable-compiler-warnings=<var>level</var></code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002denable_002dcompiler_002dwarnings_003dlevel"><code>--enable-compiler-warnings=</code><var>level</var></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dcxx_002druntime_002dhack-configure-option"><code>--enable-cxx-runtime-hack configure <span class="roman">option</span></code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-compilers">Macros for compilers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002detex"><code>--enable-etex</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dlibtool_002dhack"><code>--enable-libtool-hack</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dmaintainer_002dmode"><code>--enable-maintainer-mode</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002denable_002dmaintainer_002dmode"><code>--enable-maintainer-mode</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dmaintainer_002dmode-configure-option"><code>--enable-maintainer-mode configure <span class="roman">option</span></code></a>:</td><td> </td><td valign="top"><a href="#Build-system-tools">Build system tools</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dmktextfm_002ddefault"><code>--enable-mktextfm-default</code></a>:</td><td> </td><td valign="top"><a href="#kpathsea-library"><code>kpathsea</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dmultiplatform"><code>--enable-multiplatform</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002denable_002dmultiplatform"><code>--enable-multiplatform</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dprog"><code>--enable-<var>prog</var></code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002denable_002dprog-_002d_002ddisable_002dprog"><code>--enable-<var>prog</var></code> <code>--disable-<var>prog</var></code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dshared"><code>--enable-shared</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002denable_002dshared"><code>--enable-shared</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dsilent_002drules"><code>--enable-silent-rules</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002denable_002dsilent_002drules"><code>--enable-silent-rules</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dtex_002dsynctex"><code>--enable-tex-synctex</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dtexlive_002dbuild"><code>--enable-texlive-build</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002ddisable_002dnative_002dtexlive_002dbuild"><code>--disable-native-texlive-build</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dxi2_002dscrolling"><code>--enable-xi2-scrolling</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fxdvik">Configure options for <samp>texk/xdvik</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dxindy_002ddocs"><code>--enable-xindy-docs</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-utils_002fxindy">Configure options for <samp>utils/xindy</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dxindy_002drules"><code>--enable-xindy-rules</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-utils_002fxindy">Configure options for <samp>utils/xindy</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dhost_003dhost"><code>--host=<var>host</var></code></a>:</td><td> </td><td valign="top"><a href="#Cross-configuring">Cross configuring</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dlibdir"><code>--libdir</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002denable_002dmultiplatform"><code>--enable-multiplatform</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dno_002dclean-Build-option"><code>--no-clean Build <span class="roman">option</span></code></a>:</td><td> </td><td valign="top"><a href="#Build-problems">Build problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dprefix-configure-option"><code>--prefix configure <span class="roman">option</span></code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002dprefix-_002d_002dbindir-_2026"><code>--prefix</code> <code>--bindir</code> …</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dbanner_002dadd_003dstr"><code>--with-banner-add=<var>str</var></code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dclisp_002druntime_003dfilename"><code>--with-clisp-runtime=<var>filename</var></code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-utils_002fxindy">Configure options for <samp>utils/xindy</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002deditor_003dcmd"><code>--with-editor=<var>cmd</var></code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dfontconfig_002dincludes_003ddir"><code>--with-fontconfig-includes=<var>dir</var></code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dfontconfig_002dlibdir_003ddir"><code>--with-fontconfig-libdir=<var>dir</var></code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dgs_003dfilename"><code>--with-gs=<var>filename</var></code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fxdvik">Configure options for <samp>texk/xdvik</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dlib_002dincludes_003ddir_002c-_002dlibdir"><code>--with-<var>lib</var>-includes=<var>dir</var><span class="roman">,</span> -libdir</code></a>:</td><td> </td><td valign="top"><a href="#Library_002dspecific-configure-options">Library-specific configure options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dlibgs_002dincludes_002c-_002dlibdir"><code>--with-libgs-includes<span class="roman">,</span> -libdir</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fdvisvgm">Configure options for <samp>texk/dvisvgm</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002drecode"><code>--with-recode</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-utils_002fxindy">Configure options for <samp>utils/xindy</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dsystem_002dkpathsea"><code>--with-system-kpathsea</code></a>:</td><td> </td><td valign="top"><a href="#kpathsea-library"><code>kpathsea</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dsystem_002dlib"><code>--with-system-<var>lib</var></code></a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-generic-library-module">Adding a new generic library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dsystem_002dlib-1"><code>--with-system-<var>lib</var></code></a>:</td><td> </td><td valign="top"><a href="#Library_002dspecific-configure-options">Library-specific configure options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dsystem_002dlibgs"><code>--with-system-libgs</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fdvisvgm">Configure options for <samp>texk/dvisvgm</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dsystem_002dpoppler"><code>--with-system-poppler</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-system-poppler">Configure options for system <code>poppler</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dsystem_002dxpdf"><code>--with-system-xpdf</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-system-poppler">Configure options for system <code>poppler</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dxdvi_002dx_002dtoolkit"><code>--with-xdvi-x-toolkit</code></a>:</td><td> </td><td valign="top"><a href="#xdvik-package"><code>xdvik</code> package</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dxdvi_002dx_002dtoolkit_003dkit"><code>--with-xdvi-x-toolkit=<var>kit</var></code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fxdvik">Configure options for <samp>texk/xdvik</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwithout_002dlibgs"><code>--without-libgs</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fdvisvgm">Configure options for <samp>texk/dvisvgm</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwithout_002dln_002ds"><code>--without-ln-s</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002dwithout_002dln_002ds"><code>--without-ln-s</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwithout_002dx"><code>--without-x</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002dwithout_002dx"><code>--without-x</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dC-configure-option"><code>-C configure <span class="roman">option</span></code></a>:</td><td> </td><td valign="top"><a href="#Build-in-parallel">Build in parallel</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dj-make-option"><code>-j make <span class="roman">option</span></code></a>:</td><td> </td><td valign="top"><a href="#Build-in-parallel">Build in parallel</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-A">A</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-adapting-TeX-Live-for-distros">adapting TeX Live for distros</a>:</td><td> </td><td valign="top"><a href="#Distro-builds">Distro builds</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-adding-a-new-generic-library">adding a new generic library</a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-generic-library-module">Adding a new generic library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-adding-a-new-program">adding a new program</a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-program-module">Adding a new program module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-adding-a-new-TeX_002dspecific-library">adding a new TeX-specific library</a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-TeX_002dspecific-library-module">Adding a new TeX-specific library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-adding-to-TeX-Live">adding to TeX Live</a>:</td><td> </td><td valign="top"><a href="#Extending-TeX-Live">Extending TeX Live</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-am_002f-top_002dlevel-directory"><samp>am/</samp> top-level directory</a>:</td><td> </td><td valign="top"><a href="#Top_002dlevel-directories">Top-level directories</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ANSI-C">ANSI C</a>:</td><td> </td><td valign="top"><a href="#Declarations-and-definitions">Declarations and definitions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-asymptote"><code>asymptote</code></a>:</td><td> </td><td valign="top"><a href="#Linked-scripts">Linked scripts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-asymptote-1"><code>asymptote</code></a>:</td><td> </td><td valign="top"><a href="#asymptote"><code>asymptote</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Autoconf">Autoconf</a>:</td><td> </td><td valign="top"><a href="#Overview-of-build-system">Overview of build system</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-autoconf-macros">autoconf macros</a>:</td><td> </td><td valign="top"><a href="#Autoconf-macros">Autoconf macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Automake">Automake</a>:</td><td> </td><td valign="top"><a href="#Overview-of-build-system">Overview of build system</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-B">B</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-biber"><code>biber</code></a>:</td><td> </td><td valign="top"><a href="#Linked-scripts">Linked scripts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bibtex_002dx"><code>bibtex-x</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fbibtex_002dx">Configure options for <samp>texk/bibtex-x</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bibtex8"><code>bibtex8</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fbibtex_002dx">Configure options for <samp>texk/bibtex-x</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bibtexu"><code>bibtexu</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fbibtex_002dx">Configure options for <samp>texk/bibtex-x</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-BSD-distro">BSD distro</a>:</td><td> </td><td valign="top"><a href="#Distro-builds">Distro builds</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-build-directory_002c-required">build directory, required</a>:</td><td> </td><td valign="top"><a href="#Building">Building</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-build-iteration">build iteration</a>:</td><td> </td><td valign="top"><a href="#Build-iteration">Build iteration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-build-on-demand">build on demand</a>:</td><td> </td><td valign="top"><a href="#Build-one-package">Build one package</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-build-one-package">build one package</a>:</td><td> </td><td valign="top"><a href="#Build-one-package">Build one package</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-build-problems">build problems</a>:</td><td> </td><td valign="top"><a href="#Build-problems">Build problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Build-script"><code>Build <span class="roman">script</span></code></a>:</td><td> </td><td valign="top"><a href="#Building">Building</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-build-system_002c-design-of">build system, design of</a>:</td><td> </td><td valign="top"><a href="#Overview-of-build-system">Overview of build system</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-BUILDCC_002c-BUILDCFLAGS_002c-_2026"><code>BUILDCC<span class="roman">,</span> BUILDCFLAGS<span class="roman">, …</span></code></a>:</td><td> </td><td valign="top"><a href="#Cross-configuring">Cross configuring</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-building">building</a>:</td><td> </td><td valign="top"><a href="#Building">Building</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-building-a-distribution">building a distribution</a>:</td><td> </td><td valign="top"><a href="#Build-distribution">Build distribution</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-building-in-parallel">building in parallel</a>:</td><td> </td><td valign="top"><a href="#Build-in-parallel">Build in parallel</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-C">C</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-C_002c-ANSI_002c-required">C, ANSI, required</a>:</td><td> </td><td valign="top"><a href="#Declarations-and-definitions">Declarations and definitions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-C99_002c-avoided">C99, avoided</a>:</td><td> </td><td valign="top"><a href="#Declarations-and-definitions">Declarations and definitions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cache-file_002c-for-configure">cache file, for <code>configure</code></a>:</td><td> </td><td valign="top"><a href="#Build-in-parallel">Build in parallel</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cache-for-configure">cache for <code>configure</code></a>:</td><td> </td><td valign="top"><a href="#Build-in-parallel">Build in parallel</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-callexe_002ec"><code>callexe.c</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-Windows">Macros for Windows</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-CC"><code>CC</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-CC_005fBUILD"><code>CC_BUILD</code></a>:</td><td> </td><td valign="top"><a href="#Cross-problems">Cross problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-chktex"><code>chktex</code></a>:</td><td> </td><td valign="top"><a href="#Declarations-and-definitions">Declarations and definitions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-clisp"><code>clisp</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-CLISP-1"><code>CLISP</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-CLISP">CLISP</a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-utils_002fxindy">Configure options for <samp>utils/xindy</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-clisp_002c-required-by-xindy"><code>clisp</code>, required by <code>xindy</code></a>:</td><td> </td><td valign="top"><a href="#Prerequisites">Prerequisites</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-coding-conventions">coding conventions</a>:</td><td> </td><td valign="top"><a href="#Coding-conventions">Coding conventions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-compilers_002c-C-and-C_002b_002b">compilers, C and C++</a>:</td><td> </td><td valign="top"><a href="#Prerequisites">Prerequisites</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-config_002eguess_002c-config_002esub"><code>config.guess<span class="roman">,</span> config.sub</code></a>:</td><td> </td><td valign="top"><a href="#Top_002dlevel-directories">Top-level directories</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-options"><code>configure</code> options</a>:</td><td> </td><td valign="top"><a href="#Configure-options">Configure options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-options_002c-for-bibtex_002dx"><code>configure</code> options, for <code>bibtex-x</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fbibtex_002dx">Configure options for <samp>texk/bibtex-x</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-options_002c-for-dvipdfm_002dx"><code>configure</code> options, for <code>dvipdfm-x</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fdvipdfm_002dx">Configure options for <samp>texk/dvipdfm-x</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-options_002c-for-dvisvgm"><code>configure</code> options, for <samp>dvisvgm</samp></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fdvisvgm">Configure options for <samp>texk/dvisvgm</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-options_002c-for-kpathsea"><code>configure</code> options, for <code>kpathsea</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-kpathsea">Configure options for <code>kpathsea</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-options_002c-for-system-poppler"><code>configure</code> options, for system <code>poppler</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-system-poppler">Configure options for system <code>poppler</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-options_002c-for-texk_002ftexlive"><code>configure</code> options, for <samp>texk/texlive</samp></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002ftexlive">Configure options for <samp>texk/texlive</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-options_002c-for-web2c"><code>configure</code> options, for <code>web2c</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-options_002c-for-xdvik"><code>configure</code> options, for <samp>xdvik</samp></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fxdvik">Configure options for <samp>texk/xdvik</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-options_002c-for-xindy"><code>configure</code> options, for <samp>xindy</samp></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-utils_002fxindy">Configure options for <samp>utils/xindy</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-options_002c-global"><code>configure</code> options, global</a>:</td><td> </td><td valign="top"><a href="#Global-configure-options">Global configure options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-options_002c-library_002dspecific"><code>configure</code> options, library-specific</a>:</td><td> </td><td valign="top"><a href="#Library_002dspecific-configure-options">Library-specific configure options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-options_002c-program_002dspecific"><code>configure</code> options, program-specific</a>:</td><td> </td><td valign="top"><a href="#Program_002dspecific-configure-options">Program-specific configure options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-variables"><code>configure</code> variables</a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configuring_002c-for-cross-compilation">configuring, for cross compilation</a>:</td><td> </td><td valign="top"><a href="#Cross-configuring">Cross configuring</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-const"><code>const</code></a>:</td><td> </td><td valign="top"><a href="#Const">Const</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-conventions_002c-coding">conventions, coding</a>:</td><td> </td><td valign="top"><a href="#Coding-conventions">Coding conventions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-CPPFLAGS"><code>CPPFLAGS</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cross-compilation">cross compilation</a>:</td><td> </td><td valign="top"><a href="#Cross-compilation">Cross compilation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cross-compilation-configuring">cross compilation configuring</a>:</td><td> </td><td valign="top"><a href="#Cross-configuring">Cross configuring</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cross-compilation-problems">cross compilation problems</a>:</td><td> </td><td valign="top"><a href="#Cross-problems">Cross problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cross-compilation_002c-with-host-binary">cross compilation, with host binary</a>:</td><td> </td><td valign="top"><a href="#xdvik-package"><code>xdvik</code> package</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ctangle"><code>ctangle</code></a>:</td><td> </td><td valign="top"><a href="#Cross-problems">Cross problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-CXX"><code>CXX</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-D">D</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-declarations-and-definitions_002c-in-source-code">declarations and definitions, in source code</a>:</td><td> </td><td valign="top"><a href="#Declarations-and-definitions">Declarations and definitions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dependencies_002c-with-several-output-files">dependencies, with several output files</a>:</td><td> </td><td valign="top"><a href="#Build-in-parallel">Build in parallel</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-DESTDIR"><code>DESTDIR</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002dprefix-_002d_002dbindir-_2026"><code>--prefix</code> <code>--bindir</code> …</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-directories_002c-for-installation">directories, for installation</a>:</td><td> </td><td valign="top"><a href="#Installation-directories">Installation directories</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-directories_002c-top_002dlevel">directories, top-level</a>:</td><td> </td><td valign="top"><a href="#Top_002dlevel-directories">Top-level directories</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-discards-qualifiers-warning">discards qualifiers warning</a>:</td><td> </td><td valign="top"><a href="#Const">Const</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dist-and-distcheck-targets-for-make"><code>dist</code> and <code>distcheck</code> targets for <code>make</code></a>:</td><td> </td><td valign="top"><a href="#Build-distribution">Build distribution</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-distribution-tarball_002c-making">distribution tarball, making</a>:</td><td> </td><td valign="top"><a href="#Build-distribution">Build distribution</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-distro_002c-building-for">distro, building for</a>:</td><td> </td><td valign="top"><a href="#Distro-builds">Distro builds</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dvipdfmx"><code>dvipdfmx</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fdvipdfm_002dx">Configure options for <samp>texk/dvipdfm-x</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dvisvgm"><code>dvisvgm</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fdvisvgm">Configure options for <samp>texk/dvisvgm</samp></a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-E">E</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-environment-variables_002c-for-configure">environment variables, for <code>configure</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options">Configure options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-exec_005fprefix"><code>exec_prefix</code></a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002denable_002dmultiplatform"><code>--enable-multiplatform</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-extending-TeX-Live">extending TeX Live</a>:</td><td> </td><td valign="top"><a href="#Extending-TeX-Live">Extending TeX Live</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-extern-functions"><code>extern</code> functions</a>:</td><td> </td><td valign="top"><a href="#Declarations-and-definitions">Declarations and definitions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-extra_002f-top_002dlevel-directory"><samp>extra/</samp> top-level directory</a>:</td><td> </td><td valign="top"><a href="#Top_002dlevel-directories">Top-level directories</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-F">F</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-failure-to-build">failure to build</a>:</td><td> </td><td valign="top"><a href="#Build-problems">Build problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ffcall_002c-required-by-xindy"><code>ffcall</code>, required by <code>xindy</code></a>:</td><td> </td><td valign="top"><a href="#Prerequisites">Prerequisites</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-flags_002c-macros-for-library-and-header">flags, macros for library and header</a>:</td><td> </td><td valign="top"><a href="#Macros-for-library-and-header-flags">Macros for library and header flags</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fontconfig-library_002c-required-by-xetex"><code>fontconfig</code> library, required by <code>xetex</code></a>:</td><td> </td><td valign="top"><a href="#Prerequisites">Prerequisites</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-FreeType">FreeType</a>:</td><td> </td><td valign="top"><a href="#Prerequisites">Prerequisites</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-freetype-cross-compiling"><code>freetype</code> cross compiling</a>:</td><td> </td><td valign="top"><a href="#Cross-problems">Cross problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-freetype-library"><code>freetype <span class="roman">library</span></code></a>:</td><td> </td><td valign="top"><a href="#freetype-library"><code>freetype</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-freetype_002dconfig"><code>freetype-config</code></a>:</td><td> </td><td valign="top"><a href="#freetype-library"><code>freetype</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-freetype_002dconfig-1"><code>freetype-config</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-FT2_005fCONFIG"><code>FT2_CONFIG</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-G">G</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-general-setup-macros">general setup macros</a>:</td><td> </td><td valign="top"><a href="#General-setup-macros">General setup macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-generic-library-module_002c-adding">generic library module, adding</a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-generic-library-module">Adding a new generic library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-global-configure-options">global <code>configure</code> options</a>:</td><td> </td><td valign="top"><a href="#Global-configure-options">Global configure options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-gmake_002c-required"><code>gmake</code>, required</a>:</td><td> </td><td valign="top"><a href="#Prerequisites">Prerequisites</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-GNU-make_002c-required">GNU <code>make</code>, required</a>:</td><td> </td><td valign="top"><a href="#Prerequisites">Prerequisites</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-GNU-tools_002c-needed-for-building">GNU tools, needed for building</a>:</td><td> </td><td valign="top"><a href="#Build-system-tools">Build system tools</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-GNU_002fLinux-distro">GNU/Linux distro</a>:</td><td> </td><td valign="top"><a href="#Distro-builds">Distro builds</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Gnulib_002c-used-for-common-files">Gnulib, used for common files</a>:</td><td> </td><td valign="top"><a href="#Top_002dlevel-directories">Top-level directories</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-I">I</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-iconv"><code>iconv</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-utils_002fxindy">Configure options for <samp>utils/xindy</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ICU-cross-compiling">ICU cross compiling</a>:</td><td> </td><td valign="top"><a href="#Cross-problems">Cross problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ICU-libraries">ICU libraries</a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-icu_002dconfig"><code>icu-config</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ICU_005fCONFIG"><code>ICU_CONFIG</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-infrastructure_002c-tools-needed-for">infrastructure, tools needed for</a>:</td><td> </td><td valign="top"><a href="#Build-system-tools">Build system tools</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-install_002dtl_002c-TeX-Live-installer"><code>install-tl<span class="roman">, TeX Live installer</span></code></a>:</td><td> </td><td valign="top"><a href="#Installing">Installing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-installation-directories">installation directories</a>:</td><td> </td><td valign="top"><a href="#Installation-directories">Installation directories</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-installing">installing</a>:</td><td> </td><td valign="top"><a href="#Installing">Installing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-interprocess-communication">interprocess communication</a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-introduction">introduction</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-iteration-through-sources_002c-by-configure-and-make">iteration through sources, by <code>configure</code> and <code>make</code></a>:</td><td> </td><td valign="top"><a href="#Build-iteration">Build iteration</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-K">K</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpathsea-library"><code>kpathsea <span class="roman">library</span></code></a>:</td><td> </td><td valign="top"><a href="#kpathsea-library"><code>kpathsea</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpathsea_002eac"><code>kpathsea.ac</code></a>:</td><td> </td><td valign="top"><a href="#kpathsea-library"><code>kpathsea</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_002dlibpng_002dflags_002em4"><code>kpse-libpng-flags.m4</code></a>:</td><td> </td><td valign="top"><a href="#png-library"><code>png</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_002dpkgs_002em4"><code>kpse-pkgs.m4</code></a>:</td><td> </td><td valign="top"><a href="#Overview-of-build-system">Overview of build system</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_002dzlib_002dflags_002em4"><code>kpse-zlib-flags.m4</code></a>:</td><td> </td><td valign="top"><a href="#zlib-library"><code>zlib</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpsewhich"><code>kpsewhich</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSEWHICH"><code>KPSEWHICH</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fADD_005fFLAGS"><code>KPSE_ADD_FLAGS</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-library-and-header-flags">Macros for library and header flags</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fALL_005fSYSTEM_005fFLAGS"><code>KPSE_ALL_SYSTEM_FLAGS</code></a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-generic-library-module">Adding a new generic library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fBASIC"><code>KPSE_BASIC</code></a>:</td><td> </td><td valign="top"><a href="#General-setup-macros">General setup macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fCHECK_005fLATEX"><code>KPSE_CHECK_LATEX</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-programs">Macros for programs</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fCHECK_005fPDFLATEX"><code>KPSE_CHECK_PDFLATEX</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-programs">Macros for programs</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fCHECK_005fPERL"><code>KPSE_CHECK_PERL</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-programs">Macros for programs</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fCHECK_005fWIN32"><code>KPSE_CHECK_WIN32</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-Windows">Macros for Windows</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fCOMMON"><code>KPSE_COMMON</code></a>:</td><td> </td><td valign="top"><a href="#General-setup-macros">General setup macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fCOMPILER_005fVISIBILITY"><code>KPSE_COMPILER_VISIBILITY</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-compilers">Macros for compilers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fCOMPILER_005fWARNINGS"><code>KPSE_COMPILER_WARNINGS</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-compilers">Macros for compilers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fCOND_005fMINGW32"><code>KPSE_COND_MINGW32</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-Windows">Macros for Windows</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fCOND_005fWIN32"><code>KPSE_COND_WIN32</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-Windows">Macros for Windows</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fCOND_005fWIN32_005fWRAP"><code>KPSE_COND_WIN32_WRAP</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-Windows">Macros for Windows</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_005fcv_005fcxx_005fhack"><code>kpse_cv_cxx_hack</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-compilers">Macros for compilers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_005fcv_005fhave_005fwin32"><code>kpse_cv_have_win32</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-Windows">Macros for Windows</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_005fcv_005fvisibility_005fc_005bxx_005dflags"><code>kpse_cv_visibility_c[xx]flags</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-compilers">Macros for compilers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_005fcv_005fwarning_005fcflags"><code>kpse_cv_warning_cflags</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-compilers">Macros for compilers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fCXX_005fHACK"><code>KPSE_CXX_HACK</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-compilers">Macros for compilers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fENABLE_005fPROG"><code>KPSE_ENABLE_PROG</code></a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-program-module">Adding a new program module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fLARGEFILE"><code>KPSE_LARGEFILE</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-libraries">Macros for libraries</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fLIBPNG_005fFLAGS"><code>KPSE_LIBPNG_FLAGS</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-library-and-header-flags">Macros for library and header flags</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fLIBPNG_005fFLAGS-1"><code>KPSE_LIBPNG_FLAGS</code></a>:</td><td> </td><td valign="top"><a href="#png-library"><code>png</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_005flibs_005fpkgs"><code>kpse_libs_pkgs</code></a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-generic-library-module">Adding a new generic library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fLIB_005fFLAGS"><code>KPSE_<var>LIB</var>_FLAGS</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-library-and-header-flags">Macros for library and header flags</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fLIB_005fFLAGS-1"><code>KPSE_<var>LIB</var>_FLAGS</code></a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-generic-library-module">Adding a new generic library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fLIB_005fSYSTEM_005fFLAGS"><code>KPSE_<var>LIB</var>_SYSTEM_FLAGS</code></a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-generic-library-module">Adding a new generic library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fPROG_005fLEX"><code>KPSE_PROG_LEX</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-programs">Macros for programs</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fRESTORE_005fFLAGS"><code>KPSE_RESTORE_FLAGS</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-library-and-header-flags">Macros for library and header flags</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_005ftexk_005fpkgs"><code>kpse_texk_pkgs</code></a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-program-module">Adding a new program module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_005ftexlibs_005fpkgs"><code>kpse_texlibs_pkgs</code></a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-TeX_002dspecific-library-module">Adding a new TeX-specific library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fTRY_005fLIB"><code>KPSE_TRY_LIB</code></a>:</td><td> </td><td valign="top"><a href="#png-library"><code>png</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fTRY_005fLIB-1"><code>KPSE_TRY_LIB</code></a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-generic-library-module">Adding a new generic library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fTRY_005fLIBXX"><code>KPSE_TRY_LIBXX</code></a>:</td><td> </td><td valign="top"><a href="#png-library"><code>png</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fTRY_005fLIBXX-1"><code>KPSE_TRY_LIBXX</code></a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-generic-library-module">Adding a new generic library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-kpse_005futils_005fpkgs"><code>kpse_utils_pkgs</code></a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-program-module">Adding a new program module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fWIN32_005fCALL"><code>KPSE_WIN32_CALL</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-Windows">Macros for Windows</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fWITH_005fLIB"><code>KPSE_WITH_LIB</code></a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-generic-library-module">Adding a new generic library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPSE_005fWITH_005fTEXLIB"><code>KPSE_WITH_TEXLIB</code></a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-TeX_002dspecific-library-module">Adding a new TeX-specific library module</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-L">L</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-large-file-support">large file support</a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002ddisable_002dlargefile"><code>--disable-largefile</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-LATEX"><code>LATEX</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-layout-of-sources">layout of sources</a>:</td><td> </td><td valign="top"><a href="#Layout-and-infrastructure">Layout and infrastructure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-LFS-_0028large-file-support_0029">LFS (large file support)</a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002ddisable_002dlargefile"><code>--disable-largefile</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-libfreetype"><code>libfreetype</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-libfreetype_002c-and-const"><code>libfreetype</code>, and <code>const</code></a>:</td><td> </td><td valign="top"><a href="#Const">Const</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-libpng-library"><code>libpng <span class="roman">library</span></code></a>:</td><td> </td><td valign="top"><a href="#png-library"><code>png</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-library-module_002c-generic_002c-adding">library module, generic, adding</a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-generic-library-module">Adding a new generic library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-library-module_002c-TeX_002dspecific_002c-adding">library module, TeX-specific, adding</a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-TeX_002dspecific-library-module">Adding a new TeX-specific library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-library-modules">library modules</a>:</td><td> </td><td valign="top"><a href="#Library-modules">Library modules</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-library_002dspecific-configure-options">library-specific <code>configure</code> options</a>:</td><td> </td><td valign="top"><a href="#Library_002dspecific-configure-options">Library-specific configure options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-libstc_002b_002b_002c-statically-linking"><code>libstc++<span class="roman">, statically linking</span></code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-compilers">Macros for compilers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Libtool">Libtool</a>:</td><td> </td><td valign="top"><a href="#Overview-of-build-system">Overview of build system</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-libtool_002c-hack-for-avoiding-excessive-linking"><code>libtool<span class="roman">, hack for avoiding excessive linking</span></code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-libXt"><code>libXt</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-linked-scripts">linked scripts</a>:</td><td> </td><td valign="top"><a href="#Linked-scripts">Linked scripts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-linking-C_002b_002b-libraries-statically">linking C++ libraries statically</a>:</td><td> </td><td valign="top"><a href="#Macros-for-compilers">Macros for compilers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-lisp_002erun_002c-lisp_002eexe"><code>lisp.run<span class="roman">,</span> lisp.exe</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-utils_002fxindy">Configure options for <samp>utils/xindy</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-LittleEndian-architectures">LittleEndian architectures</a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-M">M</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-m4_002f-top_002dlevel-directory"><samp>m4/</samp> top-level directory</a>:</td><td> </td><td valign="top"><a href="#Top_002dlevel-directories">Top-level directories</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-macros_002c-for-compilers">macros, for compilers</a>:</td><td> </td><td valign="top"><a href="#Macros-for-compilers">Macros for compilers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-macros_002c-for-libraries">macros, for libraries</a>:</td><td> </td><td valign="top"><a href="#Macros-for-libraries">Macros for libraries</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-macros_002c-for-library-and-header-flags">macros, for library and header flags</a>:</td><td> </td><td valign="top"><a href="#Macros-for-library-and-header-flags">Macros for library and header flags</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-macros_002c-for-programs">macros, for programs</a>:</td><td> </td><td valign="top"><a href="#Macros-for-programs">Macros for programs</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-macros_002c-for-Windows">macros, for Windows</a>:</td><td> </td><td valign="top"><a href="#Macros-for-Windows">Macros for Windows</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-macros_002c-general-setup">macros, general setup</a>:</td><td> </td><td valign="top"><a href="#General-setup-macros">General setup macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MAKE"><code>MAKE</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-make-_002dt"><code>make -t</code></a>:</td><td> </td><td valign="top"><a href="#Build-system-tools">Build system tools</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mf_002dnowin"><code>mf-nowin</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mingw32"><code>mingw32</code></a>:</td><td> </td><td valign="top"><a href="#Cross-configuring">Cross configuring</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MINGW32_002c-Automake-conditional"><code>MINGW32<span class="roman">, Automake conditional</span></code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-Windows">Macros for Windows</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mktex_002eac"><code>mktex.ac</code></a>:</td><td> </td><td valign="top"><a href="#kpathsea-library"><code>kpathsea</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mktextfm"><code>mktextfm</code></a>:</td><td> </td><td valign="top"><a href="#kpathsea-library"><code>kpathsea</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-modules_002c-for-libraries">modules, for libraries</a>:</td><td> </td><td valign="top"><a href="#Library-modules">Library modules</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-modules_002c-for-programs">modules, for programs</a>:</td><td> </td><td valign="top"><a href="#Program-modules">Program modules</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-motif"><code>motif</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fxdvik">Configure options for <samp>texk/xdvik</samp></a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-N">N</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-native-cross-compilation">native cross compilation</a>:</td><td> </td><td valign="top"><a href="#Cross-compilation">Cross compilation</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-O">O</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-one-package_002c-building">one package, building</a>:</td><td> </td><td valign="top"><a href="#Build-one-package">Build one package</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-OpenGL_002c-required-for-Asymptote">OpenGL, required for Asymptote</a>:</td><td> </td><td valign="top"><a href="#asymptote"><code>asymptote</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-operating-system-distribution_002c-building-for">operating system distribution, building for</a>:</td><td> </td><td valign="top"><a href="#Distro-builds">Distro builds</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-opl2ofm_002c-et-al_002e"><code>opl2ofm<span class="roman">, et al.</span></code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-otangle"><code>otangle</code></a>:</td><td> </td><td valign="top"><a href="#Cross-problems">Cross problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-overall-build-process">overall build process</a>:</td><td> </td><td valign="top"><a href="#Building">Building</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-P">P</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-parallel-build">parallel build</a>:</td><td> </td><td valign="top"><a href="#Build-in-parallel">Build in parallel</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-paths_002c-for-installation">paths, for installation</a>:</td><td> </td><td valign="top"><a href="#Installation-directories">Installation directories</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PDF-files_002c-size-of">PDF files, size of</a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002ddisable_002dlargefile"><code>--disable-largefile</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PDFLATEX"><code>PDFLATEX</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PERL"><code>PERL</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-perl_002c-required-by-web2c_002c-etc_002e"><code>perl</code>, required by <code>web2c</code>, etc.</a>:</td><td> </td><td valign="top"><a href="#Prerequisites">Prerequisites</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PKG_005fCONFIG"><code>PKG_CONFIG</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-plain_002etex_002c-not-in-source-tree"><code>plain.tex<span class="roman">, not in source tree</span></code></a>:</td><td> </td><td valign="top"><a href="#Installing">Installing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-png-library"><code>png <span class="roman">library</span></code></a>:</td><td> </td><td valign="top"><a href="#png-library"><code>png</code> library</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-poppler"><code>poppler</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-system-poppler">Configure options for system <code>poppler</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PostScript-files_002c-size-of">PostScript files, size of</a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002ddisable_002dlargefile"><code>--disable-largefile</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Preining_002c-Norbert">Preining, Norbert</a>:</td><td> </td><td valign="top"><a href="#Distro-builds">Distro builds</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-preloaded-binaries">preloaded binaries</a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-prerequisites-for-building">prerequisites for building</a>:</td><td> </td><td valign="top"><a href="#Prerequisites">Prerequisites</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-problems-with-build">problems with build</a>:</td><td> </td><td valign="top"><a href="#Build-problems">Build problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-program-module_002c-adding">program module, adding</a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-program-module">Adding a new program module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-program-modules">program modules</a>:</td><td> </td><td valign="top"><a href="#Program-modules">Program modules</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-program_002dspecific-configure-options">program-specific <code>configure</code> options</a>:</td><td> </td><td valign="top"><a href="#Program_002dspecific-configure-options">Program-specific configure options</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-R">R</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-reautoconf"><code>reautoconf</code></a>:</td><td> </td><td valign="top"><a href="#Build-system-tools">Build system tools</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-recode"><code>recode</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-utils_002fxindy">Configure options for <samp>utils/xindy</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-requirements-for-building">requirements for building</a>:</td><td> </td><td valign="top"><a href="#Prerequisites">Prerequisites</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-runscript_002eexe"><code>runscript.exe</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-Windows">Macros for Windows</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-S">S</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-scripts_002c-linked-and-not-maintained">scripts, linked and not maintained</a>:</td><td> </td><td valign="top"><a href="#Linked-scripts">Linked scripts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-scrolling"><code>scrolling</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fxdvik">Configure options for <samp>texk/xdvik</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-SED"><code>SED</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-setup-macros_002c-general">setup macros, general</a>:</td><td> </td><td valign="top"><a href="#General-setup-macros">General setup macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-shared-libraries_002c-using-vs_002e-avoiding">shared libraries, using vs. avoiding</a>:</td><td> </td><td valign="top"><a href="#Distro-builds">Distro builds</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-size-of-PDF-and-PS-files">size of PDF and PS files</a>:</td><td> </td><td valign="top"><a href="#g_t_002d_002ddisable_002dlargefile"><code>--disable-largefile</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-size-of-source-tree">size of source tree</a>:</td><td> </td><td valign="top"><a href="#Build-one-package">Build one package</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-source-code-declarations">source code declarations</a>:</td><td> </td><td valign="top"><a href="#Declarations-and-definitions">Declarations and definitions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-source-directory-building_002c-not-supported">source directory building, not supported</a>:</td><td> </td><td valign="top"><a href="#Building">Building</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-source-tree">source tree</a>:</td><td> </td><td valign="top"><a href="#Layout-and-infrastructure">Layout and infrastructure</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-squeeze"><code>squeeze</code></a>:</td><td> </td><td valign="top"><a href="#Cross-problems">Cross problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-squeeze_002fconfigure_002eac"><code>squeeze/configure.ac</code></a>:</td><td> </td><td valign="top"><a href="#xdvik-package"><code>xdvik</code> package</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-static-functions"><code>static</code> functions</a>:</td><td> </td><td valign="top"><a href="#Declarations-and-definitions">Declarations and definitions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-static-linking-for-C_002b_002b">static linking for C++</a>:</td><td> </td><td valign="top"><a href="#Macros-for-compilers">Macros for compilers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-stpcpy"><code>stpcpy</code></a>:</td><td> </td><td valign="top"><a href="#Declarations-and-definitions">Declarations and definitions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Subversion-repository">Subversion repository</a>:</td><td> </td><td valign="top"><a href="#Build-system-tools">Build system tools</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-support-files_002c-separate-from-build">support files, separate from build</a>:</td><td> </td><td valign="top"><a href="#Installing">Installing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-symlinks_002c-used-for-scripts">symlinks, used for scripts</a>:</td><td> </td><td valign="top"><a href="#Linked-scripts">Linked scripts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-synctex">synctex</a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-system-distribution_002c-building-for">system distribution, building for</a>:</td><td> </td><td valign="top"><a href="#Distro-builds">Distro builds</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-T">T</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-t1utils-package"><code>t1utils <span class="roman">package</span></code></a>:</td><td> </td><td valign="top"><a href="#t1utils-package"><code>t1utils</code> package</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tangle"><code>tangle</code></a>:</td><td> </td><td valign="top"><a href="#Cross-problems">Cross problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tests_002c-running">tests, running</a>:</td><td> </td><td valign="top"><a href="#Overview-of-build-system">Overview of build system</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TeX_002dspecific-library-module_002c-adding">TeX-specific library module, adding</a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-TeX_002dspecific-library-module">Adding a new TeX-specific library module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-texlive_002etlpdb_002c-TeX-Live-database"><code>texlive.tlpdb<span class="roman">, TeX Live database</span></code></a>:</td><td> </td><td valign="top"><a href="#Installing">Installing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tie"><code>tie</code></a>:</td><td> </td><td valign="top"><a href="#Cross-problems">Cross problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-timestamps_002c-in-repository">timestamps, in repository</a>:</td><td> </td><td valign="top"><a href="#Build-system-tools">Build system tools</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tools_002c-for-building">tools, for building</a>:</td><td> </td><td valign="top"><a href="#Build-system-tools">Build system tools</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-top_002dlevel-directories">top-level directories</a>:</td><td> </td><td valign="top"><a href="#Top_002dlevel-directories">Top-level directories</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-touching-files-to-avoid-rerunning">touching files to avoid rerunning</a>:</td><td> </td><td valign="top"><a href="#Build-system-tools">Build system tools</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-txt2zlib"><code>txt2zlib</code></a>:</td><td> </td><td valign="top"><a href="#Cross-problems">Cross problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-type-cast_002c-avoiding">type cast, avoiding</a>:</td><td> </td><td valign="top"><a href="#Const">Const</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-U">U</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-use_002dcommit_002dtimes_002c-Subversion"><code>use-commit-times<span class="roman">, Subversion</span></code></a>:</td><td> </td><td valign="top"><a href="#Build-system-tools">Build system tools</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-V">V</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-variable-declarations_002c-in-source-code">variable declarations, in source code</a>:</td><td> </td><td valign="top"><a href="#Declarations-and-definitions">Declarations and definitions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-variables-for-configure">variables for <code>configure</code></a>:</td><td> </td><td valign="top"><a href="#Variables-for-configure">Variables for configure</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-W">W</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-warning_002c-discards-qualifiers">warning, discards qualifiers</a>:</td><td> </td><td valign="top"><a href="#Const">Const</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-WARNING_005fC_005bXX_005dFLAGS"><code>WARNING_C[XX]FLAGS</code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-compilers">Macros for compilers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-web2c-program"><code>web2c <span class="roman">program</span></code></a>:</td><td> </td><td valign="top"><a href="#Cross-problems">Cross problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-web2c_002eac"><code>web2c.ac</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-wget"><code>wget</code></a>:</td><td> </td><td valign="top"><a href="#Linked-scripts">Linked scripts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-WIN32_002c-Automake-conditional"><code>WIN32<span class="roman">, Automake conditional</span></code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-Windows">Macros for Windows</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-WIN32_005fWRAP_002c-Automake-conditional"><code>WIN32_WRAP<span class="roman">, Automake conditional</span></code></a>:</td><td> </td><td valign="top"><a href="#Macros-for-Windows">Macros for Windows</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Windows_002c-invoking-scripts-on">Windows, invoking scripts on</a>:</td><td> </td><td valign="top"><a href="#Linked-scripts">Linked scripts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Windows_002c-macros-for">Windows, macros for</a>:</td><td> </td><td valign="top"><a href="#Macros-for-Windows">Macros for Windows</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-withenable_002eac_002c-for-new-modules"><code>withenable.ac<span class="roman">, for new modules</span></code></a>:</td><td> </td><td valign="top"><a href="#Adding-a-new-program-module">Adding a new program module</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-wrapper-binary-for-scripts-on-Windows">wrapper binary for scripts on Windows</a>:</td><td> </td><td valign="top"><a href="#Linked-scripts">Linked scripts</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-X">X</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-X-toolkit">X toolkit</a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-X11-headers_002c-and-const">X11 headers, and <code>const</code></a>:</td><td> </td><td valign="top"><a href="#Const">Const</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-X11_002c-required-by-X-clients">X11, required by X clients</a>:</td><td> </td><td valign="top"><a href="#Prerequisites">Prerequisites</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xasy"><code>xasy</code></a>:</td><td> </td><td valign="top"><a href="#asymptote"><code>asymptote</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xaw"><code>xaw</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fxdvik">Configure options for <samp>texk/xdvik</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xdvik"><code>xdvik</code></a>:</td><td> </td><td valign="top"><a href="#xdvik-package"><code>xdvik</code> package</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xdvik-1"><code>xdvik</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fxdvik">Configure options for <samp>texk/xdvik</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xdvipdfmx"><code>xdvipdfmx</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fdvipdfm_002dx">Configure options for <samp>texk/dvipdfm-x</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xindy"><code>xindy</code></a>:</td><td> </td><td valign="top"><a href="#Linked-scripts">Linked scripts</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xindy-1"><code>xindy</code></a>:</td><td> </td><td valign="top"><a href="#xindy-package"><code>xindy</code> package</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xindy-2"><code>xindy</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-utils_002fxindy">Configure options for <samp>utils/xindy</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xindy-cross-compiling-impossible"><code>xindy</code> cross compiling impossible</a>:</td><td> </td><td valign="top"><a href="#Cross-problems">Cross problems</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-XInput"><code>XInput</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fxdvik">Configure options for <samp>texk/xdvik</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Xlib"><code>Xlib</code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-texk_002fweb2c">Configure options for <samp>texk/web2c</samp></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xpdf-as-library"><code>xpdf <span class="roman">as library</span></code></a>:</td><td> </td><td valign="top"><a href="#Configure-options-for-system-poppler">Configure options for system <code>poppler</code></a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xz"><code>xz</code></a>:</td><td> </td><td valign="top"><a href="#Linked-scripts">Linked scripts</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-Z">Z</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-zlib-library"><code>zlib <span class="roman">library</span></code></a>:</td><td> </td><td valign="top"><a href="#zlib-library"><code>zlib</code> library</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +</table> +<table><tr><th valign="top">Jump to: </th><td><a class="summary-letter" href="#Index_cp_symbol-1"><b>-</b></a> + +<br> +<a class="summary-letter" href="#Index_cp_letter-A"><b>A</b></a> + +<a class="summary-letter" href="#Index_cp_letter-B"><b>B</b></a> + +<a class="summary-letter" href="#Index_cp_letter-C"><b>C</b></a> + +<a class="summary-letter" href="#Index_cp_letter-D"><b>D</b></a> + +<a class="summary-letter" href="#Index_cp_letter-E"><b>E</b></a> + +<a class="summary-letter" href="#Index_cp_letter-F"><b>F</b></a> + +<a class="summary-letter" href="#Index_cp_letter-G"><b>G</b></a> + +<a class="summary-letter" href="#Index_cp_letter-I"><b>I</b></a> + +<a class="summary-letter" href="#Index_cp_letter-K"><b>K</b></a> + +<a class="summary-letter" href="#Index_cp_letter-L"><b>L</b></a> + +<a class="summary-letter" href="#Index_cp_letter-M"><b>M</b></a> + +<a class="summary-letter" href="#Index_cp_letter-N"><b>N</b></a> + +<a class="summary-letter" href="#Index_cp_letter-O"><b>O</b></a> + +<a class="summary-letter" href="#Index_cp_letter-P"><b>P</b></a> + +<a class="summary-letter" href="#Index_cp_letter-R"><b>R</b></a> + +<a class="summary-letter" href="#Index_cp_letter-S"><b>S</b></a> + +<a class="summary-letter" href="#Index_cp_letter-T"><b>T</b></a> + +<a class="summary-letter" href="#Index_cp_letter-U"><b>U</b></a> + +<a class="summary-letter" href="#Index_cp_letter-V"><b>V</b></a> + +<a class="summary-letter" href="#Index_cp_letter-W"><b>W</b></a> + +<a class="summary-letter" href="#Index_cp_letter-X"><b>X</b></a> + +<a class="summary-letter" href="#Index_cp_letter-Z"><b>Z</b></a> + +</td></tr></table> + +<hr> + + + +</body> +</html> diff --git a/Master/texmf-dist/doc/texlive/tlbuild/tlbuild.pdf b/Master/texmf-dist/doc/texlive/tlbuild/tlbuild.pdf Binary files differnew file mode 100644 index 00000000000..0873eca1bf8 --- /dev/null +++ b/Master/texmf-dist/doc/texlive/tlbuild/tlbuild.pdf diff --git a/Master/texmf-dist/doc/web2c/web2c.html b/Master/texmf-dist/doc/web2c/web2c.html index ed9c8a4947c..8061ed9a489 100644 --- a/Master/texmf-dist/doc/web2c/web2c.html +++ b/Master/texmf-dist/doc/web2c/web2c.html @@ -1,13 +1,6 @@ -<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, +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- 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, @@ -25,207 +18,278 @@ 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> +except that this permission notice may be stated in a translation --> +<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Web2c: A TeX implementation</title> + +<meta name="description" content="Web2c: A TeX implementation"> +<meta name="keywords" content="Web2c: A TeX implementation"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<link href="#Top" rel="start" title="Top"> +<link href="#Index" rel="index" title="Index"> +<link href="#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="dir.html#Top" rel="up" title="(dir)"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.indentedblock {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smallindentedblock {margin-left: 3.2em; font-size: smaller} +div.smalllisp {margin-left: 3.2em} +kbd {font-style:oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space:nowrap} +span.nolinebreak {white-space:nowrap} +span.roman {font-family:serif; font-weight:normal} +span.sansserif {font-family:sans-serif; font-weight:normal} +ul.no-bullet {list-style: none} +--> +</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> +<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000"> +<h1 class="settitle" align="center">Web2c: A TeX implementation</h1> -<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. + + + + +<a name="SEC_Contents"></a> +<h2 class="contents-heading">Table of Contents</h2> + +<div class="contents"> + +<ul class="no-bullet"> + <li><a name="toc-Introduction-1" href="#Introduction">1 Introduction</a></li> + <li><a name="toc-Installation-1" href="#Installation">2 Installation</a> + <ul class="no-bullet"> + <li><a name="toc-configure-options-1" href="#configure-options">2.1 <code>configure</code> options</a></li> + <li><a name="toc-Compile_002dtime-options-1" href="#Compile_002dtime-options">2.2 Compile-time options</a></li> + <li><a name="toc-Additional-targets-1" href="#Additional-targets">2.3 Additional targets</a></li> + <li><a name="toc-Trip_002c-trap_002c-and-mptrap_003a-Torture-tests" href="#Triptrap">2.4 Trip, trap, and mptrap: Torture tests</a></li> + <li><a name="toc-Runtime-options-1" href="#Runtime-options">2.5 Runtime options</a></li> + </ul></li> + <li><a name="toc-Commonalities-1" href="#Commonalities">3 Commonalities</a> + <ul class="no-bullet"> + <li><a name="toc-Option-conventions-1" href="#Option-conventions">3.1 Option conventions</a></li> + <li><a name="toc-Common-options-1" href="#Common-options">3.2 Common options</a></li> + <li><a name="toc-Path-searching-1" href="#Path-searching">3.3 Path searching</a></li> + <li><a name="toc-Output-file-location-1" href="#Output-file-location">3.4 Output file location</a></li> + <li><a name="toc-Three-programs_003a-Metafont_002c-MetaPost_002c-and-TeX" href="#Three-programs">3.5 Three programs: Metafont, MetaPost, and TeX</a> + <ul class="no-bullet"> + <li><a name="toc-Initial-and-virgin-1" href="#Initial-and-virgin">3.5.1 Initial and virgin</a></li> + <li><a name="toc-Memory-dumps-1" href="#Memory-dumps">3.5.2 Memory dumps</a> + <ul class="no-bullet"> + <li><a name="toc-Creating-memory-dumps-1" href="#Creating-memory-dumps">3.5.2.1 Creating memory dumps</a></li> + <li><a name="toc-Determining-the-memory-dump-to-use-1" href="#Determining-the-memory-dump-to-use">3.5.2.2 Determining the memory dump to use</a></li> + <li><a name="toc-Hardware-and-memory-dumps-1" href="#Hardware-and-memory-dumps">3.5.2.3 Hardware and memory dumps</a></li> + </ul></li> + <li><a name="toc-Editor-invocation-1" href="#Editor-invocation">3.5.3 Editor invocation</a></li> + <li><a name="toc-_005cinput-filenames-1" href="#g_t_005cinput-filenames">3.5.4 <code>\input</code> filenames</a></li> + </ul></li> + </ul></li> + <li><a name="toc-TeX_003a-Typesetting" href="#TeX">4 TeX: Typesetting</a> + <ul class="no-bullet"> + <li><a name="toc-tex-invocation-1" href="#tex-invocation">4.1 <code>tex</code> invocation</a></li> + <li><a name="toc-Initial-TeX-1" href="#Initial-TeX">4.2 Initial TeX</a></li> + <li><a name="toc-Formats-1" href="#Formats">4.3 Formats</a></li> + <li><a name="toc-Languages-and-hyphenation-1" href="#Languages-and-hyphenation">4.4 Languages and hyphenation</a> + <ul class="no-bullet"> + <li><a name="toc-MLTeX_003a-Multi_002dlingual-TeX" href="#MLTeX">4.4.1 MLTeX: Multi-lingual TeX</a> + <ul class="no-bullet"> + <li><a name="toc-_005ccharsubdef_003a-Character-substitutions" href="#g_t_005ccharsubdef">4.4.1.1 <code>\charsubdef</code>: Character substitutions</a></li> + <li><a name="toc-_005ctracingcharsubdef_003a-Substitution-diagnostics" href="#g_t_005ctracingcharsubdef">4.4.1.2 <code>\tracingcharsubdef</code>: Substitution diagnostics</a></li> + </ul></li> + <li><a name="toc-TCX-files_003a-Character-translations" href="#TCX-files">4.4.2 TCX files: Character translations</a></li> + <li><a name="toc-Patgen_003a-Creating-hyphenation-patterns" href="#patgen-invocation">4.4.3 Patgen: Creating hyphenation patterns</a></li> + </ul></li> + <li><a name="toc-Shell-escapes-1" href="#Shell-escapes">4.5 Shell escapes</a></li> + <li><a name="toc-IPC-and-TeX-1" href="#IPC-and-TeX">4.6 IPC and TeX</a></li> + <li><a name="toc-TeX-extensions-1" href="#TeX-extensions">4.7 TeX extensions</a></li> + </ul></li> + <li><a name="toc-Metafont_003a-Creating-typeface-families" href="#Metafont">5 Metafont: Creating typeface families</a> + <ul class="no-bullet"> + <li><a name="toc-mf-invocation-1" href="#mf-invocation">5.1 <code>mf</code> invocation</a></li> + <li><a name="toc-Initial-Metafont-1" href="#Initial-Metafont">5.2 Initial Metafont</a></li> + <li><a name="toc-Modes_003a-Device-definitions-for-Metafont" href="#Modes">5.3 Modes: Device definitions for Metafont</a></li> + <li><a name="toc-Online-Metafont-graphics-1" href="#Online-Metafont-graphics">5.4 Online Metafont graphics</a></li> + <li><a name="toc-GFtoDVI_003a-Character-proofs-of-fonts" href="#gftodvi-invocation">5.5 GFtoDVI: Character proofs of fonts</a></li> + <li><a name="toc-MFT_003a-Prettyprinting-Metafont-source" href="#mft-invocation">5.6 MFT: Prettyprinting Metafont source</a></li> + </ul></li> + <li><a name="toc-MetaPost_003a-Creating-technical-illustrations" href="#MetaPost">6 MetaPost: Creating technical illustrations</a> + <ul class="no-bullet"> + <li><a name="toc-mpost-invocation-1" href="#mpost-invocation">6.1 <code>mpost</code> invocation</a></li> + <li><a name="toc-Initial-MetaPost-1" href="#Initial-MetaPost">6.2 Initial MetaPost</a></li> + <li><a name="toc-DVItoMP_003a-DVI-to-MPX-conversion" href="#dvitomp-invocation">6.3 DVItoMP: DVI to MPX conversion</a></li> + </ul></li> + <li><a name="toc-BibTeX_003a-Bibliographies" href="#BibTeX">7 BibTeX: Bibliographies</a> + <ul class="no-bullet"> + <li><a name="toc-BibTeX-invocation" href="#bibtex-invocation">7.1 BibTeX invocation</a></li> + <li><a name="toc-Basic-BibTeX-style-files-1" href="#Basic-BibTeX-style-files">7.2 Basic BibTeX style files</a></li> + </ul></li> + <li><a name="toc-WEB_003a-Literate-programming" href="#WEB">8 WEB: Literate programming</a> + <ul class="no-bullet"> + <li><a name="toc-Tangle_003a-Translate-WEB-to-Pascal" href="#tangle-invocation">8.1 Tangle: Translate WEB to Pascal</a></li> + <li><a name="toc-Weave_003a-Translate-WEB-to-TeX" href="#weave-invocation">8.2 Weave: Translate WEB to TeX</a></li> + <li><a name="toc-Pooltype_003a-Display-WEB-pool-files" href="#pooltype-invocation">8.3 Pooltype: Display WEB pool files</a></li> + </ul></li> + <li><a name="toc-DVI-utilities-1" href="#DVI-utilities">9 DVI utilities</a> + <ul class="no-bullet"> + <li><a name="toc-DVIcopy_003a-Canonicalize-virtual-font-references" href="#dvicopy-invocation">9.1 DVIcopy: Canonicalize virtual font references</a></li> + <li><a name="toc-DVItype_003a-Plain-text-transliteration-of-DVI-files" href="#dvitype-invocation">9.2 DVItype: Plain text transliteration of DVI files</a> + <ul class="no-bullet"> + <li><a name="toc-DVItype-output-example" href="#dvitype-output-example">9.2.1 DVItype output example</a></li> + </ul></li> + </ul></li> + <li><a name="toc-Font-utilities-1" href="#Font-utilities">10 Font utilities</a> + <ul class="no-bullet"> + <li><a name="toc-Font-file-formats-1" href="#Font-file-formats">10.1 Font file formats</a></li> + <li><a name="toc-GFtoPK_003a-Generic-to-packed-font-conversion" href="#gftopk-invocation">10.2 GFtoPK: Generic to packed font conversion</a></li> + <li><a name="toc-PKtoGF_003a-Packed-to-generic-font-conversion" href="#pktogf-invocation">10.3 PKtoGF: Packed to generic font conversion</a></li> + <li><a name="toc-PKtype_003a-Plain-text-transliteration-of-packed-fonts" href="#pktype-invocation">10.4 PKtype: Plain text transliteration of packed fonts</a></li> + <li><a name="toc-GFtype_003a-Plain-text-transliteration-of-generic-fonts" href="#gftype-invocation">10.5 GFtype: Plain text transliteration of generic fonts</a></li> + <li><a name="toc-TFtoPL_003a-TeX-font-metric-to-property-list-conversion" href="#tftopl-invocation">10.6 TFtoPL: TeX font metric to property list conversion</a></li> + <li><a name="toc-PLtoTF_003a-Property-list-to-TeX-font-metric-conversion" href="#pltotf-invocation">10.7 PLtoTF: Property list to TeX font metric conversion</a></li> + <li><a name="toc-VFtoVP_003a-Virtual-font-to-virtual-property-lists" href="#vftovp-invocation">10.8 VFtoVP: Virtual font to virtual property lists</a></li> + <li><a name="toc-VPtoVF_003a-Virtual-property-lists-to-virtual-font" href="#vptovf-invocation">10.9 VPtoVF: Virtual property lists to virtual font</a></li> + <li><a name="toc-Font-utilities-available-elsewhere-1" href="#Font-utilities-available-elsewhere">10.10 Font utilities available elsewhere</a></li> + </ul></li> + <li><a name="toc-Legalisms-1" href="#Legalisms">Appendix A Legalisms</a></li> + <li><a name="toc-References-1" href="#References">Appendix B References</a></li> + <li><a name="toc-Index-1" href="#Index">Index</a></li> </ul> +</div> -<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> +<a name="Top"></a> +<div class="header"> +<p> +Next: <a href="#Introduction" accesskey="n" rel="next">Introduction</a>, Up: <a href="dir.html#Top" accesskey="u" rel="up">(dir)</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Web2c"></a> +<h1 class="top">Web2c</h1> +<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 2014, released in +May 2014. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Introduction" accesskey="1">Introduction</a>:</td><td> </td><td align="left" valign="top">A brief introduction. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Installation" accesskey="2">Installation</a>:</td><td> </td><td align="left" valign="top">How to compile and install Web2c. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Commonalities" accesskey="3">Commonalities</a>:</td><td> </td><td align="left" valign="top">Option syntax, standard options, memory dumps. +</td></tr> +<tr><td align="left" valign="top">• <a href="#TeX" accesskey="4">TeX</a>:</td><td> </td><td align="left" valign="top">Typesetting. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Metafont" accesskey="5">Metafont</a>:</td><td> </td><td align="left" valign="top">Typeface design. +</td></tr> +<tr><td align="left" valign="top">• <a href="#MetaPost" accesskey="6">MetaPost</a>:</td><td> </td><td align="left" valign="top">Technical illustrations. +</td></tr> +<tr><td align="left" valign="top">• <a href="#BibTeX" accesskey="7">BibTeX</a>:</td><td> </td><td align="left" valign="top">Reusable bibliographies. +</td></tr> +<tr><td align="left" valign="top">• <a href="#WEB" accesskey="8">WEB</a>:</td><td> </td><td align="left" valign="top">Literate programming. +</td></tr> +<tr><td align="left" valign="top">• <a href="#DVI-utilities" accesskey="9">DVI utilities</a>:</td><td> </td><td align="left" valign="top">DVI expansion. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Font-utilities">Font utilities</a>:</td><td> </td><td align="left" valign="top">Font format conversion. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Legalisms">Legalisms</a>:</td><td> </td><td align="left" valign="top">Blah blah blah. +</td></tr> +<tr><td align="left" valign="top">• <a href="#References">References</a>:</td><td> </td><td align="left" valign="top">Books and such. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Index">Index</a>:</td><td> </td><td align="left" valign="top">General index. +</td></tr> +</table> + + +<hr> +<a name="Introduction"></a> +<div class="header"> +<p> +Next: <a href="#Installation" accesskey="n" rel="next">Installation</a>, Previous: <a href="#Top" accesskey="p" rel="prev">Top</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Introduction-1"></a> <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. +<a name="index-introduction"></a> - <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, +<p>This manual corresponds to version 2014 of Web2c, released in +May 2014. +</p> +<a name="index-Knuth_002c-Donald-E_002e"></a> +<a name="index-TeX_002c-Web2c-implementation-of"></a> +<a name="index-Hobby_002c-John"></a> +<a name="index-Breitenlohner_002c-Peter"></a> +<p><em>Web2c</em> 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 +<em>TeX implementation</em>, 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 +</p> +<a name="index-translation-from-WEB-to-C"></a> +<a name="index-strategy_002c-overall"></a> +<p>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). +functions in a library (the <samp>web2c/lib</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 +</p> +<a name="index-licensing-terms"></a> +<a name="index-freedom-of-Web2c"></a> +<a name="index-ice-cream"></a> +<a name="index-Henry_002c-Patrick"></a> +<p>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 +modify and/or redistribute (free speech). See <a href="kpathsea.html#unixtex_002eftp">unixtex.ftp</a> in <cite>Kpathsea</cite>, for the practical details of how to obtain Web2c. +</p> +<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 +by the terms of the GPL (see <a href="kpathsea.html#Copying">Copying</a> in <cite>Kpathsea</cite>). 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, +</p> +<a name="index-history"></a> +<a name="index-Rokicki_002c-Tomas"></a> +<a name="index-Trickey_002c-Howard"></a> +<a name="index-Curtis_002c-Pavel"></a> +<a name="index-Morgan_002c-Tim"></a> +<a name="index-Berry_002c-Karl"></a> +<a name="index-Weber_002c-Olaf"></a> +<p>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 @@ -233,278 +297,415 @@ 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 +<samp>ChangeLog</samp> files. +</p> +<a name="index-acknowledgements"></a> +<a name="index-Martin_002c-Rick"></a> +<a name="index-Morris_002c-Bob"></a> +<a name="index-Stallman_002c-Richard"></a> +<p>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"></a> +<p>Further reading: See <a href="#References">References</a>. +</p> - <p><a name="index-reading_002c-additional-23"></a>Further reading: See <a href="#References">References</a>. -<div class="node"> +<hr> <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 class="header"> +<p> +Next: <a href="#Commonalities" accesskey="n" rel="next">Commonalities</a>, Previous: <a href="#Introduction" accesskey="p" rel="prev">Introduction</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Installation-1"></a> <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>.) +<a name="index-configuration"></a> +<a name="index-compilation"></a> +<a name="index-installation"></a> - <p>Installing Web2c is mostly the same as installing any other +<p>(A copy of this chapter is in the distribution file <samp>web2c/INSTALL</samp>.) +</p> +<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 +see <a href="kpathsea.html#Installation">Installation</a> in <cite>Kpathsea</cite>. (A copy is in the file +<samp>kpathsea/INSTALL</samp>.) +</p> +<p>One peculiarity to Web2c is that the source distribution comes in two +files: <samp>web.tar.gz</samp> and <samp>web2c.tar.gz</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 +very large and seldom-changing original WEB source files.) +See <a href="kpathsea.html#unixtex_002eftp">unixtex.ftp</a> in <cite>Kpathsea</cite>. +</p> +<a name="index-mpost_002c-reason-for-name-change"></a> +<p>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, +</p> +<p>For solutions to common installation problems and information on how to +report a bug, see the file <samp>kpathsea/BUGS</samp> (see <a href="kpathsea.html#Bugs">Bugs</a> in <cite>Kpathsea</cite>). 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, +</p> +<p>Points worth repeating: +</p> +<ul> +<li> <a name="index-directory-structure"></a> +<a name="index-basic-fonts-and-macros"></a> +<a name="index-fonts_002c-basic"></a> +<a name="index-macros_002c-basic"></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> in <cite>Kpathsea</cite>. + +</li><li> If you do not wish to use the standard file locations, see <a href="kpathsea.html#Changing-search-paths">Changing +search paths</a> in <cite>Kpathsea</cite>. + +</li><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> +</li></ul> -<div class="node"> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#configure-options" accesskey="1">configure options</a>:</td><td> </td><td align="left" valign="top">Especially –with and –enable. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Compile_002dtime-options" accesskey="2">Compile-time options</a>:</td><td> </td><td align="left" valign="top">Unusual -D’s. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Additional-targets" accesskey="3">Additional targets</a>:</td><td> </td><td align="left" valign="top">Breaking down the task. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Triptrap" accesskey="4">Triptrap</a>:</td><td> </td><td align="left" valign="top">Running the torture tests. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Runtime-options" accesskey="5">Runtime options</a>:</td><td> </td><td align="left" valign="top">Array sizes and the like. +</td></tr> +</table> + + +<hr> <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 class="header"> +<p> +Next: <a href="#Compile_002dtime-options" accesskey="n" rel="next">Compile-time options</a>, Up: <a href="#Installation" accesskey="u" rel="up">Installation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="configure-options-1"></a> <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 +<a name="index-configuration_002c-compile_002dtime"></a> +<a name="index-compile_002dtime-options"></a> +<a name="index-configure-_002d_002dwith_002f_002d_002denable-options"></a> +<p>This section gives pointers to descriptions of the ‘<samp>--with</samp>’ and +‘<samp>--enable</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 +</p> +<p>For a list of all the options <code>configure</code> accepts, run +‘<samp>configure --help</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 +</p> +<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 +see <a href="http://www.gnu.org/software/autoconf/manual/autoconf.html#Invoking-configure">Running <code>configure</code> scripts</a> in <cite>Autoconf</cite>, a copy is in the file <samp>kpathsea/CONFIGURE</samp>. +</p> +<dl compact="compact"> +<dt>‘<samp>--disable-dump-share</samp>’</dt> +<dd><p>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 +</p> +</dd> +<dt>‘<samp>--without-maketexmf-default</samp>’</dt> +<dt>‘<samp>--without-maketexpk-default</samp>’</dt> +<dt>‘<samp>--without-maketextfm-default</samp>’</dt> +<dt>‘<samp>--with-maketextex-default</samp>’</dt> +<dd><p>Enable or disable the dynamic generation programs. See <a href="kpathsea.html#mktex-configuration">mktex +configuration</a> in <cite>Kpathsea</cite>. 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. +</p> +</dd> +<dt>‘<samp>--enable-shared</samp>’</dt> +<dd><p>Build Kpathsea as a shared library. See <a href="kpathsea.html#Shared-library">Shared library</a> in <cite>Kpathsea</cite>. +</p> +</dd> +<dt>‘<samp>--with-editor=<var>cmd</var></samp>’</dt> +<dd><p>Change the default editor invoked by the ‘<samp>e</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 +</p> +</dd> +<dt>‘<samp>--with-epsfwin</samp>’</dt> +<dt>‘<samp>--with-hp2627win</samp>’</dt> +<dt>‘<samp>--with-mftalkwin</samp>’</dt> +<dt>‘<samp>--with-nextwin</samp>’</dt> +<dt>‘<samp>--with-regiswin</samp>’</dt> +<dt>‘<samp>--with-suntoolswin</samp>’</dt> +<dt>‘<samp>--with-tektronixwin</samp>’</dt> +<dt>‘<samp>--with-unitermwin</samp>’</dt> +<dt>‘<samp>--with-x</samp>’</dt> +<dt>‘<samp>--with-x-toolkit=KIT</samp>’</dt> +<dt>‘<samp>--with-x11win</samp>’</dt> +<dt>‘<samp>--with-x11</samp>’</dt> +<dd><p>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>. +</p> +</dd> +<dt>‘<samp>--x-includes=<var>dir</var></samp>’</dt> +<dt>‘<samp>--x-libraries=<var>dir</var></samp>’</dt> +<dd><p>Define the locations of the X11 include files and libraries; by default, +<code>configure</code> does its best to guess). See <a href="http://www.gnu.org/software/autoconf/manual/autoconf.html#Optional-Features">Optional Features</a> in <cite>Autoconf</cite>. A copy is in <samp>kpathsea/CONFIGURE</samp>. +</p></dd> </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> +<hr> +<a name="Compile_002dtime-options"></a> +<div class="header"> +<p> +Next: <a href="#Additional-targets" accesskey="n" rel="next">Additional targets</a>, Previous: <a href="#configure-options" accesskey="p" rel="prev">configure options</a>, Up: <a href="#Installation" accesskey="u" rel="up">Installation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Compile_002dtime-options-1"></a> <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 +<a name="index-compile_002dtime-options-1"></a> +<a name="index-_0023define-options"></a> +<a name="index-_002dD-compiler-options"></a> +<p>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 +</p> +<p>To specify extra compiler flags (‘<samp>-D<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 +</p><div class="example"> +<pre class="example">make XCFLAGS="<var>ccoptions</var>" +</pre></div> +<p>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> in <cite>Kpathsea</cite>. +</p> +<p>Anyway, here are the possibilities: +</p> +<dl compact="compact"> +<dt>‘<samp>-DFIXPT</samp>’</dt> +<dt>‘<samp>-DNO_MF_ASM</samp>’</dt> +<dd><a name="index-FIXPT"></a> +<a name="index-fixed_002dpoint-arithmetic"></a> +<a name="index-floating_002dpoint-arithmetic"></a> +<a name="index-assembly-language-routines"></a> +<a name="index-fraction-routines"></a> +<p>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 +‘<samp>NO_MF_ASM</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>. +</p> +</dd> +<dt>‘<samp>-DIPC_DEBUG</samp>’</dt> +<dd><a name="index-IPC_005fDEBUG"></a> +<p>Report on various interprocess communication activities. See <a href="#IPC-and-TeX">IPC and TeX</a>. +</p></dd> </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> +<hr> +<a name="Additional-targets"></a> +<div class="header"> +<p> +Next: <a href="#Triptrap" accesskey="n" rel="next">Triptrap</a>, Previous: <a href="#Compile_002dtime-options" accesskey="p" rel="prev">Compile-time options</a>, Up: <a href="#Installation" accesskey="u" rel="up">Installation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Additional-targets-1"></a> <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. +<a name="index-additional-Make-targets"></a> +<a name="index-targets_002c-additional-Make"></a> +<a name="index-Make-targets_002c-additional"></a> - <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 +<p>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>kpathsea/</samp> and <samp>web2c/</samp>), or in the +<samp>web2c/</samp> directory. +</p> +<dl compact="compact"> +<dt>‘<samp>c-sources</samp>’</dt> +<dd><a name="index-c_002dsources-Makefile-target"></a> +<a name="index-non_002dUnix-system_002c-compiling-on"></a> +<p>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 +</p> +</dd> +<dt>‘<samp>formats</samp>’</dt> +<dt>‘<samp>install-formats</samp>’</dt> +<dd><a name="index-formats-Make-target"></a> +<a name="index-install_002dformats-Make-target"></a> +<p>Make or install all the memory dumps (see <a href="#Memory-dumps">Memory dumps</a>). By +default, the standard plain formats plus <samp>latex.fmt</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 +<code>mems</code> variables. See the top of <samp>web2c/Makefile</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 +</p> +</dd> +<dt>‘<samp>fmts</samp>’</dt> +<dt>‘<samp>install-fmts</samp>’</dt> +<dd><a name="index-fmts-Make-target"></a> +<a name="index-install_002dfmts-Make-target"></a> +<p>Make or install the TeX <samp>.fmt</samp> files. See <a href="#Initial-TeX">Initial TeX</a>. +</p> +</dd> +<dt>‘<samp>bases</samp>’</dt> +<dt>‘<samp>install-bases</samp>’</dt> +<dd><a name="index-bases-Make-target"></a> +<a name="index-install_002dbases-Make-target"></a> + +<p>Make or install the Metafont <samp>.base</samp> files. See <a href="#Initial-Metafont">Initial Metafont</a>. +</p> +</dd> +<dt>‘<samp>mems</samp>’</dt> +<dt>‘<samp>install-mems</samp>’</dt> +<dd><a name="index-mems-Make-target"></a> +<a name="index-install_002dmems-Make-target"></a> +<p>Make or install the MetaPost <samp>.mem</samp> files. See <a href="#Initial-MetaPost">Initial MetaPost</a>. +</p> +</dd> +<dt>‘<samp>triptrap</samp>’</dt> +<dt>‘<samp>trip</samp>’</dt> +<dt>‘<samp>trap</samp>’</dt> +<dt>‘<samp>mptrap</samp>’</dt> +<dd><a name="index-triptrap-Make-target"></a> +<a name="index-trip-Make-target"></a> +<a name="index-trap-Make-target"></a> +<a name="index-mptrap-Make-target"></a> +<p>To run the torture tests for TeX, Metafont, and MetaPost (respectively). See the next section. +</p> +</dd> +</dl> - </dl> -<div class="node"> +<hr> <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 class="header"> +<p> +Next: <a href="#Runtime-options" accesskey="n" rel="next">Runtime options</a>, Previous: <a href="#Additional-targets" accesskey="p" rel="prev">Additional targets</a>, Up: <a href="#Installation" accesskey="u" rel="up">Installation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Trip_002c-trap_002c-and-mptrap_003a-Torture-tests"></a> <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 +<a name="index-Gruff_002c-Billy-Goat"></a> +<a name="index-trip-test"></a> +<a name="index-trap-test"></a> +<a name="index-mptrap-test"></a> +<a name="index-torture-tests"></a> + +<a name="index-tripman_002etex"></a> +<a name="index-trapman_002etex"></a> +<a name="index-mptrap_002ereadme"></a> +<p>To validate your TeX, Metafont, and MetaPost executables, run +‘<samp>make triptrap</samp>’. This runs the trip, trap, and mptrap “torture +tests”. See the files <samp>triptrap/tripman.tex</samp>, +<samp>triptrap/trapman.tex</samp>, and <samp>triptrap/mptrap.readme</samp> for detailed information and background on the tests. - - <p>The differences between your executables' behavior and the standard +</p> +<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: +</p> +<ul> +<li> string usage and table sizes; +</li><li> glue set ratios; +</li><li> ‘<samp>down4</samp>’, ‘<samp>right4</samp>’, and ‘<samp>y4</samp>’ commands in DVItype output; +</li><li> dates and times. +</li></ul> - <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 +<p>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> in <cite>Kpathsea</cite>. +</p> +<p>The files <samp>trip.diffs</samp>, <samp>mftrap.diffs</samp>, and +<samp>mptrap.diffs</samp> in the <samp>triptrap</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><div class="example"> +<pre class="example">make trip >&mytrip.diffs +diff triptrap/trip.diffs mytrip.diffs +</pre></div> - <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. +<p>To run the tests separately, use the targets <code>trip</code>, <code>trap</code>, +and <code>mptrap</code>. +</p> +<p>To run simple tests for all the programs as well as the torture tests, +run ‘<samp>make check</samp>’. You can compare the output to the distributed +file <samp>tests/check.log</samp> if you like. +</p> -<div class="node"> +<hr> <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 class="header"> +<p> +Previous: <a href="#Triptrap" accesskey="p" rel="prev">Triptrap</a>, Up: <a href="#Installation" accesskey="u" rel="up">Installation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Runtime-options-1"></a> <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>). +<a name="index-runtime-options"></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 +<a name="index-configuration-file-values"></a> +<a name="index-array-sizes"></a> +<p>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>texmf.cnf</samp> runtime file read by +Kpathsea (see <a href="kpathsea.html#Config-files">Config files</a> in <cite>Kpathsea</cite>). +</p> +<p>Rather than exhaustively listing them here, please see the last section +of the distributed <samp>kpathsea/texmf.cnf</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. +</p> +<dl compact="compact"> +<dt>‘<samp>main_memory</samp>’ +<a name="index-main_005fmemory"></a> +</dt> +<dd><p>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, +</p> +</dd> +<dt>‘<samp>extra_mem_bot</samp>’ +<a name="index-extra_005fmem_005fbot"></a> +</dt> +<dd><a name="index-boxes_002c-memory-for"></a> +<a name="index-glue_002c-memory-for"></a> +<a name="index-breakpoints_002c-memory-for"></a> +<a name="index-PiCTeX_002c-increasing-memory-for"></a> +<p>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 +</p> +</dd> +<dt>‘<samp>font_mem_size</samp>’ +<a name="index-font_005fmem_005fsize"></a> +</dt> +<dd><a name="index-TFM-files_002c-memory-for"></a> +<p>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. +</p> +</dd> +<dt>‘<samp>hash_extra</samp>’ +<a name="index-hash_005fextra"></a> +</dt> +<dd><a name="index-control-sequence-names_002c-space-for"></a> +<a name="index-hash-table_002c-increasing-size-of"></a> +<p>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, +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>. +</p> +</dd> +</dl> - </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 +<a name="index-array-limit_002c-fixed"></a> +<a name="index-swap-space_002c-as-array-limit"></a> +<a name="index-reallocation-of-arrays"></a> +<a name="index-dynamic-array-allocation"></a> +<p>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 @@ -512,577 +713,778 @@ 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.) +</p> -<div class="node"> +<hr> <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 class="header"> +<p> +Next: <a href="#TeX" accesskey="n" rel="next">TeX</a>, Previous: <a href="#Installation" accesskey="p" rel="prev">Installation</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Commonalities-1"></a> <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> +<a name="index-commonalities"></a> -<div class="node"> +<p>Many aspects of the TeX system are the same among more than one +program, so we describe all those pieces together, here. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Option-conventions" accesskey="1">Option conventions</a>:</td><td> </td><td align="left" valign="top">– or -, = or ‘ ’ for values. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Common-options" accesskey="2">Common options</a>:</td><td> </td><td align="left" valign="top">–help –version –verbose, and TeX/MF/MP options. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Path-searching" accesskey="3">Path searching</a>:</td><td> </td><td align="left" valign="top">Features of the common path searching library. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Output-file-location" accesskey="4">Output file location</a>:</td><td> </td><td align="left" valign="top">TEXMFOUTPUT allows output in places other than ‘.’. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Three-programs" accesskey="5">Three programs</a>:</td><td> </td><td align="left" valign="top">TeX, Metafont, and MetaPost have a lot in common. +</td></tr> +</table> + + +<hr> <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 class="header"> +<p> +Next: <a href="#Common-options" accesskey="n" rel="next">Common options</a>, Up: <a href="#Commonalities" accesskey="u" rel="up">Commonalities</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Option-conventions-1"></a> <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 +<a name="index-option-conventions"></a> +<a name="index-conventions-for-options_002c"></a> + +<a name="index-getopt_005flong_005fonly"></a> +<p>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-_002d-starts-option-names"></a> +<a name="index-_002d_002d-starts-option-names"></a> +<p>As a result, you can: +</p><ul> +<li> use ‘<samp>-</samp>’ or ‘<samp>--</samp>’ to start an option name; - <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><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 +</li><li> separate option names and values with either ‘<samp>=</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> +</li><li> <a name="index-_002d-starting-a-filename"></a> +<a name="index-filenames-starting-with-_002d"></a> +use filenames that would otherwise look like options by putting them +after an option ‘<samp>--</samp>’. +</li></ul> - <p>By convention, non-option arguments, if specified, generally define the +<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 +</p> +<p>If a particular option with a value is given more than once, it is the last value that counts. - - <p>For example, the following command line specifies the options -‘<samp><span class="samp">foo</span></samp>’, ‘<samp><span class="samp">bar</span></samp>’, and ‘<samp><span class="samp">verbose</span></samp>’; gives the value ‘<samp><span class="samp">baz</span></samp>’ -to the ‘<samp><span class="samp">abc</span></samp>’ option, and the value ‘<samp><span class="samp">xyz</span></samp>’ to the ‘<samp><span class="samp">quux</span></samp>’ -option; and specifies the filename <samp><span class="file">-myfile-</span></samp>. - -<pre class="example"> -foo --bar -verb -abc=baz -quux karl --quux xyz -- -myfile- -</pre> - <div class="node"> +</p> +<p>For example, the following command line specifies the options +‘<samp>foo</samp>’, ‘<samp>bar</samp>’, and ‘<samp>verbose</samp>’; gives the value ‘<samp>baz</samp>’ +to the ‘<samp>abc</samp>’ option, and the value ‘<samp>xyz</samp>’ to the ‘<samp>quux</samp>’ +option; and specifies the filename <samp>-myfile-</samp>. +</p> +<div class="example"> +<pre class="example">-foo --bar -verb -abc=baz -quux karl --quux xyz -- -myfile- +</pre></div> + + +<hr> <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 class="header"> +<p> +Next: <a href="#Path-searching" accesskey="n" rel="next">Path searching</a>, Previous: <a href="#Option-conventions" accesskey="p" rel="prev">Option conventions</a>, Up: <a href="#Commonalities" accesskey="u" rel="up">Commonalities</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Common-options-1"></a> <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 +<a name="index-common-options"></a> +<p>All of these programs accept the standard GNU ‘<samp>--help</samp>’ and +‘<samp>--version</samp>’ options, and several programs accept +‘<samp>--verbose</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 +</p> +<dl compact="compact"> +<dt>‘<samp>--help</samp>’</dt> +<dd><a name="index-_002d_002dhelp-common-option"></a> +<a name="index-help_002c-online"></a> +<p>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. +</p> +</dd> +<dt>‘<samp>--verbose</samp>’</dt> +<dd><a name="index-_002d_002dverbose-common-option"></a> +<a name="index-verbosity_002c-enabling"></a> +<p>Print progress reports to standard output. +</p> +</dd> +<dt>‘<samp>--version</samp>’</dt> +<dd><a name="index-_002d_002dversion-common-option"></a> +<a name="index-version-number_002c-finding"></a> +<p>Print the version number to standard output, then exit successfully. +</p></dd> </dl> - <p>TeX, Metafont, and MetaPost have a number of additional options in +<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 +</p> +<dl compact="compact"> +<dt>‘<samp>-file-line-error</samp>’</dt> +<dd><a name="index-_002dfile_002dline_002derror"></a> +</dd> +<dt>‘<samp>-no-file-line-error</samp>’</dt> +<dd><a name="index-_002dno_002dfile_002dline_002derror"></a> +<a name="index-_002dfile_002dline_002derror_002dstyle"></a> +<a name="index-changing-error-messages-style"></a> +<p>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 +to be called ‘<samp>-file-line-error-style</samp>’. +</p> +</dd> +<dt>‘<samp>-fmt=<var>dumpname</var></samp>’</dt> +<dt>‘<samp>-base=<var>dumpname</var></samp>’</dt> +<dt>‘<samp>-mem=<var>dumpname</var></samp>’</dt> +<dd><a name="index-_002dfmt_003ddumpname"></a> +<a name="index-_002dbase_003ddumpname"></a> +<a name="index-_002dmem_003ddumpname"></a> +<a name="index-dump-file"></a> +<p>Use <var>dumpname</var> instead of the program name or a ‘<samp>%&</samp>’ line to +determine the name of the memory dump file read (‘<samp>fmt</samp>’ for TeX, +‘<samp>base</samp>’ for Metafont, ‘<samp>mem</samp>’ for MetaPost). See <a href="#Memory-dumps">Memory dumps</a>. Also sets the program name to <var>dumpname</var> if no +‘<samp>-progname</samp>’ option was given. +</p> +</dd> +<dt>‘<samp>-halt-on-error</samp>’</dt> +<dd><a name="index-_002dhalt_002don_002derror"></a> +<a name="index-stopping-at-the-first-error"></a> +<p>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> +</p> +</dd> +<dt>‘<samp>-ini</samp>’</dt> +<dd><a name="index-_002dini"></a> +<a name="index-program-names_002c-special"></a> +<a name="index-initial-form_002c-enabling"></a> +<p>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 +</p> +</dd> +<dt>‘<samp>-interaction=<var>string</var></samp>’</dt> +<dd><a name="index-_002dinteraction_003dstring"></a> +<a name="index-interaction-mode"></a> +<p>Set the interaction mode from the command line. The <var>string</var> must +be one of ‘<samp>batchmode</samp>’, ‘<samp>nonstopmode</samp>’, ‘<samp>scrollmode</samp>’, or +‘<samp>errorstopmode</samp>’. +</p> +</dd> +<dt>‘<samp>-jobname=<var>string</var></samp>’</dt> +<dd><a name="index-_002djobname_003dstring"></a> +<a name="index-job-name"></a> +<p>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>’, +</p> +</dd> +<dt>‘<samp>-kpathsea-debug=<var>number</var></samp>’</dt> +<dd><a name="index-_002dkpathsea_002ddebug_003dnumber"></a> +<a name="index-KPATHSEA_005fDEBUG"></a> +<a name="index-debugging-flags_002c-specifying"></a> +<a name="index-path-searching-debugging"></a> +<p>Set path searching debugging flags according to the bits of <var>number</var> +(see <a href="kpathsea.html#Debugging">Debugging</a> in <cite>Kpathsea</cite>). 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>-1</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. +</p> +</dd> +<dt>‘<samp>-output-directory=<var>dirname</var></samp>’</dt> +<dd><a name="index-_002doutput_002ddirectory"></a> +<a name="index-output-directory_002c-specifying"></a> +<p>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 +</p> +</dd> +<dt>‘<samp>-parse-first-line</samp>’</dt> +<dd><a name="index-_002dparse_002dfirst_002dline"></a> +</dd> +<dt>‘<samp>-no-parse-first-line</samp>’</dt> +<dd><a name="index-_002dno_002dparse_002dfirst_002dline"></a> +<a name="index-parsing-the-first-line"></a> +<p>Check or disable checking whether the first line of the main input +file starts with ‘<samp>%&</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 +</p> +</dd> +<dt>‘<samp>-progname=<var>string</var></samp>’</dt> +<dd><a name="index-_002dprogname_003dstring"></a> +<a name="index-binaries_002c-linking"></a> +<a name="index-linking-binaries"></a> +<a name="index-program-names_002c-special-1"></a> +<p>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> in <cite>Kpathsea</cite>). 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 +</p> +</dd> +<dt>‘<samp>-recorder</samp>’</dt> +<dd><a name="index-_002drecorder"></a> +<a name="index-file-recorder"></a> +<p>Enable the filename recorder. This makes the program save a list of the +opened files into a file with (by default) extension ‘<samp>.fls</samp>’. For +Aleph, this option is always on, and the file has extension ‘<samp>.ofl</samp>’. +</p> +<p>Ordinarily, the ‘<samp>.fls</samp>’ file is written to the same location as +the ‘<samp>.log</samp>’ file, for example, respecting +<samp>-output-directory</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>**</samp>’ prompt), the ‘<samp>.fls</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 +pid), as in <samp>texput1234.fls</samp>. You can use <samp>-jobname</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. +</p> +</dd> +<dt>‘<samp>-translate-file=<var>tcxfile</var></samp>’</dt> +<dd><a name="index-_002dtranslate_002dfile_003dtcxfile"></a> +<a name="index-translation-file-for-TeX_002c-specifying"></a> +<a name="index-_002etcx-character-translation-files"></a> +<a name="index-first-line-of-the-main-input-file"></a> +<p>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>%& -translate-file=<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 +</p> +</dd> +<dt>‘<samp>-8bit</samp>’</dt> +<dd><a name="index-_002d8bit"></a> +<a name="index-8-bit-clean"></a> +<a name="index-8-bit-clean-output_002c-specifying"></a> +<p>This option specifies that by default all characters should be +considered printable. If ‘<samp>-translate-file</samp>’ was given as well, then the TCX file may mark characters as non-printable. +</p> +</dd> +</dl> - </dl> -<div class="node"> +<hr> <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 class="header"> +<p> +Next: <a href="#Output-file-location" accesskey="n" rel="next">Output file location</a>, Previous: <a href="#Common-options" accesskey="p" rel="prev">Common options</a>, Up: <a href="#Commonalities" accesskey="u" rel="up">Commonalities</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Path-searching-1"></a> <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 +<a name="index-path-searching"></a> + +<a name="index-texmf_002ecnf"></a> +<a name="index-configuration-file-reading"></a> +<p>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 +(see <a href="kpathsea.html#Supported-file-formats">Supported file formats</a> in <cite>Kpathsea</cite>). Reading +<samp>texmf.cnf</samp> (see <a href="kpathsea.html#Config-files">Config files</a> in <cite>Kpathsea</cite>), invoking +<code>mktex…</code> scripts (see <a href="kpathsea.html#mktex-scripts">mktex scripts</a> in <cite>Kpathsea</cite>), and so on are all handled by Kpathsea. +</p> +<a name="index-font-aliases"></a> +<a name="index-aliases-for-fonts"></a> +<a name="index-texfonts_002emap"></a> +<p>The programs which read fonts make use of another Kpathsea feature: +<samp>texfonts.map</samp>, which allows arbitrary aliases for the actual names +of font files; for example, ‘<samp>Times-Roman</samp>’ for ‘<samp>ptmr8r.tfm</samp>’. +The distributed (and installed by default) <samp>texfonts.map</samp> includes aliases for many widely available PostScript fonts by their PostScript names. +</p> -<div class="node"> +<hr> <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 class="header"> +<p> +Next: <a href="#Three-programs" accesskey="n" rel="next">Three programs</a>, Previous: <a href="#Path-searching" accesskey="p" rel="prev">Path searching</a>, Up: <a href="#Commonalities" accesskey="u" rel="up">Commonalities</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Output-file-location-1"></a> <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. +<a name="index-output-file-location"></a> +<a name="index-current-directory_002c-used-for-output"></a> +<a name="index-_002e_002c-used-for-output"></a> +<p>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 +</p> +<p>For example, if you run ‘<samp>tex /tmp/foo</samp>’, for example, the output +will be in <samp>./foo.dvi</samp> and <samp>./foo.log</samp>, not +<samp>/tmp/foo.dvi</samp> and <samp>/tmp/foo.log</samp>. +</p> +<a name="index-_002doutput_002ddirectory-1"></a> +<a name="index-output-directory_002c-specifying-1"></a> +<a name="index-readonly-directory_002c-running-TeX-in"></a> +<p>You can use the ‘<samp>-output-directory</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>’ +</p> +<a name="index-TEXMFOUTPUT_002c-used-if-_002e-unwritable"></a> +<a name="index-readonly-directory_002c-running-TeX-in-1"></a> +<p>If the current directory is not writable, and ‘<samp>-output-directory</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 +</p> +<a name="index-TEXMFOUTPUT_002c-used-for-reading"></a> +<p><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 +suffixes (such as ‘<samp>.tex</samp>’) are added by default and no exhaustive path searching is done, the input name is simply checked as given. +</p> -<div class="node"> +<hr> <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 class="header"> +<p> +Previous: <a href="#Output-file-location" accesskey="p" rel="prev">Output file location</a>, Up: <a href="#Commonalities" accesskey="u" rel="up">Commonalities</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Three-programs_003a-Metafont_002c-MetaPost_002c-and-TeX"></a> <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. +<a name="index-three-programs"></a> +<a name="index-TeX_002c-Metafont_002c-and-MetaPost"></a> +<a name="index-Metafont_002c-MetaPost_002c-and-TeX"></a> +<a name="index-MetaPost_002c-TeX_002c-and-Metafont"></a> + +<p>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"> +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Initial-and-virgin" accesskey="1">Initial and virgin</a>:</td><td> </td><td align="left" valign="top">Making memory dumps vs. production runs. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Memory-dumps" accesskey="2">Memory dumps</a>:</td><td> </td><td align="left" valign="top">.fmt/.base files for fast startup. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Editor-invocation" accesskey="3">Editor invocation</a>:</td><td> </td><td align="left" valign="top">The ‘e’ response at errors. +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_005cinput-filenames" accesskey="4">\input filenames</a>:</td><td> </td><td align="left" valign="top">~ and $ expansion in TeX/MF/MP. +</td></tr> +</table> + + +<hr> <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 class="header"> +<p> +Next: <a href="#Memory-dumps" accesskey="n" rel="next">Memory dumps</a>, Up: <a href="#Three-programs" accesskey="u" rel="up">Three programs</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Initial-and-virgin-1"></a> <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 +<a name="index-executables_002c-shared-initial-and-virgin"></a> +<p>The TeX and Metafont programs each have two main variants, called +<em>initial</em> and <em>virgin</em>. 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. +</p> +<p>The initial form is enabled if: +</p><ol> +<li> <a name="index-_002dini-1"></a> +the ‘<samp>-ini</samp>’ option was specified; or +</li><li> the program name is <samp>initex</samp> resp. <samp>inimf</samp>; or +</li><li> the first line of the main input file is ‘<samp>%&ini</samp>’; +</li></ol> +<p>otherwise, the virgin form is used. +</p> +<a name="index-virgin-programs"></a> +<a name="index-production-use"></a> +<p>The <em>virgin</em> 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 +</p> +<a name="index-initial-programs"></a> +<a name="index-initializations_002c-lengthy"></a> +<p>The <em>initial</em> 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. +</p> -<div class="node"> +<hr> <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 class="header"> +<p> +Next: <a href="#Editor-invocation" accesskey="n" rel="next">Editor invocation</a>, Previous: <a href="#Initial-and-virgin" accesskey="p" rel="prev">Initial and virgin</a>, Up: <a href="#Three-programs" accesskey="u" rel="up">Three programs</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Memory-dumps-1"></a> <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> +<a name="index-memory-dumps"></a> -<div class="node"> +<a name="index-dumping-memory"></a> +<a name="index-macros_002c-predefining-in-memory-dumps"></a> +<a name="index-predefined-macros-and-memory-dumps"></a> +<p>In typical use, TeX and Metafont require a large number of +macros to be predefined; therefore, they support <em>memory dump</em> +files, which can be read much more efficiently than ordinary source +code. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Creating-memory-dumps" accesskey="1">Creating memory dumps</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Determining-the-memory-dump-to-use" accesskey="2">Determining the memory dump to use</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Hardware-and-memory-dumps" accesskey="3">Hardware and memory dumps</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> <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 class="header"> +<p> +Next: <a href="#Determining-the-memory-dump-to-use" accesskey="n" rel="next">Determining the memory dump to use</a>, Up: <a href="#Memory-dumps" accesskey="u" rel="up">Memory dumps</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Creating-memory-dumps-1"></a> +<h4 class="subsubsection">3.5.2.1 Creating memory dumps</h4> -<h5 class="subsubsection">3.5.2.1 Creating memory dumps</h5> +<a name="index-memory-dumps_002c-creating"></a> +<a name="index-creating-memory-dumps"></a> +<a name="index-writing-memory-dumps"></a> -<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 +<p>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 +</p> +<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 +</p> +<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>. +</p> +<dl compact="compact"> +<dt>TeX</dt> +<dd><p>(‘<samp>.fmt</samp>’) See <a href="#Initial-TeX">Initial TeX</a>. +</p> +</dd> +<dt>Metafont</dt> +<dd><p>(‘<samp>.base</samp>’) See <a href="#Initial-Metafont">Initial Metafont</a>. +</p></dd> </dl> - <p>When making memory dumps, the programs read environment variables and +<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. +</p> -<div class="node"> +<hr> <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 class="header"> +<p> +Next: <a href="#Hardware-and-memory-dumps" accesskey="n" rel="next">Hardware and memory dumps</a>, Previous: <a href="#Creating-memory-dumps" accesskey="p" rel="prev">Creating memory dumps</a>, Up: <a href="#Memory-dumps" accesskey="u" rel="up">Memory dumps</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="Determining-the-memory-dump-to-use-1"></a> +<h4 class="subsubsection">3.5.2.2 Determining the memory dump to use</h4> -<h5 class="subsubsection">3.5.2.2 Determining the memory dump to use</h5> +<a name="index-memory-dump-to-use_002c-determining"></a> +<a name="index-fmt-file_002c-determining"></a> +<a name="index-base-file_002c-determining"></a> +<a name="index-mem-file_002c-determining"></a> -<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 +<p>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 +</p> +<ol> +<li> If the first non-option command-line argument begins with ‘<samp>&</samp>’, the +program uses the remainder of that argument as the memory dump name. +For example, running ‘<samp>tex \&super</samp>’ reads <samp>super.fmt</samp>. (The +backslash protects the ‘<samp>&</samp>’ against interpretation by the shell.) + +</li><li> <a name="index-_002dfmt_003dfmt"></a> +<a name="index-_002dbase_003dbase"></a> +If the ‘<samp>-fmt</samp>’ resp. ‘<samp>-base</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><li> <a name="index-_002dprogname_003dstring-1"></a> +If the ‘<samp>-progname</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 +</li><li> <a name="index-_0025_0026-magic-number"></a> +If the first line of the main input file (which must be specified on the +command line, not in response to ‘<samp>**</samp>’) is <code>%&<var>dump</var></code>, 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> +<p>The first line of the main input file can also specify which character +translation file is to be used: <code>%&-translate-file=<var>tcxfile</var></code> (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 +</p> +<p>These two roles can be combined: <code>%&<var>dump</var> +-translate-file=<var>tcxfile</var></code>. 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> +</p> +</li><li> <a name="index-program-name_002c-determines-memory-dump"></a> +<a name="index-links-to-binaries"></a> +Otherwise, the program uses the program invocation name, most commonly +<samp>tex</samp> resp. <samp>mf</samp>. For example, if <samp>latex</samp> is a link +to <samp>tex</samp>, and the user runs ‘<samp>latex foo</samp>’, <samp>latex.fmt</samp> will be used. - </ol> +</li></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> +<hr> +<a name="Hardware-and-memory-dumps"></a> +<div class="header"> +<p> +Previous: <a href="#Determining-the-memory-dump-to-use" accesskey="p" rel="prev">Determining the memory dump to use</a>, Up: <a href="#Memory-dumps" accesskey="u" rel="up">Memory dumps</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </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 +<a name="Hardware-and-memory-dumps-1"></a> +<h4 class="subsubsection">3.5.2.3 Hardware and memory dumps</h4> + +<a name="index-hardware-and-memory-dumps"></a> +<a name="index-memory-dumps-and-hardware"></a> +<a name="index-sharing-memory-dumps"></a> +<a name="index-fmt-files_002c-sharing"></a> +<a name="index-base-files_002c-sharing"></a> +<a name="index-mem-files_002c-sharing"></a> + +<a name="index-LittleEndian-machines"></a> +<a name="index-BigEndian-machines"></a> +<a name="index-endian-dependencies"></a> +<a name="index-machine-dependencies"></a> +<a name="index-architecture-dependencies"></a> +<a name="index-dependencies_002c-hardware"></a> +<a name="index-_002d_002ddisable_002ddump_002dshare-configure-option"></a> +<p>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 +endianness (see <a href="http://www.gnu.org/software/libc/manual/html_mono/libc.html#Byte-order">Byte order</a> in <cite>GNU C Library</cite>). (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 +implementations.) If you specify ‘<samp>--disable-dump-share</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 +</p> +<a name="index-byte-swapping"></a> +<a name="index-swapping-bytes"></a> +<p>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 +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 +</p> +<a name="index-floating_002dpoint-values"></a> +<a name="index-glue-ratio-representations"></a> +<p>TeXnically, even without ‘<samp>--disable-dump-share</samp>’, sharing of +<samp>.fmt</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 +LaTeX, AMSTeX, …) do not do any glue setting at +<samp>.fmt</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 +</p> +<a name="index-date-and-time_002c-in-memory-dumps"></a> +<a name="index-time-and-date_002c-in-memory-dumps"></a> +<a name="index-memory-dumps_002c-contain-date-and-time"></a> +<p>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, +time. So don’t be alarmed by just a few bytes difference. +</p> +<a name="index-Harbison_002c-Samuel-P_002e"></a> +<a name="index-Steele-Jr_002e_002c-Guy-L_002e"></a> +<p>If you don’t know what endianness your machine is, and you’re curious, here is a little C program to tell you. (The <code>configure</code> script contains a similar program.) This is from the book <cite>C: A Reference Manual</cite>, by Samuel P. Harbison and Guy L. Steele Jr. (see <a href="#References">References</a>). - -<pre class="example"> main () - { - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long l; - char c[sizeof (long)]; - } u; - u.l = 1; - if (u.c[0] == 1) - printf ("LittleEndian\n"); - else if (u.c[sizeof (long) - 1] == 1) - printf ("BigEndian\n"); - else - printf ("unknownEndian"); - - exit (u.c[sizeof (long) - 1] == 1); - } -</pre> - <div class="node"> +</p> +<div class="example"> +<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> + + +<hr> <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 class="header"> +<p> +Next: <a href="#g_t_005cinput-filenames" accesskey="n" rel="next">\input filenames</a>, Previous: <a href="#Memory-dumps" accesskey="p" rel="prev">Memory dumps</a>, Up: <a href="#Three-programs" accesskey="u" rel="up">Three programs</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Editor-invocation-1"></a> <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 +<a name="index-editor-invoked-at-error"></a> +<a name="index-errors_002c-editor-invoked-at"></a> +<a name="index-e-response-at-error-prompt"></a> + +<p>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 +</p> +<a name="index-TEXEDIT"></a> +<a name="index-MFEDIT"></a> +<a name="index-MPEDIT"></a> +<a name="index-_002d_002dwith_002deditor_003dcmd"></a> +<p>Specifying ‘<samp>--with-editor=<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 +<code>MPEDIT</code> (respectively) override this. If ‘<samp>--with-editor</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. +<samp>texmf.cnf</samp> for the precise values.) +</p> +<p>In this string, ‘<samp>%d</samp>’ is replaced by the line number of the error, +and ‘<samp>%s</samp>’ is replaced by the name of the current input file. +</p> -<div class="node"> -<a name="%5cinput-filenames"></a> +<hr> <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 class="header"> +<p> +Previous: <a href="#Editor-invocation" accesskey="p" rel="prev">Editor invocation</a>, Up: <a href="#Three-programs" accesskey="u" rel="up">Three programs</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="g_t_005cinput-filenames-1"></a> <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 +<a name="index-input-filenames"></a> +<a name="index-filename-conventions_002c-in-input-files"></a> +<a name="index-_005cinput-filenames"></a> + +<p>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. +</p><div class="example"> +<pre class="example">\input <var>name</var> % in TeX +</pre></div> + +<a name="index-space_002dterminated-filenames"></a> +<a name="index-whitespace_002dterminated-filenames"></a> +<a name="index-terminator-for-filenames"></a> +<p>The file <var>name</var> can always be terminated with whitespace; for +Metafont and MetaPost, the statement terminator ‘<samp>;</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>’ +with the primitive operation.) +</p> +<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>"</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 +</p><div class="example"> +<pre class="example">\input "filename with spaces" +</pre></div> + +<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 +</p><div class="example"> +<pre class="example">\input filename" "with" "spaces +</pre></div> + +<p>One more point. In LaTeX, the quotes are needed inside the braces, thus +</p><div class="example"> +<pre class="example">\input{a b} % fails +\input{"a b"} % ok +</pre></div> + +<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 +seen as a single space, active characters such as ‘<samp>~</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 +</p> +<a name="index-NUL_002c-not-allowed-in-filenames"></a> +<a name="index-eight_002dbit-characters-in-filenames"></a> +<a name="index-meta-characters-in-filenames"></a> +<p>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. +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 +</p> +<a name="index-portable-filenames"></a> +<p>For maximal portability of your document across systems, use only the +characters ‘<samp>a</samp>’–‘<samp>z</samp>’, ‘<samp>0</samp>’–‘<samp>9</samp>’, and ‘<samp>.</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 +</p> +<a name="index-_007e-expansion-in-filenames"></a> +<a name="index-_0024-expansion-in-filenames"></a> +<p>Finally, the present Web2c implementation does ‘<samp>~</samp>’ and ‘<samp>$</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 +</p><div class="example"> +<pre class="example">\input ~jsmith/$foo.bar +</pre></div> +<p>will dereference the environment variable or Kpathsea config file value +‘<samp>foo</samp>’ and read that file extended with ‘<samp>.bar</samp>’ in user +‘<samp>jsmith</samp>’’s home directory. You can also use braces, as in +‘<samp>${foo}bar</samp>’, if you want to follow the variable name with a letter, +numeral, or ‘<samp>_</samp>’. +</p> +<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 +</p> +<a name="index-_005cstring"></a> +<p>In all the common TeX formats (plain TeX, LaTeX, AMSTeX), +the characters ‘<samp>~</samp>’ and ‘<samp>$</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. +</p> -<div class="node"> +<hr> <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 class="header"> +<p> +Next: <a href="#Metafont" accesskey="n" rel="next">Metafont</a>, Previous: <a href="#Commonalities" accesskey="p" rel="prev">Commonalities</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="TeX_003a-Typesetting"></a> <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. +<a name="index-TeX_002c-description-of"></a> +<a name="index-typesetting"></a> +<a name="index-mathematical-typesetting"></a> - <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 +<p>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"></a> +<a name="index-word-processor_002c-not"></a> +<p>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 @@ -1090,378 +1492,517 @@ 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"> +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#tex-invocation" accesskey="1">tex invocation</a>:</td><td> </td><td align="left" valign="top">Invoking TeX. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Initial-TeX" accesskey="2">Initial TeX</a>:</td><td> </td><td align="left" valign="top">Making format files. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Formats" accesskey="3">Formats</a>:</td><td> </td><td align="left" valign="top">Major TeX macro packages. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Languages-and-hyphenation" accesskey="4">Languages and hyphenation</a>:</td><td> </td><td align="left" valign="top">TeX supports many human languages. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Shell-escapes" accesskey="5">Shell escapes</a>:</td><td> </td><td align="left" valign="top">Running subprograms from TeX. +</td></tr> +<tr><td align="left" valign="top">• <a href="#IPC-and-TeX" accesskey="6">IPC and TeX</a>:</td><td> </td><td align="left" valign="top">DVI output to a socket. +</td></tr> +<tr><td align="left" valign="top">• <a href="#TeX-extensions" accesskey="7">TeX extensions</a>:</td><td> </td><td align="left" valign="top">Changes to the TeX language. +</td></tr> +</table> + + +<hr> <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 class="header"> +<p> +Next: <a href="#Initial-TeX" accesskey="n" rel="next">Initial TeX</a>, Up: <a href="#TeX" accesskey="u" rel="up">TeX</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="tex-invocation-1"></a> <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 +<a name="index-tex"></a> +<a name="index-TeX_002c-invocation"></a> + +<p>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 +</p> +<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 +</p> +<div class="example"> +<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></div> + +<a name="index-_002etex"></a> +<a name="index-TeX_002c-input-files-found"></a> +<p>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> in <cite>Kpathsea</cite>), extending +<var>texname</var> with <samp>.tex</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 +‘<samp>-1</samp>’ before running the program. +</p> +<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 +</p> +<p>If no arguments or options are specified, TeX prompts for an +input file name with ‘<samp>**</samp>’. +</p> +<a name="index-texput"></a> +<p>TeX writes the main DVI output to the file +<samp><var>basetexname</var>.dvi</samp>, where <var>basetexname</var> is the basename of +<var>texname</var>, or ‘<samp>texput</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 <a href="dvips.html#Top">Introduction</a> in <cite>Dvips</cite>) 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 +</p> +<a name="index-EC-fonts"></a> +<a name="index-mktextfM_002c-disabling"></a> +<a name="index-_005cfont-and-dynamic-generation"></a> +<p>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 +named <samp>mktextfm</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> in <cite>Kpathsea</cite>). 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 +</p> +<a name="index-_005copenout-and-security"></a> +<a name="index-security_002c-and-_005copenout"></a> +<a name="index-output-files_002c-written-by-TeX-programs"></a> +<a name="index-Trojan-horses-and-TeX-programs"></a> +<a name="index-dot-files_002c-written-by-TeX-programs"></a> +<a name="index-security_002c-and-output-files"></a> +<p>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 +run a TeX program that overwrites, say, <samp>~/.rhosts</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 +<code>kpathsea_in_name_ok</code> from the Kpathse library (see <a href="kpathsea.html#Calling-sequence">Calling +sequence</a> in <cite>Kpathsea</cite>) 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 +‘<samp>a</samp>’ (for “any”, the default for <code>openin_any</code>), ‘<samp>r</samp>’ (for +“restricted”), or ‘<samp>p</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, +</p> +<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. +</p> +<p>The program accepts the following options, as well as the standard +‘<samp>-help</samp>’ and ‘<samp>-version</samp>’ (see <a href="#Common-options">Common options</a>): +</p><dl compact="compact"> +<dt>‘<samp>-enc</samp>’</dt> +<dt>‘<samp>-[no]-file-line-error</samp>’</dt> +<dt>‘<samp>-fmt=<var>fmtname</var></samp>’</dt> +<dt>‘<samp>-halt-on-error</samp>’</dt> +<dt>‘<samp>-ini</samp>’</dt> +<dt>‘<samp>-interaction=<var>string</var></samp>’</dt> +<dt>‘<samp>-ipc</samp>’</dt> +<dt>‘<samp>-ipc-start</samp>’</dt> +<dt>‘<samp>-jobname=<var>string</var></samp>’</dt> +<dt>‘<samp>-kpathsea-debug=<var>number</var></samp>’</dt> +<dt>‘<samp>-[no]parse-first-line</samp>’</dt> +<dt>‘<samp>-output-directory</samp>’</dt> +<dt>‘<samp>-progname=<var>string</var></samp>’</dt> +<dt>‘<samp>-recorder</samp>’</dt> +<dt>‘<samp>-translate-file=<var>tcxfile</var></samp>’</dt> +<dt>‘<samp>-8bit</samp>’</dt> +<dd><p>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 +</p> +</dd> +<dt>‘<samp>-enc</samp>’</dt> +<dd><a name="index-_002denc"></a> +<a name="index-Unicode-input"></a> +<a name="index-UTF_002d8-input"></a> +<p>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 +</p> +</dd> +<dt>‘<samp>-ipc</samp>’</dt> +<dt>‘<samp>-ipc-start</samp>’</dt> +<dd><a name="index-_002dipc"></a> +<a name="index-_002dipc_002dstart"></a> +<a name="index-_002d_002denable_002dipc-configure-option"></a> +<p>With either option, TeX writes its DVI output to a socket as well as +to the usual <samp>.dvi</samp> file. With ‘<samp>-ipc-start</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 +</p> +<p>These options are available only if the ‘<samp>--enable-ipc</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 +</p> +</dd> +<dt>‘<samp>-mktex=<var>filetype</var></samp>’</dt> +<dt>‘<samp>-no-mktex=<var>filetype</var></samp>’</dt> +<dd><a name="index-_002dmktex_003dfiletype"></a> +<a name="index-_002dno_002dmktex_003dfiletype"></a> +<p>Turn on or off the ‘<samp>mktex</samp>’ script associated with <var>filetype</var>. +For TeX proper, <var>filetype</var> can only be ‘<samp>tex</samp>’ and +‘<samp>tfm</samp>’, but for pdfTeX and luaTeX, it can also be ‘<samp>pk</samp>’. +</p> +</dd> +<dt>‘<samp>-mltex</samp>’</dt> +<dd><a name="index-_002dmltex"></a> +<a name="index-MLTeX_002c-enabling"></a> +<a name="index-program-names_002c-special-2"></a> +<p>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 +</p> +</dd> +<dt>‘<samp>-output-comment=<var>string</var></samp>’</dt> +<dd><a name="index-_002doutput_002dcomment_003dstring"></a> +<a name="index-output_005fcomment-for-DVI-files"></a> +<a name="index-DVI-comment_002c-specifying"></a> +<a name="index-regression-testing"></a> +<p>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 +config file value ‘<samp>output_comment</samp>’. +</p> +</dd> +<dt>‘<samp>-shell-escape</samp>’</dt> +<dd><a name="index-_002dshell_002descape"></a> +</dd> +<dt>‘<samp>-no-shell-escape</samp>’</dt> +<dd><a name="index-_002dno_002dshell_002descape"></a> +</dd> +<dt>‘<samp>-shell-restricted</samp>’</dt> +<dd><a name="index-_002dshell_002drestricted"></a> +<p>Enable, or disable, or enable with restrictions the +<code>\write18{<var>shell-command</var>}</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 +</p> +</dd> +<dt>‘<samp>-enable-write18</samp>’</dt> +<dd><a name="index-_002denable_002dwrite18"></a> +</dd> +<dt>‘<samp>-disable-write18</samp>’</dt> +<dd><a name="index-_002ddisable_002dwrite18"></a> +<p>Synonyms for <samp>-shell-escape</samp> and <samp>-no-shell-escape</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 +</p> +</dd> +<dt>‘<samp>-src-specials</samp>’</dt> +<dt>‘<samp>-src-specials=<var>string</var></samp>’</dt> +<dd><a name="index-generating-source-specials"></a> +<p>This option makes TeX output specific source information using +‘<samp>\special</samp>’ commands in the DVI file. These ‘<samp>\special</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 +</p> +<p>Using the first form of this option, the ‘<samp>\special</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 +</p> +<p>In the second form of the option, <var>string</var> is +a comma separated list of the following values: ‘<samp>cr</samp>’, +‘<samp>display</samp>’, ‘<samp>hbox</samp>’, ‘<samp>math</samp>’, ‘<samp>par</samp>’, ‘<samp>parend</samp>’, +‘<samp>vbox</samp>’. You can use this list to specify where you want TeX to +output such commands. For example, ‘<samp>-src-specials=cr,math</samp>’ will output source information every line and every math formula. - - <p>These commands can be used with the appropriate DVI viewer and text +</p> +<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 +</p> +<p>This option works by inserting ‘<samp>\special</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 +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 +</p> +<p>Redefining ‘<samp>\special</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. +hard-coded to always use the ‘<samp>\special</samp>’ primitive. +</p> +<p>TeX does not pass the trip test when this option is enabled. +</p> +</dd> +</dl> - </dl> -<div class="node"> +<hr> <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 class="header"> +<p> +Next: <a href="#Formats" accesskey="n" rel="next">Formats</a>, Previous: <a href="#tex-invocation" accesskey="p" rel="prev">tex invocation</a>, Up: <a href="#TeX" accesskey="u" rel="up">TeX</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Initial-TeX-1"></a> <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>. +<a name="index-initial-TeX"></a> +<a name="index-TeX_002c-initial"></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 +<a name="index-_002efmt"></a> +<a name="index-fmt-files"></a> +<p>The <em>initial</em> form of TeX is invoked by ‘<samp>tex -ini</samp>’. It +does lengthy initializations avoided by the “virgin” (<code>vir</code>) +form, so as to be capable of dumping ‘<samp>.fmt</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>. +</p> +<p>For a list of options and other information, see <a href="#tex-invocation">tex invocation</a>. +</p> +<a name="index-plain_002efmt"></a> +<a name="index-tex_002efmt"></a> +<a name="index-format-files"></a> +<p>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>’ +<cite>TeXbook</cite> is ‘<samp>plain.fmt</samp>’, also known as ‘<samp>tex.fmt</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 +update to <samp>plain.tex</samp> is issued): +</p><div class="example"> +<pre class="example">tex -ini '\input plain \dump' +</pre></div> +<p>(The quotes prevent interpretation of the backslashes from the shell.) +Then install the resulting <samp>plain.fmt</samp> in ‘<samp>$(fmtdir)</samp>’ +(<samp>/usr/local/share/texmf/web2c</samp> by default), and link +<samp>tex.fmt</samp> to it. +</p> +<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 +top-level <samp>web2c</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. +</p> -<div class="node"> +<hr> <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 class="header"> +<p> +Next: <a href="#Languages-and-hyphenation" accesskey="n" rel="next">Languages and hyphenation</a>, Previous: <a href="#Initial-TeX" accesskey="p" rel="prev">Initial TeX</a>, Up: <a href="#TeX" accesskey="u" rel="up">TeX</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Formats-1"></a> <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> +<a name="index-formats-for-TeX"></a> +<a name="index-TeX_002c-format-packages-for"></a> +<a name="index-macro-packages_002c-major-TeX"></a> + +<p>TeX <em>formats</em> are large collections of macros, often dumped +into a <samp>.fmt</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 +only the ‘<samp>plain</samp>’ and ‘<samp>latex</samp>’ formats are made. +</p> +<p>You can get the latest versions of most of these formats from the CTAN +archives in subdirectories of <samp><var>CTAN:</var>/macros</samp> (for CTAN info, +see <a href="kpathsea.html#unixtex_002eftp">unixtex.ftp</a> in <cite>Kpathsea</cite>). 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', +</p> +<dl compact="compact"> +<dt><tt>latex</tt></dt> +<dd><a name="index-LaTeX"></a> +<p>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 +typesetting instructions, such as “use the 10pt 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 +</p> +</dd> +<dt><tt>context</tt></dt> +<dd><p>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. +</p> +</dd> +<dt><tt>amstex</tt></dt> +<dd><a name="index-AMSTeX"></a> +<a name="index-American-Mathematical-Society_002c-typesetting-system"></a> +<a name="index-Mathematical-Reviews"></a> +<p>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 +</p> +</dd> +<dt><tt>texinfo</tt></dt> +<dd><a name="index-Texinfo"></a> +<a name="index-Info-format"></a> +<a name="index-Free-Software-Foundation-documentation-system"></a> +<p>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: +‘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., +</p> +</dd> +<dt><tt>eplain</tt></dt> +<dd><a name="index-Eplain"></a> +<a name="index-expanded-plain-format"></a> +<p>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>. +</p> +</dd> +<dt><tt>slitex</tt></dt> +<dd><a name="index-SliTeX"></a> +<a name="index-slides_002c-producing"></a> +<p>An obsolete LaTeX 2.09 format for making slides. It is replaced by +the ‘<samp>slides</samp>’ document class, along with the ‘<samp>beamer</samp>’, +‘<samp>texpower</samp>’, and other packages. +</p> +</dd> +</dl> - <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"> +<hr> <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 class="header"> +<p> +Next: <a href="#Shell-escapes" accesskey="n" rel="next">Shell escapes</a>, Previous: <a href="#Formats" accesskey="p" rel="prev">Formats</a>, Up: <a href="#TeX" accesskey="u" rel="up">TeX</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Languages-and-hyphenation-1"></a> <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>. +<a name="index-language-support-in-TeX"></a> +<a name="index-human-languages_002c-supported-in-TeX"></a> +<a name="index-hyphenation-and-languages"></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> +<p>TeX supports most natural languages. See also <a href="#TeX-extensions">TeX extensions</a>. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#MLTeX" accesskey="1">MLTeX</a>:</td><td> </td><td align="left" valign="top">Multi-lingual TeX. +</td></tr> +<tr><td align="left" valign="top">• <a href="#TCX-files" accesskey="2">TCX files</a>:</td><td> </td><td align="left" valign="top">Support for different character sets & fonts. +</td></tr> +<tr><td align="left" valign="top">• <a href="#patgen-invocation" accesskey="3">patgen invocation</a>:</td><td> </td><td align="left" valign="top">Creating hyphenation patterns. +</td></tr> +</table> -<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> +<hr> +<a name="MLTeX"></a> +<div class="header"> +<p> +Next: <a href="#TCX-files" accesskey="n" rel="next">TCX files</a>, Up: <a href="#Languages-and-hyphenation" accesskey="u" rel="up">Languages and hyphenation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="MLTeX_003a-Multi_002dlingual-TeX"></a> <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 +<a name="index-mltex"></a> +<a name="index-Multi_002dlingual-TeX"></a> + +<a name="index-Ferguson_002c-Michael"></a> +<a name="index-Raichle_002c-Bernd"></a> +<a name="index-accents_002c-hyphenating-words-with"></a> +<a name="index-glyph-substitutions"></a> +<a name="index-substitutions-of-font-glyphs"></a> +<p>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. +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 +</p> +<p>MLTeX works at <samp>.fmt</samp>-creation time: the basic idea is to +specify the ‘<samp>-mltex</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> +</p> +<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. +</p> +<p>The sections below describe the two new primitives that MLTeX defines. Aside from these, MLTeX is completely compatible with standard TeX. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#g_t_005ccharsubdef" accesskey="1">\charsubdef</a>:</td><td> </td><td align="left" valign="top">Character substitution definitions. +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_005ctracingcharsubdef" accesskey="2">\tracingcharsubdef</a>:</td><td> </td><td align="left" valign="top">Tracing substitutions. +</td></tr> +</table> -<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> +<hr> <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 class="header"> +<p> +Next: <a href="#g_t_005ctracingcharsubdef" accesskey="n" rel="next">\tracingcharsubdef</a>, Up: <a href="#MLTeX" accesskey="u" rel="up">MLTeX</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="g_t_005ccharsubdef_003a-Character-substitutions"></a> +<h4 class="subsubsection">4.4.1.1 <code>\charsubdef</code>: Character substitutions</h4> -<h5 class="subsubsection">4.4.1.1 <code>\charsubdef</code>: Character substitutions</h5> +<a name="index-_005ccharsubdef-and-MLTeX"></a> -<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 +<p>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><div class="example"> +<pre class="example">\charsubdef <var>composite</var> [=] <var>accent</var> <var>base</var> +</pre></div> - <p>MLTeX's <code>\charsubdef</code> declares how to construct an accented +<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> +<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 +</p> +<p>For example, if you assume glyph code 138 +<a name="index-e_002dcircumflex"></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 +accent in position 18 and lowercase ‘e’ in the usual ASCII position 101 decimal, you would use <code>\charsubdef</code> as follows: +</p> +<div class="example"> +<pre class="example">\charsubdef 138 = 18 101 +</pre></div> -<pre class="example"> \charsubdef 138 = 18 101 -</pre> - <p>For the plain TeX format to make use of this substitution, you have +<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 +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> +</p> +<p>To disable a previous <code>\charsubdef <var>c</var></code>, 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 +</p><div class="example"> +<pre class="example">\charsubdef '321 = 0 0 % disable N tilde +</pre></div> +<a name="index-N-tilde"></a> +<p>(Octal <tt>'321</tt> is the ISO Latin-1 value for the Spanish N tilde.) +</p> +<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 @@ -1471,255 +2012,289 @@ 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.) +</p> -<div class="node"> -<a name="%5ctracingcharsubdef"></a> +<hr> <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 class="header"> +<p> +Previous: <a href="#g_t_005ccharsubdef" accesskey="p" rel="prev">\charsubdef</a>, Up: <a href="#MLTeX" accesskey="u" rel="up">MLTeX</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> +<a name="g_t_005ctracingcharsubdef_003a-Substitution-diagnostics"></a> +<h4 class="subsubsection">4.4.1.2 <code>\tracingcharsubdef</code>: Substitution diagnostics</h4> -<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 +<a name="index-_005ctracingcharsubdef-and-MLTeX"></a> +<a name="index-redefined-character-substitutions"></a> +<p>To help diagnose problems with ‘<samp>\charsubdef</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 +</p> +<a name="index-_005ctracinglostchars-and-MLTeX"></a> +<p>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. +</p> -<div class="node"> +<hr> <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 class="header"> +<p> +Next: <a href="#patgen-invocation" accesskey="n" rel="next">patgen invocation</a>, Previous: <a href="#MLTeX" accesskey="p" rel="prev">MLTeX</a>, Up: <a href="#Languages-and-hyphenation" accesskey="u" rel="up">Languages and hyphenation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="TCX-files_003a-Character-translations"></a> <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 +<a name="index-TCX-character-translation-files"></a> +<a name="index-_002etcx-character-translation-files-1"></a> +<a name="index-character-translation-files"></a> + +<a name="index-international-characters"></a> +<a name="index-8_002dbit-characters"></a> +<a name="index-accented-character"></a> +<p>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 +</p> +<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>xchr</samp>’ and ‘<samp>xord</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 +</p> +<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>): +</p> +<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 +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 +</p> +<a name="index-WEB2C_002c-search-path-for-TCX-files"></a> +<p>Information on specifying TCX files: +</p> +<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>’. +<div class="example"> +<pre class="example">%& -translate-file=<var>tcxfile</var> +</pre></div> - <li>TCX files are searched for along the <code>WEB2C</code> path. +</li><li> You can also specify a TCX file to be used on a particular TeX run +with the command-line option ‘<samp>-translate-file=<var>tcxfile</var></samp>’. - <li>Initial TeX (see <a href="#Initial-TeX">Initial TeX</a>) ignores TCX files. -</ul> +</li><li> TCX files are searched for along the <code>WEB2C</code> path. - <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 +</li><li> Initial TeX (see <a href="#Initial-TeX">Initial TeX</a>) ignores TCX files. +</li></ul> + +<a name="index-il1_002dt1_002etcx"></a> +<a name="index-il2_002dt1_002etcx"></a> +<a name="index-empty_002etcx"></a> +<a name="index-Cork-encoding-and-ISO-input"></a> +<a name="index-T1-encoding-and-ISO-input"></a> +<p>The Web2c distribution comes with a number of TCX files. Two +important ones are <samp>il1-t1.tcx</samp> and <samp>il2-t1.tcx</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, +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 +</p> +<p>One other notable TCX file is <samp>empty.tcx</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. +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 +</p> +<div class="example"> +<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></div> + +<a name="index-syntax-of-TCX-files"></a> +<p>Syntax of TCX files: +</p><ol> +<li> <a name="index-blank-lines_002c-in-TCX-files"></a> +Line-oriented. Blank lines are ignored. + +</li><li> <a name="index-whitespace_002c-in-TCX-files"></a> +Whitespace is ignored except as a separator. + +</li><li> <a name="index-comments_002c-in-TCX-files"></a> +Comments start with ‘<samp>%</samp>’ and continue to the end of the line. + +</li><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 +<div class="example"> +<pre class="example"><var>src</var> [<var>dest</var> [<var>prnt</var>]] +</pre></div> + +</li><li> <a name="index-character-codes_002c-in-TCX-files"></a> +<a name="index-octal-character-codes_002c-in-TCX-files"></a> +<a name="index-hex-character-codes_002c-in-TCX-files"></a> +<a name="index-decimal-character-codes_002c-in-TCX-files"></a> +Each character code may be specified in octal with a leading ‘<samp>0</samp>’, +hexadecimal with a leading ‘<samp>0x</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 +</li><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 +</li><li> If the same <var>src</var> code is specified more than once, it is the last definition that counts. - </ol> +</li></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 +<a name="index-printable-characters_002c-specifying"></a> +<a name="index-_005e_005e-notation_002c-avoiding"></a> +<p>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 +log file rather than in ‘<samp>^^</samp>’ notation. +</p> +<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 +</p> +<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 +</p> +<a name="index-font-character-code_002c-translating"></a> +<a name="index-keyboard-character-code_002c-translating"></a> +<p>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>’ +</p> +<a name="index-interaction-between-TCX-files-and-_002d8bit_002e"></a> +<p>By default, only the printable ASCII characters are considered printable +by TeX. If you specify the ‘<samp>-8bit</samp>’ option, all characters are +considered printable by default. If you specify both the ‘<samp>-8bit</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 +</p> +<p>Both the specified TCX encoding and whether characters are printable +are saved in the dump files (like <samp>tex.fmt</samp>). So by giving these +options in combination with ‘<samp>-ini</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 +</p> +<p>When loading a dump, if the ‘<samp>-8bit</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 +</p> +<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. +</p> -<div class="node"> +<hr> <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 class="header"> +<p> +Previous: <a href="#TCX-files" accesskey="p" rel="prev">TCX files</a>, Up: <a href="#Languages-and-hyphenation" accesskey="u" rel="up">Languages and hyphenation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Patgen_003a-Creating-hyphenation-patterns"></a> <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 +<a name="index-patgen"></a> +<a name="index-hyphenation-patterns_002c-creating"></a> +<a name="index-languages_002c-hyphenation-rules-for"></a> + +<p>Patgen creates hyphenation patterns from dictionary files for use with TeX. Synopsis: +</p> +<div class="example"> +<pre class="example">patgen <var>dictionary</var> <var>patterns</var> <var>output</var> <var>translate</var> +</pre></div> -<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 +<p>Each argument is a filename. No path searching is done. The output is written to the file <var>output</var>. +</p> -<!-- @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> +<p>In addition, Patgen prompts interactively for other values. +</p> +<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>patgen.web</samp> source file. +</p> +<p>The only options are ‘<samp>-help</samp>’ and ‘<samp>-version</samp>’ (see <a href="#Common-options">Common options</a>). +</p> +<hr> +<a name="Shell-escapes"></a> +<div class="header"> +<p> +Next: <a href="#IPC-and-TeX" accesskey="n" rel="next">IPC and TeX</a>, Previous: <a href="#Languages-and-hyphenation" accesskey="p" rel="prev">Languages and hyphenation</a>, Up: <a href="#TeX" accesskey="u" rel="up">TeX</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Shell-escapes-1"></a> <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 +<a name="index-shell-commands-in-TeX"></a> +<a name="index-security_002c-and-shell-escapes"></a> +<a name="index-restricted-shell-escapes"></a> +<a name="index-system-command"></a> +<a name="index-shell_005fescape-enabling-in-TeX"></a> +<a name="index-_005cimmediate_005cwrite18"></a> +<a name="index-_005cwrite18-shell-escape-extension"></a> +<a name="index-system-C-library-function"></a> + +<p>TeX can execute <em>shell escapes</em>, 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 +<em>restricted</em> 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>’. +in the <samp>texmf.cnf</samp> configuration file. +</p> +<ul> +<li> Unrestricted shell escapes are allowed if the option +<samp>--shell-escape</samp> is specified, or if the environment variable +or config file value <code>shell_escape</code> is set to ‘<samp>t</samp>’ or +‘<samp>y</samp>’ and ‘<samp>1</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><li> Restricted shell escapes are allowed if <code>shell_escape</code> is set to +‘<samp>p</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> +</li><li> Shell escapes are completely disabled if <samp>--no-shell-escape</samp> is +specified, or if <code>shell_escape</code> is set to anything else. +</li></ul> - <p>When enabled, the TeX construct to execute a system command is -<code>\write18{</code><var>shell-command</var><code>}</code>; for example: +<p>When enabled, the TeX construct to execute a system command is +<code>\write18{<var>shell-command</var>}</code>; for example: +</p> +<div class="example"> +<pre class="example">\write18{echo "hello, world"} +</pre></div> -<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, +<a name="index-_005coutput-routine_002c-and-_005cwrite"></a> +<p>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 +system call either happens during the ‘<samp>\output</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 +</p> +<a name="index-exit-status_002c-of-shell-escape"></a> +<p>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 +</p> +<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 +</p> +<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 @@ -1728,112 +2303,151 @@ 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 +</p> +<a name="index-shell_005fescape_005fcommands"></a> +<p>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 +</p> +<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 +</p> +<div class="example"> +<pre class="example">shell_escape_commands = bibtex,dvips,epstopdf,...,tex +</pre></div> + +<a name="index-pipes_002c-reading-and-writing"></a> +<a name="index-_005copenin_002c-and-pipes"></a> +<a name="index-_005cinput_002c-and-pipes"></a> +<a name="index-_005copenout_002c-and-pipes"></a> +<a name="index-_005cpdfshellescape"></a> +<p>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 +first character is ‘<samp>|</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 +</p> +<a name="index-web-environments_002c-and-security"></a> +<p>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. +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. +</p> -<div class="node"> +<hr> <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 class="header"> +<p> +Next: <a href="#TeX-extensions" accesskey="n" rel="next">TeX extensions</a>, Previous: <a href="#Shell-escapes" accesskey="p" rel="prev">Shell escapes</a>, Up: <a href="#TeX" accesskey="u" rel="up">TeX</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="IPC-and-TeX-1"></a> <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 name="index-IPC"></a> +<a name="index-sockets"></a> +<p>(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 +</p> +<p>This functionality is available only if the ‘<samp>--enable-ipc</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 +</p> +<a name="index-IPC_005fDEBUG-1"></a> +<p>If you define <code>IPC_DEBUG</code> before compilation (e.g., with ‘<samp>make +XCFLAGS=-DIPC_DEBUG</samp>’), TeX will print messages to standard error about its socket operations. This may be helpful if you are, well, debugging. +</p> -<div class="node"> +<hr> <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 class="header"> +<p> +Previous: <a href="#IPC-and-TeX" accesskey="p" rel="prev">IPC and TeX</a>, Up: <a href="#TeX" accesskey="u" rel="up">TeX</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="TeX-extensions-1"></a> <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. +<a name="index-extensions-to-TeX"></a> +<a name="index-TeX_002c-extensions-to"></a> - <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 +<p>The base TeX program has been extended in many ways. Here’s a +partial list. +</p> +<dl compact="compact"> +<dt>e-TeX</dt> +<dd><a name="index-e_002dTeX"></a> +<a name="index-primitives_002c-new"></a> +<p>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 +</p> +</dd> +<dt>Aleph</dt> +<dd><a name="index-Aleph"></a> +<a name="index-Unicode"></a> +<p>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 +</p> +</dd> +<dt>pdfTeX</dt> +<dd><a name="index-pdfTeX"></a> +<a name="index-PDF"></a> +<a name="index-micro_002dtypography"></a> +<a name="index-hypertext"></a> +<p>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 +</p> +</dd> +<dt>luaTeX</dt> +<dd><a name="index-luaTeX"></a> +<a name="index-Lua"></a> +<p>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. +</p> +</dd> +<dt>XeTeX</dt> +<dd><a name="index-XeTeX"></a> +<a name="index-Unicode-1"></a> +<p>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>. +</p> +</dd> +</dl> - </dl> -<div class="node"> +<hr> <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 class="header"> +<p> +Next: <a href="#MetaPost" accesskey="n" rel="next">MetaPost</a>, Previous: <a href="#TeX" accesskey="p" rel="prev">TeX</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Metafont_003a-Creating-typeface-families"></a> <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 +<a name="index-Metafont"></a> +<a name="index-typeface-families"></a> +<a name="index-geometric-designs"></a> +<a name="index-shapes"></a> +<a name="index-font-design"></a> + +<p>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 +</p> +<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 @@ -1841,1224 +2455,1695 @@ unlikely to find it usable) and considerable advantages (you can make your design intentions specific and parameterizable). For a complete description of the Metafont language, see <cite>The METAFONTbook</cite> (see <a href="#References">References</a>). - -<ul class="menu"> -<li><a accesskey="1" href="#mf-invocation">mf invocation</a>: Invoking Metafont. -<li><a accesskey="2" href="#Initial-Metafont">Initial Metafont</a>: Making bases. -<li><a accesskey="3" href="#Modes">Modes</a>: Device definitions for Metafont. -<li><a accesskey="4" href="#Online-Metafont-graphics">Online Metafont graphics</a>: Seeing MF output online. -<li><a accesskey="5" href="#gftodvi-invocation">gftodvi invocation</a>: Making proofsheets for fonts. -<li><a accesskey="6" href="#mft-invocation">mft invocation</a>: Prettyprinting Metafont sources. -</ul> - -<div class="node"> +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#mf-invocation" accesskey="1">mf invocation</a>:</td><td> </td><td align="left" valign="top">Invoking Metafont. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Initial-Metafont" accesskey="2">Initial Metafont</a>:</td><td> </td><td align="left" valign="top">Making bases. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Modes" accesskey="3">Modes</a>:</td><td> </td><td align="left" valign="top">Device definitions for Metafont. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Online-Metafont-graphics" accesskey="4">Online Metafont graphics</a>:</td><td> </td><td align="left" valign="top">Seeing MF output online. +</td></tr> +<tr><td align="left" valign="top">• <a href="#gftodvi-invocation" accesskey="5">gftodvi invocation</a>:</td><td> </td><td align="left" valign="top">Making proofsheets for fonts. +</td></tr> +<tr><td align="left" valign="top">• <a href="#mft-invocation" accesskey="6">mft invocation</a>:</td><td> </td><td align="left" valign="top">Prettyprinting Metafont sources. +</td></tr> +</table> + + +<hr> <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 class="header"> +<p> +Next: <a href="#Initial-Metafont" accesskey="n" rel="next">Initial Metafont</a>, Up: <a href="#Metafont" accesskey="u" rel="up">Metafont</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="mf-invocation-1"></a> <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 +<a name="index-mf"></a> +<a name="index-Metafont-invocation"></a> + +<p>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 +</p> +<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>’ +</p> +<div class="example"> +<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></div> + +<p>Most commonly, a Metafont invocation looks like this: +</p><div class="example"> +<pre class="example">mf '\mode:=<var>mode</var>; mag:=<var>magnification</var>; input <var>mfname</var>' +</pre></div> +<p>(The single quotes avoid unwanted interpretation by the shell.) +</p> +<a name="index-_002emf"></a> +<a name="index-Metafont-input-files"></a> +<a name="index-EC-fonts-1"></a> +<a name="index-mktexmf_002c-disabling"></a> +<p>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> in <cite>Kpathsea</cite>), extending +<var>mfname</var> with <samp>.mf</samp> if necessary. To see all the relevant +paths, set the environment variable <code>KPATHSEA_DEBUG</code> to ‘<samp>-1</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 +program named <samp>mktexmf</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 +(see <a href="kpathsea.html#mktex-configuration">mktex configuration</a> in <cite>Kpathsea</cite>). 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 +</p> +<a name="index-_002ennngf-generic-fonts"></a> +<a name="index-mfput"></a> +<a name="index-GF-output"></a> +<a name="index-GF-files_002c-output-by-Metafont"></a> +<a name="index-PK-files_002c-not-output-by-Metafont"></a> +<p>Metafont writes the main GF output to the file +<samp><var>basemfname</var>.<var>nnn</var>gf</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 +<var>mfname</var>, or ‘<samp>mfput</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, +</p> +<a name="index-_002etfm-output"></a> +<a name="index-TFM-files_002c-output-by-Metafont"></a> +<p>Metafont also usually writes a metric file in TFM format to +<samp><var>basemfname</var>.tfm</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 +</p> +<a name="index-mode-needed-to-run-Metafont"></a> +<a name="index-proof-mode"></a> +<a name="index-2602gf"></a> +<a name="index-_002e2602gf"></a> +<p>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 +a resolution of 2602dpi; 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>. +</p> +<p>The <var>magnification</var> assignment in the example command above is a +magnification factor; for example, if the device is 600dpi and you +specify <code>mag:=2</code>, Metafont will produce output at 1200dpi. 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 +</p> +<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. +</p><div class="example"> +<pre class="example">\font\myfont = newfont +\myfont Now I am typesetting in my new font (minimum hamburgers). +</pre></div> + +<p>The program accepts the following options, as well as the standard +‘<samp>-help</samp>’ and ‘<samp>-version</samp>’ (see <a href="#Common-options">Common options</a>): +</p><dl compact="compact"> +<dt>‘<samp>-[no]-file-line-error</samp>’</dt> +<dt>‘<samp>-fmt=<var>fmtname</var></samp>’</dt> +<dt>‘<samp>-halt-on-error</samp>’</dt> +<dt>‘<samp>-ini</samp>’</dt> +<dt>‘<samp>-interaction=<var>string</var></samp>’</dt> +<dt>‘<samp>-jobname=<var>string</var></samp>’</dt> +<dt>‘<samp>-kpathsea-debug=<var>number</var></samp>’</dt> +<dt>‘<samp>-[no]parse-first-line</samp>’</dt> +<dt>‘<samp>-output-directory</samp>’</dt> +<dt>‘<samp>-progname=<var>string</var></samp>’</dt> +<dt>‘<samp>-recorder</samp>’</dt> +<dt>‘<samp>-translate-file=<var>tcxfile</var></samp>’</dt> +<dt>‘<samp>-8bit</samp>’</dt> +<dd><p>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>’. +</p> +</dd> +<dt>‘<samp>-mktex=<var>filetype</var></samp>’</dt> +<dt>‘<samp>-no-mktex=<var>filetype</var></samp>’</dt> +<dd><a name="index-_002dmktex_003dfiletype-1"></a> +<a name="index-_002dno_002dmktex_003dfiletype-1"></a> +<p>Turn on or off the ‘<samp>mktex</samp>’ script associated with <var>filetype</var>. +The only value that makes sense for <var>filetype</var> is ‘<samp>mf</samp>’. +</p></dd> </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> +<hr> +<a name="Initial-Metafont"></a> +<div class="header"> +<p> +Next: <a href="#Modes" accesskey="n" rel="next">Modes</a>, Previous: <a href="#mf-invocation" accesskey="p" rel="prev">mf invocation</a>, Up: <a href="#Metafont" accesskey="u" rel="up">Metafont</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Initial-Metafont-1"></a> <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. +<a name="index-initial-Metafont"></a> +<a name="index-Metafont_002c-initial"></a> - <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 +<a name="index-_002ebase"></a> +<a name="index-base-files"></a> +<p><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>.base</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>. +</p> +<p>For a list of options and other information, see <a href="#mf-invocation">mf invocation</a>. +</p> +<a name="index-plain_002ebase"></a> +<a name="index-mf_002ebase"></a> +<p>The only memory dump file commonly used with Metafont is the default +‘<samp>plain.base</samp>’, also known as ‘<samp>mf.base</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, +</p><div class="example"> +<pre class="example">mf -ini '\input plain; input modes; dump' +</pre></div> +<p>(The quotes prevent interpretation of the backslashes from the shell.) +Then install the resulting <samp>plain.base</samp> in ‘<samp>$(basedir)</samp>’ +(<samp>/usr/local/share/texmf/web2c</samp> by default), and link +<samp>mf.base</samp> to it. +</p> +<p>For an explanation of the additional <samp>modes.mf</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 +</p> +<a name="index-cmmf_002ebase-not-recommended"></a> +<a name="index-cm_002ebase"></a> +<a name="index-cmbase_002emf"></a> +<a name="index-Computer-Modern-macros"></a> +<a name="index-base-files_002c-plain-only"></a> +<p>In the past, it was sometimes useful to create a base file +<samp>cmmf.base</samp> (a.k.a. <samp>cm.base</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, +additional time required to read <samp>cmbase.mf</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 +<samp>cmmf.base</samp> file when you install a new version of <samp>modes.mf</samp>. +<a name="index-type-design_002c-personal"></a> +People actually working on a typeface may still find it worthwhile to create their own base file, of course. +</p> -<div class="node"> +<hr> <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 class="header"> +<p> +Next: <a href="#Online-Metafont-graphics" accesskey="n" rel="next">Online Metafont graphics</a>, Previous: <a href="#Initial-Metafont" accesskey="p" rel="prev">Initial Metafont</a>, Up: <a href="#Metafont" accesskey="u" rel="up">Metafont</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Modes_003a-Device-definitions-for-Metafont"></a> <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 +<a name="index-modes-file-needed-for-Metafont"></a> +<a name="index-base-files_002c-need-mode-definitions"></a> +<a name="index-device-definitions_002c-for-Metafont"></a> +<a name="index-printer-characteristics_002c-for-Metafont"></a> +<p>Running Metafont and creating Metafont base files requires information +that TeX and MetaPost do not: <em>mode</em> 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 +</p> +<a name="index-modes_002emf-recommended-modes-file"></a> +<p>When making a base file, a file containing modes for locally-available +devices should be input after <samp>plain.mf</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 +</p> +<a name="index-small-Metafont-memory-and-modes"></a> +<a name="index-mode_005fdef"></a> +<a name="index-mode_005fsetup"></a> +<p>If, however, for some reason you have decreased the memory available in +your Metafont, you may need to copy <samp>modes.mf</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 +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 +the <code>mode_def</code> names, and that’s a lot.) +</p> +<p>If you have a device not included in <samp>modes.mf</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 +in the next release of <samp>modes.mf</samp>. +</p> +<a name="index-smode-and-dynamic-Metafont-mode-definition"></a> +<a name="index-dynamic-Metafont-mode-definitions-with-smode"></a> +<p>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 +</p><div class="example"> +<pre class="example">mf '\smode:="newmode.mf"; mag:=<var>magnification</var>; input <var>mfname</var>' +</pre></div> +<p>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 +</p> +<p>The <var>magnification</var> and <var>mfname</var> arguments are explained in +<a href="#mf-invocation">mf invocation</a>. In the file <samp>newmode.mf</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>, +<samp>modes.mf</samp> conventions: +</p><div class="example"> +<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></div> +<p>(Of course, you should use real numbers for <var>dpi</var>, <var>b</var>, <var>f</var>, and <var>o</var>.) +</p> +<p>For more information on the use of <code>smode</code>, or if you are not using +<samp>modes.mf</samp>, see page 269 of <cite>The Metafontbook</cite>. +</p> - <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"> +<hr> <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 class="header"> +<p> +Next: <a href="#gftodvi-invocation" accesskey="n" rel="next">gftodvi invocation</a>, Previous: <a href="#Modes" accesskey="p" rel="prev">Modes</a>, Up: <a href="#Metafont" accesskey="u" rel="up">Metafont</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Online-Metafont-graphics-1"></a> <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 +<a name="index-online-Metafont-graphics"></a> +<a name="index-Metafont-graphics"></a> + +<p>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 +</p> +<a name="index-MFTERM"></a> +<a name="index-TERM"></a> +<p>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. +<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 +</p> +<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 +</p> +<dl compact="compact"> +<dt><code>epsf</code> +<a name="index-epsf"></a> +</dt> +<dd><a name="index-Herberts_002c-Mathias"></a> +<a name="index-_002d_002denable_002depsfwin"></a> +<p>(‘<samp>--enable-epsfwin</samp>’) Pseudo-window server for Encapsulated +PostScript (see <samp>web2c/window/epsf.c</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 +</p> +</dd> +<dt><code>hp2627</code> +<a name="index-hp2627"></a> +</dt> +<dd><a name="index-_002d_002denable_002dhp2627win"></a> +<p>(‘<samp>--enable-hp2627win</samp>’) HP2627a color graphics terminals. +</p> +</dd> +<dt><code>mftalk</code> +<a name="index-mftalk"></a> +</dt> +<dd><a name="index-_002d_002denable_002dmftalkwin"></a> +<p>(‘<samp>--enable-mftalkwin</samp>’) Generic window server (see +<samp>web2c/window/mftalk.c</samp>). +</p> +</dd> +<dt><code>next</code> +<a name="index-next"></a> +</dt> +<dd><a name="index-DrawingServant"></a> +<a name="index-_002d_002denable_002dnext"></a> +<p>(‘<samp>--enable-next</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) +<samp>web2c/window/next.c</samp>. +</p> +</dd> +<dt><code>regis</code> +<a name="index-regis"></a> +</dt> +<dd><a name="index-_002d_002denable_002dregiswin"></a> +<a name="index-Regis-graphics-support"></a> +<p>(‘<samp>--enable-regiswin</samp>’) Regis terminals. +</p> +</dd> +<dt><code>sun</code> +<a name="index-sun"></a> +</dt> +<dd><a name="index-SunView"></a> +<a name="index-Suntools"></a> +<a name="index-_002d_002denable_002dsuntoolswin"></a> +<a name="index-sun_002dgfx_002ec"></a> +<p>(‘<samp>--enable-suntoolswin</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 +by using <samp>sun-gfx.c</samp>.) +</p> +</dd> +<dt><code>tek</code> +<a name="index-tek"></a> +</dt> +<dd><a name="index-Tektronix"></a> +<a name="index-_002d_002denable_002dtektronixwin"></a> +<p>(‘<samp>--enable-tektronixwin</samp>’) Tektronix terminals. +</p> +<a name="index-Poole_002c-Simon"></a> +</dd> +<dt><code>uniterm</code> +<a name="index-uniterm"></a> +</dt> +<dd><a name="index-Tektronix-4014"></a> +<a name="index-_002d_002denable_002dunitermwin"></a> +<p>(‘<samp>--enable-unitermwin</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 +as well; it’s faster than the driver ‘<samp>--enable-tektronixwin</samp>’ selects. +</p> +<a name="index-NO_005fX11WIN"></a> +<a name="index-Xt"></a> +<a name="index-Xlib"></a> +</dd> +<dt><code>xterm</code> +<a name="index-xterm"></a> +</dt> +<dd><a name="index-_002d_002dwith_002dx"></a> +<p>‘<samp>--with-x</samp>’ The X window system (version 11). +</p> +<a name="index-_002d_002dwith_002dmf_002dx_002dtoolkit_003dkit"></a> +<a name="index-toolkits_002c-X"></a> +<a name="index-X-toolkits-and-Metafont"></a> +<a name="index-Xt-support"></a> +<a name="index-Xlib-support"></a> +<p>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 +must use the Xlib support, use ‘<samp>configure --with-x +--with-kf-x-toolkit=no</samp>’. +</p> +<a name="index-_002d_002ddisable_002dmf_002dnowin"></a> +<a name="index-non_002dwindows_002dcapable-Metafont"></a> +<p>Specify ‘<samp>--disable-mf-nowin</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>’) +</p> +<a name="index-X-resources"></a> +<a name="index-X-class-name-for-Metafont"></a> +<a name="index-class-name-for-Metafont"></a> +<a name="index-geometry-for-Metafont"></a> +<a name="index-Metafont-geometry"></a> +<a name="index-_002eXdefaults"></a> +<a name="index-_002eXresources"></a> +<a name="index-_002dgeometry_002c-supported-with-Xt"></a> +<p>You cannot specify any of the usual X options (e.g., ‘<samp>-geometry</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 +<samp>~/.Xdefaults</samp> or <samp>~/.Xresources</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 +</p> +<a name="index-DISPLAY"></a> +<p>You specify the X display to which Metafont connects in the <code>DISPLAY</code> environment variable, as usual. +</p> +</dd> +</dl> - </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 +<a name="index-Metafont-online-support_002c-new-devices"></a> +<a name="index-new-graphics-support-for-Metafont"></a> +<a name="index-texmfmp_002ec"></a> +<p>Writing support for a new device is straightforward. Aside from defining +the basic drawing routines that Metafont uses (see <samp>mf.web</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>). +<samp>web2c/lib/texmfmp.c</samp>. Or you can write an independent program and +use MFtalk (see <samp>web2c/window/mftalk.c</samp>). +</p> -<div class="node"> +<hr> <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 class="header"> +<p> +Next: <a href="#mft-invocation" accesskey="n" rel="next">mft invocation</a>, Previous: <a href="#Online-Metafont-graphics" accesskey="p" rel="prev">Online Metafont graphics</a>, Up: <a href="#Metafont" accesskey="u" rel="up">Metafont</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="GFtoDVI_003a-Character-proofs-of-fonts"></a> <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 +<a name="index-gftodvi"></a> +<a name="index-character-proofs-of-fonts"></a> +<a name="index-font-proofs"></a> +<a name="index-proof-sheets_002c-of-fonts"></a> + +<p>GFtoDVI makes <em>proof sheets</em> 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 +</p> +<div class="example"> +<pre class="example">gftodvi [<var>option</var>]… <var>gfname</var>[gf] +</pre></div> + +<p>The font <var>gfname</var> is searched for in the usual places (see <a href="kpathsea.html#Glyph-lookup">Glyph +lookup</a> in <cite>Kpathsea</cite>). To see all the relevant paths, set the +environment variable <code>KPATHSEA_DEBUG</code> to ‘<samp>-1</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, +</p> +<p>The suffix ‘<samp>gf</samp>’ is supplied if not already present. This suffix is +not an extension, no ‘<samp>.</samp>’ precedes it; for instance, <samp>cmr10.600gf</samp>. +</p> +<p>The output filename is the basename of <var>gfname</var> extended with +<samp>.dvi</samp>, e.g., ‘<samp>gftodvi /wherever/foo.600gf</samp>’ creates +<samp>./foo.dvi</samp>. +</p> +<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 +</p> +<p>GFtoDVI uses several fonts besides <var>gfname</var> itself: +</p> +<ul> +<li> <a name="index-gray-font"></a> +<em>gray font</em> (default <samp>gray</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 +</li><li> <a name="index-title-font"></a> +<em>title font</em> (default <samp>cmr8</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 +</li><li> <a name="index-label-font"></a> +<em>label font</em> (default <samp>cmtt10</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> +</li><li> <a name="index-slant-font"></a> +<em>slant font</em> (no default): for diagonal lines, which are otherwise +simulated using horizontal and vertical rules. +</li></ul> - <p>To change the default fonts, you must use <code>special</code> commands in +<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) +<samp>.../fonts/source/public/misc/slantlj4.mf</samp> and then running +<code>mf</code> on it. +</p> +<p>For testing purposes, you may it useful to run <code>mf-nowin rtest</code> +(hit RETURN when it stops) to get a <samp>gf</samp> file of a thorn glyph. +Or use <code>mf</code> instead of <code>mf-nowin</code> 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 +should produce <samp>rtest.dvi</samp>, which you process as usual. +</p> +<p>The program accepts the following option, as well as the standard +‘<samp>-verbose</samp>’, ‘<samp>-help</samp>’, and ‘<samp>-version</samp>’ (see <a href="#Common-options">Common options</a>): +</p> +<dl compact="compact"> +<dt>‘<samp>-overflow-label-offset=<var>points</var></samp>’</dt> +<dd><a name="index-_002doverflow_002dlabel_002doffset_003dpoints"></a> +<a name="index-overflow-label-offset"></a> +<a name="index-offset-for-overflow-labels"></a> +<p>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). +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. +position is too crowded with other information. +</p></dd> </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> +<hr> +<a name="mft-invocation"></a> +<div class="header"> +<p> +Previous: <a href="#gftodvi-invocation" accesskey="p" rel="prev">gftodvi invocation</a>, Up: <a href="#Metafont" accesskey="u" rel="up">Metafont</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="MFT_003a-Prettyprinting-Metafont-source"></a> <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: +<a name="index-mft"></a> +<a name="index-Metafont-source_002c-prettyprinting"></a> +<a name="index-prettyprinting-Metafont-source"></a> +<a name="index-TeX_002c-creating-from-Metafont"></a> -<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 +<a name="index-mftmac_002etex"></a> +<p>MFT translates a Metafont program into a TeX document suitable for +typesetting, with the aid of TeX macros defined in the file +<samp>mftmac.tex</samp>. Synopsis: +</p> +<div class="example"> +<pre class="example">mft [<var>option</var>]… <var>mfname</var>[.mf] +</pre></div> + +<p>MFT searches the usual places for <var>mfname</var> (see <a href="kpathsea.html#Supported-file-formats">Supported file +formats</a> in <cite>Kpathsea</cite>). To see all the relevant paths, set the +environment variable <code>KPATHSEA_DEBUG</code> to ‘<samp>-1</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, +with <samp>.tex</samp>, e.g., ‘<samp>mft /wherever/foo.mf</samp>’ creates +<samp>./foo.tex</samp>. +</p> +<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 +</p> +<p>Further control is allowed via Metafont comments: +<a name="index-comments_002c-MFT-control"></a> +</p><ul> +<li> Metafont comments following a single ‘<samp>%</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. +code. For example, a comment like ‘<samp>% |x2r| is the tip of the bowl</samp>’ +will be translated into the TeX ‘<samp>% $x_{2r}$ is the …</samp>’, +i.e., the ‘<samp>x2r</samp>’ is treated as an identifier. - <li>‘<samp><span class="samp">%%</span></samp>’ indicates that the remainder of an input line should be copied +</li><li> ‘<samp>%%</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 +standard layout or the formatting macros defined in <samp>mftmac.tex</samp>, +or to add a line saying ‘<samp>%%\bye</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> +</li><li> ‘<samp>%%% <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>’, +<div class="example"> +<pre class="example">%%% addto fill draw filldraw +</pre></div> +<p>says to format the ‘<samp>fill</samp>’, ‘<samp>draw</samp>’, and ‘<samp>filldraw</samp>’ +operations of plain Metafont just like the primitive token ‘<samp>addto</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 +treat ‘<samp>fill</samp>’ like an ordinary tag or variable name. In fact, you +need a ‘<samp>%%%</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 +</p> +</li><li> ‘<samp>%%%%</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> +</li><li> Five or more ‘<samp>%</samp>’ signs should not be used. +</li></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 +<a name="index-Knuth_002c-Donald-E_002e-1"></a> +<p>(The above description was edited from <samp>mft.web</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 +</p> +<p>The program accepts the following options, as well as the standard +‘<samp>-help</samp>’ and ‘<samp>-version</samp>’ (see <a href="#Common-options">Common options</a>): +</p><dl compact="compact"> +<dt>‘<samp>-change=<var>chfile</var>[.ch]</samp>’</dt> +<dd><a name="index-_002dchange_003dchfile"></a> +<a name="index-change-files_002c-and-MFT"></a> +<p>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 +</p> +</dd> +<dt>‘<samp>-style=<var>mftfile</var>[.mft]</samp>’</dt> +<dd><a name="index-_002dstyle_003dmftfile"></a> +<a name="index-style-files"></a> +<a name="index-plain_002emft"></a> +<p>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 +is named <samp>plain.mft</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, +<code>MFTINPUTS</code> path; see <a href="kpathsea.html#Supported-file-formats">Supported file formats</a> in <cite>Kpathsea</cite>. +</p> +<a name="index-cmbase_002emft"></a> +<a name="index-e_002emft"></a> +<a name="index-Computer-Modern-Typefaces_002c-production-of"></a> +<p>Other examples of MFT style files are <samp>cmbase.mft</samp>, which defines +formatting rules for the macros defined in <samp>cm.base</samp>, and +<samp>e.mft</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. +</p> +<a name="index-MetaPost-source_002c-prettyprinting"></a> +<p>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. +</p></dd> </dl> - <p>If you use eight-bit characters in the input file, they are +<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. +</p> -<div class="node"> +<hr> <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 class="header"> +<p> +Next: <a href="#BibTeX" accesskey="n" rel="next">BibTeX</a>, Previous: <a href="#Metafont" accesskey="p" rel="prev">Metafont</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="MetaPost_003a-Creating-technical-illustrations"></a> <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 +<a name="index-MetaPost"></a> +<a name="index-PostScript-meets-Metafont"></a> +<a name="index-Metafont-meets-PostScript"></a> +<p>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 +outputs PostScript commands. It’s primarily intended for creating technical illustrations. - - <p>MetaPost also provides for arbitrary integration of text and graphics in +</p> +<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"> +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#mpost-invocation" accesskey="1">mpost invocation</a>:</td><td> </td><td align="left" valign="top">Invoking MetaPost. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Initial-MetaPost" accesskey="2">Initial MetaPost</a>:</td><td> </td><td align="left" valign="top">Making mems. +</td></tr> +<tr><td align="left" valign="top">• <a href="#dvitomp-invocation" accesskey="3">dvitomp invocation</a>:</td><td> </td><td align="left" valign="top">DVI-to-MPX translation. +</td></tr> +</table> + + +<hr> <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 class="header"> +<p> +Next: <a href="#Initial-MetaPost" accesskey="n" rel="next">Initial MetaPost</a>, Up: <a href="#MetaPost" accesskey="u" rel="up">MetaPost</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="mpost-invocation-1"></a> <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 +<a name="index-mpost"></a> +<a name="index-MetaPost-invocation"></a> + +<a name="index-mpman_002eps"></a> +<p>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>, +CSTR-162, generally available in <samp><var>texmf</var>/doc/metapost/</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><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><li> <a href="http://tug.org/metapost">http://tug.org/metapost</a> (papers, packages, and + related information). +</li></ul> - <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>). +<a name="index-mpgraph_002eps"></a> +<p>Also, a standard MetaPost package for drawing graphs is documented in +AT&T technical report CSTR-164, available as the file <samp>mpgraph.ps</samp>, +generally stored alongside <samp>mpman.ps</samp>. +</p> +<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>’ +</p> +<div class="example"> +<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></div> + +<a name="index-_002emp"></a> +<a name="index-MetaPost-input-files"></a> +<p>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> in <cite>Kpathsea</cite>), extending +<var>mpname</var> with <samp>.mp</samp> if necessary. To see all the relevant +paths, set the environment variable <code>KPATHSEA_DEBUG</code> to ‘<samp>-1</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 +</p> +<a name="index-beginfig"></a> +<a name="index-_002ennn-PostScript-figures"></a> +<a name="index-_002etfm-output-1"></a> +<a name="index-mpout"></a> +<a name="index-TFM-files_002c-output-by-MetaPost"></a> +<a name="index-PostScript-output"></a> +<p>MetaPost writes its PostScript output to a series of files +<samp><var>basempname</var>.<var>nnn</var></samp> (or perhaps +<samp><var>basempname</var>.ps</samp>, very occasionally +<samp><var>basempname</var>.tfm</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 +<var>basempname</var> is the basename of <var>mpname</var>, or ‘<samp>mpout</samp>’ if no +input file was specified. MetaPost uses the ‘<samp>.ps</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 +</p> +<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 +</p><div class="example"> +<pre class="example">\special{psfile="<var>filename</var>"} +</pre></div> +<p>or by using <samp>epsf.tex</samp> (see <a href="dvips.html#EPSF-macros">EPSF macros</a> in <cite>Dvips</cite>). +</p> +<a name="index-btex-for-MetaPost-labels"></a> +<a name="index-etex-for-MetaPost-labels"></a> +<p>The MetaPost construct +</p><div class="example"> +<pre class="example">btex … <var>tex-input</var> … etex +</pre></div> +<p>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 +</p> +<p>The construct +</p><div class="example"> +<pre class="example">verbatimtex … <var>tex-input</var> … etex +</pre></div> +<p>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 +enviroment variable <code>TEX</code> to ‘<samp>latex</samp>’. +</p> +<p><var>tex-input</var> need not be specifically TeX input; it could also be +Troff. In that case, you will need the ‘<samp>-m pictures</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 +equivalent such as the ‘<samp>-m pspic</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 +</p> +<a name="index-PostScript-fonts_002c-and-Troff"></a> +<a name="index-Troff_002c-and-MetaPost"></a> +<a name="index-Computer-Modern-fonts_002c-and-Troff"></a> +<p>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 +</p> +<a name="index-mproof_002etex"></a> +<a name="index-downloading-of-fonts-for-MetaPost-labels"></a> +<a name="index-font-downloading-for-MetaPost-labels"></a> +<p>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 +Dvips to arrange for the downloading of the required fonts (see <a href="dvips.html#Fonts-in-figures">Fonts +in figures</a> in <cite>Dvips</cite>). To help with this, the MetaPost +distribution provides a small TeX file <samp>mproof.tex</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 +</p><div class="example"> +<pre class="example">tex mproof <var>mp-output-files</var>... ; dvips mproof -o +</pre></div> +<p>The resulting file <samp>mproof.ps</samp> can then be printed or previewed. +</p> +<a name="index-prologues_002c-and-EPSF-output"></a> +<a name="index-psfonts_002emap_002c-read-by-MetaPost"></a> +<p>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 +<samp>psfonts.map</samp> file as Dvips, to determine PostScript fonts that +need to be downloaded (see <a href="dvips.html#psfonts_002emap">psfonts.map</a> in <cite>Dvips</cite>). +</p> +<a name="index-PDF_002c-and-_002emps-files"></a> +<a name="index-_002emps-files-and-PDF"></a> +<p>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 +</p> +<a name="index-security_002c-and-write"></a> +<p>MetaPost can write output files, via the <code>write</code> primitive; this opens a security hole. See <a href="#tex-invocation">tex invocation</a>. - - <p>The program accepts the following options, as well as the standard -‘<samp><span class="samp">-help</span></samp>’ and ‘<samp><span class="samp">-version</span></samp>’ (see <a href="#Common-options">Common options</a>): - <dl> -<dt>‘<samp><span class="samp">-[no]-file-line-error</span></samp>’<dt>‘<samp><span class="samp">-fmt=</span><var>fmtname</var></samp>’<dt>‘<samp><span class="samp">-halt-on-error</span></samp>’<dt>‘<samp><span class="samp">-ini</span></samp>’<dt>‘<samp><span class="samp">-interaction=</span><var>string</var></samp>’<dt>‘<samp><span class="samp">-jobname=</span><var>string</var></samp>’<dt>‘<samp><span class="samp">-kpathsea-debug=</span><var>number</var></samp>’<dt>‘<samp><span class="samp">-[no]parse-first-line</span></samp>’<dt>‘<samp><span class="samp">-output-directory</span></samp>’<dt>‘<samp><span class="samp">-progname=</span><var>string</var></samp>’<dt>‘<samp><span class="samp">-recorder</span></samp>’<dt>‘<samp><span class="samp">-translate-file=</span><var>tcxfile</var></samp>’<dt>‘<samp><span class="samp">-8bit</span></samp>’<dd>These options are common to TeX, Metafont, and MetaPost. +</p> +<p>The program accepts the following options, as well as the standard +‘<samp>-help</samp>’ and ‘<samp>-version</samp>’ (see <a href="#Common-options">Common options</a>): +</p><dl compact="compact"> +<dt>‘<samp>-[no]-file-line-error</samp>’</dt> +<dt>‘<samp>-fmt=<var>fmtname</var></samp>’</dt> +<dt>‘<samp>-halt-on-error</samp>’</dt> +<dt>‘<samp>-ini</samp>’</dt> +<dt>‘<samp>-interaction=<var>string</var></samp>’</dt> +<dt>‘<samp>-jobname=<var>string</var></samp>’</dt> +<dt>‘<samp>-kpathsea-debug=<var>number</var></samp>’</dt> +<dt>‘<samp>-[no]parse-first-line</samp>’</dt> +<dt>‘<samp>-output-directory</samp>’</dt> +<dt>‘<samp>-progname=<var>string</var></samp>’</dt> +<dt>‘<samp>-recorder</samp>’</dt> +<dt>‘<samp>-translate-file=<var>tcxfile</var></samp>’</dt> +<dt>‘<samp>-8bit</samp>’</dt> +<dd><p>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 +</p> +</dd> +<dt>‘<samp>-T</samp>’</dt> +<dt>‘<samp>-troff</samp>’</dt> +<dd><a name="index-_002dT"></a> +<a name="index-_002dtroff"></a> +<a name="index-prologues"></a> +<p>Set the <code>prologues</code> internal variable to <code>1</code>. +</p> +</dd> +<dt>‘<samp>-tex=<var>texprogram</var></samp>’</dt> +<dd><a name="index-_002dtex_003dtexprogram"></a> +<p>When this option is given, the program <var>texprogram</var> is used to typeset the labels. +</p> +</dd> +</dl> - </dl> -<div class="node"> +<hr> <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 class="header"> +<p> +Next: <a href="#dvitomp-invocation" accesskey="n" rel="next">dvitomp invocation</a>, Previous: <a href="#mpost-invocation" accesskey="p" rel="prev">mpost invocation</a>, Up: <a href="#MetaPost" accesskey="u" rel="up">MetaPost</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Initial-MetaPost-1"></a> <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 +<a name="index-initial-MetaPost"></a> +<a name="index-MetaPost_002c-initial"></a> + +<p>As of MetaPost 1.504 (TeX Live 2011), MetaPost no longer dumps +<samp>.mem</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 +<samp>mpost.mp</samp> when the program is invoked as <code>mpost</code>. +</p> +<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"></a> +<a name="index-plain-Metafont_002c-compatibility-in-MetaPost"></a> +<a name="index-MetaPost-and-plain-Metafont-compatibility"></a> +<a name="index-mfplain"></a> +<p>MetaPost provides a format with all the features of plain Metafont, +called <samp>mfplain</samp>. You can use that in the same way; just run +<code>mfplain</code> instead of <code>mpost</code>. 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>). +</p> -<div class="node"> +<hr> <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 class="header"> +<p> +Previous: <a href="#Initial-MetaPost" accesskey="p" rel="prev">Initial MetaPost</a>, Up: <a href="#MetaPost" accesskey="u" rel="up">MetaPost</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="DVItoMP_003a-DVI-to-MPX-conversion"></a> <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: +<a name="index-dvitomp"></a> +<a name="index-DVI-files_002c-converting-to-MPX"></a> +<a name="index-MPX-files_002c-converting-from-DVI-files"></a> -<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> +<p>DVItoMP converts DVI files into low-level MetaPost commands in a +so-called MPX file. Synopsis: +</p> +<div class="example"> +<pre class="example">dvitomp <var>dvifile</var>[.dvi] [<var>mpxfile</var>[.mpx]] +</pre></div> + +<p>If <var>mpxfile</var> is not specified, the output goes to the basename of +<var>dvifile</var> extended with <samp>.mpx</samp>, e.g., ‘<samp>dvitomp +/wherever/foo.dvi</samp>’ creates <samp>./foo.mpx</samp>. +</p> +<a name="index-color_002c-in-DVItoMP"></a> +<p>DVItoMP supports Dvips-style color specials, such as ‘<samp>color push +<var>name</var></samp>’ and ‘<samp>color pop</samp>’, outputting them as <code>withcolor</code> MetaPost commands. +</p> +<p>The only options are ‘<samp>-help</samp>’ and ‘<samp>-version</samp>’ (see <a href="#Common-options">Common options</a>). +</p> - <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"> +<hr> <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 class="header"> +<p> +Next: <a href="#WEB" accesskey="n" rel="next">WEB</a>, Previous: <a href="#MetaPost" accesskey="p" rel="prev">MetaPost</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="BibTeX_003a-Bibliographies"></a> <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 +<a name="index-bibliographies_002c-creating"></a> +<a name="index-BibTeX"></a> + +<p>BibTeX automates much of the job of typesetting bibliographies, and makes bibliography entries reusable in many different contexts. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#bibtex-invocation" accesskey="1">bibtex invocation</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Basic-BibTeX-style-files" accesskey="2">Basic BibTeX style files</a>:</td><td> </td><td align="left" valign="top">The standard and semi-standard styles. +</td></tr> +</table> -<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"> +<hr> <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 class="header"> +<p> +Next: <a href="#Basic-BibTeX-style-files" accesskey="n" rel="next">Basic BibTeX style files</a>, Up: <a href="#BibTeX" accesskey="u" rel="up">BibTeX</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="BibTeX-invocation"></a> <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 +<a name="index-bibtex"></a> + +<a name="index-_002ebbl-bibliography-files"></a> +<a name="index-_002eaux-cross_002dreference-files"></a> +<a name="index-_002ebib-bibliography-databases"></a> +<p>BibTeX creates a printable bibliography (<samp>.bbl</samp>) file from +references in a <samp>.aux</samp> file, generally written by TeX or +LaTeX. The <samp>.bbl</samp> file is then incorporated on a subsequent +run. The basic bibliographic information comes from <samp>.bib</samp> files, +and a BibTeX style (<samp>.bst</samp>) file controls the precise contents +of the <samp>.bbl</samp> file. Synopsis: +</p> +<div class="example"> +<pre class="example">bibtex [<var>option</var>]… <var>auxfile</var>[.aux] +</pre></div> + +<a name="index-_002eblg-BibTeX-log-file"></a> +<a name="index-log-file_002c-BibTeX"></a> +<p>The output goes to the basename of <var>auxfile</var> extended with +<samp>.bbl</samp>; for example, ‘<samp>bibtex /wherever/foo.aux</samp>’ creates +<samp>./foo.bbl</samp>. BibTeX also writes a log file to the basename of +<var>auxfile</var> extended with ‘<samp>.blg</samp>’. +</p> +<a name="index-_005cbibliography"></a> +<a name="index-_005cbibliographystyle"></a> +<a name="index-TEXBIB_002c-search-path-for-bib-files"></a> +<a name="index-BIBINPUTS_002c-search-path-for-bib-files"></a> +<a name="index-BSTINPUTS_002c-search-path-for-bst-files"></a> +<p>The names of the <samp>.bib</samp> and <samp>.bst</samp> files are specified in the +<samp>.aux</samp> file as well, via the <samp>\bibliography</samp> and +<samp>\bibliographystyle</samp> (La)TeX macros. BibTeX searches for +<samp>.bib</samp> files using the <code>BIBINPUTS</code> and <code>TEXBIB</code> paths, +and for <samp>.bst</samp> files using <code>BSTINPUTS</code> (see <a href="kpathsea.html#Supported-file-formats">Supported file +formats</a> in <cite>Kpathsea</cite>). It does no path searching for +<samp>.aux</samp> files. +</p> +<p>The program accepts the following options, as well as the standard +‘<samp>-help</samp>’ and ‘<samp>-version</samp>’ (see <a href="#Common-options">Common options</a>): +</p><dl compact="compact"> +<dt>‘<samp>-terse</samp>’</dt> +<dd><a name="index-_002dterse"></a> +<a name="index-terse-output"></a> +<a name="index-verbose-BibTeX-output_002c-suppressing"></a> +<p>Suppress the program banner and progress reports normally output. +</p> +</dd> +<dt>‘<samp>-min-crossrefs=<var>n</var></samp>’</dt> +<dd><a name="index-_002dmin_002dcrossrefs_003dn"></a> +<a name="index-cross_002dreferenced-bibliography-items"></a> +<a name="index-bibliography-items_002c-cross_002dreferenced"></a> +<p>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. +large number. +</p></dd> </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 +<p>See also: +</p><dl compact="compact"> +<dt><samp>btxdoc.tex</samp></dt> +<dd><a name="index-btxdoc_002etex"></a> +<p>Basic LaTeXable documentation for general BibTeX users. +</p> +</dd> +<dt><samp>btxhak.tex</samp></dt> +<dd><a name="index-btxhak_002etex"></a> +<a name="index-style-design_002c-for-BibTeX"></a> +<p>LaTeXable documentation for style designers. +</p> +</dd> +<dt><samp>btxdoc.bib</samp></dt> +<dd><a name="index-btxdoc_002ebib"></a> +<p>BibTeX database file for the two above documents. +</p> +</dd> +<dt><samp>xampl.bib</samp></dt> +<dd><a name="index-xampl_002ebib"></a> +<p>Example database file with all the standard entry types. +</p> +</dd> +<dt><samp><a href="ftp://ftp.math.utah.edu/pub/tex/bib/">ftp://ftp.math.utah.edu/pub/tex/bib/</a></samp></dt> +<dd><a name="index-ftp_002emath_002eutah_002eedu"></a> +<a name="index-BibTeX-collection"></a> +<a name="index-TUGboat-bibliography"></a> +<a name="index-TeX_002c-bibliographies-for"></a> +<p>A very large <samp>.bib</samp> and <samp>.bst</samp> collection, including references for all the standard TeX books and a complete bibliography -for TUGboat. +for TUGboat. +</p></dd> </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> +<hr> +<a name="Basic-BibTeX-style-files"></a> +<div class="header"> +<p> +Previous: <a href="#bibtex-invocation" accesskey="p" rel="prev">bibtex invocation</a>, Up: <a href="#BibTeX" accesskey="u" rel="up">BibTeX</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Basic-BibTeX-style-files-1"></a> <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 +<a name="index-basic-BibTeX-style-files"></a> +<a name="index-BibTeX-style-files"></a> + +<p>Here are descriptions of the four standard and four semi-standard basic +BibTeX styles. <samp><var>CTAN:</var>/biblio/bibtex</samp> contains these and +many more (for CTAN info, see <a href="kpathsea.html#unixtex_002eftp">unixtex.ftp</a> in <cite>Kpathsea</cite>). +</p> +<dl compact="compact"> +<dt><code>plain</code></dt> +<dd><a name="index-plain_002ebst"></a> +<p>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, +</p> +</dd> +<dt><code>abbrv</code></dt> +<dd><a name="index-abbrv_002ebst"></a> +<p>First names, month names, and journal names are abbreviated. +</p> +</dd> +<dt><code>acm</code></dt> +<dd><a name="index-acm_002ebst"></a> +<p>Names are printed in small caps. +</p> +</dd> +<dt><code>alpha</code></dt> +<dd><a name="index-alpha_002ebst"></a> +<p>Alphanumeric labels, e.g., ‘<samp>Knu66</samp>’. +</p> +</dd> +<dt><code>apalike</code></dt> +<dd><a name="index-apalike_002ebst"></a> +<p>No labels at all; instead, the year appears in parentheses after the author. +Use this in conjunction with <samp>apalike.tex</samp> (plain TeX) or +<samp>apalike.sty</samp> (LaTeX), which also changes the citations in the +text to be ‘<samp>(<var>author</var>, <var>year</var>)</samp>’. +</p> +</dd> +<dt><code>ieeetr</code></dt> +<dd><a name="index-ieeetr_002ebst"></a> +<p>Numeric labels, entries in citation order, <small>IEEE</small> 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> +</p> +</dd> +<dt><code>siam</code></dt> +<dd><a name="index-siam_002ebst"></a> +<p>Numeric labels, alphabetic order, <cite>Math. Reviews</cite> abbreviations, names in small caps. +</p> +</dd> +<dt><code>unsrt</code></dt> +<dd><a name="index-unsrt_002ebst"></a> +<p>Lists entries in citation order, i.e., unsorted. +</p> +</dd> +<dt><code>btxbst.doc</code></dt> +<dd><p>The template file and documentation for the standard styles. +</p> +</dd> +</dl> - <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"> +<hr> <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 class="header"> +<p> +Next: <a href="#DVI-utilities" accesskey="n" rel="next">DVI utilities</a>, Previous: <a href="#BibTeX" accesskey="p" rel="prev">BibTeX</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="WEB_003a-Literate-programming"></a> <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 +<a name="index-WEB"></a> +<a name="index-literate-programming"></a> + +<p><em>WEB</em> 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> +describing the program in as much detail as you wish to prepare. +Writing in this kind of dual-purpose language is called <em>literate +programming</em>. (The Usenet newsgroup <samp>comp.programming.literate</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 +</p> +<a name="index-webman_002etex"></a> +<a name="index-Spiderweb"></a> +<a name="index-Cweb"></a> +<a name="index-CWEB"></a> +<a name="index-Awk_002c-WEB-for"></a> +<a name="index-Ada_002c-WEB-for"></a> +<a name="index-Troff_002c-WEB-for"></a> +<p>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 and TeX (<samp><var>CTAN:</var>/web/c_cpp/cweb</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 +(<samp><var>CTAN:</var>/web/spiderweb</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>, +</p> +<p>The original WEB language is documented in the file <samp>webman.tex</samp>, which is included in the <a href="ftp://ftp.tug.org/tex/lib.tar.gz">ftp://ftp.tug.org/tex/lib.tar.gz</a> archive (and available in many other places, of course). - -<ul class="menu"> -<li><a accesskey="1" href="#tangle-invocation">tangle invocation</a> -<li><a accesskey="2" href="#weave-invocation">weave invocation</a> -<li><a accesskey="3" href="#pooltype-invocation">pooltype invocation</a> -</ul> - -<div class="node"> +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#tangle-invocation" accesskey="1">tangle invocation</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#weave-invocation" accesskey="2">weave invocation</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#pooltype-invocation" accesskey="3">pooltype invocation</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> <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 class="header"> +<p> +Next: <a href="#weave-invocation" accesskey="n" rel="next">weave invocation</a>, Up: <a href="#WEB" accesskey="u" rel="up">WEB</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Tangle_003a-Translate-WEB-to-Pascal"></a> <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: +<a name="index-tangle"></a> +<a name="index-Pascal_002c-creating-from-WEB"></a> +<a name="index-WEB-programs_002c-compiling"></a> -<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 +<p>Tangle creates a compilable Pascal program from a WEB source file +(see <a href="#WEB">WEB</a>). Synopsis: +</p> +<div class="example"> +<pre class="example">tangle [<var>option</var>]… <var>webfile</var>[.web] [<var>changefile</var>[.ch]] +</pre></div> + +<a name="index-change-files_002c-and-Tangle"></a> +<p>The Pascal output is written to the basename of <var>webfile</var> extended +with ‘<samp>.p</samp>’; for example, ‘<samp>tangle /wherever/foo.web</samp>’ creates +<samp>./foo.p</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 +</p> +<a name="index-pool-file_002c-writing"></a> +<a name="index-string-pool_002c-writing"></a> +<p>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>.pool</samp>’. +</p> +<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 +</p> +<p>The program accepts the following options, as well as the standard +‘<samp>--help</samp>’ and ‘<samp>--version</samp>’ (see <a href="#Common-options">Common options</a>): +</p> +<dl compact="compact"> +<dt>‘<samp>-length=<var>number</var></samp>’</dt> +<dd><a name="index-_002dlength_003dnumber"></a> +<a name="index-identifier-length"></a> +<p>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 +‘<samp>-underline</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 +</p> +</dd> +<dt>‘<samp>-lowercase</samp>’</dt> +<dt>‘<samp>-mixedcase</samp>’</dt> +<dt>‘<samp>-uppercase</samp>’</dt> +<dd><a name="index-_002dlowercase"></a> +<a name="index-_002dmixedcase"></a> +<a name="index-_002duppercase"></a> +<a name="index-identifier-case"></a> +<p>These options specify the case of identifiers in the output of tangle. +If ‘<samp>-uppercase</samp>’ (‘<samp>-lowercase</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 +‘<samp>-mixedcase</samp>’, which specifies that the case will not be changed. +</p> +</dd> +<dt>‘<samp>-underline</samp>’</dt> +<dd><a name="index-_002dunderline"></a> +<a name="index-identifiers-with-underlines"></a> +<p>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 +</p> +</dd> +<dt>‘<samp>-loose</samp>’</dt> +<dt>‘<samp>-strict</samp>’</dt> +<dd><a name="index-_002dloose"></a> +<a name="index-_002dstrict"></a> +<a name="index-identifier-collisions"></a> +<p>These options specify how strict tangle must be when checking +identifiers for equality. The default is ‘<samp>-loose</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 +options above. If ‘<samp>-strict</samp>’ is set, then identifiers will always be stripped of underlines and converted to uppercase before checking whether they collide. +</p> +</dd> +</dl> - </dl> - -<div class="node"> +<hr> <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 class="header"> +<p> +Next: <a href="#pooltype-invocation" accesskey="n" rel="next">pooltype invocation</a>, Previous: <a href="#tangle-invocation" accesskey="p" rel="prev">tangle invocation</a>, Up: <a href="#WEB" accesskey="u" rel="up">WEB</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Weave_003a-Translate-WEB-to-TeX"></a> <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 +<a name="index-weave"></a> +<a name="index-TeX_002c-creating-from-WEB"></a> +<a name="index-WEB-programs_002c-typesetting"></a> +<a name="index-prettyprinting-WEB-programs"></a> + +<p>Weave creates a TeX document from a WEB source file (see <a href="#WEB">WEB</a>), +assuming various macros defined in <samp>webmac.tex</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> +</p> +<div class="example"> +<pre class="example">weave [<var>option</var>]… <var>webfile</var>[.web] [<var>changefile</var>[.ch]] +</pre></div> + +<a name="index-change-files_002c-and-Weave"></a> +<p>The output is to the basename of <var>webfile</var> extended with +‘<samp>.tex</samp>’; for example, ‘<samp>weave /wherever/foo.web</samp>’ creates +<samp>./foo.tex</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 +</p> +<p>The program accepts the following option, as well as the standard +‘<samp>-verbose</samp>’, ‘<samp>-help</samp>’ and ‘<samp>-version</samp>’ (see <a href="#Common-options">Common options</a>): +</p><dl compact="compact"> +<dt>‘<samp>-x</samp>’</dt> +<dd><a name="index-_002dx"></a> +<a name="index-cross_002dreferences_002c-omitting"></a> +<a name="index-CONTENTS_002etex"></a> +<a name="index-webmac_002etex"></a> +<p>Omit the cross-reference information: the index, the list of WEB module +names, and the table of contents (an empty <samp>CONTENTS.tex</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). +the default <samp>webmac.tex</samp>, though). +</p></dd> </dl> - <p>Conventionally, WEB programmers should define the TeX <code>\title</code> +<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). +</p> -<div class="node"> +<hr> <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 class="header"> +<p> +Previous: <a href="#weave-invocation" accesskey="p" rel="prev">weave invocation</a>, Up: <a href="#WEB" accesskey="u" rel="up">WEB</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Pooltype_003a-Display-WEB-pool-files"></a> <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 +<a name="index-pooltype"></a> +<a name="index-type-programs_002c-pool"></a> +<a name="index-string-numbers_002c-displaying"></a> +<a name="index-WEB-pool-files_002c-displaying"></a> + +<p>Pooltype shows the so-called <em>string number</em> 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: +</p> +<div class="example"> +<pre class="example">pooltype [<var>option</var>]… <var>poolfile</var>[.pool] +</pre></div> -<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 +<p>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>’ +</p> +<p>The only options are ‘<samp>--help</samp>’ and ‘<samp>--version</samp>’ (see <a href="#Common-options">Common options</a>). +</p> +<p>As an example of the output, here is the (edited) output for <samp>tex.pool</samp>: +</p><div class="example"> +<pre class="example">0: "^^@" +1: "^^A" +… +255: "^^ff" +256: "pool size" +… +1314: "Using character substitution: " +(23617 characters in all.) +</pre></div> + +<a name="index-representation-of-strings"></a> +<a name="index-string-representation"></a> +<p>In Metafont and MetaPost, the first 256 characters are actually +represented as single bytes (i.e., themselves), not in the ‘<samp>^^</samp>’ notation. Consider Pooltype as showing the results after conversion for output. +</p> -<div class="node"> +<hr> <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 class="header"> +<p> +Next: <a href="#Font-utilities" accesskey="n" rel="next">Font utilities</a>, Previous: <a href="#WEB" accesskey="p" rel="prev">WEB</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="DVI-utilities-1"></a> <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 +<a name="index-DVI-utilities"></a> + +<p>TeX outputs a file in <em>DVI</em> (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 +PostScript printers (see <a href="dvips.html#Top">Introduction</a> in <cite>Dvips</cite>), 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 +<samp><var>CTAN:</var>/dviware</samp> (for CTAN info, see <a href="kpathsea.html#unixtex_002eftp">unixtex.ftp</a> in <cite>Kpathsea</cite>). +</p> +<a name="index-dvitype_002eweb"></a> +<a name="index-DVI-format-definition"></a> +<p>For the precise definition of the DVI file format, see (for example) the +source file <samp>web2c/dvitype.web</samp>. +</p> +<p>The DVI-processing programs in the Web2c distribution are not device drivers; they perform generic utility functions. - -<ul class="menu"> -<li><a accesskey="1" href="#dvicopy-invocation">dvicopy invocation</a>: Expand virtual fonts. -<li><a accesskey="2" href="#dvitype-invocation">dvitype invocation</a>: DVI to human-readable text. -</ul> - -<div class="node"> +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#dvicopy-invocation" accesskey="1">dvicopy invocation</a>:</td><td> </td><td align="left" valign="top">Expand virtual fonts. +</td></tr> +<tr><td align="left" valign="top">• <a href="#dvitype-invocation" accesskey="2">dvitype invocation</a>:</td><td> </td><td align="left" valign="top">DVI to human-readable text. +</td></tr> +</table> + +<hr> <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 class="header"> +<p> +Next: <a href="#dvitype-invocation" accesskey="n" rel="next">dvitype invocation</a>, Up: <a href="#DVI-utilities" accesskey="u" rel="up">DVI utilities</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="DVIcopy_003a-Canonicalize-virtual-font-references"></a> <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 +<a name="index-dvicopy"></a> +<a name="index-virtual-fonts_002c-expanding"></a> + +<p>DVIcopy reads a DVI file, expands any references to virtual fonts +(see <a href="dvips.html#Virtual-fonts">Virtual fonts</a> in <cite>Dvips</cite>) 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: +</p> +<div class="example"> +<pre class="example">dvicopy [<var>option</var>]… [<var>indvi</var>[.dvi] [<var>outdvi</var>[.dvi]]] +</pre></div> -<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 +<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 +</p> +<p>The program accepts the following options, as well as the standard +‘<samp>-help</samp>’ and ‘<samp>-version</samp>’ (see <a href="#Common-options">Common options</a>): +</p><dl compact="compact"> +<dt>‘<samp>-magnification=<var>integer</var></samp>’</dt> +<dd><a name="index-_002dmagnification_003dinteger"></a> +<a name="index-magnification"></a> +<a name="index-_005cmag"></a> +<p>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>’. +</p> +</dd> +<dt>‘<samp>-max-pages=<var>n</var></samp>’</dt> +<dd><a name="index-_002dmax_002dpages_003dn"></a> +<p>Process <var>n</var> pages; default is one million. +</p> +</dd> +<dt>‘<samp>-page-start=<var>page-spec</var></samp>’</dt> +<dd><a name="index-_002dpage_002dstart_003dpage_002dspec"></a> +<a name="index-starting-page"></a> +<a name="index-page_002c-starting"></a> +<a name="index-_005ccountn"></a> +<p>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>*</samp>’ +matches anything. Examples: ‘<samp>3</samp>’, ‘<samp>1.*.-4</samp>’. +</p></dd> </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> +<hr> +<a name="dvitype-invocation"></a> +<div class="header"> +<p> +Previous: <a href="#dvicopy-invocation" accesskey="p" rel="prev">dvicopy invocation</a>, Up: <a href="#DVI-utilities" accesskey="u" rel="up">DVI utilities</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="DVItype_003a-Plain-text-transliteration-of-DVI-files"></a> <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, +<a name="index-dvitype-DVI-validation"></a> +<a name="index-conversion_002c-DVI-to-plain-text"></a> +<a name="index-plain-text_002c-converting-DVI-to"></a> +<a name="index-human_002dreadable-text_002c-converting-DVI-to"></a> +<a name="index-type-programs_002c-DVI"></a> +<a name="index-validation_002c-of-DVI-files"></a> + +<p>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 +as a DVI-validating program, i.e., if DVItype can read a file, it’s correct. Synopsis: +</p> +<div class="example"> +<pre class="example">dvitype [<var>option</var>]… <var>dvifile</var>[.dvi] +</pre></div> -<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 +<p>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 +(see <a href="kpathsea.html#Supported-file-formats">Supported file formats</a> in <cite>Kpathsea</cite>). 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 +‘<samp>-1</samp>’ before running the program. +</p> +<p>Output goes to standard output. +</p> +<p>The program accepts the following options, as well as the standard +‘<samp>-help</samp>’ and ‘<samp>-version</samp>’ (see <a href="#Common-options">Common options</a>): +</p><dl compact="compact"> +<dt>‘<samp>-dpi=<var>real</var></samp>’</dt> +<dd><a name="index-_002ddpi_003dreal"></a> +<p>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 +</p> +</dd> +<dt>‘<samp>-magnification=<var>integer</var></samp>’</dt> +<dd><a name="index-_002dmagnification_003dinteger-1"></a> +<a name="index-magnification-1"></a> +<a name="index-_005cmag-1"></a> +<p>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. +</p> +</dd> +<dt>‘<samp>-max-pages=<var>n</var></samp>’</dt> +<dd><a name="index-_002dmax_002dpages_003dn-1"></a> +<p>Process <var>n</var> pages; default is one million. +</p> +</dd> +<dt>‘<samp>-output-level=<var>n</var></samp>’</dt> +<dd><a name="index-_002doutput_002dlevel_003dn"></a> +<p>Verbosity level of output, from 0 to 4 (default 4): +</p><ul> +<li> 0: Global document information only. +</li><li> 1: Most DVI commands included, and typeset characters summarized. +</li><li> 2: Character and movement commands explicitly included. +</li><li> 3: DVI stack and current position calculations included. +</li><li> 4: Same information as level 3, but DVItype does random positioning +in the file, reading the DVI postamble first. +</li></ul> - <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 +</dd> +<dt>‘<samp>-page-start=<var>page-spec</var></samp>’</dt> +<dd><a name="index-_002dpage_002dstart_003dpage_002dspec-1"></a> +<a name="index-starting-page-1"></a> +<a name="index-page_002c-starting-1"></a> +<a name="index-_005ccountn-1"></a> +<p>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>*</samp>’ +matches anything. Examples: ‘<samp>1</samp>’, ‘<samp>5.*.-9</samp>’. +</p> +</dd> +<dt>‘<samp>-show-opcodes</samp>’</dt> +<dd><a name="index-_002dshow_002dopcodes"></a> +<a name="index-opcodes_002c-showing-DVI"></a> +<a name="index-DVI-opcodes_002c-showing"></a> +<a name="index-debugging-DVI-utilities"></a> +<p>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. +<samp>dvitype.web</samp>, among others) the opcodes are shown in decimal. +</p></dd> </dl> -<ul class="menu"> -<li><a accesskey="1" href="#dvitype-output-example">dvitype output example</a> -</ul> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#dvitype-output-example" accesskey="1">dvitype output example</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> -<div class="node"> -<a name="dvitype-output-example"></a> -<p><hr> -Up: <a rel="up" accesskey="u" href="#dvitype-invocation">dvitype invocation</a> +<hr> +<a name="dvitype-output-example"></a> +<div class="header"> +<p> +Up: <a href="#dvitype-invocation" accesskey="u" rel="up">dvitype invocation</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="DVItype-output-example"></a> <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 +<a name="index-dvitype-output-example"></a> +<p>As an example of the output from DVItype (see section above), here is +its (abridged) translation of the <samp>story.dvi</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 +‘<samp>-output-level=4</samp>’ and ‘<samp>-show-opcodes</samp>’ on. +</p> +<div class="example"> +<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></div> + +<p>Explanation: +</p> +<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><li> Each DVI command is preceded by its byte position in the file +(‘<samp>42:</samp>’, ‘<samp>87:</samp>’, …), and (because of the +‘<samp>-show-opcodes</samp>’) followed by its decimal opcode value in braces +(‘<samp>{141}</samp>’, ‘<samp>{142}</samp>’, …). - <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><li> The ‘<samp>level</samp>’ lines record information about the DVI stack; ‘<samp>h</samp>’ +and ‘<samp>v</samp>’ define the current position in DVI units, while ‘<samp>hh</samp>’ +and ‘<samp>vv</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> +</li><li> Text sequences are summarized in brackets, as in ‘<samp>[A SHORT +STORY]</samp>’ and the ‘<samp>[ 1]</samp>’. +</li></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> +<hr> +<a name="Font-utilities"></a> +<div class="header"> +<p> +Next: <a href="#Legalisms" accesskey="n" rel="next">Legalisms</a>, Previous: <a href="#DVI-utilities" accesskey="p" rel="prev">DVI utilities</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Font-utilities-1"></a> <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 +<a name="index-font-utilities"></a> + +<p>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 +outputs GF format, but it’s most efficient for device drivers to use PK. +</p> +<a name="index-pktype_002eweb"></a> +<a name="index-gftype_002eweb"></a> +<a name="index-PK-format-definition"></a> +<a name="index-GF-format-definition"></a> +<p>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"> +<samp>pktype.web</samp>, <samp>gftype.web</samp>, <samp>tftopl.web</samp>, etc. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Font-file-formats" accesskey="1">Font file formats</a>:</td><td> </td><td align="left" valign="top">Explanations of GF, PK, TFM, VF, ... +</td></tr> +<tr><td align="left" valign="top">• <a href="#gftopk-invocation" accesskey="2">gftopk invocation</a>:</td><td> </td><td align="left" valign="top">GF -> PK (compact) +</td></tr> +<tr><td align="left" valign="top">• <a href="#pktogf-invocation" accesskey="3">pktogf invocation</a>:</td><td> </td><td align="left" valign="top">PK -> GF (expand). +</td></tr> +<tr><td align="left" valign="top">• <a href="#pktype-invocation" accesskey="4">pktype invocation</a>:</td><td> </td><td align="left" valign="top">PK -> human-readable text. +</td></tr> +<tr><td align="left" valign="top">• <a href="#gftype-invocation" accesskey="5">gftype invocation</a>:</td><td> </td><td align="left" valign="top">GF -> human-readable text. +</td></tr> +<tr><td align="left" valign="top">• <a href="#tftopl-invocation" accesskey="6">tftopl invocation</a>:</td><td> </td><td align="left" valign="top">TFM -> PL (for editing TFM). +</td></tr> +<tr><td align="left" valign="top">• <a href="#pltotf-invocation" accesskey="7">pltotf invocation</a>:</td><td> </td><td align="left" valign="top">PL -> TFM (make editing results usable). +</td></tr> +<tr><td align="left" valign="top">• <a href="#vftovp-invocation" accesskey="8">vftovp invocation</a>:</td><td> </td><td align="left" valign="top">VF -> VPL (tftopl for virtual fonts). +</td></tr> +<tr><td align="left" valign="top">• <a href="#vptovf-invocation" accesskey="9">vptovf invocation</a>:</td><td> </td><td align="left" valign="top">VPL -> VF (pltotf for virtual fonts). +</td></tr> +<tr><td align="left" valign="top">• <a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a>:</td><td> </td><td align="left" valign="top">Type 1, BDF, editors, etc. +</td></tr> +</table> + + +<hr> <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 class="header"> +<p> +Next: <a href="#gftopk-invocation" accesskey="n" rel="next">gftopk invocation</a>, Up: <a href="#Font-utilities" accesskey="u" rel="up">Font utilities</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Font-file-formats-1"></a> <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 +<a name="index-font-file-formats"></a> +<a name="index-file-formats-for-fonts"></a> + +<p>(For another perspective on this, see <a href="dvips.html#Font-concepts">Font concepts</a> in <cite>Dvips</cite>). +</p> +<p>Font files come in several varieties, with suffixes like: +</p><div class="example"> +<pre class="example">.tfm .*pk .*gf .*pxl<span class="roman"> (obsolete)</span> .pl .mf .vf .vpl +</pre></div> +<p>Each represents a file format. +</p> +<a name="index-TFM-files_002c-explained"></a> +<p>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 @@ -3066,590 +4151,794 @@ 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 +</p> +<a name="index-scaling-of-fonts"></a> +<a name="index-optical-font-scaling"></a> +<a name="index-geometric-font-scaling"></a> +<a name="index-PostScript_002c-and-font-scaling"></a> +<p>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 +</p> +<a name="index-DVI-files_002c-explained"></a> +<p>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>’ +suffixes such as ‘<samp>.600pk</samp>’ or ‘<samp>.600gf</samp>’ or ‘<samp>.3000pxl</samp>’, where +the ‘<samp>600</samp>’ is the horizontal dots-per-inch resolution at which the +font was produced, and the ‘<samp>pk</samp>’ or ‘<samp>gf</samp>’ or ‘<samp>pxl</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 +have suffixes such as ‘<samp>.pfa</samp>’ or ‘<samp>.pfb</samp>’. +</p> +<a name="index-PXL-files_002c-explained"></a> +<a name="index-PK-files_002c-explained"></a> +<a name="index-GF-files_002c-explained"></a> +<p>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. +</p> +<a name="index-PL-files_002c-explained"></a> +<p>Font files with the ‘<samp>.pl</samp>’ (property list) suffix are the plain text +(human-readable) analog of the binary ‘<samp>.tfm</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. +</p> +<p>Font files with the ‘<samp>.mf</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>, +</p> +<a name="index-virtual_002dfonts_002eknuth"></a> +<a name="index-virtualfonts_002etxt"></a> +<p>The suffix ‘<samp>.vf</samp>’ identifies “virtual font” files, for which +‘<samp>.vpl</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 +see <samp><var>CTAN:</var>/doc/virtual-fonts.knuth</samp>, +<samp><var>CTAN:</var>/help/virtualfonts.txt</samp>, and <a href="dvips.html#Virtual-fonts">Virtual fonts</a> in <cite>Dvips</cite>. +</p> +<a name="index-MacKay_002c-Pierre"></a> +<a name="index-Tachikawa_002c-Elizabeth"></a> +<p>(This section is based on documentation in the original Unix TeX distribution by Pierre MacKay and Elizabeth Tachikawa.) +</p> -<div class="node"> +<hr> <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 class="header"> +<p> +Next: <a href="#pktogf-invocation" accesskey="n" rel="next">pktogf invocation</a>, Previous: <a href="#Font-file-formats" accesskey="p" rel="prev">Font file formats</a>, Up: <a href="#Font-utilities" accesskey="u" rel="up">Font utilities</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="GFtoPK_003a-Generic-to-packed-font-conversion"></a> <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, +<a name="index-gftopk"></a> +<a name="index-conversion_002c-GF-to-PK"></a> +<a name="index-PK_002c-converting-GF-to"></a> +<a name="index-GF_002c-converting-to-PK"></a> + +<p>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. +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 +</p> +<div class="example"> +<pre class="example">gftopk [<var>option</var>]… <var>gfname</var>.<var>dpi</var>[gf] [<var>pkfile</var>] +</pre></div> + +<p>The font <var>gfname</var> is searched for in the usual places (see <a href="kpathsea.html#Glyph-lookup">Glyph +lookup</a> in <cite>Kpathsea</cite>). To see all the relevant paths, set the +environment variable <code>KPATHSEA_DEBUG</code> to ‘<samp>-1</samp>’ before running the program. - - <p>The suffix ‘<samp><span class="samp">gf</span></samp>’ is supplied if not already present. This suffix is -not an extension; no ‘<samp><span class="samp">.</span></samp>’ precedes it: for instance, -<samp><span class="file">cmr10.600gf</span></samp>. - - <p>If <var>pkfile</var> is not specified, the output is written to the basename -of ‘<samp><var>gfname</var><span class="samp">.</span><var>dpi</var><span class="samp">pk</span></samp>’, e.g., ‘<samp><span class="samp">gftopk -/wherever/cmr10.600gf</span></samp>’ creates <samp><span class="file">./cmr10.600pk</span></samp>. - - <p>The only options are ‘<samp><span class="samp">--verbose</span></samp>’, ‘<samp><span class="samp">--help</span></samp>’, and -‘<samp><span class="samp">--version</span></samp>’ (see <a href="#Common-options">Common options</a>). - -<div class="node"> +</p> +<p>The suffix ‘<samp>gf</samp>’ is supplied if not already present. This suffix is +not an extension; no ‘<samp>.</samp>’ precedes it: for instance, +<samp>cmr10.600gf</samp>. +</p> +<p>If <var>pkfile</var> is not specified, the output is written to the basename +of ‘<samp><var>gfname</var>.<var>dpi</var>pk</samp>’, e.g., ‘<samp>gftopk +/wherever/cmr10.600gf</samp>’ creates <samp>./cmr10.600pk</samp>. +</p> +<p>The only options are ‘<samp>--verbose</samp>’, ‘<samp>--help</samp>’, and +‘<samp>--version</samp>’ (see <a href="#Common-options">Common options</a>). +</p> + +<hr> <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 class="header"> +<p> +Next: <a href="#pktype-invocation" accesskey="n" rel="next">pktype invocation</a>, Previous: <a href="#gftopk-invocation" accesskey="p" rel="prev">gftopk invocation</a>, Up: <a href="#Font-utilities" accesskey="u" rel="up">Font utilities</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="PKtoGF_003a-Packed-to-generic-font-conversion"></a> <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. +<a name="index-pktogf"></a> +<a name="index-conversion_002c-PK-to-GF"></a> +<a name="index-GF_002c-converting-PK-to"></a> +<a name="index-PK_002c-converting-to-GF"></a> + +<p>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 +</p> +<div class="example"> +<pre class="example">pktogf [<var>option</var>]… <var>pkname</var>.<var>dpi</var>[pk] [<var>gffile</var>] +</pre></div> + +<p>The font <var>pkname</var> is searched for in the usual places (see <a href="kpathsea.html#Glyph-lookup">Glyph +lookup</a> in <cite>Kpathsea</cite>). To see all the relevant paths, set the +environment variable <code>KPATHSEA_DEBUG</code> to ‘<samp>-1</samp>’ before running the program. - - <p>The suffix ‘<samp><span class="samp">pk</span></samp>’ is supplied if not already present. This suffix is -not an extension; no ‘<samp><span class="samp">.</span></samp>’ precedes it: for instance, -<samp><span class="file">cmr10.600pk</span></samp>. - - <p>If <var>gffile</var> is not specified, the output is written to the basename -of ‘<samp><var>pkname</var><span class="samp">.</span><var>dpi</var><span class="samp">gf</span></samp>’, e.g., ‘<samp><span class="samp">pktogf -/wherever/cmr10.600pk</span></samp>’ creates <samp><span class="file">./cmr10.600gf</span></samp>. - - <p>The only options are ‘<samp><span class="samp">--verbose</span></samp>’, ‘<samp><span class="samp">--help</span></samp>’, and -‘<samp><span class="samp">--version</span></samp>’ (see <a href="#Common-options">Common options</a>). - -<div class="node"> +</p> +<p>The suffix ‘<samp>pk</samp>’ is supplied if not already present. This suffix is +not an extension; no ‘<samp>.</samp>’ precedes it: for instance, +<samp>cmr10.600pk</samp>. +</p> +<p>If <var>gffile</var> is not specified, the output is written to the basename +of ‘<samp><var>pkname</var>.<var>dpi</var>gf</samp>’, e.g., ‘<samp>pktogf +/wherever/cmr10.600pk</samp>’ creates <samp>./cmr10.600gf</samp>. +</p> +<p>The only options are ‘<samp>--verbose</samp>’, ‘<samp>--help</samp>’, and +‘<samp>--version</samp>’ (see <a href="#Common-options">Common options</a>). +</p> + +<hr> <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 class="header"> +<p> +Next: <a href="#gftype-invocation" accesskey="n" rel="next">gftype invocation</a>, Previous: <a href="#pktogf-invocation" accesskey="p" rel="prev">pktogf invocation</a>, Up: <a href="#Font-utilities" accesskey="u" rel="up">Font utilities</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="PKtype_003a-Plain-text-transliteration-of-packed-fonts"></a> <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, +<a name="index-pktype-PK-validation"></a> +<a name="index-conversion_002c-PK-to-plain-text"></a> +<a name="index-plain-text_002c-converting-PK-to"></a> +<a name="index-human_002dreadable-text_002c-converting-PK-to"></a> +<a name="index-type-programs_002c-PK"></a> +<a name="index-validation_002c-of-PK-files"></a> + +<p>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 +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 +</p> +<div class="example"> +<pre class="example">pktype <var>pkname</var>.<var>dpi</var>[pk] +</pre></div> + +<p>The font <var>pkname</var> is searched for in the usual places (see <a href="kpathsea.html#Glyph-lookup">Glyph +lookup</a> in <cite>Kpathsea</cite>). To see all the relevant paths, set the +environment variable <code>KPATHSEA_DEBUG</code> to ‘<samp>-1</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>’ +</p> +<p>The suffix ‘<samp>pk</samp>’ is supplied if not already present. This suffix is +not an extension; no ‘<samp>.</samp>’ precedes it: for instance, <samp>cmr10.600pk</samp>. +</p> +<p>The translation is written to standard output. +</p> +<p>The only options are ‘<samp>-help</samp>’ and ‘<samp>-version</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 +</p> +<p>As an example of the output, here is the (abridged) translation of the +letter ‘K’ in ‘<samp>cmr10</samp>’, as rendered at 600dpi with the mode +‘<samp>ljfour</samp>’ from <a href="modes.mf">modes.mf</a> (available from +<samp>ftp://ftp.tug.org/tex/modes.mf</samp>). +</p> +<div class="smallexample"> +<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></div> + +<p>Explanation: +</p> +<dl compact="compact"> +<dt>‘<samp>955</samp>’</dt> +<dd><a name="index-byte-position"></a> +<p>The byte position in the file where this character starts. +</p> +</dd> +<dt>‘<samp>Flag byte</samp>’</dt> +<dt>‘<samp>Dynamic packing variable</samp>’</dt> +<dd><a name="index-flag-byte"></a> +<a name="index-dynamic-packing-variable"></a> +<p>Related to the packing for this character; see the source code. +</p> +</dd> +<dt>‘<samp>Character</samp>’</dt> +<dd><a name="index-character-codes_002c-in-PKtype-output"></a> +<p>The character code, in decimal. +</p> +</dd> +<dt>‘<samp>Packet length</samp>’</dt> +<dd><a name="index-packet-length"></a> +<p>The total length of this character definition, in bytes. +</p> +</dd> +<dt>‘<samp>TFM width</samp>’</dt> +<dd><a name="index-TFM-width-of-characters"></a> +<a name="index-device_002dindependent-width"></a> +<a name="index-width_002c-device_002dindependent"></a> +<p>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. +</p> +</dd> +<dt>‘<samp>dx</samp>’</dt> +<dd><a name="index-horizontal-escapement"></a> +<a name="index-escapement_002c-horizontal"></a> +<a name="index-scaled-pixels"></a> +<a name="index-dx-horizontal-escapement"></a> +<p>The device-dependent width, in <em>scaled pixels</em>, 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 +</p> +</dd> +<dt>‘<samp>Height</samp>’</dt> +<dt>‘<samp>Width</samp>’</dt> +<dd><a name="index-height_002c-in-pixels"></a> +<a name="index-pixel-height"></a> +<a name="index-pixel-width"></a> +<a name="index-width_002c-in-pixels"></a> +<p>The bitmap height and width, in pixels. +</p> +</dd> +<dt>‘<samp>X-offset</samp>’</dt> +<dt>‘<samp>Y-offset</samp>’</dt> +<dd><a name="index-x-offset"></a> +<a name="index-y-offset"></a> +<a name="index-origin"></a> +<a name="index-reference-pixel"></a> +<a name="index-side-bearings"></a> +<a name="index-left-side-bearing"></a> +<a name="index-right-side-bearing"></a> +<p>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 +are positive). The <em>reference pixel</em> 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. +</p> +</dd> +<dt>‘<samp>[2]23(16)…</samp>’</dt> +<dd><a name="index-run-length-encoded-bitmaps"></a> +<a name="index-repeated-rows"></a> +<p>Finally, run lengths of black pixels alternate with parenthesized run +lengths of white pixels, and brackets indicate a repeated row. +</p></dd> </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> +<hr> +<a name="gftype-invocation"></a> +<div class="header"> +<p> +Next: <a href="#tftopl-invocation" accesskey="n" rel="next">tftopl invocation</a>, Previous: <a href="#pktype-invocation" accesskey="p" rel="prev">pktype invocation</a>, Up: <a href="#Font-utilities" accesskey="u" rel="up">Font utilities</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="GFtype_003a-Plain-text-transliteration-of-generic-fonts"></a> <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 +<a name="index-gftype-GF-validation"></a> +<a name="index-conversion_002c-GF-to-plain-text"></a> +<a name="index-plain-text_002c-converting-GF-to"></a> +<a name="index-human_002dreadable-text_002c-converting-GF-to"></a> +<a name="index-type-programs_002c-GF"></a> +<a name="index-validation_002c-of-GF-files"></a> + +<p>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 +it’s correct. Synopsis: +</p> +<div class="example"> +<pre class="example">gftype [<var>option</var>]… <var>gfname</var>.<var>dpi</var>[gf] +</pre></div> + +<p>The font <var>gfname</var> is searched for in the usual places (see <a href="kpathsea.html#Glyph-lookup">Glyph +lookup</a> in <cite>Kpathsea</cite>). To see all the relevant paths, set the +environment variable <code>KPATHSEA_DEBUG</code> to ‘<samp>-1</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. +</p> +<p>The suffix ‘<samp>gf</samp>’ is supplied if not already present. This suffix is +not an extension; no ‘<samp>.</samp>’ precedes it: for instance, <samp>cmr10.600gf</samp>. +</p> +<p>The translation is written to standard output. +</p> +<p>The program accepts the following options, as well as the standard +‘<samp>-help</samp>’ and ‘<samp>-version</samp>’ (see <a href="#Common-options">Common options</a>): +</p><dl compact="compact"> +<dt>‘<samp>-images</samp>’</dt> +<dd><a name="index-_002dimages"></a> +<p>Show the characters’ bitmaps using asterisks and spaces. +</p> +</dd> +<dt>‘<samp>-mnemonics</samp>’</dt> +<dd><a name="index-_002dmnemonics"></a> +<p>Translate all commands in the GF file. +</p></dd> </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 +<p>As an example of the output, here is the (abrdiged) translation of the +letter ‘K’ in ‘<samp>cmr10</samp>’, as rendered at 600dpi with the mode +‘<samp>ljfour</samp>’ from <samp>modes.mf</samp> (available from +<a href="ftp://ftp.tug.org/tex/modes.mf">ftp://ftp.tug.org/tex/modes.mf</a>), with both ‘<samp>-mnemonics</samp>’ and +‘<samp>-images</samp>’ enabled. +</p> +<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 +</p> +<div class="example"> +<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 +</pre><pre class="example">.<--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></div> + +<p>Explanation: +</p> +<dl compact="compact"> +<dt>‘<samp>2033</samp>’</dt> +<dt>‘<samp>2043</samp>’</dt> +<dt>‘<samp>…</samp>’</dt> +<dd><a name="index-byte-position-1"></a> +<p>The byte position in the file where each GF command starts. +</p> +</dd> +<dt>‘<samp>beginning of char 75</samp>’</dt> +<dd><a name="index-character-codes_002c-in-GFtype-output"></a> +<p>The character code, in decimal. +</p> +</dd> +<dt>‘<samp>3<=m<=60 0<=n<=56</samp>’</dt> +<dd><a name="index-left-side-bearing-1"></a> +<a name="index-right-side-bearing-1"></a> +<a name="index-side-bearings-1"></a> +<p>The character’s bitmap lies between 3 and 60 (inclusive) horizontally, +and between 0 and 56 (inclusive) vertically. (<em>m</em> is a column +position and <em>n</em> 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 +below) minus the maximum <em>m</em>. +</p> +</dd> +<dt>‘<samp>(initially n=56) paint (0)24(12)20</samp>’</dt> +<dd><a name="index-run-length-encoded-bitmaps-1"></a> +<p>The first row of pixels: 0 white pixels, 24 black pixels, 12 white pixels, etc. +</p> +</dd> +<dt>‘<samp>newrow 0 (n=55) paint 24(12)20</samp>’</dt> +<dd><a name="index-newrow-GF-command"></a> +<p>The second row of pixels, with zero leading white pixels on the row. +</p> +</dd> +<dt>‘<samp>eoc</samp>’</dt> +<dd><a name="index-eoc-GF-command"></a> +<p>The end of the main character definition. +</p> +</dd> +</dl> - <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 +<p>Here is the GF postamble information that GFtype outputs at the end: +</p> +<div class="example"> +<pre class="example">Character 75: dx 4259840 (65), width 815562 (64.57289), loc 2033 +</pre></div> + +<p>Explanation: +</p> +<dl compact="compact"> +<dt>‘<samp>dx</samp>’</dt> +<dd><a name="index-horizontal-escapement-1"></a> +<a name="index-escapement_002c-horizontal-1"></a> +<a name="index-vertical-escapement"></a> +<a name="index-escapement_002c-vertical"></a> +<a name="index-scaled-pixels-1"></a> +<a name="index-dx-horizontal-escapement-1"></a> +<a name="index-dy-vertical-escapement"></a> +<p>The device-dependent width, in <em>scaled pixels</em>, i.e., units of +horizontal pixels times 2^16. The ‘<samp>(65)</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. +a ‘<samp>dy</samp>’ value. +</p> +</dd> +<dt>‘<samp>width</samp>’</dt> +<dd><a name="index-TFM-width-of-characters-1"></a> +<a name="index-device_002dindependent-width-1"></a> +<a name="index-width_002c-device_002dindependent-1"></a> +<p>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>64.57289</samp>’ is the same number converted to pixels. +</p> +</dd> +<dt>‘<samp>loc</samp>’</dt> +<dd><p>The byte position in the file where this character starts. +</p> +</dd> +</dl> - </dl> -<div class="node"> +<hr> <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 class="header"> +<p> +Next: <a href="#pltotf-invocation" accesskey="n" rel="next">pltotf invocation</a>, Previous: <a href="#gftype-invocation" accesskey="p" rel="prev">gftype invocation</a>, Up: <a href="#Font-utilities" accesskey="u" rel="up">Font utilities</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="TFtoPL_003a-TeX-font-metric-to-property-list-conversion"></a> <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 +<a name="index-tftopl"></a> +<a name="index-conversion_002c-TFM-to-property-list"></a> +<a name="index-validation_002c-of-TFM-files"></a> +<a name="index-property-list_002c-converting-TFM-to"></a> +<a name="index-human_002dreadable-text_002c-converting-TFM-to"></a> +<a name="index-plain-text_002c-converting-TFM-to"></a> + +<p>TFtoPL translates a TeX font metric (TFM, see <a href="dvips.html#Metric-files">Metric +files</a> in <cite>Dvips</cite>) file (as output by Metafont, for example) to +<em>property list format</em> (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. +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 +</p> +<div class="example"> +<pre class="example">tftopl [<var>option</var>]… <var>tfmname</var>[.tfm] [<var>plfile</var>[.pl]] +</pre></div> + +<p>The font <var>tfmname</var> (extended with ‘<samp>.tfm</samp>’ if necessary) is +searched for in the usual places (see <a href="kpathsea.html#Supported-file-formats">Supported file formats</a> in <cite>Kpathsea</cite>). To see all the relevant paths, set the +environment variable <code>KPATHSEA_DEBUG</code> to ‘<samp>-1</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 +</p> +<p>If <var>plfile</var> (which is extended with ‘<samp>.pl</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 +</p> +<p>The program accepts the following option, as well as the standard +‘<samp>-verbose</samp>’, ‘<samp>-help</samp>’ and ‘<samp>-version</samp>’ (see <a href="#Common-options">Common options</a>): +</p><dl compact="compact"> +<dt>‘<samp>-charcode-format=<var>type</var></samp>’</dt> +<dd><a name="index-_002dcharcode_002dformat_003dtype"></a> +<p>Output character codes in the PL file according to <var>type</var>: either +‘<samp>octal</samp>’ or ‘<samp>ascii</samp>’. Default is ‘<samp>ascii</samp>’ for letters and +digits, octal for all other characters. Exception: if the font’s coding +scheme starts with ‘<samp>TeX math sy</samp>’ or ‘<samp>TeX math ex</samp>’, all character codes are output in octal. - - <p>In ‘<samp><span class="samp">ascii</span></samp>’ format, character codes that correspond to graphic +</p> +<p>In ‘<samp>ascii</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, +‘<samp>C</samp>’ followed by the single character: ‘<samp>C K</samp>’, for example. In +octal format, character codes are output as the letter ‘<samp>O</samp>’ followed +by octal digits, as in ‘<samp>O 113</samp>’ for ‘<samp>K</samp>’. +</p> +<p>‘<samp>octal</samp>’ format is useful for symbol and other non-alphabetic fonts, where using ASCII characters for the character codes is merely -confusing. +confusing. +</p></dd> </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 +<a name="index-property-list-format"></a> +<p>As an example of the output, here is the (abridged) property list +translation of <samp>cmr10.tfm</samp>: +</p> +<div class="example"> +<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></div> + +<p>As you can see, the general format is a list of parenthesized +<em>properties</em>, nested where necessary. +</p> +<ul> +<li> <a name="index-FAMILY-property"></a> +<a name="index-FACE-property"></a> +<a name="index-headerbyte-information"></a> +The first few items (<code>FAMILY</code>, <code>FACE</code>, and so on) are +the so-called <em>headerbyte</em> 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> +</li><li> <a name="index-FAMILY-property-1"></a> +<a name="index-_005cfontdimen"></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. +</li><li> <a name="index-LIGTABLE-property"></a> +<a name="index-LABEL-property"></a> +<a name="index-LIG-property"></a> +<a name="index-KRN-property"></a> +<a name="index-ligature-table_002c-in-TFM-files"></a> +<a name="index-kerning-table_002c-in-TFM-files"></a> +<a name="index-design_002dsize-units"></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, +‘<samp>f</samp>’ (in the ‘<samp>LABEL</samp>’) followed by an ‘<samp>i</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 +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>f</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 +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 +</li><li> <a name="index-CHARACTER-property"></a> +<a name="index-CHARWD-property"></a> +<a name="index-CHARHT-property"></a> +<a name="index-CHARDP-property"></a> +<a name="index-CHARIC-property"></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 +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> +</li></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> +<hr> +<a name="pltotf-invocation"></a> +<div class="header"> +<p> +Next: <a href="#vftovp-invocation" accesskey="n" rel="next">vftovp invocation</a>, Previous: <a href="#tftopl-invocation" accesskey="p" rel="prev">tftopl invocation</a>, Up: <a href="#Font-utilities" accesskey="u" rel="up">Font utilities</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="PLtoTF_003a-Property-list-to-TeX-font-metric-conversion"></a> <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 +<a name="index-pltotf"></a> +<a name="index-conversion_002c-property-list-to-TFM"></a> +<a name="index-TFM-files_002c-converting-property-lists-to"></a> +<a name="index-machine_002dreadable_002c-converting-property-lists-to"></a> + +<p>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> in <cite>Dvips</cite>) +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: +</p> +<div class="example"> +<pre class="example">pltotf [<var>option</var>]… <var>plfile</var>[.pl] [<var>tfmfile</var>[.tfm]] +</pre></div> -<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 +<p>If <var>tfmfile</var> (extended with ‘<samp>.tfm</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 +‘<samp><var>plfile</var>.tfm</samp>’, e.g., ‘<samp>pltotf /wherever/cmr10.pl</samp>’ creates +<samp>./cmr10.tfm</samp>. (Since TFM files are binary, writing to standard output by default is undesirable.) - - <p>The only options are ‘<samp><span class="samp">-verbose</span></samp>’, ‘<samp><span class="samp">-help</span></samp>’, and -‘<samp><span class="samp">-version</span></samp>’ (see <a href="#Common-options">Common options</a>). - - <p>For an example of property list format, see the previous section. - -<div class="node"> +</p> +<p>The only options are ‘<samp>-verbose</samp>’, ‘<samp>-help</samp>’, and +‘<samp>-version</samp>’ (see <a href="#Common-options">Common options</a>). +</p> +<p>For an example of property list format, see the previous section. +</p> + +<hr> <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 class="header"> +<p> +Next: <a href="#vptovf-invocation" accesskey="n" rel="next">vptovf invocation</a>, Previous: <a href="#pltotf-invocation" accesskey="p" rel="prev">pltotf invocation</a>, Up: <a href="#Font-utilities" accesskey="u" rel="up">Font utilities</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="VFtoVP_003a-Virtual-font-to-virtual-property-lists"></a> <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 +<a name="index-vftovp"></a> +<a name="index-conversion_002c-VF-to-VPL"></a> +<a name="index-validation_002c-of-VF-files"></a> +<a name="index-property-list_002c-converting-VF-to-virtual"></a> +<a name="index-human_002dreadable-text_002c-converting-VF-to"></a> +<a name="index-plain-text_002c-converting-VF-to"></a> + +<p>VFtoVP translates a virtual font metric (VF, see <a href="dvips.html#Virtual-fonts">Virtual +fonts</a> in <cite>Dvips</cite>) file and its accompanying TeX font metric (TFM, +see <a href="dvips.html#Metric-files">Metric files</a> in <cite>Dvips</cite>) file (as output by VPtoVF, for +example) to <em>virtual property list format</em> (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. +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 +</p> +<div class="example"> +<pre class="example">vftovp [<var>option</var>]… <var>vfname</var>[.vf] [<var>tfmname</var>[.tfm] [<var>vplfile</var>[.vpl]]] +</pre></div> + +<p>The fonts <var>vfname</var> and <var>tfmname</var> (extended with ‘<samp>.vf</samp>’ and +‘<samp>.tfm</samp>’ if necessary) are searched for in the usual places +(see <a href="kpathsea.html#Supported-file-formats">Supported file formats</a> in <cite>Kpathsea</cite>). 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. +‘<samp>-1</samp>’ before running the program. If <var>tfmname</var> is not +specified, <var>vfname</var> (without a trailing ‘<samp>.vf</samp>’) is used. +</p> +<p>If <var>vplfile</var> (extended with ‘<samp>.vpl</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 +</p> +<p>The program accepts the following option, as well as the standard +‘<samp>-verbose</samp>’, ‘<samp>-help</samp>’ and ‘<samp>-version</samp>’ (see <a href="#Common-options">Common options</a>): +</p><dl compact="compact"> +<dt>‘<samp>-charcode-format=<var>type</var></samp>’</dt> +<dd><a name="index-_002dcharcode_002dformat_003dtype-1"></a> +<p>Output character codes in the PL file according to <var>type</var>: either +‘<samp>octal</samp>’ or ‘<samp>ascii</samp>’. Default is ‘<samp>ascii</samp>’ for letters and +digits, octal for all other characters. Exception: if the font’s coding +scheme starts with ‘<samp>TeX math sy</samp>’ or ‘<samp>TeX math ex</samp>’, all character codes are output in octal. - - <p>In ‘<samp><span class="samp">ascii</span></samp>’ format, character codes that correspond to graphic +</p> +<p>In ‘<samp>ascii</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, +‘<samp>C</samp>’ followed by the single character: ‘<samp>C K</samp>’, for example. In +octal format, character codes are output as the letter ‘<samp>O</samp>’ followed +by octal digits, as in ‘<samp>O 113</samp>’ for ‘<samp>K</samp>’. +</p> +<p>‘<samp>octal</samp>’ format is useful for symbol and other non-alphabetic fonts, where using ASCII characters for the character codes is merely -confusing. +confusing. +</p></dd> </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> +<hr> +<a name="vptovf-invocation"></a> +<div class="header"> +<p> +Next: <a href="#Font-utilities-available-elsewhere" accesskey="n" rel="next">Font utilities available elsewhere</a>, Previous: <a href="#vftovp-invocation" accesskey="p" rel="prev">vftovp invocation</a>, Up: <a href="#Font-utilities" accesskey="u" rel="up">Font utilities</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="VPtoVF_003a-Virtual-property-lists-to-virtual-font"></a> <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) +<a name="index-vptovf"></a> +<a name="index-conversion_002c-property-list-to-VF"></a> +<a name="index-VF-files_002c-converting-property-lists-to"></a> +<a name="index-machine_002dreadable_002c-converting-property-lists-to-1"></a> + +<p>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> in <cite>Dvips</cite>) and +TeX font metric (TFM, see <a href="dvips.html#Metric-files">Metric files</a> in <cite>Dvips</cite>) 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: +</p> +<div class="example"> +<pre class="example">vptovf [<var>option</var>]… <var>vplfile</var>[.vpl] [<var>vffile</var>[.vf] [<var>tfmfile</var>[.tfm]]] +</pre></div> -<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 +<p>If <var>vffile</var> (extended with ‘<samp>.vf</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>’ +‘<samp><var>vplfile</var>.vf</samp>’; similarly for <var>tfmfile</var>. For example, +‘<samp>vptovf /wherever/ptmr.vpl</samp>’ creates <samp>./ptmr.vf</samp> and +<samp>./ptmr.tfm</samp>. +</p> +<p>The only options are ‘<samp>-verbose</samp>’, ‘<samp>-help</samp>’, and ‘<samp>-version</samp>’ (see <a href="#Common-options">Common options</a>). +</p> -<div class="node"> +<hr> <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 class="header"> +<p> +Previous: <a href="#vptovf-invocation" accesskey="p" rel="prev">vptovf invocation</a>, Up: <a href="#Font-utilities" accesskey="u" rel="up">Font utilities</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Font-utilities-available-elsewhere-1"></a> <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 +<a name="index-font-utilities_002c-non_002dWeb2c"></a> + +<p>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 +are in <samp><var>CTAN:</var>/fonts/utilities</samp> (for CTAN info, +see <a href="kpathsea.html#unixtex_002eftp">unixtex.ftp</a> in <cite>Kpathsea</cite>). 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: +</p> +<ul> +<li> <a name="index-AFM-to-TFM-conversion"></a> +<a name="index-afm2tfm"></a> +<a name="index-afmtopl"></a> +AFM (Adobe font metric) to TFM conversion: see <a href="dvips.html#Invoking-afm2tfm">Invoking afm2tfm</a> in <cite>Dvips</cite>, and <samp><var>CTAN:</var>/fonts/utilities/afmtopl</samp>. + +</li><li> <a name="index-X-bitmap-fonts"></a> +<a name="index-BDF-and-GF-conversion"></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. +</li><li> <a name="index-metatype1"></a> +<a name="index-Latin-Modern"></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>), +the excellent Latin Modern font family (<samp><var>CTAN:</var>/fonts/lm</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 +</li><li> <a name="index-editing-of-bitmap-fonts"></a> +<a name="index-xbfe_002c-bitmap-font-editor"></a> +<a name="index-xfed_002c-bitmap-font-editor"></a> +<a name="index-xfedor_002c-bitmap-font-editor"></a> +<a name="index-gftopxl"></a> +<a name="index-chtopx"></a> +<a name="index-pxtoch"></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 @@ -3657,69 +4946,87 @@ 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>. +</li><li> <a name="index-fontforge"></a> +<a name="index-pfaedit"></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 +(Type 1, OpenType, TrueType, …), 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>’ +</li><li> <a name="index-PK-bitmaps-from-PostScript"></a> +<a name="index-PostScript-to-PK-bitmaps"></a> +<a name="index-gsftopk"></a> +<a name="index-ps2pk"></a> +PK bitmaps from PostScript outline fonts: gsftopk from the ‘<samp>xdvi</samp>’ distribution. Alternatively, <code>ps2pk</code>, from -<samp><var>CTAN:</var><span class="file">/fonts/utilities/ps2pk</span></samp>. +<samp><var>CTAN:</var>/fonts/utilities/ps2pk</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 +</li><li> <a name="index-Type-1-conversion"></a> +<a name="index-PFA-and-PFB-conversion"></a> +<a name="index-PostScript-Type-1-font-conversion"></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 +</li><li> <a name="index-scanned-images-of-fonts"></a> +<a name="index-typeface-specimen-sheets"></a> +<a name="index-fontutils"></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 +</li><li> <a name="index-autotrace"></a> +<a name="index-potrace"></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> +</li><li> <a name="index-virtual-font-creation"></a> +<a name="index-fontinst_002c-for-creating-virtual-fonts"></a> +Virtual font creation: <samp><var>CTAN:</var>/fonts/utilities/fontinst</samp>. +</li></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> +<hr> +<a name="Legalisms"></a> +<div class="header"> +<p> +Next: <a href="#References" accesskey="n" rel="next">References</a>, Previous: <a href="#Font-utilities" accesskey="p" rel="prev">Font utilities</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="Legalisms-1"></a> <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. +<a name="index-legalisms"></a> +<a name="index-copyright-notices"></a> +<a name="index-permissions_002c-legal"></a> - <p>The Web2c system itself and most of the original WEB source files are +<p>In general, each file has its own copyright notice stating the copying +permissions for that file. Following is a summary. +</p> +<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>, +</p> +<p><samp>tex.web</samp>, the MLTeX code, <samp>mf.web</samp>, and <samp>bibtex.web</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 +be modified only through a <samp>.ch</samp> file. +</p> +<p>MetaPost-related files, including <samp>mp.web</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, +</p> +<p>Finally, the Kpathsea library is covered by the GNU Lesser General +Public License (see <a href="kpathsea.html#Introduction">Introduction</a> in <cite>Kpathsea</cite>). 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 +binaries. See the file <samp>LGPL</samp> for complete details on the LGPL. +</p> +<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 +</p> +<blockquote> +<p>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 @@ -3727,992 +5034,1213 @@ 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 +</p> +<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> +software. +</p></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> +<hr> +<a name="References"></a> +<div class="header"> +<p> +Next: <a href="#Index" accesskey="n" rel="next">Index</a>, Previous: <a href="#Legalisms" accesskey="p" rel="prev">Legalisms</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> </div> - +<a name="References-1"></a> <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>. +<a name="index-references"></a> +<a name="index-bibliography"></a> - <li>Dvips and Afm2tfm: See <a href="dvips.html#Top">Introduction</a>. +<ol> +<li> Kpathsea: See <a href="kpathsea.html#Top">Introduction</a> in <cite>Kpathsea</cite>. - <li>The TeX Users Group: <a href="http://www.tug.org">http://www.tug.org</a>. For an introduction +</li><li> Dvips and Afm2tfm: See <a href="dvips.html#Top">Introduction</a> in <cite>Dvips</cite>. + +</li><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><li> TUGboat: <a href="http://tug.org/TUGboat">http://tug.org/TUGboat</a>. - <li>TeX and computer typesetting in general:<br> +</li><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 +</li><li> For a bibliography of formal articles and technical reports on the TeX project, see the books <cite>TeX: The Program</cite> or <cite>Metafont: The Program</cite> cited below. - <!-- begin{thebibliography}{Knu86d} --> - <li>[Bil87] -Neenie Billawala. -Write-white printing engines and tuning fonts with Metafont. -<cite>TUGboat</cite>, 8(1):29–32, April 1987. + +</li><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>. +</li><li> [GMS94] +Michel Goossens, Frank Mittelbach, and Alexander Samarin. +<cite>The LaTeX Companion</cite>. Addison-Wesley, Reading, MA, USA, 1994. - <li>[Hob89] -John D. Hobby. -A Metafont-like system with PS output. -<cite>TUGboat</cite>, 10(4):505–512, December 1989. +</li><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. +</li><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. +</li><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. +</li><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>. +</li><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. +</li><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. +</li><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>. +</li><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>. +</li><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>. +</li><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. +</li><li> [Knu86e] +Donald E. Knuth. <cite>METAFONT: The Program</cite>, volume D of <cite>Computers and - Typesetting</cite>. + Typesetting</cite>. Addison-Wesley, Reading, MA, USA, 1986. - <li>[Knu86f] -Donald E. Knuth. +</li><li> [Knu86f] +Donald E. Knuth. <cite>Computer Modern Typefaces</cite>, volume E of <cite>Computers and - Typesetting</cite>. + Typesetting</cite>. Addison-Wesley, Reading, MA, USA, 1986. - <li>[Knu89] -Donald E. Knuth. -The errors of TeX. +</li><li> [Knu89] +Donald E. Knuth. +The errors of TeX. <cite>Software—Practice and Experience</cite>, 19(7):607–681, July - 1989. + 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. +</li><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>. +</li><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. +</li><li> [Lam94] +Leslie Lamport. +<cite>LaTeX: A Document Preparation System: User’s Guide and Reference + Manual</cite>. +Addison-Wesley, Reading, MA, USA, second edition, 1994. Reprinted with corrections in 1996. - <li>[Lia83] -Franklin Mark Liang. -Word hy-phen-a-tion by com-pu-ter. -Technical Report STAN-CS-83-977, Stanford University, August 1983. +</li><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. +</li><li> [Mac91] +Pierre A. MacKay. Looking at the pixels: Quality control for 300 dpi laser printer fonts, - especially Metafonts. + 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>. +</li><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. +</li><li> [Spi90] +Michael D. Spivak. <cite>The Joy of TeX—A Gourmet Guide to Typesetting with the - AMSTeX macro package</cite>. + 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> +</li></ol> -</div> +<hr> +<a name="Index"></a> +<div class="header"> +<p> +Previous: <a href="#References" accesskey="p" rel="prev">References</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Index-1"></a> <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> - +<table><tr><th valign="top">Jump to: </th><td><a class="summary-letter" href="#Index_cp_symbol-1"><b>#</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-2"><b>$</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-3"><b>%</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-4"><b>-</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-5"><b>.</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-6"><b>2</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-7"><b>8</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-8"><b>\</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-9"><b>^</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-10"><b>~</b></a> + +<br> +<a class="summary-letter" href="#Index_cp_letter-A"><b>A</b></a> + +<a class="summary-letter" href="#Index_cp_letter-B"><b>B</b></a> + +<a class="summary-letter" href="#Index_cp_letter-C"><b>C</b></a> + +<a class="summary-letter" href="#Index_cp_letter-D"><b>D</b></a> + +<a class="summary-letter" href="#Index_cp_letter-E"><b>E</b></a> + +<a class="summary-letter" href="#Index_cp_letter-F"><b>F</b></a> + +<a class="summary-letter" href="#Index_cp_letter-G"><b>G</b></a> + +<a class="summary-letter" href="#Index_cp_letter-H"><b>H</b></a> + +<a class="summary-letter" href="#Index_cp_letter-I"><b>I</b></a> + +<a class="summary-letter" href="#Index_cp_letter-J"><b>J</b></a> + +<a class="summary-letter" href="#Index_cp_letter-K"><b>K</b></a> + +<a class="summary-letter" href="#Index_cp_letter-L"><b>L</b></a> + +<a class="summary-letter" href="#Index_cp_letter-M"><b>M</b></a> + +<a class="summary-letter" href="#Index_cp_letter-N"><b>N</b></a> + +<a class="summary-letter" href="#Index_cp_letter-O"><b>O</b></a> + +<a class="summary-letter" href="#Index_cp_letter-P"><b>P</b></a> + +<a class="summary-letter" href="#Index_cp_letter-R"><b>R</b></a> + +<a class="summary-letter" href="#Index_cp_letter-S"><b>S</b></a> + +<a class="summary-letter" href="#Index_cp_letter-T"><b>T</b></a> + +<a class="summary-letter" href="#Index_cp_letter-U"><b>U</b></a> + +<a class="summary-letter" href="#Index_cp_letter-V"><b>V</b></a> + +<a class="summary-letter" href="#Index_cp_letter-W"><b>W</b></a> + +<a class="summary-letter" href="#Index_cp_letter-X"><b>X</b></a> + +<a class="summary-letter" href="#Index_cp_letter-Y"><b>Y</b></a> + +</td></tr></table> +<table class="index-cp" border="0"> +<tr><td></td><th align="left">Index Entry</th><td> </td><th align="left"> Section</th></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-1">#</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_0023define-options">‘<samp>#define</samp>’ options</a>:</td><td> </td><td valign="top"><a href="#Compile_002dtime-options">Compile-time options</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-2">$</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_0024-expansion-in-filenames"><code>$ <span class="roman">expansion in filenames</span></code></a>:</td><td> </td><td valign="top"><a href="#g_t_005cinput-filenames">\input filenames</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-3">%</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_0025_0026-magic-number"><code>%& <span class="roman">magic number</span></code></a>:</td><td> </td><td valign="top"><a href="#Determining-the-memory-dump-to-use">Determining the memory dump to use</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-4">-</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d-starting-a-filename"><code>- <span class="roman">starting a filename</span></code></a>:</td><td> </td><td valign="top"><a href="#Option-conventions">Option conventions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d-starts-option-names"><code>- <span class="roman">starts option names</span></code></a>:</td><td> </td><td valign="top"><a href="#Option-conventions">Option conventions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002d-starts-option-names"><code>-- <span class="roman">starts option names</span></code></a>:</td><td> </td><td valign="top"><a href="#Option-conventions">Option conventions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002ddump_002dshare-configure-option"><code>--disable-dump-share configure <span class="roman">option</span></code></a>:</td><td> </td><td valign="top"><a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002ddisable_002dmf_002dnowin"><code>--disable-mf-nowin</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002depsfwin"><code>--enable-epsfwin</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dhp2627win"><code>--enable-hp2627win</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dipc-configure-option"><code>--enable-ipc configure <span class="roman">option</span></code></a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dmftalkwin"><code>--enable-mftalkwin</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dnext"><code>--enable-next</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dregiswin"><code>--enable-regiswin</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dsuntoolswin"><code>--enable-suntoolswin</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dtektronixwin"><code>--enable-tektronixwin</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002denable_002dunitermwin"><code>--enable-unitermwin</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dhelp-common-option"><code>--help <span class="roman">common option</span></code></a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dverbose-common-option"><code>--verbose <span class="roman">common option</span></code></a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dversion-common-option"><code>--version <span class="roman">common option</span></code></a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002deditor_003dcmd"><code>--with-editor=<var>cmd</var></code></a>:</td><td> </td><td valign="top"><a href="#Editor-invocation">Editor invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dmf_002dx_002dtoolkit_003dkit"><code>--with-mf-x-toolkit=<var>kit</var></code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d_002dwith_002dx"><code>--with-x</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002d8bit"><code>-8bit</code></a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dbase_003dbase"><code>-base=<var>base</var></code></a>:</td><td> </td><td valign="top"><a href="#Determining-the-memory-dump-to-use">Determining the memory dump to use</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dbase_003ddumpname"><code>-base=<var>dumpname</var></code></a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dchange_003dchfile"><code>-change=<var>chfile</var></code></a>:</td><td> </td><td valign="top"><a href="#mft-invocation">mft invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dcharcode_002dformat_003dtype"><code>-charcode-format=<var>type</var></code></a>:</td><td> </td><td valign="top"><a href="#tftopl-invocation">tftopl invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dcharcode_002dformat_003dtype-1"><code>-charcode-format=<var>type</var></code></a>:</td><td> </td><td valign="top"><a href="#vftovp-invocation">vftovp invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dD-compiler-options"><code>-D <span class="roman">compiler options</span></code></a>:</td><td> </td><td valign="top"><a href="#Compile_002dtime-options">Compile-time options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002ddisable_002dwrite18"><code>-disable-write18</code></a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002ddpi_003dreal"><code>-dpi=<var>real</var></code></a>:</td><td> </td><td valign="top"><a href="#dvitype-invocation">dvitype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002denable_002dwrite18"><code>-enable-write18</code></a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002denc"><code>-enc</code></a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dfile_002dline_002derror"><code>-file-line-error</code></a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dfile_002dline_002derror_002dstyle"><code>-file-line-error-style</code></a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dfmt_003ddumpname"><code>-fmt=<var>dumpname</var></code></a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dfmt_003dfmt"><code>-fmt=<var>fmt</var></code></a>:</td><td> </td><td valign="top"><a href="#Determining-the-memory-dump-to-use">Determining the memory dump to use</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dgeometry_002c-supported-with-Xt"><code>-geometry<span class="roman">, supported with Xt</span></code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dhalt_002don_002derror"><code>-halt-on-error</code></a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dimages"><code>-images</code></a>:</td><td> </td><td valign="top"><a href="#gftype-invocation">gftype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dini"><code>-ini</code></a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dini-1"><code>-ini</code></a>:</td><td> </td><td valign="top"><a href="#Initial-and-virgin">Initial and virgin</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dinteraction_003dstring"><code>-interaction=<var>string</var></code></a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dipc"><code>-ipc</code></a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dipc_002dstart"><code>-ipc-start</code></a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002djobname_003dstring"><code>-jobname=<var>string</var></code></a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dkpathsea_002ddebug_003dnumber"><code>-kpathsea-debug=<var>number</var></code></a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dlength_003dnumber"><code>-length=<var>number</var></code></a>:</td><td> </td><td valign="top"><a href="#tangle-invocation">tangle invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dloose"><code>-loose</code></a>:</td><td> </td><td valign="top"><a href="#tangle-invocation">tangle invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dlowercase"><code>-lowercase</code></a>:</td><td> </td><td valign="top"><a href="#tangle-invocation">tangle invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dmagnification_003dinteger"><code>-magnification=<var>integer</var></code></a>:</td><td> </td><td valign="top"><a href="#dvicopy-invocation">dvicopy invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dmagnification_003dinteger-1"><code>-magnification=<var>integer</var></code></a>:</td><td> </td><td valign="top"><a href="#dvitype-invocation">dvitype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dmax_002dpages_003dn"><code>-max-pages=<var>n</var></code></a>:</td><td> </td><td valign="top"><a href="#dvicopy-invocation">dvicopy invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dmax_002dpages_003dn-1"><code>-max-pages=<var>n</var></code></a>:</td><td> </td><td valign="top"><a href="#dvitype-invocation">dvitype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dmem_003ddumpname"><code>-mem=<var>dumpname</var></code></a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dmin_002dcrossrefs_003dn"><code>-min-crossrefs=<var>n</var></code></a>:</td><td> </td><td valign="top"><a href="#bibtex-invocation">bibtex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dmixedcase"><code>-mixedcase</code></a>:</td><td> </td><td valign="top"><a href="#tangle-invocation">tangle invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dmktex_003dfiletype"><code>-mktex=<var>filetype</var></code></a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dmktex_003dfiletype-1"><code>-mktex=<var>filetype</var></code></a>:</td><td> </td><td valign="top"><a href="#mf-invocation">mf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dmltex"><code>-mltex</code></a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dmnemonics"><code>-mnemonics</code></a>:</td><td> </td><td valign="top"><a href="#gftype-invocation">gftype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dno_002dfile_002dline_002derror"><code>-no-file-line-error</code></a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dno_002dmktex_003dfiletype"><code>-no-mktex=<var>filetype</var></code></a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dno_002dmktex_003dfiletype-1"><code>-no-mktex=<var>filetype</var></code></a>:</td><td> </td><td valign="top"><a href="#mf-invocation">mf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dno_002dparse_002dfirst_002dline"><code>-no-parse-first-line</code></a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dno_002dshell_002descape"><code>-no-shell-escape</code></a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002doutput_002dcomment_003dstring"><code>-output-comment=<var>string</var></code></a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002doutput_002ddirectory"><code>-output-directory</code></a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002doutput_002ddirectory-1"><code>-output-directory</code></a>:</td><td> </td><td valign="top"><a href="#Output-file-location">Output file location</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002doutput_002dlevel_003dn"><code>-output-level=<var>n</var></code></a>:</td><td> </td><td valign="top"><a href="#dvitype-invocation">dvitype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002doverflow_002dlabel_002doffset_003dpoints"><code>-overflow-label-offset=<var>points</var></code></a>:</td><td> </td><td valign="top"><a href="#gftodvi-invocation">gftodvi invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dpage_002dstart_003dpage_002dspec"><code>-page-start=<var>page-spec</var></code></a>:</td><td> </td><td valign="top"><a href="#dvicopy-invocation">dvicopy invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dpage_002dstart_003dpage_002dspec-1"><code>-page-start=<var>page-spec</var></code></a>:</td><td> </td><td valign="top"><a href="#dvitype-invocation">dvitype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dparse_002dfirst_002dline"><code>-parse-first-line</code></a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dprogname_003dstring"><code>-progname=<var>string</var></code></a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dprogname_003dstring-1"><code>-progname=<var>string</var></code></a>:</td><td> </td><td valign="top"><a href="#Determining-the-memory-dump-to-use">Determining the memory dump to use</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002drecorder"><code>-recorder</code></a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dshell_002descape"><code>-shell-escape</code></a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dshell_002drestricted"><code>-shell-restricted</code></a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dshow_002dopcodes"><code>-show-opcodes</code></a>:</td><td> </td><td valign="top"><a href="#dvitype-invocation">dvitype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dstrict"><code>-strict</code></a>:</td><td> </td><td valign="top"><a href="#tangle-invocation">tangle invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dstyle_003dmftfile"><code>-style=<var>mftfile</var></code></a>:</td><td> </td><td valign="top"><a href="#mft-invocation">mft invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dT"><code>-T</code></a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dterse"><code>-terse</code></a>:</td><td> </td><td valign="top"><a href="#bibtex-invocation">bibtex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dtex_003dtexprogram"><code>-tex=<var>texprogram</var></code></a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dtranslate_002dfile_003dtcxfile"><code>-translate-file=<var>tcxfile</var></code></a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dtroff"><code>-troff</code></a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dunderline"><code>-underline</code></a>:</td><td> </td><td valign="top"><a href="#tangle-invocation">tangle invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002duppercase"><code>-uppercase</code></a>:</td><td> </td><td valign="top"><a href="#tangle-invocation">tangle invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002dx"><code>-x</code></a>:</td><td> </td><td valign="top"><a href="#weave-invocation">weave invocation</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-5">.</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002e_002c-used-for-output"><code>.<span class="roman">, used for output</span></code></a>:</td><td> </td><td valign="top"><a href="#Output-file-location">Output file location</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002e2602gf"><code>.2602gf</code></a>:</td><td> </td><td valign="top"><a href="#mf-invocation">mf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002eaux-cross_002dreference-files"><code>.aux <span class="roman">cross-reference files</span></code></a>:</td><td> </td><td valign="top"><a href="#bibtex-invocation">bibtex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002ebase"><code>.base</code></a>:</td><td> </td><td valign="top"><a href="#Initial-Metafont">Initial Metafont</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002ebbl-bibliography-files"><code>.bbl <span class="roman">bibliography files</span></code></a>:</td><td> </td><td valign="top"><a href="#bibtex-invocation">bibtex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002ebib-bibliography-databases"><code>.bib <span class="roman">bibliography databases</span></code></a>:</td><td> </td><td valign="top"><a href="#bibtex-invocation">bibtex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002eblg-BibTeX-log-file"><code>.blg <span class="roman">BibTeX log file</span></code></a>:</td><td> </td><td valign="top"><a href="#bibtex-invocation">bibtex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002efmt"><code>.fmt</code></a>:</td><td> </td><td valign="top"><a href="#Initial-TeX">Initial TeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002emf"><code>.mf</code></a>:</td><td> </td><td valign="top"><a href="#mf-invocation">mf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002emp"><code>.mp</code></a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002emps-files-and-PDF"><code>.mps</code> files and PDF</a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002ennn-PostScript-figures"><code>.<var>nnn</var> <span class="roman">PostScript figures</span></code></a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002ennngf-generic-fonts"><code>.<var>nnn</var>gf <span class="roman">generic fonts</span></code></a>:</td><td> </td><td valign="top"><a href="#mf-invocation">mf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002etcx-character-translation-files"><code>.tcx <span class="roman">character translation files</span></code></a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002etcx-character-translation-files-1"><code>.tcx <span class="roman">character translation files</span></code></a>:</td><td> </td><td valign="top"><a href="#TCX-files">TCX files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002etex"><code>.tex</code></a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002etfm-output"><code>.tfm <span class="roman">output</span></code></a>:</td><td> </td><td valign="top"><a href="#mf-invocation">mf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002etfm-output-1"><code>.tfm <span class="roman">output</span></code></a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002eXdefaults"><code>.Xdefaults</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002eXresources"><code>.Xresources</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-6">2</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-2602gf"><code>2602gf</code></a>:</td><td> </td><td valign="top"><a href="#mf-invocation">mf invocation</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-7">8</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-8-bit-clean">8 bit clean</a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-8-bit-clean-output_002c-specifying"><code>8 bit clean output, specifying</code></a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-8_002dbit-characters">8-bit characters</a>:</td><td> </td><td valign="top"><a href="#TCX-files">TCX files</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-8">\</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005cbibliography"><code>\bibliography</code></a>:</td><td> </td><td valign="top"><a href="#bibtex-invocation">bibtex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005cbibliographystyle"><code>\bibliographystyle</code></a>:</td><td> </td><td valign="top"><a href="#bibtex-invocation">bibtex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005ccharsubdef-and-MLTeX"><code>\charsubdef <span class="roman">and MLTeX</span></code></a>:</td><td> </td><td valign="top"><a href="#g_t_005ccharsubdef">\charsubdef</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005ccountn"><code>\count<var>n</var></code></a>:</td><td> </td><td valign="top"><a href="#dvicopy-invocation">dvicopy invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005ccountn-1"><code>\count<var>n</var></code></a>:</td><td> </td><td valign="top"><a href="#dvitype-invocation">dvitype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005cfont-and-dynamic-generation"><code>\font <span class="roman">and dynamic generation</span></code></a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005cfontdimen"><code>\fontdimen</code></a>:</td><td> </td><td valign="top"><a href="#tftopl-invocation">tftopl invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005cimmediate_005cwrite18"><code>\immediate\write18</code></a>:</td><td> </td><td valign="top"><a href="#Shell-escapes">Shell escapes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005cinput-filenames"><code>\input <span class="roman">filenames</span></code></a>:</td><td> </td><td valign="top"><a href="#g_t_005cinput-filenames">\input filenames</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005cinput_002c-and-pipes"><code>\input<span class="roman">, and pipes</span></code></a>:</td><td> </td><td valign="top"><a href="#Shell-escapes">Shell escapes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005cmag"><code>\mag</code></a>:</td><td> </td><td valign="top"><a href="#dvicopy-invocation">dvicopy invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005cmag-1"><code>\mag</code></a>:</td><td> </td><td valign="top"><a href="#dvitype-invocation">dvitype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005copenin_002c-and-pipes"><code>\openin<span class="roman">, and pipes</span></code></a>:</td><td> </td><td valign="top"><a href="#Shell-escapes">Shell escapes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005copenout-and-security"><code>\openout <span class="roman">and security</span></code></a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005copenout_002c-and-pipes"><code>\openout<span class="roman">, and pipes</span></code></a>:</td><td> </td><td valign="top"><a href="#Shell-escapes">Shell escapes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005coutput-routine_002c-and-_005cwrite"><code>\output <span class="roman">routine, and <code>\write</code></span></code></a>:</td><td> </td><td valign="top"><a href="#Shell-escapes">Shell escapes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005cpdfshellescape"><code>\pdfshellescape</code></a>:</td><td> </td><td valign="top"><a href="#Shell-escapes">Shell escapes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005cstring"><code>\string</code></a>:</td><td> </td><td valign="top"><a href="#g_t_005cinput-filenames">\input filenames</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005ctracingcharsubdef-and-MLTeX"><code>\tracingcharsubdef <span class="roman">and MLTeX</span></code></a>:</td><td> </td><td valign="top"><a href="#g_t_005ctracingcharsubdef">\tracingcharsubdef</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005ctracinglostchars-and-MLTeX"><code>\tracinglostchars <span class="roman">and MLTeX</span></code></a>:</td><td> </td><td valign="top"><a href="#g_t_005ctracingcharsubdef">\tracingcharsubdef</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005cwrite18-shell-escape-extension"><code>\write18 <span class="roman">shell escape extension</span></code></a>:</td><td> </td><td valign="top"><a href="#Shell-escapes">Shell escapes</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-9">^</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_005e_005e-notation_002c-avoiding"><code>^^ <span class="roman">notation, avoiding</span></code></a>:</td><td> </td><td valign="top"><a href="#TCX-files">TCX files</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_symbol-10">~</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_007e-expansion-in-filenames"><code>~ <span class="roman">expansion in filenames</span></code></a>:</td><td> </td><td valign="top"><a href="#g_t_005cinput-filenames">\input filenames</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-A">A</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-abbrv_002ebst"><code>abbrv.bst</code></a>:</td><td> </td><td valign="top"><a href="#Basic-BibTeX-style-files">Basic BibTeX style files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-accented-character">accented character</a>:</td><td> </td><td valign="top"><a href="#TCX-files">TCX files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-accents_002c-hyphenating-words-with">accents, hyphenating words with</a>:</td><td> </td><td valign="top"><a href="#MLTeX">MLTeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-acknowledgements">acknowledgements</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-acm_002ebst"><code>acm.bst</code></a>:</td><td> </td><td valign="top"><a href="#Basic-BibTeX-style-files">Basic BibTeX style files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Ada_002c-WEB-for">Ada, WEB for</a>:</td><td> </td><td valign="top"><a href="#WEB">WEB</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-additional-Make-targets">additional Make targets</a>:</td><td> </td><td valign="top"><a href="#Additional-targets">Additional targets</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-AFM-to-TFM-conversion">AFM to TFM conversion</a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-afm2tfm"><code>afm2tfm</code></a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-afmtopl"><code>afmtopl</code></a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Aleph">Aleph</a>:</td><td> </td><td valign="top"><a href="#TeX-extensions">TeX extensions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-aliases-for-fonts">aliases for fonts</a>:</td><td> </td><td valign="top"><a href="#Path-searching">Path searching</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-alpha_002ebst"><code>alpha.bst</code></a>:</td><td> </td><td valign="top"><a href="#Basic-BibTeX-style-files">Basic BibTeX style files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-American-Mathematical-Society_002c-typesetting-system">American Mathematical Society, typesetting system</a>:</td><td> </td><td valign="top"><a href="#Formats">Formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-AMSTeX">AMSTeX</a>:</td><td> </td><td valign="top"><a href="#Formats">Formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-apalike_002ebst"><code>apalike.bst</code></a>:</td><td> </td><td valign="top"><a href="#Basic-BibTeX-style-files">Basic BibTeX style files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-architecture-dependencies">architecture dependencies</a>:</td><td> </td><td valign="top"><a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-array-limit_002c-fixed">array limit, fixed</a>:</td><td> </td><td valign="top"><a href="#Runtime-options">Runtime options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-array-sizes">array sizes</a>:</td><td> </td><td valign="top"><a href="#Runtime-options">Runtime options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-assembly-language-routines">assembly language routines</a>:</td><td> </td><td valign="top"><a href="#Compile_002dtime-options">Compile-time options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-autotrace"><code>autotrace</code></a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Awk_002c-WEB-for">Awk, WEB for</a>:</td><td> </td><td valign="top"><a href="#WEB">WEB</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-B">B</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-base-file_002c-determining">base file, determining</a>:</td><td> </td><td valign="top"><a href="#Determining-the-memory-dump-to-use">Determining the memory dump to use</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-base-files">base files</a>:</td><td> </td><td valign="top"><a href="#Initial-Metafont">Initial Metafont</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-base-files_002c-need-mode-definitions">base files, need mode definitions</a>:</td><td> </td><td valign="top"><a href="#Modes">Modes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-base-files_002c-plain-only">base files, plain only</a>:</td><td> </td><td valign="top"><a href="#Initial-Metafont">Initial Metafont</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-base-files_002c-sharing">base files, sharing</a>:</td><td> </td><td valign="top"><a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bases-Make-target"><code>bases <span class="roman">Make target</span></code></a>:</td><td> </td><td valign="top"><a href="#Additional-targets">Additional targets</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-basic-BibTeX-style-files">basic BibTeX style files</a>:</td><td> </td><td valign="top"><a href="#Basic-BibTeX-style-files">Basic BibTeX style files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-basic-fonts-and-macros">basic fonts and macros</a>:</td><td> </td><td valign="top"><a href="#Installation">Installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-batch-languages">batch languages</a>:</td><td> </td><td valign="top"><a href="#TeX">TeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-BDF-and-GF-conversion">BDF and GF conversion</a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-beginfig"><code>beginfig</code></a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Berry_002c-Karl">Berry, Karl</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-BIBINPUTS_002c-search-path-for-bib-files"><code>BIBINPUTS<span class="roman">, search path for bib files</span></code></a>:</td><td> </td><td valign="top"><a href="#bibtex-invocation">bibtex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bibliographies_002c-creating">bibliographies, creating</a>:</td><td> </td><td valign="top"><a href="#BibTeX">BibTeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bibliography">bibliography</a>:</td><td> </td><td valign="top"><a href="#References">References</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bibliography-items_002c-cross_002dreferenced">bibliography items, cross-referenced</a>:</td><td> </td><td valign="top"><a href="#bibtex-invocation">bibtex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bibtex"><code>bibtex</code></a>:</td><td> </td><td valign="top"><a href="#bibtex-invocation">bibtex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-BibTeX">BibTeX</a>:</td><td> </td><td valign="top"><a href="#BibTeX">BibTeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-BibTeX-collection">BibTeX collection</a>:</td><td> </td><td valign="top"><a href="#bibtex-invocation">bibtex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-BibTeX-style-files">BibTeX style files</a>:</td><td> </td><td valign="top"><a href="#Basic-BibTeX-style-files">Basic BibTeX style files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-BigEndian-machines">BigEndian machines</a>:</td><td> </td><td valign="top"><a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-binaries_002c-linking">binaries, linking</a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-blank-lines_002c-in-TCX-files">blank lines, in TCX files</a>:</td><td> </td><td valign="top"><a href="#TCX-files">TCX files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-boxes_002c-memory-for">boxes, memory for</a>:</td><td> </td><td valign="top"><a href="#Runtime-options">Runtime options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-breakpoints_002c-memory-for">breakpoints, memory for</a>:</td><td> </td><td valign="top"><a href="#Runtime-options">Runtime options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Breitenlohner_002c-Peter">Breitenlohner, Peter</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-BSTINPUTS_002c-search-path-for-bst-files"><code>BSTINPUTS<span class="roman">, search path for bst files</span></code></a>:</td><td> </td><td valign="top"><a href="#bibtex-invocation">bibtex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-btex-for-MetaPost-labels"><code>btex <span class="roman">for MetaPost labels</span></code></a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-btxdoc_002ebib"><code>btxdoc.bib</code></a>:</td><td> </td><td valign="top"><a href="#bibtex-invocation">bibtex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-btxdoc_002etex"><code>btxdoc.tex</code></a>:</td><td> </td><td valign="top"><a href="#bibtex-invocation">bibtex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-btxhak_002etex"><code>btxhak.tex</code></a>:</td><td> </td><td valign="top"><a href="#bibtex-invocation">bibtex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-byte-position">byte position</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-byte-position-1">byte position</a>:</td><td> </td><td valign="top"><a href="#gftype-invocation">gftype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-byte-swapping">byte swapping</a>:</td><td> </td><td valign="top"><a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-C">C</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-c_002dsources-Makefile-target"><code>c-sources <span class="roman">Makefile target</span></code></a>:</td><td> </td><td valign="top"><a href="#Additional-targets">Additional targets</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-change-files_002c-and-MFT">change files, and MFT</a>:</td><td> </td><td valign="top"><a href="#mft-invocation">mft invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-change-files_002c-and-Tangle">change files, and Tangle</a>:</td><td> </td><td valign="top"><a href="#tangle-invocation">tangle invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-change-files_002c-and-Weave">change files, and Weave</a>:</td><td> </td><td valign="top"><a href="#weave-invocation">weave invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-changing-error-messages-style">changing error messages style</a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-character-codes_002c-in-GFtype-output">character codes, in GFtype output</a>:</td><td> </td><td valign="top"><a href="#gftype-invocation">gftype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-character-codes_002c-in-PKtype-output">character codes, in PKtype output</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-character-codes_002c-in-TCX-files">character codes, in TCX files</a>:</td><td> </td><td valign="top"><a href="#TCX-files">TCX files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-character-proofs-of-fonts">character proofs of fonts</a>:</td><td> </td><td valign="top"><a href="#gftodvi-invocation">gftodvi invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-CHARACTER-property"><code>CHARACTER <span class="roman">property</span></code></a>:</td><td> </td><td valign="top"><a href="#tftopl-invocation">tftopl invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-character-translation-files">character translation files</a>:</td><td> </td><td valign="top"><a href="#TCX-files">TCX files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-CHARDP-property"><code>CHARDP <span class="roman">property</span></code></a>:</td><td> </td><td valign="top"><a href="#tftopl-invocation">tftopl invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-CHARHT-property"><code>CHARHT <span class="roman">property</span></code></a>:</td><td> </td><td valign="top"><a href="#tftopl-invocation">tftopl invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-CHARIC-property"><code>CHARIC <span class="roman">property</span></code></a>:</td><td> </td><td valign="top"><a href="#tftopl-invocation">tftopl invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-CHARWD-property"><code>CHARWD <span class="roman">property</span></code></a>:</td><td> </td><td valign="top"><a href="#tftopl-invocation">tftopl invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-chtopx"><code>chtopx</code></a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-class-name-for-Metafont">class name for Metafont</a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cm_002ebase"><code>cm.base</code></a>:</td><td> </td><td valign="top"><a href="#Initial-Metafont">Initial Metafont</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cmbase_002emf"><code>cmbase.mf</code></a>:</td><td> </td><td valign="top"><a href="#Initial-Metafont">Initial Metafont</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cmbase_002emft"><code>cmbase.mft</code></a>:</td><td> </td><td valign="top"><a href="#mft-invocation">mft invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cmmf_002ebase-not-recommended"><code>cmmf.base <span class="roman">not recommended</span></code></a>:</td><td> </td><td valign="top"><a href="#Initial-Metafont">Initial Metafont</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-color_002c-in-DVItoMP">color, in DVItoMP</a>:</td><td> </td><td valign="top"><a href="#dvitomp-invocation">dvitomp invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-comments_002c-in-TCX-files">comments, in TCX files</a>:</td><td> </td><td valign="top"><a href="#TCX-files">TCX files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-comments_002c-MFT-control">comments, MFT control</a>:</td><td> </td><td valign="top"><a href="#mft-invocation">mft invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-common-options">common options</a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-commonalities">commonalities</a>:</td><td> </td><td valign="top"><a href="#Commonalities">Commonalities</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-compilation">compilation</a>:</td><td> </td><td valign="top"><a href="#Installation">Installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-compile_002dtime-options">compile-time options</a>:</td><td> </td><td valign="top"><a href="#configure-options">configure options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-compile_002dtime-options-1">compile-time options</a>:</td><td> </td><td valign="top"><a href="#Compile_002dtime-options">Compile-time options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Computer-Modern-fonts_002c-and-Troff">Computer Modern fonts, and Troff</a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Computer-Modern-macros">Computer Modern macros</a>:</td><td> </td><td valign="top"><a href="#Initial-Metafont">Initial Metafont</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Computer-Modern-Typefaces_002c-production-of"><cite>Computer Modern Typefaces</cite>, production of</a>:</td><td> </td><td valign="top"><a href="#mft-invocation">mft invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configuration">configuration</a>:</td><td> </td><td valign="top"><a href="#Installation">Installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configuration-file-reading">configuration file reading</a>:</td><td> </td><td valign="top"><a href="#Path-searching">Path searching</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configuration-file-values">configuration file values</a>:</td><td> </td><td valign="top"><a href="#Runtime-options">Runtime options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configuration_002c-compile_002dtime">configuration, compile-time</a>:</td><td> </td><td valign="top"><a href="#configure-options">configure options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-configure-_002d_002dwith_002f_002d_002denable-options"><code>configure --with/--enable <span class="roman">options</span></code></a>:</td><td> </td><td valign="top"><a href="#configure-options">configure options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-CONTENTS_002etex"><code>CONTENTS.tex</code></a>:</td><td> </td><td valign="top"><a href="#weave-invocation">weave invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-control-sequence-names_002c-space-for">control sequence names, space for</a>:</td><td> </td><td valign="top"><a href="#Runtime-options">Runtime options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-conventions-for-options_002c">conventions for options,</a>:</td><td> </td><td valign="top"><a href="#Option-conventions">Option conventions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-conversion_002c-DVI-to-plain-text">conversion, DVI to plain text</a>:</td><td> </td><td valign="top"><a href="#dvitype-invocation">dvitype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-conversion_002c-GF-to-PK">conversion, GF to PK</a>:</td><td> </td><td valign="top"><a href="#gftopk-invocation">gftopk invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-conversion_002c-GF-to-plain-text">conversion, GF to plain text</a>:</td><td> </td><td valign="top"><a href="#gftype-invocation">gftype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-conversion_002c-PK-to-GF">conversion, PK to GF</a>:</td><td> </td><td valign="top"><a href="#pktogf-invocation">pktogf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-conversion_002c-PK-to-plain-text">conversion, PK to plain text</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-conversion_002c-property-list-to-TFM">conversion, property list to TFM</a>:</td><td> </td><td valign="top"><a href="#pltotf-invocation">pltotf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-conversion_002c-property-list-to-VF">conversion, property list to VF</a>:</td><td> </td><td valign="top"><a href="#vptovf-invocation">vptovf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-conversion_002c-TFM-to-property-list">conversion, TFM to property list</a>:</td><td> </td><td valign="top"><a href="#tftopl-invocation">tftopl invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-conversion_002c-VF-to-VPL">conversion, VF to VPL</a>:</td><td> </td><td valign="top"><a href="#vftovp-invocation">vftovp invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-copyright-notices">copyright notices</a>:</td><td> </td><td valign="top"><a href="#Legalisms">Legalisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Cork-encoding-and-ISO-input">Cork encoding and ISO input</a>:</td><td> </td><td valign="top"><a href="#TCX-files">TCX files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-creating-memory-dumps">creating memory dumps</a>:</td><td> </td><td valign="top"><a href="#Creating-memory-dumps">Creating memory dumps</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cross_002dreferenced-bibliography-items">cross-referenced bibliography items</a>:</td><td> </td><td valign="top"><a href="#bibtex-invocation">bibtex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cross_002dreferences_002c-omitting">cross-references, omitting</a>:</td><td> </td><td valign="top"><a href="#weave-invocation">weave invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-current-directory_002c-used-for-output">current directory, used for output</a>:</td><td> </td><td valign="top"><a href="#Output-file-location">Output file location</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Curtis_002c-Pavel">Curtis, Pavel</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Cweb">Cweb</a>:</td><td> </td><td valign="top"><a href="#WEB">WEB</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-CWEB">CWEB</a>:</td><td> </td><td valign="top"><a href="#WEB">WEB</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-D">D</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-date-and-time_002c-in-memory-dumps">date and time, in memory dumps</a>:</td><td> </td><td valign="top"><a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-debugging-DVI-utilities">debugging DVI utilities</a>:</td><td> </td><td valign="top"><a href="#dvitype-invocation">dvitype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-debugging-flags_002c-specifying">debugging flags, specifying</a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-decimal-character-codes_002c-in-TCX-files">decimal character codes, in TCX files</a>:</td><td> </td><td valign="top"><a href="#TCX-files">TCX files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dependencies_002c-hardware">dependencies, hardware</a>:</td><td> </td><td valign="top"><a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-design_002dsize-units">design-size units</a>:</td><td> </td><td valign="top"><a href="#tftopl-invocation">tftopl invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-device-definitions_002c-for-Metafont">device definitions, for Metafont</a>:</td><td> </td><td valign="top"><a href="#Modes">Modes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-device_002dindependent-width">device-independent width</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-device_002dindependent-width-1">device-independent width</a>:</td><td> </td><td valign="top"><a href="#gftype-invocation">gftype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-directory-structure">directory structure</a>:</td><td> </td><td valign="top"><a href="#Installation">Installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-DISPLAY"><code>DISPLAY</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dot-files_002c-written-by-TeX-programs">dot files, written by TeX programs</a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-downloading-of-fonts-for-MetaPost-labels">downloading of fonts for MetaPost labels</a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-DrawingServant"><code>DrawingServant</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dump-file">dump file</a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dumping-memory">dumping memory</a>:</td><td> </td><td valign="top"><a href="#Memory-dumps">Memory dumps</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-DVI-comment_002c-specifying">DVI comment, specifying</a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-DVI-files_002c-converting-to-MPX">DVI files, converting to MPX</a>:</td><td> </td><td valign="top"><a href="#dvitomp-invocation">dvitomp invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-DVI-files_002c-explained">DVI files, explained</a>:</td><td> </td><td valign="top"><a href="#Font-file-formats">Font file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-DVI-format-definition">DVI format definition</a>:</td><td> </td><td valign="top"><a href="#DVI-utilities">DVI utilities</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-DVI-opcodes_002c-showing">DVI opcodes, showing</a>:</td><td> </td><td valign="top"><a href="#dvitype-invocation">dvitype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-DVI-utilities">DVI utilities</a>:</td><td> </td><td valign="top"><a href="#DVI-utilities">DVI utilities</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dvicopy"><code>dvicopy</code></a>:</td><td> </td><td valign="top"><a href="#dvicopy-invocation">dvicopy invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dvitomp"><code>dvitomp</code></a>:</td><td> </td><td valign="top"><a href="#dvitomp-invocation">dvitomp invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dvitype-DVI-validation"><code>dvitype <span class="roman">DVI validation</span></code></a>:</td><td> </td><td valign="top"><a href="#dvitype-invocation">dvitype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dvitype-output-example">dvitype output example</a>:</td><td> </td><td valign="top"><a href="#dvitype-output-example">dvitype output example</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dvitype_002eweb"><code>dvitype.web</code></a>:</td><td> </td><td valign="top"><a href="#DVI-utilities">DVI utilities</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dx-horizontal-escapement">dx <span class="roman">horizontal escapement</span></a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dx-horizontal-escapement-1">dx <span class="roman">horizontal escapement</span></a>:</td><td> </td><td valign="top"><a href="#gftype-invocation">gftype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dy-vertical-escapement">dy <span class="roman">vertical escapement</span></a>:</td><td> </td><td valign="top"><a href="#gftype-invocation">gftype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dynamic-array-allocation">dynamic array allocation</a>:</td><td> </td><td valign="top"><a href="#Runtime-options">Runtime options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dynamic-Metafont-mode-definitions-with-smode">dynamic Metafont mode definitions with <code>smode</code></a>:</td><td> </td><td valign="top"><a href="#Modes">Modes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dynamic-packing-variable">dynamic packing variable</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-E">E</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-e-response-at-error-prompt"><code>e <span class="roman">response at error prompt</span></code></a>:</td><td> </td><td valign="top"><a href="#Editor-invocation">Editor invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-e_002dcircumflex">e-circumflex</a>:</td><td> </td><td valign="top"><a href="#g_t_005ccharsubdef">\charsubdef</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-e_002dTeX">e-TeX</a>:</td><td> </td><td valign="top"><a href="#TeX-extensions">TeX extensions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-e_002emft"><code>e.mft</code></a>:</td><td> </td><td valign="top"><a href="#mft-invocation">mft invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-EC-fonts">EC fonts</a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-EC-fonts-1">EC fonts</a>:</td><td> </td><td valign="top"><a href="#mf-invocation">mf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-editing-of-bitmap-fonts">editing of bitmap fonts</a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-editor-invoked-at-error">editor invoked at error</a>:</td><td> </td><td valign="top"><a href="#Editor-invocation">Editor invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eight_002dbit-characters-in-filenames">eight-bit characters in filenames</a>:</td><td> </td><td valign="top"><a href="#g_t_005cinput-filenames">\input filenames</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-empty_002etcx"><code>empty.tcx</code></a>:</td><td> </td><td valign="top"><a href="#TCX-files">TCX files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-endian-dependencies">endian dependencies</a>:</td><td> </td><td valign="top"><a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eoc-GF-command"><code>eoc <span class="roman">GF command</span></code></a>:</td><td> </td><td valign="top"><a href="#gftype-invocation">gftype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Eplain">Eplain</a>:</td><td> </td><td valign="top"><a href="#Formats">Formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-epsf"><code>epsf</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-errors_002c-editor-invoked-at">errors, editor invoked at</a>:</td><td> </td><td valign="top"><a href="#Editor-invocation">Editor invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-escapement_002c-horizontal">escapement, horizontal</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-escapement_002c-horizontal-1">escapement, horizontal</a>:</td><td> </td><td valign="top"><a href="#gftype-invocation">gftype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-escapement_002c-vertical">escapement, vertical</a>:</td><td> </td><td valign="top"><a href="#gftype-invocation">gftype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-etex-for-MetaPost-labels"><code>etex <span class="roman">for MetaPost labels</span></code></a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-executables_002c-shared-initial-and-virgin">executables, shared initial and virgin</a>:</td><td> </td><td valign="top"><a href="#Initial-and-virgin">Initial and virgin</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-exit-status_002c-of-shell-escape">exit status, of shell escape</a>:</td><td> </td><td valign="top"><a href="#Shell-escapes">Shell escapes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-expanded-plain-format">expanded plain format</a>:</td><td> </td><td valign="top"><a href="#Formats">Formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-extensions-to-TeX">extensions to TeX</a>:</td><td> </td><td valign="top"><a href="#TeX-extensions">TeX extensions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-extra_005fmem_005fbot"><code>extra_mem_bot</code></a>:</td><td> </td><td valign="top"><a href="#Runtime-options">Runtime options</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-F">F</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-FACE-property"><code>FACE <span class="roman">property</span></code></a>:</td><td> </td><td valign="top"><a href="#tftopl-invocation">tftopl invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-FAMILY-property"><code>FAMILY <span class="roman">property</span></code></a>:</td><td> </td><td valign="top"><a href="#tftopl-invocation">tftopl invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-FAMILY-property-1"><code>FAMILY <span class="roman">property</span></code></a>:</td><td> </td><td valign="top"><a href="#tftopl-invocation">tftopl invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Ferguson_002c-Michael">Ferguson, Michael</a>:</td><td> </td><td valign="top"><a href="#MLTeX">MLTeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-file-formats-for-fonts">file formats for fonts</a>:</td><td> </td><td valign="top"><a href="#Font-file-formats">Font file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-file-recorder">file recorder</a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-filename-conventions_002c-in-input-files">filename conventions, in input files</a>:</td><td> </td><td valign="top"><a href="#g_t_005cinput-filenames">\input filenames</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-filenames-starting-with-_002d">filenames starting with ‘<samp>-</samp>’</a>:</td><td> </td><td valign="top"><a href="#Option-conventions">Option conventions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-first-line-of-the-main-input-file">first line of the main input file</a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fixed_002dpoint-arithmetic">fixed-point arithmetic</a>:</td><td> </td><td valign="top"><a href="#Compile_002dtime-options">Compile-time options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-FIXPT"><code>FIXPT</code></a>:</td><td> </td><td valign="top"><a href="#Compile_002dtime-options">Compile-time options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-flag-byte">flag byte</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-floating_002dpoint-arithmetic">floating-point arithmetic</a>:</td><td> </td><td valign="top"><a href="#Compile_002dtime-options">Compile-time options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-floating_002dpoint-values">floating-point values</a>:</td><td> </td><td valign="top"><a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fmt-file_002c-determining">fmt file, determining</a>:</td><td> </td><td valign="top"><a href="#Determining-the-memory-dump-to-use">Determining the memory dump to use</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fmt-files">fmt files</a>:</td><td> </td><td valign="top"><a href="#Initial-TeX">Initial TeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fmt-files_002c-sharing">fmt files, sharing</a>:</td><td> </td><td valign="top"><a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fmts-Make-target"><code>fmts <span class="roman">Make target</span></code></a>:</td><td> </td><td valign="top"><a href="#Additional-targets">Additional targets</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-font-aliases">font aliases</a>:</td><td> </td><td valign="top"><a href="#Path-searching">Path searching</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-font-character-code_002c-translating">font character code, translating</a>:</td><td> </td><td valign="top"><a href="#TCX-files">TCX files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-font-design">font design</a>:</td><td> </td><td valign="top"><a href="#Metafont">Metafont</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-font-downloading-for-MetaPost-labels">font downloading for MetaPost labels</a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-font-file-formats">font file formats</a>:</td><td> </td><td valign="top"><a href="#Font-file-formats">Font file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-font-proofs">font proofs</a>:</td><td> </td><td valign="top"><a href="#gftodvi-invocation">gftodvi invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-font-utilities">font utilities</a>:</td><td> </td><td valign="top"><a href="#Font-utilities">Font utilities</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-font-utilities_002c-non_002dWeb2c">font utilities, non-Web2c</a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fontforge"><code>fontforge</code></a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fontinst_002c-for-creating-virtual-fonts"><code>fontinst<span class="roman">, for creating virtual fonts</span></code></a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fonts_002c-basic">fonts, basic</a>:</td><td> </td><td valign="top"><a href="#Installation">Installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fontutils"><code>fontutils</code></a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-font_005fmem_005fsize"><code>font_mem_size</code></a>:</td><td> </td><td valign="top"><a href="#Runtime-options">Runtime options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-format-files">format files</a>:</td><td> </td><td valign="top"><a href="#Initial-TeX">Initial TeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-formats-for-TeX">formats for TeX</a>:</td><td> </td><td valign="top"><a href="#Formats">Formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-formats-Make-target"><code>formats <span class="roman">Make target</span></code></a>:</td><td> </td><td valign="top"><a href="#Additional-targets">Additional targets</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fraction-routines">fraction routines</a>:</td><td> </td><td valign="top"><a href="#Compile_002dtime-options">Compile-time options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Free-Software-Foundation-documentation-system">Free Software Foundation documentation system</a>:</td><td> </td><td valign="top"><a href="#Formats">Formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-freedom-of-Web2c">freedom of Web2c</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ftp_002emath_002eutah_002eedu"><code>ftp.math.utah.edu</code></a>:</td><td> </td><td valign="top"><a href="#bibtex-invocation">bibtex invocation</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-G">G</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-generating-source-specials">generating source specials</a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-geometric-designs">geometric designs</a>:</td><td> </td><td valign="top"><a href="#Metafont">Metafont</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-geometric-font-scaling">geometric font scaling</a>:</td><td> </td><td valign="top"><a href="#Font-file-formats">Font file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-geometry-for-Metafont">geometry for Metafont</a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-getopt_005flong_005fonly"><code>getopt_long_only</code></a>:</td><td> </td><td valign="top"><a href="#Option-conventions">Option conventions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-GF-files_002c-explained">GF files, explained</a>:</td><td> </td><td valign="top"><a href="#Font-file-formats">Font file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-GF-files_002c-output-by-Metafont">GF files, output by Metafont</a>:</td><td> </td><td valign="top"><a href="#mf-invocation">mf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-GF-format-definition">GF format definition</a>:</td><td> </td><td valign="top"><a href="#Font-utilities">Font utilities</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-GF-output">GF output</a>:</td><td> </td><td valign="top"><a href="#mf-invocation">mf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-GF_002c-converting-PK-to">GF, converting PK to</a>:</td><td> </td><td valign="top"><a href="#pktogf-invocation">pktogf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-GF_002c-converting-to-PK">GF, converting to PK</a>:</td><td> </td><td valign="top"><a href="#gftopk-invocation">gftopk invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-gftodvi"><code>gftodvi</code></a>:</td><td> </td><td valign="top"><a href="#gftodvi-invocation">gftodvi invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-gftopk"><code>gftopk</code></a>:</td><td> </td><td valign="top"><a href="#gftopk-invocation">gftopk invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-gftopxl"><code>gftopxl</code></a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-gftype-GF-validation"><code>gftype <span class="roman">GF validation</span></code></a>:</td><td> </td><td valign="top"><a href="#gftype-invocation">gftype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-gftype_002eweb"><code>gftype.web</code></a>:</td><td> </td><td valign="top"><a href="#Font-utilities">Font utilities</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-glue-ratio-representations">glue ratio representations</a>:</td><td> </td><td valign="top"><a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-glue_002c-memory-for">glue, memory for</a>:</td><td> </td><td valign="top"><a href="#Runtime-options">Runtime options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-glyph-substitutions">glyph substitutions</a>:</td><td> </td><td valign="top"><a href="#MLTeX">MLTeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-gray-font">gray font</a>:</td><td> </td><td valign="top"><a href="#gftodvi-invocation">gftodvi invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Gruff_002c-Billy-Goat">Gruff, Billy Goat</a>:</td><td> </td><td valign="top"><a href="#Triptrap">Triptrap</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-gsftopk"><code>gsftopk</code></a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-H">H</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-Harbison_002c-Samuel-P_002e">Harbison, Samuel P.</a>:</td><td> </td><td valign="top"><a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hardware-and-memory-dumps">hardware and memory dumps</a>:</td><td> </td><td valign="top"><a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hash-table_002c-increasing-size-of">hash table, increasing size of</a>:</td><td> </td><td valign="top"><a href="#Runtime-options">Runtime options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hash_005fextra"><code>hash_extra</code></a>:</td><td> </td><td valign="top"><a href="#Runtime-options">Runtime options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-headerbyte-information"><code>headerbyte <span class="roman">information</span></code></a>:</td><td> </td><td valign="top"><a href="#tftopl-invocation">tftopl invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-height_002c-in-pixels">height, in pixels</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-help_002c-online">help, online</a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Henry_002c-Patrick">Henry, Patrick</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Herberts_002c-Mathias">Herberts, Mathias</a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hex-character-codes_002c-in-TCX-files">hex character codes, in TCX files</a>:</td><td> </td><td valign="top"><a href="#TCX-files">TCX files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-history">history</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Hobby_002c-John">Hobby, John</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-horizontal-escapement">horizontal escapement</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-horizontal-escapement-1">horizontal escapement</a>:</td><td> </td><td valign="top"><a href="#gftype-invocation">gftype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hp2627"><code>hp2627</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-human-languages_002c-supported-in-TeX">human languages, supported in TeX</a>:</td><td> </td><td valign="top"><a href="#Languages-and-hyphenation">Languages and hyphenation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-human_002dreadable-text_002c-converting-DVI-to">human-readable text, converting DVI to</a>:</td><td> </td><td valign="top"><a href="#dvitype-invocation">dvitype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-human_002dreadable-text_002c-converting-GF-to">human-readable text, converting GF to</a>:</td><td> </td><td valign="top"><a href="#gftype-invocation">gftype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-human_002dreadable-text_002c-converting-PK-to">human-readable text, converting PK to</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-human_002dreadable-text_002c-converting-TFM-to">human-readable text, converting TFM to</a>:</td><td> </td><td valign="top"><a href="#tftopl-invocation">tftopl invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-human_002dreadable-text_002c-converting-VF-to">human-readable text, converting VF to</a>:</td><td> </td><td valign="top"><a href="#vftovp-invocation">vftovp invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hypertext">hypertext</a>:</td><td> </td><td valign="top"><a href="#TeX-extensions">TeX extensions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyphenation-and-languages">hyphenation and languages</a>:</td><td> </td><td valign="top"><a href="#Languages-and-hyphenation">Languages and hyphenation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyphenation-patterns_002c-creating">hyphenation patterns, creating</a>:</td><td> </td><td valign="top"><a href="#patgen-invocation">patgen invocation</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-I">I</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-ice-cream">ice cream</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-identifier-case">identifier case</a>:</td><td> </td><td valign="top"><a href="#tangle-invocation">tangle invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-identifier-collisions">identifier collisions</a>:</td><td> </td><td valign="top"><a href="#tangle-invocation">tangle invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-identifier-length">identifier length</a>:</td><td> </td><td valign="top"><a href="#tangle-invocation">tangle invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-identifiers-with-underlines">identifiers with underlines</a>:</td><td> </td><td valign="top"><a href="#tangle-invocation">tangle invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ieeetr_002ebst"><code>ieeetr.bst</code></a>:</td><td> </td><td valign="top"><a href="#Basic-BibTeX-style-files">Basic BibTeX style files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-il1_002dt1_002etcx"><code>il1-t1.tcx</code></a>:</td><td> </td><td valign="top"><a href="#TCX-files">TCX files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-il2_002dt1_002etcx"><code>il2-t1.tcx</code></a>:</td><td> </td><td valign="top"><a href="#TCX-files">TCX files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Info-format">Info format</a>:</td><td> </td><td valign="top"><a href="#Formats">Formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-initial-form_002c-enabling">initial form, enabling</a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-initial-Metafont">initial Metafont</a>:</td><td> </td><td valign="top"><a href="#Initial-Metafont">Initial Metafont</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-initial-MetaPost">initial MetaPost</a>:</td><td> </td><td valign="top"><a href="#Initial-MetaPost">Initial MetaPost</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-initial-programs">initial programs</a>:</td><td> </td><td valign="top"><a href="#Initial-and-virgin">Initial and virgin</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-initial-TeX">initial TeX</a>:</td><td> </td><td valign="top"><a href="#Initial-TeX">Initial TeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-initializations_002c-lengthy">initializations, lengthy</a>:</td><td> </td><td valign="top"><a href="#Initial-and-virgin">Initial and virgin</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-input-filenames">input filenames</a>:</td><td> </td><td valign="top"><a href="#g_t_005cinput-filenames">\input filenames</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-install_002dbases-Make-target"><code>install-bases <span class="roman">Make target</span></code></a>:</td><td> </td><td valign="top"><a href="#Additional-targets">Additional targets</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-install_002dfmts-Make-target"><code>install-fmts <span class="roman">Make target</span></code></a>:</td><td> </td><td valign="top"><a href="#Additional-targets">Additional targets</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-install_002dformats-Make-target"><code>install-formats <span class="roman">Make target</span></code></a>:</td><td> </td><td valign="top"><a href="#Additional-targets">Additional targets</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-install_002dmems-Make-target"><code>install-mems <span class="roman">Make target</span></code></a>:</td><td> </td><td valign="top"><a href="#Additional-targets">Additional targets</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-installation">installation</a>:</td><td> </td><td valign="top"><a href="#Installation">Installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-interaction-between-TCX-files-and-_002d8bit_002e">interaction between TCX files and ‘<samp>-8bit</samp>’.</a>:</td><td> </td><td valign="top"><a href="#TCX-files">TCX files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-interaction-mode">interaction mode</a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-international-characters">international characters</a>:</td><td> </td><td valign="top"><a href="#TCX-files">TCX files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-introduction">introduction</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-IPC">IPC</a>:</td><td> </td><td valign="top"><a href="#IPC-and-TeX">IPC and TeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-IPC_005fDEBUG"><code>IPC_DEBUG</code></a>:</td><td> </td><td valign="top"><a href="#Compile_002dtime-options">Compile-time options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-IPC_005fDEBUG-1"><code>IPC_DEBUG</code></a>:</td><td> </td><td valign="top"><a href="#IPC-and-TeX">IPC and TeX</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-J">J</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-job-name">job name</a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-K">K</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-kerning-table_002c-in-TFM-files">kerning table, in TFM files</a>:</td><td> </td><td valign="top"><a href="#tftopl-invocation">tftopl invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-keyboard-character-code_002c-translating">keyboard character code, translating</a>:</td><td> </td><td valign="top"><a href="#TCX-files">TCX files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Knuth_002c-Donald-E_002e">Knuth, Donald E.</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Knuth_002c-Donald-E_002e-1">Knuth, Donald E.</a>:</td><td> </td><td valign="top"><a href="#mft-invocation">mft invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KPATHSEA_005fDEBUG"><code>KPATHSEA_DEBUG</code></a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-KRN-property"><code>KRN <span class="roman">property</span></code></a>:</td><td> </td><td valign="top"><a href="#tftopl-invocation">tftopl invocation</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-L">L</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-label-font">label font</a>:</td><td> </td><td valign="top"><a href="#gftodvi-invocation">gftodvi invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-LABEL-property"><code>LABEL <span class="roman">property</span></code></a>:</td><td> </td><td valign="top"><a href="#tftopl-invocation">tftopl invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-language-support-in-TeX">language support in TeX</a>:</td><td> </td><td valign="top"><a href="#Languages-and-hyphenation">Languages and hyphenation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-languages_002c-hyphenation-rules-for">languages, hyphenation rules for</a>:</td><td> </td><td valign="top"><a href="#patgen-invocation">patgen invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-LaTeX">LaTeX</a>:</td><td> </td><td valign="top"><a href="#Formats">Formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Latin-Modern">Latin Modern</a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-left-side-bearing">left side bearing</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-left-side-bearing-1">left side bearing</a>:</td><td> </td><td valign="top"><a href="#gftype-invocation">gftype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-legalisms">legalisms</a>:</td><td> </td><td valign="top"><a href="#Legalisms">Legalisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-licensing-terms">licensing terms</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-LIG-property"><code>LIG <span class="roman">property</span></code></a>:</td><td> </td><td valign="top"><a href="#tftopl-invocation">tftopl invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ligature-table_002c-in-TFM-files">ligature table, in TFM files</a>:</td><td> </td><td valign="top"><a href="#tftopl-invocation">tftopl invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-LIGTABLE-property"><code>LIGTABLE <span class="roman">property</span></code></a>:</td><td> </td><td valign="top"><a href="#tftopl-invocation">tftopl invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-linking-binaries">linking binaries</a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-links-to-binaries">links to binaries</a>:</td><td> </td><td valign="top"><a href="#Determining-the-memory-dump-to-use">Determining the memory dump to use</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-literate-programming">literate programming</a>:</td><td> </td><td valign="top"><a href="#WEB">WEB</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-LittleEndian-machines">LittleEndian machines</a>:</td><td> </td><td valign="top"><a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-log-file_002c-BibTeX">log file, BibTeX</a>:</td><td> </td><td valign="top"><a href="#bibtex-invocation">bibtex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Lua">Lua</a>:</td><td> </td><td valign="top"><a href="#TeX-extensions">TeX extensions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-luaTeX">luaTeX</a>:</td><td> </td><td valign="top"><a href="#TeX-extensions">TeX extensions</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-M">M</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-machine-dependencies">machine dependencies</a>:</td><td> </td><td valign="top"><a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-machine_002dreadable_002c-converting-property-lists-to">machine-readable, converting property lists to</a>:</td><td> </td><td valign="top"><a href="#pltotf-invocation">pltotf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-machine_002dreadable_002c-converting-property-lists-to-1">machine-readable, converting property lists to</a>:</td><td> </td><td valign="top"><a href="#vptovf-invocation">vptovf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MacKay_002c-Pierre">MacKay, Pierre</a>:</td><td> </td><td valign="top"><a href="#Font-file-formats">Font file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-macro-packages_002c-major-TeX">macro packages, major TeX</a>:</td><td> </td><td valign="top"><a href="#Formats">Formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-macros_002c-basic">macros, basic</a>:</td><td> </td><td valign="top"><a href="#Installation">Installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-macros_002c-predefining-in-memory-dumps">macros, predefining in memory dumps</a>:</td><td> </td><td valign="top"><a href="#Memory-dumps">Memory dumps</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-magnification">magnification</a>:</td><td> </td><td valign="top"><a href="#dvicopy-invocation">dvicopy invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-magnification-1">magnification</a>:</td><td> </td><td valign="top"><a href="#dvitype-invocation">dvitype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-main_005fmemory"><code>main_memory</code></a>:</td><td> </td><td valign="top"><a href="#Runtime-options">Runtime options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Make-targets_002c-additional">Make targets, additional</a>:</td><td> </td><td valign="top"><a href="#Additional-targets">Additional targets</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Martin_002c-Rick">Martin, Rick</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Mathematical-Reviews">Mathematical Reviews</a>:</td><td> </td><td valign="top"><a href="#Formats">Formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mathematical-typesetting">mathematical typesetting</a>:</td><td> </td><td valign="top"><a href="#TeX">TeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mem-file_002c-determining">mem file, determining</a>:</td><td> </td><td valign="top"><a href="#Determining-the-memory-dump-to-use">Determining the memory dump to use</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mem-files_002c-sharing">mem files, sharing</a>:</td><td> </td><td valign="top"><a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-memory-dump-to-use_002c-determining">memory dump to use, determining</a>:</td><td> </td><td valign="top"><a href="#Determining-the-memory-dump-to-use">Determining the memory dump to use</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-memory-dumps">memory dumps</a>:</td><td> </td><td valign="top"><a href="#Memory-dumps">Memory dumps</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-memory-dumps-and-hardware">memory dumps and hardware</a>:</td><td> </td><td valign="top"><a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-memory-dumps_002c-contain-date-and-time">memory dumps, contain date and time</a>:</td><td> </td><td valign="top"><a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-memory-dumps_002c-creating">memory dumps, creating</a>:</td><td> </td><td valign="top"><a href="#Creating-memory-dumps">Creating memory dumps</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mems-Make-target"><code>mems <span class="roman">Make target</span></code></a>:</td><td> </td><td valign="top"><a href="#Additional-targets">Additional targets</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-meta-characters-in-filenames">meta characters in filenames</a>:</td><td> </td><td valign="top"><a href="#g_t_005cinput-filenames">\input filenames</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Metafont">Metafont</a>:</td><td> </td><td valign="top"><a href="#Metafont">Metafont</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Metafont-geometry">Metafont geometry</a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Metafont-graphics">Metafont graphics</a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Metafont-input-files">Metafont input files</a>:</td><td> </td><td valign="top"><a href="#mf-invocation">mf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Metafont-invocation">Metafont invocation</a>:</td><td> </td><td valign="top"><a href="#mf-invocation">mf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Metafont-meets-PostScript">Metafont meets PostScript</a>:</td><td> </td><td valign="top"><a href="#MetaPost">MetaPost</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Metafont-online-support_002c-new-devices">Metafont online support, new devices</a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Metafont-source_002c-prettyprinting">Metafont source, prettyprinting</a>:</td><td> </td><td valign="top"><a href="#mft-invocation">mft invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Metafont_002c-compatibility-in-MetaPost">Metafont, compatibility in MetaPost</a>:</td><td> </td><td valign="top"><a href="#Initial-MetaPost">Initial MetaPost</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Metafont_002c-initial">Metafont, initial</a>:</td><td> </td><td valign="top"><a href="#Initial-Metafont">Initial Metafont</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Metafont_002c-MetaPost_002c-and-TeX">Metafont, MetaPost, and TeX</a>:</td><td> </td><td valign="top"><a href="#Three-programs">Three programs</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MetaPost">MetaPost</a>:</td><td> </td><td valign="top"><a href="#MetaPost">MetaPost</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MetaPost-and-plain-Metafont-compatibility">MetaPost and plain Metafont compatibility</a>:</td><td> </td><td valign="top"><a href="#Initial-MetaPost">Initial MetaPost</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MetaPost-input-files">MetaPost input files</a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MetaPost-invocation">MetaPost invocation</a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MetaPost-source_002c-prettyprinting">MetaPost source, prettyprinting</a>:</td><td> </td><td valign="top"><a href="#mft-invocation">mft invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MetaPost_002c-initial">MetaPost, initial</a>:</td><td> </td><td valign="top"><a href="#Initial-MetaPost">Initial MetaPost</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MetaPost_002c-TeX_002c-and-Metafont">MetaPost, TeX, and Metafont</a>:</td><td> </td><td valign="top"><a href="#Three-programs">Three programs</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-metatype1"><code>metatype1</code></a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mf"><code>mf</code></a>:</td><td> </td><td valign="top"><a href="#mf-invocation">mf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mf_002ebase"><code>mf.base</code></a>:</td><td> </td><td valign="top"><a href="#Initial-Metafont">Initial Metafont</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MFEDIT"><code>MFEDIT</code></a>:</td><td> </td><td valign="top"><a href="#Editor-invocation">Editor invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mfplain"><code>mfplain</code></a>:</td><td> </td><td valign="top"><a href="#Initial-MetaPost">Initial MetaPost</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mfput"><code>mfput</code></a>:</td><td> </td><td valign="top"><a href="#mf-invocation">mf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mft"><code>mft</code></a>:</td><td> </td><td valign="top"><a href="#mft-invocation">mft invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mftalk"><code>mftalk</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MFTERM"><code>MFTERM</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mftmac_002etex"><code>mftmac.tex</code></a>:</td><td> </td><td valign="top"><a href="#mft-invocation">mft invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-micro_002dtypography">micro-typography</a>:</td><td> </td><td valign="top"><a href="#TeX-extensions">TeX extensions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mktexmf_002c-disabling"><code>mktexmf<span class="roman">, disabling</span></code></a>:</td><td> </td><td valign="top"><a href="#mf-invocation">mf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mktextfM_002c-disabling"><code>mktextfM<span class="roman">, disabling</span></code></a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mltex"><code>mltex</code></a>:</td><td> </td><td valign="top"><a href="#MLTeX">MLTeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MLTeX_002c-enabling">MLTeX, enabling</a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mode-needed-to-run-Metafont">mode needed to run Metafont</a>:</td><td> </td><td valign="top"><a href="#mf-invocation">mf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-modes-file-needed-for-Metafont">modes file needed for Metafont</a>:</td><td> </td><td valign="top"><a href="#Modes">Modes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-modes_002emf-recommended-modes-file"><code>modes.mf <span class="roman">recommended modes file</span></code></a>:</td><td> </td><td valign="top"><a href="#Modes">Modes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mode_005fdef"><code>mode_def</code></a>:</td><td> </td><td valign="top"><a href="#Modes">Modes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mode_005fsetup"><code>mode_setup</code></a>:</td><td> </td><td valign="top"><a href="#Modes">Modes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Morgan_002c-Tim">Morgan, Tim</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Morris_002c-Bob">Morris, Bob</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MPEDIT"><code>MPEDIT</code></a>:</td><td> </td><td valign="top"><a href="#Editor-invocation">Editor invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mpgraph_002eps"><code>mpgraph.ps</code></a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mpman_002eps"><code>mpman.ps</code></a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mpost"><code>mpost</code></a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mpost_002c-reason-for-name-change"><code>mpost<span class="roman">, reason for name change</span></code></a>:</td><td> </td><td valign="top"><a href="#Installation">Installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mpout"><code>mpout</code></a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mproof_002etex"><code>mproof.tex</code></a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mptrap-Make-target"><code>mptrap <span class="roman">Make target</span></code></a>:</td><td> </td><td valign="top"><a href="#Additional-targets">Additional targets</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mptrap-test">mptrap test</a>:</td><td> </td><td valign="top"><a href="#Triptrap">Triptrap</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mptrap_002ereadme"><code>mptrap.readme</code></a>:</td><td> </td><td valign="top"><a href="#Triptrap">Triptrap</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MPX-files_002c-converting-from-DVI-files">MPX files, converting from DVI files</a>:</td><td> </td><td valign="top"><a href="#dvitomp-invocation">dvitomp invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Multi_002dlingual-TeX">Multi-lingual TeX</a>:</td><td> </td><td valign="top"><a href="#MLTeX">MLTeX</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-N">N</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-N-tilde">N tilde</a>:</td><td> </td><td valign="top"><a href="#g_t_005ccharsubdef">\charsubdef</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-new-graphics-support-for-Metafont">new graphics support for Metafont</a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-newrow-GF-command"><code>newrow <span class="roman">GF command</span></code></a>:</td><td> </td><td valign="top"><a href="#gftype-invocation">gftype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-next"><code>next</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-non_002dUnix-system_002c-compiling-on">non-Unix system, compiling on</a>:</td><td> </td><td valign="top"><a href="#Additional-targets">Additional targets</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-non_002dwindows_002dcapable-Metafont">non-windows-capable Metafont</a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-NO_005fX11WIN"><code>NO_X11WIN</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-NUL_002c-not-allowed-in-filenames">NUL, not allowed in filenames</a>:</td><td> </td><td valign="top"><a href="#g_t_005cinput-filenames">\input filenames</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-O">O</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-octal-character-codes_002c-in-TCX-files">octal character codes, in TCX files</a>:</td><td> </td><td valign="top"><a href="#TCX-files">TCX files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-offset-for-overflow-labels">offset for overflow labels</a>:</td><td> </td><td valign="top"><a href="#gftodvi-invocation">gftodvi invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-online-Metafont-graphics">online Metafont graphics</a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-opcodes_002c-showing-DVI">opcodes, showing DVI</a>:</td><td> </td><td valign="top"><a href="#dvitype-invocation">dvitype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-optical-font-scaling">optical font scaling</a>:</td><td> </td><td valign="top"><a href="#Font-file-formats">Font file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-option-conventions">option conventions</a>:</td><td> </td><td valign="top"><a href="#Option-conventions">Option conventions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-origin">origin</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-output-directory_002c-specifying">output directory, specifying</a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-output-directory_002c-specifying-1">output directory, specifying</a>:</td><td> </td><td valign="top"><a href="#Output-file-location">Output file location</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-output-file-location">output file location</a>:</td><td> </td><td valign="top"><a href="#Output-file-location">Output file location</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-output-files_002c-written-by-TeX-programs">output files, written by TeX programs</a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-output_005fcomment-for-DVI-files"><code>output_comment <span class="roman">for DVI files</span></code></a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-overflow-label-offset">overflow label offset</a>:</td><td> </td><td valign="top"><a href="#gftodvi-invocation">gftodvi invocation</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-P">P</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-packet-length">packet length</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-page_002c-starting">page, starting</a>:</td><td> </td><td valign="top"><a href="#dvicopy-invocation">dvicopy invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-page_002c-starting-1">page, starting</a>:</td><td> </td><td valign="top"><a href="#dvitype-invocation">dvitype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-parsing-the-first-line">parsing the first line</a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Pascal_002c-creating-from-WEB">Pascal, creating from WEB</a>:</td><td> </td><td valign="top"><a href="#tangle-invocation">tangle invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-patgen"><code>patgen</code></a>:</td><td> </td><td valign="top"><a href="#patgen-invocation">patgen invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-path-searching">path searching</a>:</td><td> </td><td valign="top"><a href="#Path-searching">Path searching</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-path-searching-debugging">path searching debugging</a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PDF">PDF</a>:</td><td> </td><td valign="top"><a href="#TeX-extensions">TeX extensions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PDF_002c-and-_002emps-files">PDF, and <code>.mps</code> files</a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pdfTeX">pdfTeX</a>:</td><td> </td><td valign="top"><a href="#TeX-extensions">TeX extensions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-permissions_002c-legal">permissions, legal</a>:</td><td> </td><td valign="top"><a href="#Legalisms">Legalisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PFA-and-PFB-conversion">PFA and PFB conversion</a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pfaedit"><code>pfaedit</code></a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PiCTeX_002c-increasing-memory-for">PiCTeX, increasing memory for</a>:</td><td> </td><td valign="top"><a href="#Runtime-options">Runtime options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pipes_002c-reading-and-writing">pipes, reading and writing</a>:</td><td> </td><td valign="top"><a href="#Shell-escapes">Shell escapes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pixel-height">pixel height</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pixel-width">pixel width</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PK-bitmaps-from-PostScript">PK bitmaps from PostScript</a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PK-files_002c-explained">PK files, explained</a>:</td><td> </td><td valign="top"><a href="#Font-file-formats">Font file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PK-files_002c-not-output-by-Metafont">PK files, not output by Metafont</a>:</td><td> </td><td valign="top"><a href="#mf-invocation">mf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PK-format-definition">PK format definition</a>:</td><td> </td><td valign="top"><a href="#Font-utilities">Font utilities</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PK_002c-converting-GF-to">PK, converting GF to</a>:</td><td> </td><td valign="top"><a href="#gftopk-invocation">gftopk invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PK_002c-converting-to-GF">PK, converting to GF</a>:</td><td> </td><td valign="top"><a href="#pktogf-invocation">pktogf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pktogf"><code>pktogf</code></a>:</td><td> </td><td valign="top"><a href="#pktogf-invocation">pktogf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pktype-PK-validation"><code>pktype <span class="roman">PK validation</span></code></a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pktype_002eweb"><code>pktype.web</code></a>:</td><td> </td><td valign="top"><a href="#Font-utilities">Font utilities</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PL-files_002c-explained">PL files, explained</a>:</td><td> </td><td valign="top"><a href="#Font-file-formats">Font file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-plain-Metafont_002c-compatibility-in-MetaPost">plain Metafont, compatibility in MetaPost</a>:</td><td> </td><td valign="top"><a href="#Initial-MetaPost">Initial MetaPost</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-plain-text_002c-converting-DVI-to">plain text, converting DVI to</a>:</td><td> </td><td valign="top"><a href="#dvitype-invocation">dvitype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-plain-text_002c-converting-GF-to">plain text, converting GF to</a>:</td><td> </td><td valign="top"><a href="#gftype-invocation">gftype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-plain-text_002c-converting-PK-to">plain text, converting PK to</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-plain-text_002c-converting-TFM-to">plain text, converting TFM to</a>:</td><td> </td><td valign="top"><a href="#tftopl-invocation">tftopl invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-plain-text_002c-converting-VF-to">plain text, converting VF to</a>:</td><td> </td><td valign="top"><a href="#vftovp-invocation">vftovp invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-plain_002ebase"><code>plain.base</code></a>:</td><td> </td><td valign="top"><a href="#Initial-Metafont">Initial Metafont</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-plain_002ebst"><code>plain.bst</code></a>:</td><td> </td><td valign="top"><a href="#Basic-BibTeX-style-files">Basic BibTeX style files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-plain_002efmt"><code>plain.fmt</code></a>:</td><td> </td><td valign="top"><a href="#Initial-TeX">Initial TeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-plain_002emft"><code>plain.mft</code></a>:</td><td> </td><td valign="top"><a href="#mft-invocation">mft invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pltotf"><code>pltotf</code></a>:</td><td> </td><td valign="top"><a href="#pltotf-invocation">pltotf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pool-file_002c-writing">pool file, writing</a>:</td><td> </td><td valign="top"><a href="#tangle-invocation">tangle invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Poole_002c-Simon">Poole, Simon</a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pooltype"><code>pooltype</code></a>:</td><td> </td><td valign="top"><a href="#pooltype-invocation">pooltype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-portable-filenames">portable filenames</a>:</td><td> </td><td valign="top"><a href="#g_t_005cinput-filenames">\input filenames</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PostScript-fonts_002c-and-Troff">PostScript fonts, and Troff</a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PostScript-meets-Metafont">PostScript meets Metafont</a>:</td><td> </td><td valign="top"><a href="#MetaPost">MetaPost</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PostScript-output">PostScript output</a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PostScript-to-PK-bitmaps">PostScript to PK bitmaps</a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PostScript-Type-1-font-conversion">PostScript Type 1 font conversion</a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PostScript_002c-and-font-scaling">PostScript, and font scaling</a>:</td><td> </td><td valign="top"><a href="#Font-file-formats">Font file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-potrace"><code>potrace</code></a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-predefined-macros-and-memory-dumps">predefined macros and memory dumps</a>:</td><td> </td><td valign="top"><a href="#Memory-dumps">Memory dumps</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-prettyprinting-Metafont-source">prettyprinting Metafont source</a>:</td><td> </td><td valign="top"><a href="#mft-invocation">mft invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-prettyprinting-WEB-programs">prettyprinting WEB programs</a>:</td><td> </td><td valign="top"><a href="#weave-invocation">weave invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-primitives_002c-new">primitives, new</a>:</td><td> </td><td valign="top"><a href="#TeX-extensions">TeX extensions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-printable-characters_002c-specifying">printable characters, specifying</a>:</td><td> </td><td valign="top"><a href="#TCX-files">TCX files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-printer-characteristics_002c-for-Metafont">printer characteristics, for Metafont</a>:</td><td> </td><td valign="top"><a href="#Modes">Modes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-production-use">production use</a>:</td><td> </td><td valign="top"><a href="#Initial-and-virgin">Initial and virgin</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-program-name_002c-determines-memory-dump">program name, determines memory dump</a>:</td><td> </td><td valign="top"><a href="#Determining-the-memory-dump-to-use">Determining the memory dump to use</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-program-names_002c-special">program names, special</a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-program-names_002c-special-1">program names, special</a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-program-names_002c-special-2">program names, special</a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-prologues"><code>prologues</code></a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-prologues_002c-and-EPSF-output"><code>prologues<span class="roman">, and EPSF output</span></code></a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-proof-mode"><code>proof <span class="roman">mode</span></code></a>:</td><td> </td><td valign="top"><a href="#mf-invocation">mf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-proof-sheets_002c-of-fonts">proof sheets, of fonts</a>:</td><td> </td><td valign="top"><a href="#gftodvi-invocation">gftodvi invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-property-list-format">property list format</a>:</td><td> </td><td valign="top"><a href="#tftopl-invocation">tftopl invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-property-list_002c-converting-TFM-to">property list, converting TFM to</a>:</td><td> </td><td valign="top"><a href="#tftopl-invocation">tftopl invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-property-list_002c-converting-VF-to-virtual">property list, converting VF to virtual</a>:</td><td> </td><td valign="top"><a href="#vftovp-invocation">vftovp invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ps2pk"><code>ps2pk</code></a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-psfonts_002emap_002c-read-by-MetaPost"><code>psfonts.map<span class="roman">, read by MetaPost</span></code></a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PXL-files_002c-explained">PXL files, explained</a>:</td><td> </td><td valign="top"><a href="#Font-file-formats">Font file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pxtoch"><code>pxtoch</code></a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-R">R</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-Raichle_002c-Bernd">Raichle, Bernd</a>:</td><td> </td><td valign="top"><a href="#MLTeX">MLTeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-reading_002c-additional">reading, additional</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-readonly-directory_002c-running-TeX-in">readonly directory, running TeX in</a>:</td><td> </td><td valign="top"><a href="#Output-file-location">Output file location</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-readonly-directory_002c-running-TeX-in-1">readonly directory, running TeX in</a>:</td><td> </td><td valign="top"><a href="#Output-file-location">Output file location</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-reallocation-of-arrays">reallocation of arrays</a>:</td><td> </td><td valign="top"><a href="#Runtime-options">Runtime options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-redefined-character-substitutions">redefined character substitutions</a>:</td><td> </td><td valign="top"><a href="#g_t_005ctracingcharsubdef">\tracingcharsubdef</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-reference-pixel">reference pixel</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-references">references</a>:</td><td> </td><td valign="top"><a href="#References">References</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-regis"><code>regis</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Regis-graphics-support">Regis graphics support</a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-regression-testing">regression testing</a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-repeated-rows">repeated rows</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-representation-of-strings">representation of strings</a>:</td><td> </td><td valign="top"><a href="#pooltype-invocation">pooltype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-restricted-shell-escapes">restricted shell escapes</a>:</td><td> </td><td valign="top"><a href="#Shell-escapes">Shell escapes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-right-side-bearing">right side bearing</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-right-side-bearing-1">right side bearing</a>:</td><td> </td><td valign="top"><a href="#gftype-invocation">gftype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Rokicki_002c-Tomas">Rokicki, Tomas</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-run-length-encoded-bitmaps">run length encoded bitmaps</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-run-length-encoded-bitmaps-1">run length encoded bitmaps</a>:</td><td> </td><td valign="top"><a href="#gftype-invocation">gftype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-runtime-options">runtime options</a>:</td><td> </td><td valign="top"><a href="#Runtime-options">Runtime options</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-S">S</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-scaled-pixels">scaled pixels</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-scaled-pixels-1">scaled pixels</a>:</td><td> </td><td valign="top"><a href="#gftype-invocation">gftype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-scaling-of-fonts">scaling of fonts</a>:</td><td> </td><td valign="top"><a href="#Font-file-formats">Font file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-scanned-images-of-fonts">scanned images of fonts</a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-security_002c-and-output-files">security, and output files</a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-security_002c-and-shell-escapes">security, and shell escapes</a>:</td><td> </td><td valign="top"><a href="#Shell-escapes">Shell escapes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-security_002c-and-write">security, and <code>write</code></a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-security_002c-and-_005copenout">security, and <code>\openout</code></a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-shapes">shapes</a>:</td><td> </td><td valign="top"><a href="#Metafont">Metafont</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-sharing-memory-dumps">sharing memory dumps</a>:</td><td> </td><td valign="top"><a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-shell-commands-in-TeX">shell commands in TeX</a>:</td><td> </td><td valign="top"><a href="#Shell-escapes">Shell escapes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-shell_005fescape-enabling-in-TeX"><code>shell_escape <span class="roman">enabling in TeX</span></code></a>:</td><td> </td><td valign="top"><a href="#Shell-escapes">Shell escapes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-shell_005fescape_005fcommands"><code>shell_escape_commands</code></a>:</td><td> </td><td valign="top"><a href="#Shell-escapes">Shell escapes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-siam_002ebst"><code>siam.bst</code></a>:</td><td> </td><td valign="top"><a href="#Basic-BibTeX-style-files">Basic BibTeX style files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-side-bearings">side bearings</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-side-bearings-1">side bearings</a>:</td><td> </td><td valign="top"><a href="#gftype-invocation">gftype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-slant-font">slant font</a>:</td><td> </td><td valign="top"><a href="#gftodvi-invocation">gftodvi invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-slides_002c-producing">slides, producing</a>:</td><td> </td><td valign="top"><a href="#Formats">Formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-SliTeX">SliTeX</a>:</td><td> </td><td valign="top"><a href="#Formats">Formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-small-Metafont-memory-and-modes">small Metafont memory and modes</a>:</td><td> </td><td valign="top"><a href="#Modes">Modes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-smode-and-dynamic-Metafont-mode-definition"><code>smode <span class="roman">and dynamic Metafont mode definition</span></code></a>:</td><td> </td><td valign="top"><a href="#Modes">Modes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-sockets">sockets</a>:</td><td> </td><td valign="top"><a href="#IPC-and-TeX">IPC and TeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-space_002dterminated-filenames">space-terminated filenames</a>:</td><td> </td><td valign="top"><a href="#g_t_005cinput-filenames">\input filenames</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Spiderweb">Spiderweb</a>:</td><td> </td><td valign="top"><a href="#WEB">WEB</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Stallman_002c-Richard">Stallman, Richard</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-starting-page">starting page</a>:</td><td> </td><td valign="top"><a href="#dvicopy-invocation">dvicopy invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-starting-page-1">starting page</a>:</td><td> </td><td valign="top"><a href="#dvitype-invocation">dvitype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Steele-Jr_002e_002c-Guy-L_002e">Steele Jr., Guy L.</a>:</td><td> </td><td valign="top"><a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-stopping-at-the-first-error">stopping at the first error</a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-strategy_002c-overall">strategy, overall</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-string-numbers_002c-displaying">string numbers, displaying</a>:</td><td> </td><td valign="top"><a href="#pooltype-invocation">pooltype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-string-pool_002c-writing">string pool, writing</a>:</td><td> </td><td valign="top"><a href="#tangle-invocation">tangle invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-string-representation">string representation</a>:</td><td> </td><td valign="top"><a href="#pooltype-invocation">pooltype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-style-design_002c-for-BibTeX">style design, for BibTeX</a>:</td><td> </td><td valign="top"><a href="#bibtex-invocation">bibtex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-style-files">style files</a>:</td><td> </td><td valign="top"><a href="#mft-invocation">mft invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-substitutions-of-font-glyphs">substitutions of font glyphs</a>:</td><td> </td><td valign="top"><a href="#MLTeX">MLTeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-sun"><code>sun</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-sun_002dgfx_002ec"><code>sun-gfx.c</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Suntools">Suntools</a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-SunView">SunView</a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-swap-space_002c-as-array-limit">swap space, as array limit</a>:</td><td> </td><td valign="top"><a href="#Runtime-options">Runtime options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-swapping-bytes">swapping bytes</a>:</td><td> </td><td valign="top"><a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-syntax-of-TCX-files">syntax of TCX files</a>:</td><td> </td><td valign="top"><a href="#TCX-files">TCX files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-system-C-library-function"><code>system <span class="roman">C library function</span></code></a>:</td><td> </td><td valign="top"><a href="#Shell-escapes">Shell escapes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-system-command">system command</a>:</td><td> </td><td valign="top"><a href="#Shell-escapes">Shell escapes</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-T">T</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-T1-encoding-and-ISO-input">T1 encoding and ISO input</a>:</td><td> </td><td valign="top"><a href="#TCX-files">TCX files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Tachikawa_002c-Elizabeth">Tachikawa, Elizabeth</a>:</td><td> </td><td valign="top"><a href="#Font-file-formats">Font file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tangle"><code>tangle</code></a>:</td><td> </td><td valign="top"><a href="#tangle-invocation">tangle invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-targets_002c-additional-Make">targets, additional Make</a>:</td><td> </td><td valign="top"><a href="#Additional-targets">Additional targets</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TCX-character-translation-files"><code>TCX <span class="roman">character translation files</span></code></a>:</td><td> </td><td valign="top"><a href="#TCX-files">TCX files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tek"><code>tek</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Tektronix">Tektronix</a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Tektronix-4014">Tektronix 4014</a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TERM"><code>TERM</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-terminator-for-filenames">terminator for filenames</a>:</td><td> </td><td valign="top"><a href="#g_t_005cinput-filenames">\input filenames</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-terse-output">terse output</a>:</td><td> </td><td valign="top"><a href="#bibtex-invocation">bibtex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tex"><code>tex</code></a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TeX_002c-bibliographies-for">TeX, bibliographies for</a>:</td><td> </td><td valign="top"><a href="#bibtex-invocation">bibtex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TeX_002c-creating-from-Metafont">TeX, creating from Metafont</a>:</td><td> </td><td valign="top"><a href="#mft-invocation">mft invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TeX_002c-creating-from-WEB">TeX, creating from WEB</a>:</td><td> </td><td valign="top"><a href="#weave-invocation">weave invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TeX_002c-description-of">TeX, description of</a>:</td><td> </td><td valign="top"><a href="#TeX">TeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TeX_002c-extensions-to">TeX, extensions to</a>:</td><td> </td><td valign="top"><a href="#TeX-extensions">TeX extensions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TeX_002c-format-packages-for">TeX, format packages for</a>:</td><td> </td><td valign="top"><a href="#Formats">Formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TeX_002c-initial">TeX, initial</a>:</td><td> </td><td valign="top"><a href="#Initial-TeX">Initial TeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TeX_002c-input-files-found">TeX, input files found</a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TeX_002c-invocation">TeX, invocation</a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TeX_002c-Metafont_002c-and-MetaPost">TeX, Metafont, and MetaPost</a>:</td><td> </td><td valign="top"><a href="#Three-programs">Three programs</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TeX_002c-Web2c-implementation-of">TeX, Web2c implementation of</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tex_002efmt"><code>tex.fmt</code></a>:</td><td> </td><td valign="top"><a href="#Initial-TeX">Initial TeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXBIB_002c-search-path-for-bib-files"><code>TEXBIB<span class="roman">, search path for bib files</span></code></a>:</td><td> </td><td valign="top"><a href="#bibtex-invocation">bibtex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXEDIT"><code>TEXEDIT</code></a>:</td><td> </td><td valign="top"><a href="#Editor-invocation">Editor invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-texfonts_002emap"><code>texfonts.map</code></a>:</td><td> </td><td valign="top"><a href="#Path-searching">Path searching</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Texinfo">Texinfo</a>:</td><td> </td><td valign="top"><a href="#Formats">Formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-texmf_002ecnf"><code>texmf.cnf</code></a>:</td><td> </td><td valign="top"><a href="#Path-searching">Path searching</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-texmfmp_002ec"><code>texmfmp.c</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXMFOUTPUT_002c-used-for-reading"><code>TEXMFOUTPUT<span class="roman">, used for reading</span></code></a>:</td><td> </td><td valign="top"><a href="#Output-file-location">Output file location</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXMFOUTPUT_002c-used-if-_002e-unwritable"><code>TEXMFOUTPUT<span class="roman">, used if ‘<samp>.</samp>’ unwritable</span></code></a>:</td><td> </td><td valign="top"><a href="#Output-file-location">Output file location</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-texput"><code>texput</code></a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TFM-files_002c-converting-property-lists-to">TFM files, converting property lists to</a>:</td><td> </td><td valign="top"><a href="#pltotf-invocation">pltotf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TFM-files_002c-explained">TFM files, explained</a>:</td><td> </td><td valign="top"><a href="#Font-file-formats">Font file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TFM-files_002c-memory-for">TFM files, memory for</a>:</td><td> </td><td valign="top"><a href="#Runtime-options">Runtime options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TFM-files_002c-output-by-Metafont">TFM files, output by Metafont</a>:</td><td> </td><td valign="top"><a href="#mf-invocation">mf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TFM-files_002c-output-by-MetaPost">TFM files, output by MetaPost</a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TFM-width-of-characters">TFM width of characters</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TFM-width-of-characters-1">TFM width of characters</a>:</td><td> </td><td valign="top"><a href="#gftype-invocation">gftype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tftopl"><code>tftopl</code></a>:</td><td> </td><td valign="top"><a href="#tftopl-invocation">tftopl invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-three-programs">three programs</a>:</td><td> </td><td valign="top"><a href="#Three-programs">Three programs</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-time-and-date_002c-in-memory-dumps">time and date, in memory dumps</a>:</td><td> </td><td valign="top"><a href="#Hardware-and-memory-dumps">Hardware and memory dumps</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-title-font">title font</a>:</td><td> </td><td valign="top"><a href="#gftodvi-invocation">gftodvi invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-toolkits_002c-X">toolkits, X</a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-torture-tests">torture tests</a>:</td><td> </td><td valign="top"><a href="#Triptrap">Triptrap</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-translation-file-for-TeX_002c-specifying">translation file for TeX, specifying</a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-translation-from-WEB-to-C">translation from WEB to C</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-trap-Make-target"><code>trap <span class="roman">Make target</span></code></a>:</td><td> </td><td valign="top"><a href="#Additional-targets">Additional targets</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-trap-test">trap test</a>:</td><td> </td><td valign="top"><a href="#Triptrap">Triptrap</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-trapman_002etex"><code>trapman.tex</code></a>:</td><td> </td><td valign="top"><a href="#Triptrap">Triptrap</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Trickey_002c-Howard">Trickey, Howard</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-trip-Make-target"><code>trip <span class="roman">Make target</span></code></a>:</td><td> </td><td valign="top"><a href="#Additional-targets">Additional targets</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-trip-test">trip test</a>:</td><td> </td><td valign="top"><a href="#Triptrap">Triptrap</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tripman_002etex"><code>tripman.tex</code></a>:</td><td> </td><td valign="top"><a href="#Triptrap">Triptrap</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-triptrap-Make-target"><code>triptrap <span class="roman">Make target</span></code></a>:</td><td> </td><td valign="top"><a href="#Additional-targets">Additional targets</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Troff_002c-and-MetaPost">Troff, and MetaPost</a>:</td><td> </td><td valign="top"><a href="#mpost-invocation">mpost invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Troff_002c-WEB-for">Troff, WEB for</a>:</td><td> </td><td valign="top"><a href="#WEB">WEB</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Trojan-horses-and-TeX-programs">Trojan horses and TeX programs</a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TUGboat-bibliography">TUGboat bibliography</a>:</td><td> </td><td valign="top"><a href="#bibtex-invocation">bibtex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Type-1-conversion">Type 1 conversion</a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-type-design_002c-personal">type design, personal</a>:</td><td> </td><td valign="top"><a href="#Initial-Metafont">Initial Metafont</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-type-programs_002c-DVI">type programs, DVI</a>:</td><td> </td><td valign="top"><a href="#dvitype-invocation">dvitype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-type-programs_002c-GF">type programs, GF</a>:</td><td> </td><td valign="top"><a href="#gftype-invocation">gftype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-type-programs_002c-PK">type programs, PK</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-type-programs_002c-pool">type programs, pool</a>:</td><td> </td><td valign="top"><a href="#pooltype-invocation">pooltype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-typeface-families">typeface families</a>:</td><td> </td><td valign="top"><a href="#Metafont">Metafont</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-typeface-specimen-sheets">typeface specimen sheets</a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-typesetting">typesetting</a>:</td><td> </td><td valign="top"><a href="#TeX">TeX</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-U">U</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-Unicode">Unicode</a>:</td><td> </td><td valign="top"><a href="#TeX-extensions">TeX extensions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Unicode-1">Unicode</a>:</td><td> </td><td valign="top"><a href="#TeX-extensions">TeX extensions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Unicode-input">Unicode input</a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-uniterm"><code>uniterm</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-unsrt_002ebst"><code>unsrt.bst</code></a>:</td><td> </td><td valign="top"><a href="#Basic-BibTeX-style-files">Basic BibTeX style files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-UTF_002d8-input">UTF-8 input</a>:</td><td> </td><td valign="top"><a href="#tex-invocation">tex invocation</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-V">V</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-validation_002c-of-DVI-files">validation, of DVI files</a>:</td><td> </td><td valign="top"><a href="#dvitype-invocation">dvitype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-validation_002c-of-GF-files">validation, of GF files</a>:</td><td> </td><td valign="top"><a href="#gftype-invocation">gftype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-validation_002c-of-PK-files">validation, of PK files</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-validation_002c-of-TFM-files">validation, of TFM files</a>:</td><td> </td><td valign="top"><a href="#tftopl-invocation">tftopl invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-validation_002c-of-VF-files">validation, of VF files</a>:</td><td> </td><td valign="top"><a href="#vftovp-invocation">vftovp invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-verbose-BibTeX-output_002c-suppressing">verbose BibTeX output, suppressing</a>:</td><td> </td><td valign="top"><a href="#bibtex-invocation">bibtex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-verbosity_002c-enabling">verbosity, enabling</a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-version-number_002c-finding">version number, finding</a>:</td><td> </td><td valign="top"><a href="#Common-options">Common options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-vertical-escapement">vertical escapement</a>:</td><td> </td><td valign="top"><a href="#gftype-invocation">gftype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-VF-files_002c-converting-property-lists-to">VF files, converting property lists to</a>:</td><td> </td><td valign="top"><a href="#vptovf-invocation">vptovf invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-vftovp"><code>vftovp</code></a>:</td><td> </td><td valign="top"><a href="#vftovp-invocation">vftovp invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-virgin-programs">virgin programs</a>:</td><td> </td><td valign="top"><a href="#Initial-and-virgin">Initial and virgin</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-virtual-font-creation">virtual font creation</a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-virtual-fonts_002c-expanding">virtual fonts, expanding</a>:</td><td> </td><td valign="top"><a href="#dvicopy-invocation">dvicopy invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-virtual_002dfonts_002eknuth"><code>virtual-fonts.knuth</code></a>:</td><td> </td><td valign="top"><a href="#Font-file-formats">Font file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-virtualfonts_002etxt"><code>virtualfonts.txt</code></a>:</td><td> </td><td valign="top"><a href="#Font-file-formats">Font file formats</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-vptovf"><code>vptovf</code></a>:</td><td> </td><td valign="top"><a href="#vptovf-invocation">vptovf invocation</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-W">W</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-weave"><code>weave</code></a>:</td><td> </td><td valign="top"><a href="#weave-invocation">weave invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-WEB">WEB</a>:</td><td> </td><td valign="top"><a href="#WEB">WEB</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-web-environments_002c-and-security">web environments, and security</a>:</td><td> </td><td valign="top"><a href="#Shell-escapes">Shell escapes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-WEB-pool-files_002c-displaying">WEB pool files, displaying</a>:</td><td> </td><td valign="top"><a href="#pooltype-invocation">pooltype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-WEB-programs_002c-compiling">WEB programs, compiling</a>:</td><td> </td><td valign="top"><a href="#tangle-invocation">tangle invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-WEB-programs_002c-typesetting">WEB programs, typesetting</a>:</td><td> </td><td valign="top"><a href="#weave-invocation">weave invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-WEB2C_002c-search-path-for-TCX-files"><code>WEB2C<span class="roman">, search path for TCX files</span></code></a>:</td><td> </td><td valign="top"><a href="#TCX-files">TCX files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Weber_002c-Olaf">Weber, Olaf</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-webmac_002etex"><code>webmac.tex</code></a>:</td><td> </td><td valign="top"><a href="#weave-invocation">weave invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-webman_002etex"><code>webman.tex</code></a>:</td><td> </td><td valign="top"><a href="#WEB">WEB</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-whitespace_002c-in-TCX-files">whitespace, in TCX files</a>:</td><td> </td><td valign="top"><a href="#TCX-files">TCX files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-whitespace_002dterminated-filenames">whitespace-terminated filenames</a>:</td><td> </td><td valign="top"><a href="#g_t_005cinput-filenames">\input filenames</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-width_002c-device_002dindependent">width, device-independent</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-width_002c-device_002dindependent-1">width, device-independent</a>:</td><td> </td><td valign="top"><a href="#gftype-invocation">gftype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-width_002c-in-pixels">width, in pixels</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-word-processor_002c-not">word processor, not</a>:</td><td> </td><td valign="top"><a href="#TeX">TeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-writing-memory-dumps">writing memory dumps</a>:</td><td> </td><td valign="top"><a href="#Creating-memory-dumps">Creating memory dumps</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-X">X</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-X-bitmap-fonts">X bitmap fonts</a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-X-class-name-for-Metafont">X class name for Metafont</a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-x-offset">x offset</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-X-resources">X resources</a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-X-toolkits-and-Metafont">X toolkits and Metafont</a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xampl_002ebib"><code>xampl.bib</code></a>:</td><td> </td><td valign="top"><a href="#bibtex-invocation">bibtex invocation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xbfe_002c-bitmap-font-editor"><code>xbfe<span class="roman">, bitmap font editor</span></code></a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-XeTeX">XeTeX</a>:</td><td> </td><td valign="top"><a href="#TeX-extensions">TeX extensions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xfed_002c-bitmap-font-editor"><code>xfed<span class="roman">, bitmap font editor</span></code></a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xfedor_002c-bitmap-font-editor"><code>xfedor<span class="roman">, bitmap font editor</span></code></a>:</td><td> </td><td valign="top"><a href="#Font-utilities-available-elsewhere">Font utilities available elsewhere</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Xlib"><code>Xlib</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Xlib-support">Xlib support</a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Xt"><code>Xt</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Xt-support">Xt support</a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xterm"><code>xterm</code></a>:</td><td> </td><td valign="top"><a href="#Online-Metafont-graphics">Online Metafont graphics</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_cp_letter-Y">Y</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-y-offset">y offset</a>:</td><td> </td><td valign="top"><a href="#pktype-invocation">pktype invocation</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +</table> +<table><tr><th valign="top">Jump to: </th><td><a class="summary-letter" href="#Index_cp_symbol-1"><b>#</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-2"><b>$</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-3"><b>%</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-4"><b>-</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-5"><b>.</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-6"><b>2</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-7"><b>8</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-8"><b>\</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-9"><b>^</b></a> + +<a class="summary-letter" href="#Index_cp_symbol-10"><b>~</b></a> + +<br> +<a class="summary-letter" href="#Index_cp_letter-A"><b>A</b></a> + +<a class="summary-letter" href="#Index_cp_letter-B"><b>B</b></a> + +<a class="summary-letter" href="#Index_cp_letter-C"><b>C</b></a> + +<a class="summary-letter" href="#Index_cp_letter-D"><b>D</b></a> + +<a class="summary-letter" href="#Index_cp_letter-E"><b>E</b></a> + +<a class="summary-letter" href="#Index_cp_letter-F"><b>F</b></a> + +<a class="summary-letter" href="#Index_cp_letter-G"><b>G</b></a> + +<a class="summary-letter" href="#Index_cp_letter-H"><b>H</b></a> + +<a class="summary-letter" href="#Index_cp_letter-I"><b>I</b></a> + +<a class="summary-letter" href="#Index_cp_letter-J"><b>J</b></a> + +<a class="summary-letter" href="#Index_cp_letter-K"><b>K</b></a> + +<a class="summary-letter" href="#Index_cp_letter-L"><b>L</b></a> + +<a class="summary-letter" href="#Index_cp_letter-M"><b>M</b></a> + +<a class="summary-letter" href="#Index_cp_letter-N"><b>N</b></a> + +<a class="summary-letter" href="#Index_cp_letter-O"><b>O</b></a> + +<a class="summary-letter" href="#Index_cp_letter-P"><b>P</b></a> + +<a class="summary-letter" href="#Index_cp_letter-R"><b>R</b></a> + +<a class="summary-letter" href="#Index_cp_letter-S"><b>S</b></a> + +<a class="summary-letter" href="#Index_cp_letter-T"><b>T</b></a> + +<a class="summary-letter" href="#Index_cp_letter-U"><b>U</b></a> + +<a class="summary-letter" href="#Index_cp_letter-V"><b>V</b></a> + +<a class="summary-letter" href="#Index_cp_letter-W"><b>W</b></a> + +<a class="summary-letter" href="#Index_cp_letter-X"><b>X</b></a> + +<a class="summary-letter" href="#Index_cp_letter-Y"><b>Y</b></a> + +</td></tr></table> + +<hr> + + + +</body> +</html> diff --git a/Master/texmf-dist/doc/web2c/web2c.pdf b/Master/texmf-dist/doc/web2c/web2c.pdf Binary files differindex a73a625841e..930c4a58711 100644 --- a/Master/texmf-dist/doc/web2c/web2c.pdf +++ b/Master/texmf-dist/doc/web2c/web2c.pdf |