summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/eplain/doc/eplain.html
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/eplain/doc/eplain.html')
-rw-r--r--Master/texmf-dist/doc/eplain/doc/eplain.html8078
1 files changed, 8078 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/eplain/doc/eplain.html b/Master/texmf-dist/doc/eplain/doc/eplain.html
new file mode 100644
index 00000000000..968582fd698
--- /dev/null
+++ b/Master/texmf-dist/doc/eplain/doc/eplain.html
@@ -0,0 +1,8078 @@
+<html lang="en">
+<head>
+<title>Eplain: Expanded Plain TeX</title>
+<meta http-equiv="Content-Type" content="text/html">
+<meta name="description" content="Eplain: Expanded Plain TeX">
+<meta name="generator" content="makeinfo 4.8">
+<link title="Top" rel="top" href="#Top">
+<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
+<!--
+This manual documents the Eplain macros, version 3.1,
+December 2006. Eplain provides functionality for plain TeX that
+is intended to be useful regardless of how your document is actually
+formatted.
+
+Most of this manual is in the public domain, like most of the Eplain
+code. It was mostly written by Karl Berry, starting in 1989. Steven
+Smith wrote the documentation for the commutative diagram macros; this
+chapter is under the GNU General Public License. Adam Lewenberg has
+made additions and corrections. Oleg Katsitadze has helped with writing
+the section on LaTeX packages and the chapter on hyperlinks.-->
+<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">Eplain: Expanded Plain TeX</h1>
+<div class="shortcontents">
+<h2>Short Contents</h2>
+<ul>
+<li><a href="#toc_Top">Eplain</a></li>
+<li><a href="#toc_Introduction">1 Introduction</a></li>
+<li><a href="#toc_Installation">2 Installation</a></li>
+<li><a href="#toc_Invoking-Eplain">3 Invoking Eplain</a></li>
+<li><a href="#toc_User-definitions">4 User definitions</a></li>
+<li><a href="#toc_Hyperlinks">5 Hyperlinks</a></li>
+<li><a href="#toc_Arrow-theoretic-diagrams">6 Arrow theoretic diagrams</a></li>
+<li><a href="#toc_Programming-definitions">7 Programming definitions</a></li>
+<li><a href="#toc_Demo-files">8 Demo files</a></li>
+<li><a href="#toc_Macro-index">Macro index</a></li>
+<li><a href="#toc_Concept-index">Concept index</a></li>
+</ul>
+</div>
+
+
+
+ <div class="contents">
+<h2>Table of Contents</h2>
+<ul>
+<li><a name="toc_Top" href="#Top">Eplain</a>
+<li><a name="toc_Introduction" href="#Introduction">1 Introduction</a>
+<li><a name="toc_Installation" href="#Installation">2 Installation</a>
+<li><a name="toc_Invoking-Eplain" href="#Invoking-Eplain">3 Invoking Eplain</a>
+<li><a name="toc_User-definitions" href="#User-definitions">4 User definitions</a>
+<ul>
+<li><a href="#Diagnostics">4.1 Diagnostics</a>
+<li><a href="#Rules">4.2 Rules</a>
+<li><a href="#Citations">4.3 Citations</a>
+<ul>
+<li><a href="#Formatting-citations">4.3.1 Formatting citations</a>
+<li><a href="#Formatting-bibliographies">4.3.2 Formatting bibliographies</a>
+</li></ul>
+<li><a href="#Displays">4.4 Displays</a>
+<ul>
+<li><a href="#Formatting-displays">4.4.1 Formatting displays</a>
+</li></ul>
+<li><a href="#Time-of-day">4.5 Time of day</a>
+<li><a href="#Lists">4.6 Lists</a>
+<ul>
+<li><a href="#Formatting-lists">4.6.1 Formatting lists</a>
+</li></ul>
+<li><a href="#Verbatim-listing">4.7 Verbatim listing</a>
+<li><a href="#Contents">4.8 Contents</a>
+<ul>
+<li><a href="#Writing-the-_002etoc-file">4.8.1 Writing the <tt>.toc</tt> file</a>
+<li><a href="#Reading-the-_002etoc-file">4.8.2 Reading the <tt>.toc</tt> file</a>
+<li><a href="#Changing-the-_002etoc-file_0027s-root-name">4.8.3 Changing the <tt>.toc</tt> file's root name</a>
+<li><a href="#Alternative-contents-files">4.8.4 Alternative contents files</a>
+</li></ul>
+<li><a href="#Cross_002dreferences">4.9 Cross-references</a>
+<ul>
+<li><a href="#Defining-generic-references">4.9.1 Defining generic references</a>
+<li><a href="#Using-generic-references">4.9.2 Using generic references</a>
+</li></ul>
+<li><a href="#Page-references">4.10 Page references</a>
+<li><a href="#Equation-references">4.11 Equation references</a>
+<ul>
+<li><a href="#Formatting-equation-references">4.11.1 Formatting equation references</a>
+<li><a href="#Subequation-references">4.11.2 Subequation references</a>
+</li></ul>
+<li><a href="#Indexing">4.12 Indexing</a>
+<ul>
+<li><a href="#Indexing-terms">4.12.1 Indexing terms</a>
+<ul>
+<li><a href="#Indexing-commands">4.12.1.1 Indexing commands</a>
+<li><a href="#Modifying-index-entries">4.12.1.2 Modifying index entries</a>
+<li><a href="#Index-entries-with-special-characters">4.12.1.3 Index entries with special characters</a>
+<li><a href="#Proofing-index-terms">4.12.1.4 Proofing index terms</a>
+</li></ul>
+<li><a href="#Typesetting-an-index">4.12.2 Typesetting an index</a>
+<li><a href="#Customizing-indexing">4.12.3 Customizing indexing</a>
+</li></ul>
+<li><a href="#Justification">4.13 Justification</a>
+<li><a href="#Tables">4.14 Tables</a>
+<li><a href="#Margins">4.15 Margins</a>
+<li><a href="#Multiple-columns">4.16 Multiple columns</a>
+<li><a href="#Footnotes">4.17 Footnotes</a>
+<li><a href="#Fractions">4.18 Fractions</a>
+<li><a href="#Paths">4.19 Paths</a>
+<li><a href="#Logos">4.20 Logos</a>
+<li><a href="#Boxes">4.21 Boxes</a>
+<li><a href="#Checking-for-PDF-output">4.22 Checking for PDF output</a>
+<li><a href="#Loading-LaTeX-packages">4.23 Loading LaTeX packages</a>
+<ul>
+<li><a href="#The-_005cusepackage-command">4.23.1 The <code>\usepackage</code> command</a>
+<li><a href="#Environment-for-loading-packages">4.23.2 Environment for loading packages</a>
+<li><a href="#Packages-known-to-work">4.23.3 Packages known to work</a>
+<li><a href="#Packages-known-not-to-work">4.23.4 Packages known not to work</a>
+</li></ul>
+</li></ul>
+<li><a name="toc_Hyperlinks" href="#Hyperlinks">5 Hyperlinks</a>
+<ul>
+<li><a href="#Introduction-to-hyperlinks">5.1 Introduction to hyperlinks</a>
+<li><a href="#Explicit-hyperlinks">5.2 Explicit hyperlinks</a>
+<li><a href="#Implicit-hyperlinks">5.3 Implicit hyperlinks</a>
+<ul>
+<li><a href="#General-hyperlinks">5.3.1 General hyperlinks: hrefint, hrefext</a>
+<li><a href="#URL-hyperlinks">5.3.2 URL hyperlinks: url</a>
+<li><a href="#Citation-hyperlinks">5.3.3 Citation hyperlinks: cite, bib</a>
+<li><a href="#List-hyperlinks">5.3.4 List hyperlinks: li</a>
+<li><a href="#Cross_002dreference-hyperlinks">5.3.5 Cross-reference hyperlinks: definexref, ref</a>
+<li><a href="#Page-reference-hyperlinks">5.3.6 Page reference hyperlinks: xrdef, xref</a>
+<li><a href="#Equation-reference-hyperlinks">5.3.7 Equation reference hyperlinks: eq</a>
+<li><a href="#Index-hyperlinks">5.3.8 Index hyperlinks: idx</a>
+<ul>
+<li><a href="#Exact-destinations-for-index-terms">5.3.8.1 Exact destinations for index terms</a>
+<li><a href="#Page-destinations-for-index-terms">5.3.8.2 Page destinations for index terms</a>
+<li><a href="#Choosing-destination-placement">5.3.8.3 Choosing destination placement</a>
+<li><a href="#Index-page-list-and-page-range-parsers">5.3.8.4 Index page list and page range parsers</a>
+<li><a href="#Hyperlinks-in-see-and-see-also-entries">5.3.8.5 Hyperlinks in see and see also entries</a>
+</li></ul>
+<li><a href="#Footnote-hyperlinks">5.3.9 Footnote hyperlinks: foot, footback</a>
+<li><a href="#Contents-hyperlinks">5.3.10 Contents hyperlinks</a>
+</li></ul>
+<li><a href="#Hyperlink-drivers">5.4 Hyperlink drivers</a>
+<ul>
+<li><a href="#Options-supported-by-all-drivers">5.4.1 Options supported by all drivers</a>
+<li><a href="#Hyperlink-driver-hypertex">5.4.2 Hyperlink driver <code>hypertex</code></a>
+<ul>
+<li><a href="#Destination-types-for-hypertex">5.4.2.1 Destination types for <code>hypertex</code></a>
+<li><a href="#Destination-options-for-hypertex">5.4.2.2 Destination options for <code>hypertex</code></a>
+<li><a href="#Link-types-for-hypertex">5.4.2.3 Link types for <code>hypertex</code></a>
+<li><a href="#Link-options-for-hypertex">5.4.2.4 Link options for <code>hypertex</code></a>
+</li></ul>
+<li><a href="#Hyperlink-drivers-pdftex-and-dvipdfm">5.4.3 Hyperlink drivers <code>pdftex</code> and <code>dvipdfm</code></a>
+<ul>
+<li><a href="#Destination-types-for-pdftex-and-dvipdfm">5.4.3.1 Destination types for <code>pdftex</code> and <code>dvipdfm</code></a>
+<li><a href="#Destination-options-for-pdftex-and-dvipdfm">5.4.3.2 Destination options for <code>pdftex</code> and <code>dvipdfm</code></a>
+<li><a href="#Link-types-for-pdftex-and-dvipdfm">5.4.3.3 Link types for <code>pdftex</code> and <code>dvipdfm</code></a>
+<li><a href="#Link-options-for-pdftex-and-dvipdfm">5.4.3.4 Link options for <code>pdftex</code> and <code>dvipdfm</code></a>
+</li></ul>
+<li><a href="#Hyperlink-driver-nolinks">5.4.4 Hyperlink driver <code>nolinks</code></a>
+</li></ul>
+<li><a href="#Setting-hyperlink-types-and-options">5.5 Setting hyperlink types and options</a>
+<ul>
+<li><a href="#Setting-default-types-and-options">5.5.1 Setting default types and options</a>
+<li><a href="#Setting-group-types">5.5.2 Setting group types</a>
+<li><a href="#Setting-group-options">5.5.3 Setting group options</a>
+</li></ul>
+<li><a href="#Turning-hyperlinks-on_002foff">5.6 Turning hyperlinks on/off</a>
+<ul>
+<li><a href="#Turning-low_002dlevel-commands-on_002foff">5.6.1 Turning low-level commands on/off</a>
+<li><a href="#Turning-hyperlinks-on_002foff-for-a-group">5.6.2 Turning hyperlinks on/off for a group</a>
+</li></ul>
+</li></ul>
+<li><a name="toc_Arrow-theoretic-diagrams" href="#Arrow-theoretic-diagrams">6 Arrow theoretic diagrams</a>
+<ul>
+<li><a href="#Slanted-lines-and-vectors">6.1 Slanted lines and vectors</a>
+<li><a href="#Commutative-diagrams">6.2 Commutative diagrams</a>
+<ul>
+<li><a href="#Arrows-and-morphisms">6.2.1 Arrows and morphisms</a>
+<li><a href="#Construction-of-commutative-diagrams">6.2.2 Construction of commutative diagrams</a>
+<li><a href="#Commutative-diagram-parameters">6.2.3 Commutative diagram parameters</a>
+</li></ul>
+</li></ul>
+<li><a name="toc_Programming-definitions" href="#Programming-definitions">7 Programming definitions</a>
+<ul>
+<li><a href="#Category-codes">7.1 Category codes</a>
+<li><a href="#Allocation-macros">7.2 Allocation macros</a>
+<li><a href="#Iteration">7.3 Iteration</a>
+<li><a href="#Macro-arguments">7.4 Macro arguments</a>
+<li><a href="#Converting-to-characters">7.5 Converting to characters</a>
+<li><a href="#Expansion">7.6 Expansion</a>
+<ul>
+<li><a href="#_005ccsn-and-_005cece">7.6.1 <code>\csn</code> and <code>\ece</code></a>
+<li><a href="#_005cedefappend">7.6.2 <code>\edefappend</code></a>
+<li><a href="#Hooks">7.6.3 Hooks</a>
+<li><a href="#Properties">7.6.4 Properties</a>
+<li><a href="#_005cexpandonce">7.6.5 <code>\expandonce</code></a>
+<li><a href="#_005cifundefined">7.6.6 <code>\ifundefined</code></a>
+<li><a href="#_005cifempty">7.6.7 <code>\ifempty</code></a>
+<li><a href="#_005cifinteger-and-_005cisinteger">7.6.8 <code>\ifinteger</code> and <code>\isinteger</code></a>
+<li><a href="#_005cfuturenonspacelet">7.6.9 <code>\futurenonspacelet</code></a>
+</li></ul>
+<li><a href="#Obeying-spaces">7.7 Obeying spaces</a>
+<li><a href="#Writing-out-numbers">7.8 Writing out numbers</a>
+<li><a href="#Mode_002dspecific-penalties">7.9 Mode-specific penalties</a>
+<li><a href="#Auxiliary-files">7.10 Auxiliary files</a>
+<li><a href="#User_002ddefined-environments">7.11 User-defined environments</a>
+<li><a href="#Page-list-and-page-range-parsers">7.12 Page list and page range parsers</a>
+</li></ul>
+<li><a name="toc_Demo-files" href="#Demo-files">8 Demo files</a>
+<ul>
+<li><a href="#Hyperlinks-_0028xhyper_002etex_0029">8.1 Hyperlinks (<code>xhyper.tex</code>)</a>
+<li><a href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029">8.2 Highlighting TeX comments in listings (<code>lscommnt.tex</code>)</a>
+</li></ul>
+<li><a name="toc_Macro-index" href="#Macro-index">Macro index</a>
+<li><a name="toc_Concept-index" href="#Concept-index">Concept index</a>
+</li></ul>
+</div>
+
+<div class="node">
+<p><hr>
+<a name="Top"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Introduction">Introduction</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#dir">(dir)</a>
+
+</div>
+
+<h2 class="unnumbered">Eplain</h2>
+
+<p>This manual documents the Eplain macros, version 3.1,
+December 2006. Eplain provides functionality for plain TeX that
+is intended to be useful regardless of how your document is actually
+formatted.
+
+ <p>Most of this manual is in the public domain, like most of the Eplain
+code. It was mostly written by Karl Berry, starting in 1989. Steven
+Smith wrote the documentation for the commutative diagram macros; this
+chapter is under the GNU General Public License. Adam Lewenberg has
+made additions and corrections. Oleg Katsitadze has helped with writing
+the section on LaTeX packages and the chapter on hyperlinks.
+
+<ul class="menu">
+<li><a accesskey="1" href="#Introduction">Introduction</a>: Eplain's purpose and philosophy.
+<li><a accesskey="2" href="#Installation">Installation</a>: Installing Eplain.
+<li><a accesskey="3" href="#Invoking-Eplain">Invoking Eplain</a>: Using Eplain from a TeX file.
+<li><a accesskey="4" href="#User-definitions">User definitions</a>: Macros to be used in a document.
+<li><a accesskey="5" href="#Hyperlinks">Hyperlinks</a>: Producing documents with hyperlinks.
+<li><a accesskey="6" href="#Arrow-theoretic-diagrams">Arrow theoretic diagrams</a>: Macros for commutative diagrams.
+<li><a accesskey="7" href="#Programming-definitions">Programming definitions</a>: Macros to be used in writing other macros.
+<li><a accesskey="8" href="#Demo-files">Demo files</a>: Sample documents demonstrating Eplain.
+<li><a accesskey="9" href="#Macro-index">Macro index</a>: Entries for TeX and Eplain control sequences.
+<li><a href="#Concept-index">Concept index</a>: General index.
+
+</li></ul>
+<p>--- The Detailed Node Listing ---
+
+<p>User definitions
+
+</p>
+<ul class="menu">
+<li><a href="#Diagnostics">Diagnostics</a>: Tracing information.
+<li><a href="#Rules">Rules</a>: Changing the default rule dimensions.
+<li><a href="#Citations">Citations</a>: Using BibTeX and Eplain to make bibliographies.
+<li><a href="#Displays">Displays</a>: Changing the formatting of math displays.
+<li><a href="#Time-of-day">Time of day</a>: Producing the time of day.
+<li><a href="#Lists">Lists</a>: Producing numbered and unordered lists.
+<li><a href="#Verbatim-listing">Verbatim listing</a>: Producing text just as it appears.
+<li><a href="#Contents">Contents</a>: Making a table of contents.
+<li><a href="#Cross_002dreferences">Cross-references</a>: Symbolically referring to pages or equations.
+<li><a href="#Page-references">Page references</a>: Symbolic references to page numbers.
+<li><a href="#Equation-references">Equation references</a>: Symbolic references to equation numbers.
+<li><a href="#Indexing">Indexing</a>: Creating and typesetting indexes.
+<li><a href="#Justification">Justification</a>: Left- or right-justification, or centering.
+<li><a href="#Tables">Tables</a>: Producing ordered tables.
+<li><a href="#Margins">Margins</a>: Changing the margins directly.
+<li><a href="#Multiple-columns">Multiple columns</a>: Getting output in two columns.
+<li><a href="#Footnotes">Footnotes</a>: Autonumbered footnotes; changing formatting.
+<li><a href="#Fractions">Fractions</a>: A better way to produce fractions in text.
+<li><a href="#Paths">Paths</a>: Allowing line breaks in pathnames.
+<li><a href="#Logos">Logos</a>: Various logos.
+<li><a href="#Boxes">Boxes</a>: Producing filled or open rectangles.
+<li><a href="#Checking-for-PDF-output">Checking for PDF output</a>: Checking for pdfTeX in PDF mode.
+<li><a href="#Loading-LaTeX-packages">Loading LaTeX packages</a>: Support for LaTeX packages under plain TeX.
+
+</li></ul>
+<p>Citations
+
+</p>
+<ul class="menu">
+<li><a href="#Formatting-citations">Formatting citations</a>: Changing the way citations are printed.
+<li><a href="#Formatting-bibliographies">Formatting bibliographies</a>: Changing the way bibliographies are printed.
+
+</li></ul>
+<p>Displays
+
+</p>
+<ul class="menu">
+<li><a href="#Formatting-displays">Formatting displays</a>: General formatting of displays.
+
+</li></ul>
+<p>Lists
+
+</p>
+<ul class="menu">
+<li><a href="#Formatting-lists">Formatting lists</a>: Changing how the lists look.
+
+</li></ul>
+<p>Contents
+
+</p>
+<ul class="menu">
+<li><a href="#Writing-the-_002etoc-file">Writing the .toc file</a>
+<li><a href="#Reading-the-_002etoc-file">Reading the .toc file</a>
+<li><a href="#Changing-the-_002etoc-file_0027s-root-name">Changing the .toc file's root name</a>
+<li><a href="#Alternative-contents-files">Alternative contents files</a>
+
+</li></ul>
+<p>Cross-references
+
+</p>
+<ul class="menu">
+<li><a href="#Defining-generic-references">Defining generic references</a>
+<li><a href="#Using-generic-references">Using generic references</a>
+
+</li></ul>
+<p>Equation references
+
+</p>
+<ul class="menu">
+<li><a href="#Formatting-equation-references">Formatting equation references</a>
+<li><a href="#Subequation-references">Subequation references</a>
+
+</li></ul>
+<p>Indexing
+
+</p>
+<ul class="menu">
+<li><a href="#Indexing-terms">Indexing terms</a>: Specifying what to index.
+<li><a href="#Typesetting-an-index">Typesetting an index</a>: Printing the sorted output.
+<li><a href="#Customizing-indexing">Customizing indexing</a>: Creating commands and specifying extra actions.
+
+</li></ul>
+<p>Indexing terms
+
+</p>
+<ul class="menu">
+<li><a href="#Indexing-commands">Indexing commands</a>: Making index entries.
+<li><a href="#Modifying-index-entries">Modifying index entries</a>: Ranges, see/see also, page number typesetting.
+<li><a href="#Index-entries-with-special-characters">Index entries with special characters</a>
+<li><a href="#Proofing-index-terms">Proofing index terms</a>: Noting index entries in the margins.
+
+</li></ul>
+<p>Loading LaTeX packages
+
+</p>
+<ul class="menu">
+<li><a href="#The-_005cusepackage-command">The \usepackage command</a>: Command to load packages.
+<li><a href="#Environment-for-loading-packages">Environment for loading packages</a>: Environment for the \usepackage commands.
+<li><a href="#Packages-known-to-work">Packages known to work</a>: Supported packages.
+<li><a href="#Packages-known-not-to-work">Packages known not to work</a>: Packages known not to work with Eplain.
+
+</li></ul>
+<p>Hyperlinks
+
+</p>
+<ul class="menu">
+<li><a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a>
+<li><a href="#Explicit-hyperlinks">Explicit hyperlinks</a>
+<li><a href="#Implicit-hyperlinks">Implicit hyperlinks</a>
+<li><a href="#Hyperlink-drivers">Hyperlink drivers</a>
+<li><a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a>
+<li><a href="#Turning-hyperlinks-on_002foff">Turning hyperlinks on/off</a>
+
+</li></ul>
+<p>Implicit hyperlinks
+
+</p>
+<ul class="menu">
+<li><a href="#General-hyperlinks">General hyperlinks</a>: hrefint, hrefext
+<li><a href="#URL-hyperlinks">URL hyperlinks</a>: url
+<li><a href="#Citation-hyperlinks">Citation hyperlinks</a>: cite, bib
+<li><a href="#List-hyperlinks">List hyperlinks</a>: li
+<li><a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a>: definexref, ref
+<li><a href="#Page-reference-hyperlinks">Page reference hyperlinks</a>: xrdef, xref
+<li><a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a>: eq
+<li><a href="#Index-hyperlinks">Index hyperlinks</a>: idx
+<li><a href="#Footnote-hyperlinks">Footnote hyperlinks</a>: foot, footback
+<li><a href="#Contents-hyperlinks">Contents hyperlinks</a>
+
+</li></ul>
+<p>Index hyperlinks
+
+</p>
+<ul class="menu">
+<li><a href="#Exact-destinations-for-index-terms">Exact destinations for index terms</a>
+<li><a href="#Page-destinations-for-index-terms">Page destinations for index terms</a>
+<li><a href="#Choosing-destination-placement">Choosing destination placement</a>
+<li><a href="#Index-page-list-and-page-range-parsers">Index page list and page range parsers</a>
+<li><a href="#Hyperlinks-in-see-and-see-also-entries">Hyperlinks in see and see also entries</a>
+
+</li></ul>
+<p>Hyperlink drivers
+
+</p>
+<ul class="menu">
+<li><a href="#Options-supported-by-all-drivers">Options supported by all drivers</a>
+<li><a href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a>
+<li><a href="#Hyperlink-drivers-pdftex-and-dvipdfm">Hyperlink drivers pdftex and dvipdfm</a>
+<li><a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a>
+
+</li></ul>
+<p>Hyperlink driver hypertex::
+
+</p>
+<ul class="menu">
+<li><a href="#Destination-types-for-hypertex">Destination types for hypertex</a>
+<li><a href="#Destination-options-for-hypertex">Destination options for hypertex</a>
+<li><a href="#Link-types-for-hypertex">Link types for hypertex</a>
+<li><a href="#Link-options-for-hypertex">Link options for hypertex</a>
+
+</li></ul>
+<p>Hyperlink drivers pdftex and dvipdfm::
+
+</p>
+<ul class="menu">
+<li><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a>
+<li><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a>
+<li><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a>
+<li><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a>
+
+</li></ul>
+<p>Setting hyperlink types and options
+
+</p>
+<ul class="menu">
+<li><a href="#Setting-default-types-and-options">Setting default types and options</a>
+<li><a href="#Setting-group-types">Setting group types</a>
+<li><a href="#Setting-group-options">Setting group options</a>
+
+</li></ul>
+<p>Turning hyperlinks on/off
+
+</p>
+<ul class="menu">
+<li><a href="#Turning-low_002dlevel-commands-on_002foff">Turning low-level commands on/off</a>
+<li><a href="#Turning-hyperlinks-on_002foff-for-a-group">Turning hyperlinks on/off for a group</a>
+
+</li></ul>
+<p>Arrow theoretic diagrams
+
+</p>
+<ul class="menu">
+<li><a href="#Slanted-lines-and-vectors">Slanted lines and vectors</a>
+<li><a href="#Commutative-diagrams">Commutative diagrams</a>
+
+</li></ul>
+<p>Commutative diagrams
+
+</p>
+<ul class="menu">
+<li><a href="#Arrows-and-morphisms">Arrows and morphisms</a>
+<li><a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a>
+<li><a href="#Commutative-diagram-parameters">Commutative diagram parameters</a>
+
+</li></ul>
+<p>Programming definitions
+
+</p>
+<ul class="menu">
+<li><a href="#Category-codes">Category codes</a>: Changing category codes.
+<li><a href="#Allocation-macros">Allocation macros</a>: Non-outer versions of \newcount et al.
+<li><a href="#Iteration">Iteration</a>: Doing `for' and `while' loops in TeX.
+<li><a href="#Macro-arguments">Macro arguments</a>: Reading and ignoring them.
+<li><a href="#Converting-to-characters">Converting to characters</a>: Normalizing control sequences and spaces.
+<li><a href="#Expansion">Expansion</a>: Controlling expansion.
+<li><a href="#Obeying-spaces">Obeying spaces</a>: Making whitespace count anywhere.
+<li><a href="#Writing-out-numbers">Writing out numbers</a>: Making `1' into `one'.
+<li><a href="#Mode_002dspecific-penalties">Mode-specific penalties</a>
+<li><a href="#Auxiliary-files">Auxiliary files</a>: Testing for their existence.
+<li><a href="#User_002ddefined-environments">User-defined environments</a>: User-defined environments.
+<li><a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a>
+
+</li></ul>
+<p>Expansion
+
+</p>
+<ul class="menu">
+<li><a href="#g_t_005ccsn-and-_005cece">\csn and \ece</a>
+<li><a href="#g_t_005cedefappend">\edefappend</a>
+<li><a href="#Hooks">Hooks</a>: Manipulating and executing named actions.
+<li><a href="#Properties">Properties</a>: Associating information with a csname.
+<li><a href="#g_t_005cexpandonce">\expandonce</a>
+<li><a href="#g_t_005cifundefined">\ifundefined</a>
+<li><a href="#g_t_005cifempty">\ifempty</a>
+<li><a href="#g_t_005cifinteger-and-_005cisinteger">\ifinteger and \isinteger</a>
+<li><a href="#g_t_005cfuturenonspacelet">\futurenonspacelet</a>
+
+</li></ul>
+<p>Demo files
+
+</p>
+<ul class="menu">
+<li><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a>
+<li><a href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029">Highlighting TeX comments in listings (lscommnt.tex)</a>
+
+ </ul>
+
+<!-- This is part of the Eplain manual. Public domain. -->
+<div class="node">
+<p><hr>
+<a name="Introduction"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Installation">Installation</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Top">Top</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
+
+</div>
+
+<h2 class="chapter">1 Introduction</h2>
+
+<p><a name="index-Eplain_002c-purpose-of-1"></a>
+<a name="index-xeplain_002etex-2"></a>The <dfn>Eplain</dfn> macro package expands on and extends the definitions in
+plain TeX. This manual describes the definitions that you, as either
+an author or a macro writer, might like to use. It doesn't discuss the
+implementation; see comments in the source code (<samp><span class="file">xeplain.tex</span></samp>) for
+that.
+
+ <p>Eplain is not intended to provide &ldquo;generic&rdquo; typesetting capabilities, as
+do LaTeX (written by Leslie Lamport)
+<a name="index-g_t_0040LaTeX_007b_007d-3"></a><a name="index-Lamport_002c-Leslie-4"></a>or Texinfo
+<a name="index-Texinfo-5"></a>(written by Richard Stallman and others).
+<a name="index-Stallman_002c-Richard-6"></a><a name="index-rms-7"></a>Instead, it provides definitions that are intended to be useful
+regardless of the high-level commands that you use when you actually
+prepare your manuscript.
+
+ <p>For example, Eplain does not have a command <code>\section</code>, which
+would format section headings in an &ldquo;appropriate&rdquo; way, such as
+LaTeX's <code>\section</code>. The philosophy of Eplain is
+that some people will always need or want to go beyond the macro
+designer's idea of &ldquo;appropriate&rdquo;. Such canned macros are
+fine&mdash;as long as you are willing to accept the resulting output. If
+you don't like the results, or if you are trying to match a different
+format, you are out of luck.
+
+ <p>On the other hand, almost everyone would like capabilities such as
+cross-referencing by labels, so that you don't have to put actual page
+numbers in the manuscript. The author of Eplain
+<a name="index-Berry_002c-Karl-8"></a>is not aware of any generally available macro packages that (1)&nbsp;<!-- /@w -->do
+not force their typographic style on an author, and yet (2)&nbsp;<!-- /@w -->provide
+such capabilities.
+
+ <p>Besides such generic macros as cross-referencing, Eplain
+contains another set of definitions: ones that change the conventions of
+plain TeX's output. For example, math displays in TeX are, by
+default, centered. If you want your displays to come out
+left-justified, you have to plow through <cite>The TeXbook</cite> to find
+some way to do it, and then adapt the code to your own needs. Eplain
+tries to take care of the messy details of such things, while still
+leaving the detailed appearance of the output up to you.
+
+ <p>Finally, numerous definitions turned out to be useful as Eplain was
+developed. They are also documented in this manual, on the chance that
+people writing other macros will be able to use them.
+
+ <p>You can send bug reports or suggestions to
+<a href="mailto:tex-eplain@tug.org">tex-eplain@tug.org</a>. The current version number of Eplain is
+defined as the macro <code>\fmtversion</code>
+<a name="index-version-number-9"></a><a name="index-fmtversion-10"></a>at the end of the source file <samp><span class="file">eplain.tex</span></samp>. When corresponding,
+please refer to it.
+
+ <p>To get on this mailing list yourself, email
+<a href="mailto:tex-eplain-request@tug.org">tex-eplain-request@tug.org</a> with a message whose body contains
+a line
+
+<pre class="example"> subscribe <var>you@your.preferred.address</var>
+</pre>
+ <p class="noindent">or visit <a href="http://tug.org/mailman/listinfo/tex-eplain">http://tug.org/mailman/listinfo/tex-eplain</a>.
+
+ <p><a name="index-Walden_002c-David-11"></a>David Walden had reported his experience with Eplain as a new user.
+The article is available online at
+<a href="http://tug.org/pracjourn/2005-4/walden">http://tug.org/pracjourn/2005-4/walden</a>. An introductory
+article (written for
+<a name="index-g_t_0040i_007bTUGboat_007d-12"></a><i>TUGboat</i>) is also available online at
+<a href="http://tug.org/eplain/misc/tb84katsi.pdf">http://tug.org/eplain/misc/tb84katsi.pdf</a>.
+
+<!-- This is part of the Eplain manual. Public domain. -->
+<div class="node">
+<p><hr>
+<a name="Installation"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Invoking-Eplain">Invoking Eplain</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Introduction">Introduction</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
+
+</div>
+
+<h2 class="chapter">2 Installation</h2>
+
+<p><a name="index-Eplain_002c-installing-13"></a><a name="index-installation-14"></a><a name="index-Eplain_002c-upgrading-15"></a><a name="index-upgrading-16"></a>Your TeX installation should already contain a version of Eplain
+(<samp><span class="file">eplain.tex</span></samp>) in its main <samp><span class="file">texmf</span></samp> tree (usually under
+<samp><span class="file">/usr/share/texmf/tex/eplain/</span></samp> on Unix systems). To install a
+newer version of Eplain, put the new <samp><span class="file">eplain.tex</span></samp> (included in
+Eplain distributions) in the <samp><span class="file">tex/eplain/</span></samp> subdirectory of your
+local <samp><span class="file">texmf</span></samp> tree. The newer version you install in the local
+tree should override the older one in the main tree.
+
+ <p>The location of the local <samp><span class="file">texmf</span></samp> tree obviously depends on your
+operating system and TeX installation. On Unix systems the usual
+location is <samp><span class="file">/usr/local/share/texmf/</span></samp>. If you don't have write
+permissions for <samp><span class="file">/usr/local/share/texmf/</span></samp>, many installations read
+the <samp><span class="file">texmf</span></samp> tree in the user's home directory; <samp><span class="file">eplain.tex</span></samp>
+then should go under <samp><span class="file">~/texmf/tex/eplain/</span></samp>. For more information
+about TeX directory structure, please see
+<a href="http://www.tex.ac.uk/cgi-bin/texfaq2html?label=tds">http://www.tex.ac.uk/cgi-bin/texfaq2html?label=tds</a>.
+
+ <p><a name="index-TEXINPUTS-17"></a>If you prefer to install <samp><span class="file">eplain.tex</span></samp> in a non-standard place, set
+an environment variable (<code>TEXINPUTS</code> for the Web2C port of TeX
+to Unix) to tell TeX how to find it.
+
+ <p>If you want, you can also create a format (<samp><span class="file">.fmt</span></samp>)
+<a name="index-g_t_002efmt-_0040r_007bfile_007d-18"></a><a name="index-format-file-19"></a><a name="index-eplain_002efmt-20"></a>file for Eplain, which will eliminate the time spent reading the macro
+source file with <code>\input</code>. You do this by issuing a sequence of
+Unix commands something like this:
+
+<pre class="example"> prompt$ touch eplain.aux
+ prompt$ initex
+ This is TeX, ...
+ **&amp;plain eplain
+ (eplain.tex)
+ *\dump
+ ... <var>messages</var> ...
+</pre>
+ <p><a name="index-eplain_002eaux-21"></a><a name="index-undefined-labels_002c-warnings-about-22"></a>You must make sure that <samp><span class="file">eplain.aux</span></samp> exists <em>before</em> you
+run <samp><span class="file">initex</span></samp>; otherwise, warning messages about undefined labels
+will never be issued.
+
+ <p><a name="index-TEXFORMATS-23"></a>You then have to install the resulting <samp><span class="file">eplain.fmt</span></samp> in your local
+<samp><span class="file">texmf</span></samp> tree or set an environment variable to tell TeX how to
+find it. For the Web2C port of TeX to Unix, format files are usually
+installed under <samp><span class="file">/usr/local/share/texmf/web2c/</span></samp> or
+<samp><span class="file">/var/lib/texmf/web2c/</span></samp>; the environment variable is
+<code>TEXFORMATS</code>.
+
+<!-- This is part of the Eplain manual. Public domain. -->
+<div class="node">
+<p><hr>
+<a name="Invoking-Eplain"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#User-definitions">User definitions</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Installation">Installation</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
+
+</div>
+
+<h2 class="chapter">3 Invoking Eplain</h2>
+
+<p><a name="index-Eplain_002c-invoking-24"></a>The simplest way to use Eplain is simply to put:
+
+<pre class="example"> \input eplain
+</pre>
+ <p class="noindent">at the beginning of your input file. The macro file is small
+enough that reading it does not take an unbearably long time&mdash;at least on
+contemporary machines.
+
+ <p>In addition, if a format (<samp><span class="file">.fmt</span></samp>)
+<a name="index-g_t_002efmt-_0040r_007bfile_007d-25"></a>file has been created for Eplain (see the previous section), you can
+eliminate the time spent reading the macro source file. You do this
+by responding <code>&amp;eplain</code> to TeX's `<samp><span class="samp">**</span></samp>' prompt. For
+example:
+
+<pre class="example"> initex
+ This is TeX, ...
+ **&amp;eplain myfile
+</pre>
+ <p>Depending on the implementation of TeX which you are using, you might
+also be able to invoke TeX as <samp><span class="file">eplain</span></samp> and have the format file
+automatically read.
+
+ <p>If you write something which you will be distributing to others, you
+won't know if the Eplain format will be loaded already. If it is, then
+doing <code>\input eplain</code> will waste time; if it isn't, then you must
+load it. To solve this, Eplain defines the control sequence
+<code>\eplain</code>
+<a name="index-eplain-26"></a>to be the letter <code>t</code> (a convention borrowed from Lisp; it doesn't
+actually matter what the definition is, only that the definition
+exists). Therefore, you can do the following:
+
+<pre class="example"> \ifx\eplain\undefined \input eplain \fi
+</pre>
+ <p class="noindent">where <code>\undefined</code> must never acquire a definition.
+
+ <p>Eplain consists of several source files:
+ <dl>
+<dt><samp><span class="file">xeplain.tex</span></samp><dd>most of the macros;
+
+ <br><dt><samp><span class="file">arrow.tex</span></samp><dd>commutative diagram macros (see <a href="#Arrow-theoretic-diagrams">Arrow theoretic diagrams</a>), written by
+Steven Smith;
+
+ <br><dt><samp><span class="file">btxmac.tex</span></samp><dd>bibliography-related macros (see <a href="#Citations">Citations</a>);
+
+ <br><dt><samp><span class="file">ifpdf.sty</span></samp><dd>sets the switch <code>\ifpdf</code>, which can be used to
+detect pdfTeX in <acronym>PDF</acronym> mode (see <a href="#Checking-for-PDF-output">Checking for PDF output</a>), written by Heiko Oberdiek;
+
+ <br><dt><samp><span class="file">path.sty</span></samp><dd>macro for allowing line breaks at punctuation characters within long
+pathnames, electronic mail addresses, etc., (see <a href="#Paths">Paths</a>), written
+by Philip Taylor;
+
+ <br><dt><samp><span class="file">texnames.sty</span></samp><dd>abbreviations for various TeX-related names (see <a href="#Logos">Logos</a>), edited
+by Nelson Beebe.
+
+ </dl>
+
+<p class="noindent">The file <samp><span class="file">eplain.tex</span></samp> is all of these files merged
+together, with comments removed.
+
+ <p>All of these files except <samp><span class="file">xeplain.tex</span></samp> can be input individually,
+if all you want are the definitions in that file.
+
+ <p>Also, since the bibliography macros are fairly extensive, you might not
+want to load them, to conserve TeX's memory. Therefore, if the
+control sequence <code>\nobibtex</code>
+<a name="index-nobibtex-27"></a>is defined, then the bibliography definitions are skipped. You must set
+<code>\nobibtex</code> before <samp><span class="file">eplain.tex</span></samp> is read, naturally. For
+example, you could start your input file like this:
+
+<pre class="example"> \let\nobibtex = t
+ \input eplain
+</pre>
+ <p class="noindent">By default, <code>\nobibtex</code> is undefined, and so the
+bibliography definitions <em>are</em> made.
+
+ <p><a name="index-noarrow-28"></a>Likewise, define <code>\noarrow</code> if you don't want to include the
+commutative diagram macros from <samp><span class="file">arrow.tex</span></samp>, perhaps because you
+already have conflicting ones.
+
+ <p>If you don't want to read or write an <samp><span class="file">aux</span></samp> file at all, for any
+kind of cross-referencing, define <code>\noauxfile</code>
+<a name="index-noauxfile-29"></a>before reading <samp><span class="file">eplain.tex</span></samp>. This also turns off all warnings
+about undefined labels.
+
+ <p><a name="index-amsppt_002esty-30"></a><a name="index-AMS_0040TeX_007b_007d-conflicts-31"></a>Eplain conflicts with AMSTeX (to be precise, with <samp><span class="file">amsppt.sty</span></samp>):
+the macros <code>\cite</code> and <code>\ref</code> are defined by both.
+
+ <p>If you want to use AMSTeX's <code>\cite</code>, the solution is to define
+<code>\nobibtex</code> before reading Eplain, as described above.
+
+ <p>If you have <samp><span class="file">amsppt.sty</span></samp> loaded and use <code>\ref</code>, Eplain writes
+a warning on your terminal. If you want to use the AMSTeX
+<code>\ref</code>, do <code>\let\ref = \amsref</code> after reading Eplain.
+To avoid the warning, do <code>\let\ref = \eplainref</code> after reading
+Eplain and before using <code>\ref</code>.
+
+ <p><a name="index-texi2dvi-32"></a><a name="index-bibtex-33"></a><a name="index-makeindex-34"></a>Sometimes you may need to run TeX more then once on your
+<samp><span class="file">.tex</span></samp> file in order to produce and typeset indexes, resolve
+undefined cross-references and/or citations. The shell script
+<samp><span class="command">texi2dvi</span></samp> from the Texinfo documentation system (see
+<a href="http://www.gnu.org/software/texinfo">http://www.gnu.org/software/texinfo</a>) can automate this process:
+it runs BibTeX, MakeIndex and TeX as many times as needed to
+complete the compilation process. You will need to set the
+<samp><span class="env">LATEX</span></samp> environment variable to `<samp><span class="samp">tex</span></samp>'. For example, in a
+Bourne-compatible shell, the following command will do all the work:
+
+<pre class="example"> prompt$ LATEX=tex texi2dvi file.tex
+</pre>
+ <p><a name="index-pdftex-35"></a>(Despite the name, <samp><span class="command">texi2dvi</span></samp> can also produce
+<samp><span class="file">.pdf</span></samp> files; just set `<samp><span class="samp">LATEX=pdftex</span></samp>'.) See the output from
+the command <samp><span class="command">texi2dvi --help</span></samp> for invoking information and a
+full list of options.
+
+<!-- This is part of the Eplain manual. Public domain. -->
+<div class="node">
+<p><hr>
+<a name="User-definitions"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Hyperlinks">Hyperlinks</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Invoking-Eplain">Invoking Eplain</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
+
+</div>
+
+<h2 class="chapter">4 User definitions</h2>
+
+<p>This chapter describes definitions that are meant to be used directly
+in a document. When appropriate, ways to change the default
+formatting are described in subsections.
+
+<ul class="menu">
+<li><a accesskey="1" href="#Diagnostics">Diagnostics</a>: Tracing information.
+<li><a accesskey="2" href="#Rules">Rules</a>: Changing the default rule dimensions.
+<li><a accesskey="3" href="#Citations">Citations</a>: Using BibTeX and Eplain to make bibliographies.
+<li><a accesskey="4" href="#Displays">Displays</a>: Changing the formatting of math displays.
+<li><a accesskey="5" href="#Time-of-day">Time of day</a>: Producing the time of day.
+<li><a accesskey="6" href="#Lists">Lists</a>: Producing numbered and unordered lists.
+<li><a accesskey="7" href="#Verbatim-listing">Verbatim listing</a>: Producing text just as it appears.
+<li><a accesskey="8" href="#Contents">Contents</a>: Making a table of contents.
+<li><a accesskey="9" href="#Cross_002dreferences">Cross-references</a>: Symbolic references to equations, figures, etc.
+<li><a href="#Page-references">Page references</a>: Symbolic references to page numbers.
+<li><a href="#Equation-references">Equation references</a>: Symbolic references to equation numbers.
+<li><a href="#Indexing">Indexing</a>: Creating and typesetting indexes.
+<li><a href="#Justification">Justification</a>: Ragged left, ragged right, centered.
+<li><a href="#Tables">Tables</a>: Producing ordered tables.
+<li><a href="#Margins">Margins</a>: Changing the margins directly.
+<li><a href="#Multiple-columns">Multiple columns</a>: Getting output in two columns.
+<li><a href="#Footnotes">Footnotes</a>: Autonumbered footnotes; changing formatting.
+<li><a href="#Fractions">Fractions</a>: A better way to produce fractions in text.
+<li><a href="#Paths">Paths</a>: Allowing line breaks in pathnames.
+<li><a href="#Logos">Logos</a>: Various logos.
+<li><a href="#Boxes">Boxes</a>: Producing filled or open rectangles.
+<li><a href="#Checking-for-PDF-output">Checking for PDF output</a>: Checking for pdfTeX in PDF mode.
+<li><a href="#Loading-LaTeX-packages">Loading LaTeX packages</a>: Support for LaTeX packages under plain TeX.
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="Diagnostics"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Rules">Rules</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#User-definitions">User definitions</a>
+
+</div>
+
+<h3 class="section">4.1 Diagnostics</h3>
+
+<p><a name="index-diagnostics-36"></a><a name="index-tracing-37"></a>Plain TeX provides the <code>\tracingall</code> command, to turn on the
+maximum amount of tracing possible in TeX. The (usually voluminous)
+output from <code>\tracingall</code> goes both on the terminal and into the
+transcript file.
+<a name="index-tracingall-38"></a>It is sometimes easier to have the output go only to the transcript
+file, so you can peruse it at your leisure and not obscure other output
+to the terminal. So, Eplain provides the command <code>\loggingall</code>.
+<a name="index-loggingall-39"></a>(For some reason, this command is available in Metafont, but not in
+TeX.)
+
+ <p>It is also sometimes useful to see the complete contents of boxes.
+<code>\tracingboxes</code> does this. (It doesn't affect whether or not the
+contents
+<a name="index-tracingboxes-40"></a>are shown on the terminal.)
+
+ <p>You can turn off all tracing with <code>\tracingoff</code>.
+<a name="index-tracingoff-41"></a>
+You can also turn logging on and off globally, so you don't have to
+worry about whether or not you're inside a group at the time of command.
+These variants are named <code>\gloggingall</code>
+<a name="index-gloggingall-42"></a>and <code>\gtracingall</code>.
+<a name="index-gtracingall-43"></a>
+Finally, if you write your own help messages (see <code>\newhelp</code>
+<a name="index-help-messages-44"></a><a name="index-error-messages-45"></a>in <cite>The TeXbook</cite>), you want a convenient way to break lines in
+them. This is what TeX's <code>\newlinechar</code> parameter is for;
+<a name="index-newlinechar-46"></a>however, plain TeX doesn't set <code>\newlinechar</code>. Therefore,
+Eplain defines it to be the character <code>^^J</code>.
+
+ <p>For example, one of Eplain's own error messages is defined as follows:
+
+<pre class="example"> \newhelp\envhelp{Perhaps you forgot to end the previous^^J%
+ environment? I'm finishing off the current group,^^J%
+ hoping that will fix it.}%
+</pre>
+ <div class="node">
+<p><hr>
+<a name="Rules"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Citations">Citations</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Diagnostics">Diagnostics</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#User-definitions">User definitions</a>
+
+</div>
+
+<h3 class="section">4.2 Rules</h3>
+
+<p>The default dimensions of rules are defined in chapter&nbsp;<!-- /@w -->21 of the
+<cite>The TeXbook</cite>. To sum up what is given there, the &ldquo;thickness&rdquo;
+of rules is
+<a name="index-rule-thickness-47"></a>0.4pt by default. Eplain defines three parameters that let you change
+this dimension: <code>\hruledefaultheight</code>, <code>\hruledefaultdepth</code>,
+<a name="index-hruledefaultheight-48"></a><a name="index-hruledefaultdepth-49"></a>and <code>\vruledefaultwidth</code>. By default, they are defined as
+<a name="index-vruledefaultwidth-50"></a><cite>The TeXbook</cite> describes.
+
+ <p>But it would be wrong to redefine <code>\hrule</code> and <code>\vrule</code>. For
+one thing, some macros in plain TeX depend on the default dimensions
+being used; for another, rules are used quite heavily, and the
+performance impact of making it a macro can be noticeable. Therefore,
+to take advantage of the default rule parameters, you must use
+<code>\ehrule</code>
+<a name="index-ehrule-51"></a>and <code>\evrule</code>.
+<a name="index-evrule-52"></a>
+
+<div class="node">
+<p><hr>
+<a name="Citations"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Displays">Displays</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Rules">Rules</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#User-definitions">User definitions</a>
+
+</div>
+
+<h3 class="section">4.3 Citations</h3>
+
+<p><a name="index-citations-53"></a><a name="index-bibliographies-54"></a>Bibliographies are part of almost every technical document. To handle
+them easily, you need two things: a program to do the tedious
+formatting, and a way to cite references by labels, rather than by
+numbers. The BibTeX program, written by Oren Patashnik, takes care
+<a name="index-Bib_0040TeX_007b_007d-55"></a><a name="index-Patashnik_002c-Oren-56"></a>of the first item; the citation commands in LaTeX, written to be used
+<a name="index-g_t_0040LaTeX_007b_007d-57"></a>with BibTeX, take care of the second. Therefore,
+Eplain adopts the use of BibTeX, and virtually the same interface as
+LaTeX.
+
+ <p>The general idea is that you put citation commands in the text of your
+document, and commands saying where the bibliography data is. When you
+run TeX, these commands produce output on the file with the same root
+name as your document (by default) and the extension <samp><span class="file">.aux</span></samp>.
+<a name="index-g_t_002eaux-_0040r_007bfile_007d-58"></a><a name="index-jobname-59"></a>BibTeX reads this file. You should put the bibliography data in a
+file or files with the extension <samp><span class="file">.bib</span></samp>. BibTeX writes out a
+file with the same root
+<a name="index-g_t_002ebib-_0040r_007bfile_007d-60"></a>name as your document and extension <samp><span class="file">.bbl</span></samp>. Eplain reads this file
+<a name="index-g_t_002ebbl-_0040r_007bfile_007d-61"></a>the next time you run your document through TeX. (It takes
+multiple passes to get everything straight, because usually after seeing
+your bibliography typeset, you want to make changes in the <samp><span class="file">.bib</span></samp>
+file, which means you have to run BibTeX again, which means you have
+to run TeX again<small class="dots">...</small>) An annotated example of the whole process is
+given below.
+
+ <p>If your document has more than one bibliography&mdash;for example, if it
+is a collection of papers&mdash;you can tell Eplain to use a different root
+name for the <samp><span class="file">.bbl</span></samp> file by defining the control sequence
+<code>\bblfilebasename</code>.
+<a name="index-bblfilebasename-62"></a>The default definition is simply <code>\jobname</code>.
+
+ <p>See the document <cite>BibTeXing</cite> (whose text is in the file
+<samp><span class="file">btxdoc.tex</span></samp>, which should be in the Eplain distribution you got)
+for information on how to write your <tt>.bib</tt> files. Both the
+BibTeX and the Eplain distributions contain several examples, also.
+
+ <p>The <code>\cite</code>
+<a name="index-cite-63"></a>command produces a citation in the text of your document. The exact
+printed form the citation will take is under your control
+(see <a href="#Formatting-citations">Formatting citations</a>). <code>\cite</code> takes one
+required argument, a comma-separated list of cross-reference labels
+(see <a href="#Cross_002dreferences">Cross-references</a>, for exactly what characters are allowed in
+such labels). Warning: spaces in this list are taken as part of the
+following label name, which is probably not what you expect.
+<a name="index-citations_002c-undefined-64"></a>The <code>\cite</code> command also produces a command
+in the <tt>.aux</tt> file that tells BibTeX to retrieve the given reference(s)
+from the <tt>.bib</tt> file. <code>\cite</code> also takes one optional argument,
+which you specify within square brackets, as in LaTeX. This text is
+simply typeset after the citations. (See the example below.)
+
+ <p>Eplain can create hypertext links for citations pointing to the relevant
+bibliography entries (see <a href="#Citation-hyperlinks">Citation hyperlinks</a>).
+
+ <p>Another command, <code>\nocite</code>,
+<a name="index-nocite-65"></a>puts the given reference(s) into the bibliography, but produces nothing
+in the text.
+
+ <p>The <code>\bibliography</code>
+<a name="index-bibliography-66"></a>command is next. It serves two purposes: producing the typeset
+bibliography, and telling BibTeX the root names of the <tt>.bib</tt>
+files. Therefore, the argument to <code>\bibliography</code> is a comma
+separated list of the <tt>.bib</tt> files (without the `<samp><span class="samp">.bib</span></samp>'). Again,
+spaces in this list are significant.
+
+ <p>You tell BibTeX the particular style in which you want your
+bibliography typeset with one more command:
+<code>\bibliographystyle</code>.
+<a name="index-bibliographystyle-67"></a>The argument to this is a single filename <var>style</var>, which tells
+BibTeX to look for a file <var>style</var><tt>.bst</tt>.
+<a name="index-g_t_002ebst-_0040r_007bfiles_007d-68"></a>See the document <cite>Designing BibTeX styles</cite> (whose text is in the
+<samp><span class="file">btxhak.tex</span></samp>) for information on how to write your own styles.
+
+ <p>Eplain automatically reads the citations from the <tt>.aux</tt> file when
+your job starts.
+
+ <p>If you don't want to see the messages about undefined citations, you
+can say <code>\xrefwarningfalse</code> before making any citations.
+<a name="index-xrefwarningfalse-69"></a>Eplain automatically does this if the <tt>.aux</tt> file does not exist.
+You can restore the default by saying <code>\xrefwarningtrue</code>.
+
+ <p>Here is a TeX input file that illustrates the various commands.
+
+<pre class="example"> \input eplain % Reads the .aux file.
+ Two citations to Knuthian works:
+ \cite[note]{surreal,concrete-math}.
+ \beginsection{References.}\par % Title for the bibliography.
+ \bibliography{knuth} % Use knuth.bib for the labels.
+ \bibliographystyle{plain} % Number the references.
+ \end % End of the document.
+</pre>
+ <p><a name="index-Knuth_002c-Donald-Ervin-70"></a><a name="index-Graham_002c-Ronald-L_002e-71"></a><a name="index-numbered-references-72"></a><a name="index-references_002c-numbered-73"></a>
+If we suppose that this file was named <samp><span class="file">citex.tex</span></samp> and that the
+bibliography data is in <samp><span class="file">knuth.bib</span></samp> (as the <code>\bibliography</code>
+command says), the following commands do what's required. (`<samp><span class="samp">$ </span></samp>'
+represents the shell prompt.)
+
+<pre class="example"> $ tex citex (produces undefined citation messages)
+ $ bibtex citex (read knuth.bib and citex.aux, write citex.bbl)
+ $ tex citex (read citex.bbl, still have undefined citations)
+ $ tex citex (one more time, to resolve the references)
+</pre>
+ <p><a name="index-texi2dvi-74"></a>The <samp><span class="command">texi2dvi</span></samp> program can help you automate this
+process (see <a href="#Invoking-Eplain">Invoking Eplain</a>).
+
+ <p>The output looks something like (because we used the <tt>plain</tt>
+bibliography style):
+
+ <blockquote>
+Two citations to Knuthian works: [2,1 note].
+
+ <p><b>References</b>
+
+ <p>[1] Ronald L. Graham, Donald E. Knuth, and Oren Patashnik. <i>Concrete
+Mathematics</i>. Addison-Wesley, Reading, Massachusetts, 1989.
+
+ <p>[2] Donald E. Knuth. <i>Surreal Numbers</i>. Addison-Wesley, Reading,
+Massachusetts, 1974.
+</blockquote>
+
+ <p>See the BibTeX documentation for information on how to write the
+bibliography databases, and the bibliography styles that are available.
+(If you want your references printed with names, as in [Knu74], instead
+of numbered, the bibliography style is <code>alpha</code>.)
+<a name="index-alphanumeric-references-75"></a><a name="index-references_002c-alphanumeric-76"></a>
+
+<ul class="menu">
+<li><a accesskey="1" href="#Formatting-citations">Formatting citations</a>: Changing the way citations are printed.
+<li><a accesskey="2" href="#Formatting-bibliographies">Formatting bibliographies</a>: Changing the way bibliographies are printed.
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="Formatting-citations"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Formatting-bibliographies">Formatting bibliographies</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Citations">Citations</a>
+
+</div>
+
+<h4 class="subsection">4.3.1 Formatting citations</h4>
+
+<p><a name="index-citations_002c-formatting-77"></a>
+You may wish to change Eplain's formatting of citations; i.e., the
+result of your <code>\cite</code> commands. By default, the citation labels
+are printed one after another, separated by commas and enclosed in
+brackets, using the main text font. Some formats require other styles,
+such as superscripted labels. You can accomodate such formats by
+redefining the following macros.
+
+ <dl>
+<dt><code>\printcitestart</code><br><dt><code>\printcitefinish</code><dd><a name="index-printcitestart-78"></a><a name="index-printcitefinish-79"></a>Eplain expands these macros at the begining and end of the list of
+citations for each <code>\cite</code> command. By default, they produce a
+`<samp><span class="samp">[</span></samp>' and `<samp><span class="samp">]</span></samp>', respectively.
+
+ <br><dt><code>\printbetweencitations</code><dd><a name="index-printbetweencitations-80"></a>If a <code>\cite</code> command has multiple citations, as in
+<code>\cite{acp,texbook}</code>, Eplain expands this macro in between each
+pair of citations. By default, it produces a comma followed by a space.
+
+ <br><dt><code>\printcitenote</code><dd><a name="index-printcitenote-81"></a>This macro takes one argument, which is the optional note to the
+<code>\cite</code> command. If the <code>\cite</code> command had no note, this
+macro isn't used. Otherwise, it should print the note. By default, the
+note is preceded with a comma and a space.
+</dl>
+
+ <p>Here is an example, showing you could produce citations as
+superscripted labels, with the optional notes in parentheses.
+
+<pre class="example"> \def\printcitestart{\unskip $^\bgroup}
+ \def\printbetweencitations{,}
+ \def\printcitefinish{\egroup$}
+ \def\printcitenote#1{\hbox{\sevenrm\space (#1)}}
+</pre>
+ <div class="node">
+<p><hr>
+<a name="Formatting-bibliographies"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Formatting-citations">Formatting citations</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Citations">Citations</a>
+
+</div>
+
+<h4 class="subsection">4.3.2 Formatting bibliographies</h4>
+
+<p><a name="index-bibliography_002c-formatting-the-82"></a>
+You may wish to change Eplain's formatting of the bibliography,
+especially with respect to the fonts that are used. Therefore, Eplain
+provides the following control sequences:
+
+ <dl>
+<dt><code>\biblabelwidth</code><dd><a name="index-biblabelwidth-83"></a>This control sequence represents a <code>\dimen</code> register, and its value
+is the width of the widest label in the bibliography. Although it is
+unlikely you will ever want to redefine it, you might want
+to use it if you redefine <code>\biblabelprint</code>, below.
+
+ <br><dt><code>\biblabelprint</code><dd><a name="index-biblabelprint-84"></a>This macro takes one argument, the label to print. By default, the
+label is put in a box of width <code>\biblabelwidth</code>, and is followed by
+an enspace. When you want to change the spacing around the labels, this
+is the right macro to redefine.
+
+ <br><dt><code>\biblabelcontents</code><dd><a name="index-biblabelcontents-85"></a>This macro also takes one argument, the label to print. By default, the
+label is printed using the font <code>\bblrm</code> (below), and enclosed in
+brackets. When you want to change the appearance of the label, but not
+the spacing around it, this is the right macro to redefine.
+
+ <br><dt><code>\bblrm</code><dd><a name="index-bblrm-86"></a><a name="index-bibliography-fonts-87"></a>The default font used for printing the bibliography.
+
+ <br><dt><code>\bblem</code><dd><a name="index-bblem-88"></a>The font used for printing the titles and other &ldquo;emphasized&rdquo; material.
+
+ <br><dt><code>\bblsc</code><dd><a name="index-bblsc-89"></a>In some styles, authors' names are printed in a caps-and-small-caps
+font. In those cases, this font is used.
+
+ <br><dt><code>\bblnewblock</code><dd><a name="index-bblnewblock-90"></a>This is invoked between each of the parts of a bibliography entry. The
+default is to leave some extra space between the parts; you could
+redefine it to start each part on a new line (for example). A part is
+simply a main element of the entry; for example, the author is a part.
+(It was LaTeX that introduced the (misleading, as far as I am
+concerned) term `block' for this.)
+
+ <br><dt><code>\biblabelextraspace</code><dd><a name="index-biblabelextraspace-91"></a>Bibliography entries are typeset with a hanging indentation of
+<code>\biblabelwidth</code> plus this. The default is <code>.5em</code>, where the
+em width is taken from the <code>\bblrm</code> font. If you want to change
+this, you should do it inside <code>\bblhook</code>.
+
+ <br><dt><code>\bblhook</code><dd><a name="index-bblhook-92"></a><a name="index-bibliography-items_002c-extra-space-between-93"></a>This is expanded before reading the <tt>.bbl</tt> file. By
+default, it does nothing. You could, for example, define it to set the
+bibliography fonts, or produce the heading for the references. Two
+spacing parameters must be changed inside <code>\bblhook</code>:
+<code>\parskip</code>, which produces extra space between the items; and
+<code>\biblabelextraspace</code>, which is described above.
+(By the way, <code>\hookappend</code> won't work with <code>\bblhook</code>, despite
+the names. Just use <code>\def</code>.)
+
+ </dl>
+
+ <p>If you are really desperate, you can also hand-edit the <tt>.bbl</tt> file
+that BibTeX produces to do anything you wish.
+
+<div class="node">
+<p><hr>
+<a name="Displays"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Time-of-day">Time of day</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Citations">Citations</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#User-definitions">User definitions</a>
+
+</div>
+
+<h3 class="section">4.4 Displays</h3>
+
+<p><a name="index-displays_002c-left_002djustifying-94"></a><a name="index-mathematics-displays_002c-formatting-95"></a><a name="index-left_002djustification-of-displays-96"></a>
+By default, TeX centers displayed material. (Displayed material is
+just whatever you put between <code>$$</code>'s&mdash;it's not necessarily
+mathematics.) Many layouts would be better served if the displayed
+material was left-justified. Therefore, Eplain provides the command
+<code>\leftdisplays</code>,
+<a name="index-leftdisplays-97"></a>which indents displayed material by <code>\parindent</code> plus
+<code>\leftskip</code>, plus <code>\leftdisplayindent</code>.
+<a name="index-leftdisplayindent-98"></a>
+You can go back to centering displays with <code>\centereddisplays</code>.
+<a name="index-centereddisplays-99"></a>(It is usually poor typography to have both centered and left-justified
+displays in a single publication, though.)
+
+ <p><code>\leftdisplays</code> also changes the plain TeX commands that deal
+with alignments inside math displays,
+<code>\displaylines</code>,
+<a name="index-displaylines-100"></a><code>\eqalignno</code>,
+<a name="index-eqalignno-101"></a>and <code>\leqalignno</code>,
+<a name="index-leqalignno-102"></a>to produce left-justified text. You can still override this formatting
+by inserting <code>\hfill</code> glue, as explained in <cite>The TeXbook</cite>.
+
+<ul class="menu">
+<li><a accesskey="1" href="#Formatting-displays">Formatting displays</a>: General formatting of displays.
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="Formatting-displays"></a>
+Up:&nbsp;<a rel="up" accesskey="u" href="#Displays">Displays</a>
+
+</div>
+
+<h4 class="subsection">4.4.1 Formatting displays</h4>
+
+<p>If you want some other kind of formatting, you can write a definition
+of your own, analogous to <code>\leftdisplays</code>. You need only make sure
+that <code>\leftdisplaysetup</code>
+<a name="index-leftdisplaysetup-103"></a>is called at the beginning of every display (presumably by invoking it
+in TeX's <code>\everydisplay</code> parameter), and to define
+<code>\generaldisplay</code>.
+<a name="index-generaldisplay-104"></a>
+<code>\leftdisplays</code> expands the old value of <code>\everydisplay</code>
+before calling <code>\leftdisplaysetup</code>, so that any changes you have made
+to it won't be lost. That old token list as available as the value of
+the token register <code>\previouseverydisplay</code>.
+<a name="index-previouseverydisplay-105"></a>
+
+<div class="node">
+<p><hr>
+<a name="Time-of-day"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Lists">Lists</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Displays">Displays</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#User-definitions">User definitions</a>
+
+</div>
+
+<h3 class="section">4.5 Time of day</h3>
+
+<p><a name="index-time-of-day-106"></a><a name="index-date-107"></a>
+TeX provides the day, month, and year as numeric quantities (unless
+your TeX implementation is woefully deficient). Eplain provides some
+control sequences to make them a little more friendly to humans.
+
+ <p><code>\monthname</code>
+<a name="index-monthname-108"></a>produces the name of the current month, abbreviated to three letters.
+
+ <p><code>\fullmonthname</code>
+<a name="index-fullmonthname-109"></a>produces the name of the current month, unabbreviated (in English).
+
+ <p><code>\timestring</code>
+<a name="index-timestring-110"></a>produces the current time, as in `1:14 p.m.'
+
+ <p><code>\timestamp</code>
+<a name="index-timestamp-111"></a>produces the current date and time, as in `23 Apr 64 1:14 p.m.'.
+(Except the spacing is slightly different.)
+
+ <p><code>\today</code>
+<a name="index-today-112"></a>produces the current date, as in `23 April 1964'.
+
+<div class="node">
+<p><hr>
+<a name="Lists"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Verbatim-listing">Verbatim listing</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Time-of-day">Time of day</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#User-definitions">User definitions</a>
+
+</div>
+
+<h3 class="section">4.6 Lists</h3>
+
+<p><a name="index-lists-113"></a><a name="index-numbered-lists-114"></a><a name="index-ordered-list-115"></a><a name="index-unordered-lists-116"></a>
+Many documents require lists of items, either numbered or simply
+enumerated. Plain TeX defines one macro to help with creating lists,
+<code>\item</code>, but that is insufficient in many cases. Therefore,
+Eplain provides two pairs of commands:
+
+ <dl>
+<dt><code>\numberedlist ... \endnumberedlist</code><br><dt><code>\orderedlist ... \endorderedlist</code><dd><a name="index-numberedlist-117"></a><a name="index-endnumberedlist-118"></a><a name="index-orderedlist-119"></a><a name="index-endorderedlist-120"></a>These commands (they are synonyms) produce a list with the items
+numbered sequentially, starting from one. A nested <code>\numberedlist</code>
+labels the items with lowercase letters, starting with `a'. Another
+nested <code>\numberedlist</code> labels the items with roman numerals. Yet
+more deeply nested numbered lists label items with `<samp><span class="samp">*</span></samp>'.
+
+ <br><dt><code>\unorderedlist ... \endunorderedlist</code><dd><a name="index-unorderedlist-121"></a><a name="index-endunorderedlist-122"></a>This produces a list with the items labelled with small black boxes
+(&ldquo;square bullets&rdquo;). A nested <code>\unorderedlist</code> labels items with
+em-dashes. Doubly (and deeper) nested unordered lists label items with
+`*'s.
+
+ </dl>
+
+ <p>The two kinds of lists can be nested within each other, as well.
+
+ <p>In both kinds of lists, you begin an item with <code>\li</code>.
+<a name="index-li-123"></a>An item may continue for several paragraphs. Each item starts a
+paragraph.
+
+ <p>You can give <code>\li</code> an optional argument, a cross-reference label.
+It's defined to be the &ldquo;marker&rdquo; for the current item. This is useful
+if the list items are numbered. You can produce the value of the label
+with <code>\xrefn</code>. See <a href="#Cross_002dreferences">Cross-references</a>.
+
+ <p>Eplain can create hypertext links for the markers produced by
+<code>\xrefn</code> pointing to the relevant list item (see <a href="#List-hyperlinks">List hyperlinks</a>).
+
+ <p>You can also say <code>\listcompact</code>
+<a name="index-listcompact-124"></a>right after <code>\numberedlist</code> or <code>\unorderedlist</code>. The items in
+the list will then not have any extra space between them
+(see <a href="#Formatting-lists">Formatting lists</a>). You might want to do this if the items in
+this particular list are short.
+
+ <p>Here is an example:
+
+<pre class="example"> \numberedlist\listcompact
+ \li The first item.
+ \li The second item.
+
+ The second paragraph of the second item.
+ \endnumberedlist
+</pre>
+ <ul class="menu">
+<li><a accesskey="1" href="#Formatting-lists">Formatting lists</a>: Changing how the lists look.
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="Formatting-lists"></a>
+Up:&nbsp;<a rel="up" accesskey="u" href="#Lists">Lists</a>
+
+</div>
+
+<h4 class="subsection">4.6.1 Formatting lists</h4>
+
+<p><a name="index-lists_002c-formatting-125"></a>
+Several registers define the spacing associated with lists. It is
+likely that their default values won't suit your particular layout.
+
+ <dl>
+<dt><code>\abovelistskipamount, \belowlistskipamount</code><dd><a name="index-abovelistskipamount-126"></a><a name="index-belowlistskipamount-127"></a>The vertical glue inserted before and after every list, respectively.
+
+ <br><dt><code>\interitemskipamount</code><dd><a name="index-interitemskipamount-128"></a>The vertical glue inserted before each item except the first.
+<code>\listcompact</code> resets this to zero, as mentioned above.
+
+ <br><dt><code>\listleftindent, \listrightindent</code><dd><a name="index-listleftindent-129"></a><a name="index-listrightindent-130"></a><code>\listrightindent</code> is the amount of space by which the list is
+indented on the right; i.e., it is added to <code>\rightskip</code>.
+<code>\listleftindent</code> is the amount of space, <em>relative to</em>
+<code>\parindent</code>, by which the list is indented on the left. Why treat
+the two parameters differently? Because (a)&nbsp;<!-- /@w -->it is more useful to
+make the list indentation depend on the paragraph indentation;
+(b)&nbsp;<!-- /@w -->footnotes aren't formatted right if <code>\parindent</code> is reset
+to zero.
+
+ </dl>
+
+ <p>The three vertical glues are inserted by macros, and preceded by
+penalties: <code>\abovelistskip</code>
+<a name="index-abovelistskip-131"></a>does <code>\vpenalty\abovelistpenalty</code>
+<a name="index-abovelistpenalty-132"></a>and then <code>\vskip\abovelistskip</code>. <code>\belowlistskip</code>
+<a name="index-belowlistskip-133"></a>and <code>\interitemskip</code>
+<a name="index-interitemskip-134"></a>are analogous.
+
+ <p>In addition, the macro <code>\listmarkerspace</code>
+<a name="index-listmarkerspace-135"></a>is called to separate the item label from the item text. This is set to
+<code>\enspace</code> by default.
+
+ <p>If you want to change the labels on the items, you can redefine these
+macros:
+<code>\numberedmarker</code>
+<a name="index-numberedmarker-136"></a>or <code>\unorderedmarker</code>.
+<a name="index-unorderedmarker-137"></a>The following registers might be useful if you do:
+
+ <dl>
+<dt><code>\numberedlistdepth, \unorderedlistdepth</code><dd><a name="index-numberedlistdepth-138"></a><a name="index-unorderedlistdepth-139"></a>These keep track of the depth of nesting of the two kinds of lists.
+
+ <br><dt><code>\itemnumber, \itemletter</code><dd><a name="index-itemnumber-140"></a><a name="index-itemletter-141"></a>These keep track of the number of items that have been seen in the current
+numbered list. They are both integer registers. The difference is that
+<code>\itemnumber</code> starts at one, and <code>\itemletter</code> starts at 97,
+i.e., lowercase `a'.
+
+ </dl>
+
+ <p>You can also redefine the control sequences that are used internally,
+if you want to do something radically different: <code>\beginlist</code>
+<a name="index-beginlist-142"></a>is invoked to begin both kinds of lists; <code>\printitem</code>
+<a name="index-printitem-143"></a>is invoked to print the label (and space following the label) for each
+item; and <code>\endlist</code>
+<a name="index-endlist-144"></a>is invoked to end both kinds of
+lists.
+<a name="index-item-labels_002c-changing-145"></a><a name="index-labels-on-items_002c-changing-146"></a>
+
+<div class="node">
+<p><hr>
+<a name="Verbatim-listing"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Contents">Contents</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Lists">Lists</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#User-definitions">User definitions</a>
+
+</div>
+
+<h3 class="section">4.7 Verbatim listing</h3>
+
+<p><a name="index-verbatim-listing-147"></a><a name="index-listing-files-148"></a><a name="index-files_002c-verbatim-listing-of-149"></a>It is sometimes useful to include a file verbatim in your document;
+for example, part of a computer program. The <code>\listing</code>
+<a name="index-listing-150"></a>command is given one argument, a filename, and produces the contents of
+that file in your document. <code>\listing</code> expands <code>\listingfont</code>
+to set the current font. The default value of <code>\listingfont</code>
+<a name="index-listingfont-151"></a>is <code>\tt</code>.
+
+ <p>You can take arbitrary actions before reading the file by defining the macro
+<code>\setuplistinghook</code>.
+<a name="index-setuplistinghook-152"></a>This is expanded just before the file is input.
+
+ <p>If you want to have line numbers on the output, you can say
+<code>\let\setuplistinghook = \linenumberedlisting</code>.
+<a name="index-linenumberedlisting-153"></a>The line numbers are stored in the count register <code>\lineno</code> while
+the file is being read. You can redefine the macro
+<code>\printlistinglineno</code>
+<a name="index-printlistinglineno-154"></a>to change how they are printed.
+
+ <p>Normally, the <code>\listing</code> command will add a final empty line at
+the end of the output, even if the file does not end in a newline. To
+suppress this final line, you can say
+<code>\let\setuplistinghook = \nolastlinelisting</code>.
+<a name="index-nolastlinelisting-155"></a>This also works with line numbers (say
+<code>\def\setuplistinghook{\linenumberedlisting \nolastlinelisting}</code>),
+but only if <code>\printlistinglineno</code>
+<a name="index-printlistinglineno-156"></a>consists exclusively of boxes at the top level (i.e., any
+<code>\kern</code>s or glue should be wrapped up in a box).
+
+ <p><a name="index-form-feed-character_002c-and-verbatim-listing-157"></a><a name="index-g_t_0040kbd_007bCTRL_002dL_007d_002c-and-verbatim-listing-158"></a>You can use the form feed control character (<acronym>ASCII</acronym>
+code&nbsp;<!-- /@w -->12, typed as <kbd>CTRL-L</kbd>) in the file to force a page break
+in the output.
+
+ <p>You can produce in-line verbatim text in your document with <code>\verbatim</code>.
+<a name="index-verbatim-159"></a>End the text with <code>|endverbatim</code>. If you need a `<samp><span class="samp">|</span></samp>' in the text,
+double it. If the first character of the verbatim text is a space, use
+<code>| </code>. (<code>| </code> will work elsewhere in the argument, too, but
+isn't necessary.)
+
+ <p>For example:
+
+<pre class="example"> \verbatim| ||\#%&amp;!|endverbatim
+</pre>
+ <p class="noindent">produces <code> |\#%&amp;!</code>.
+
+ <p>Line breaks and spaces in the verbatim text are preserved.
+
+ <p><a name="index-verbatimescapechar-160"></a><a name="index-escape-character_002c-changing-verbatim-161"></a>You can change the verbatim escape character from the default `<samp><span class="samp">|</span></samp>'
+with <code>\verbatimescapechar </code><var>char</var>; for example, this changes
+it to `<samp><span class="samp">@</span></samp>'.
+
+<pre class="example"> \verbatimescapechar \@
+</pre>
+ <p class="noindent">The backslash is not necessary in some cases, but is in
+others, depending on the catcode of the character. The argument to
+<code>\verbatimescapechar</code> is used as <code>\catcode `</code><var>char</var>, so
+the exact rules follow that for <code>\catcode</code>.
+
+ <p>Because <code>\verbatim</code> must change the category code of special
+characters, calling inside a macro definition of your own does not work
+properly. For example:
+
+<pre class="example"> \def\mymacro{\verbatim &amp;#%|endverbatim}% Doesn't work!
+</pre>
+ <p class="noindent">To accomplish this, you must change the category codes yourself before
+making the macro definition. Perhaps <code>\uncatcodespecials</code> will
+help you (see <a href="#Category-codes">Category codes</a>).
+
+<div class="node">
+<p><hr>
+<a name="Contents"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Cross_002dreferences">Cross-references</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Verbatim-listing">Verbatim listing</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#User-definitions">User definitions</a>
+
+</div>
+
+<h3 class="section">4.8 Contents</h3>
+
+<p><a name="index-table-of-contents-162"></a><a name="index-contents-163"></a>Producing a table of contents that is both useful and aesthetic is one
+of the most difficult design problems in any work. Naturally, Eplain
+does not pretend to solve the design problem. Collecting the raw data
+for a table of contents, however, is much the same across documents.
+Eplain uses an auxiliary file with extension <samp><span class="file">.toc</span></samp>
+<a name="index-g_t_002etoc-_0040r_007bfile_007d-164"></a>(and the same root name as your document) to save the information.
+
+<ul class="menu">
+<li><a accesskey="1" href="#Writing-the-_002etoc-file">Writing the .toc file</a>
+<li><a accesskey="2" href="#Reading-the-_002etoc-file">Reading the .toc file</a>
+<li><a accesskey="3" href="#Changing-the-_002etoc-file_0027s-root-name">Changing the .toc file's root name</a>
+<li><a accesskey="4" href="#Alternative-contents-files">Alternative contents files</a>
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="Writing-the-.toc-file"></a>
+<a name="Writing-the-_002etoc-file"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Reading-the-_002etoc-file">Reading the .toc file</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Contents">Contents</a>
+
+</div>
+
+<h4 class="subsection">4.8.1 Writing the <tt>.toc</tt> file</h4>
+
+<p>To write an entry for the table of contents, you say
+<code>\writetocentry{</code><var>part</var><code>}{</code><var>text</var><code>}</code>,
+<a name="index-writetocentry-165"></a>where <var>part</var> is the type of part this entry is, e.g.,
+`<samp><span class="samp">chapter</span></samp>', and <var>text</var> is the text of the title.
+<code>\writetocentry</code> puts an entry into the <tt>.toc</tt> file that looks
+<a name="index-toc_0040dots_007b_007dentry-166"></a>like <code>\toc</code><var>part</var><code>entry{</code><var>text</var><code>}{</code><var>page number</var><code>}</code>
+(unless <var>part</var> is an integer, see below). The <var>text</var> is
+written unexpanded.
+
+ <p><a name="index-writenumberedtocentry-167"></a>A related command, <code>\writenumberedtocentry</code>, takes one additional
+argument, the first token of which is expanded at the point of the
+<code>\writenumberedtocentry</code>, but the rest of the argument is not
+expanded. The usual application is when the parts of the document are
+numbered. On the other hand, the one-level expansion allows you to use
+the argument for other things as well (author's names in a proceedings,
+say), and not have accents or other control sequences expanded. The
+downside is that if you <em>want</em> full expansion of the third
+argument, you don't get it&mdash;you must expand it yourself, before you
+call <code>\writenumberedtocentry</code>.
+
+ <p>For example:
+
+<pre class="example"> \writenumberedtocentry{chapter}{A $\sin$ wave}{\the\chapno}
+ \writetocentry{section}{A section title}
+</pre>
+ <p class="noindent">Supposing <code>\the\chapno</code> expanded to `<samp><span class="samp">3</span></samp>' and that the
+<code>\write</code>'s occurred on pages eight and nine, respectively, the
+above writes the following to the <tt>.toc</tt> file:
+
+<pre class="example"> \tocchapterentry{A $\sin$ wave}{3}{8}
+ \tocsectionentry{A section title}{9}
+</pre>
+ <p><a name="index-writenumberedtocline-168"></a>A variation on <code>\writenumberedtocentry</code> is
+<code>\writenumberedtocline</code>, differing only in the order of the
+parameters it takes and writes for the <code>\toc</code><var>part</var><code>entry</code>
+control sequences. To continue the previous example:
+
+<pre class="example"> \writenumberedtocline{chapter}{\the\chapno}{A $\sin$ wave}
+</pre>
+ <p class="noindent">writes the following to the <tt>.toc</tt> file:
+
+<pre class="example"> \tocchapterentry{3}{A $\sin$ wave}{8}
+</pre>
+ <p class="noindent">Such ordering of the parameters allows the
+<code>\toc</code><var>part</var><code>entry</code> macros to typeset the text of the entry
+without actually reading it as an argument. This is required for
+entries which need to change character catcodes, e.g., to produce
+<a name="index-table-of-contents_002c-and-verbatim-text-169"></a><a name="index-contents_002c-and-verbatim-text-170"></a><a name="index-verbatim-text_002c-in-table-of-contents-171"></a><a name="index-special-characters_002c-in-table-of-contents-172"></a>verbatim text (see <a href="#Verbatim-listing">Verbatim listing</a>).
+
+ <p>Each of <code>\writetocentry</code>, <code>\writenumberedtocentry</code> and
+<code>\writenumberedtocline</code> processes a numeric <var>part</var> argument
+specially. If you pass <var>part</var> expanding to an integer, these
+macros write into the <tt>.toc</tt> file an entry that starts with
+<a name="index-toc_0040dots_007b_007dentry-173"></a><code>\tocentry{</code><var>part</var><code>}</code>. Thus, you can define a single
+<code>\tocentry</code> macro which formats all entries for a table of
+contents. To continue the previous examples:
+
+<pre class="example"> \writenumberedtocentry{1}{A $\sin$ wave}{\the\chapno}
+ \writenumberedtocline{1}{\the\chapno}{A $\sin$ wave}
+ \writetocentry{2}{A section title}
+</pre>
+ <p class="noindent">writes the following to the .toc file:
+
+<pre class="example"> \tocentry{1}{A $\sin$ wave}{3}{8}
+ \tocentry{1}{3}{A $\sin$ wave}{8}
+ \tocentry{2}{A section title}{9}
+</pre>
+ <div class="node">
+<p><hr>
+<a name="Reading-the-.toc-file"></a>
+<a name="Reading-the-_002etoc-file"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Changing-the-_002etoc-file_0027s-root-name">Changing the .toc file's root name</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Writing-the-_002etoc-file">Writing the .toc file</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Contents">Contents</a>
+
+</div>
+
+<h4 class="subsection">4.8.2 Reading the <tt>.toc</tt> file</h4>
+
+<p><a name="index-readtocfile-174"></a>You read the <tt>.toc</tt> file with the command <code>\readtocfile</code>.
+Naturally, whatever <code>\toc... entry</code> commands that were written
+to the file must be defined when <code>\readtocfile</code> is invoked. Eplain
+has minimal definitions for <code>\tocchapterentry</code>,
+<code>\tocsectionentry</code>, and <code>\tocsubsectionentry</code>, just to prevent
+undefined control sequence errors in common cases. They aren't suitable
+for anything but preliminary proofs.
+
+ <p>Each of <code>\writetocentry</code>, <code>\writenumberedtocentry</code> and
+<code>\writenumberedtocline</code> opens
+the <tt>.toc</tt> file for writing, thereby deleting the information from the
+previous run. You should therefore arrange that <code>\readtocfile</code> be
+called <em>before</em> the first call to a <code>\writetoc...</code> macro.
+<code>\readtocfile</code> does not itself delete the information
+from the <tt>.toc</tt> file, so that you can call it several times,
+e.g., to create both a short
+<a name="index-table-of-contents_002c-short-175"></a>and normal table of contents. (To produce this in particular, define
+<code>\tocsectionentry</code> to produce nothing while you are reading
+<tt>.toc</tt> file for a short table of contents (see <a href="#Macro-arguments">Macro arguments</a>).)
+
+ <p>On the other hand, if you don't want to rewrite the <tt>.toc</tt> file at
+all, perhaps because you are only running TeX on part of your
+manuscript, you can set <code>\rewritetocfilefalse</code>.
+<a name="index-ifrewritetocfile-176"></a><a name="index-rewritetocfile-_0040r_007b_0028conditional_0029_007d-177"></a>
+
+<div class="node">
+<p><hr>
+<a name="Changing-the-.toc-file's-root-name"></a>
+<a name="Changing-the-_002etoc-file_0027s-root-name"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Alternative-contents-files">Alternative contents files</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Reading-the-_002etoc-file">Reading the .toc file</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Contents">Contents</a>
+
+</div>
+
+<h4 class="subsection">4.8.3 Changing the <tt>.toc</tt> file's root name</h4>
+
+<p>By default, the <samp><span class="file">.toc</span></samp> file has the root <code>\jobname</code>. If your
+document has more than one contents&mdash;for example, if it is a collection
+of papers, some of which have their own contents&mdash;you can tell Eplain
+to use a different root name by defining the control sequence
+<code>\tocfilebasename</code>.
+<a name="index-tocfilebasename-178"></a>
+<a name="index-writing-several-_0040code_007btoc_007d-files-179"></a><a name="index-g_t_0040code_007btoc_007d-files_002c-writing-several-180"></a>Note that <code>\writetocentry</code>, <code>\writenumberedtocentry</code> and
+<code>\writenumberedtocline</code> will
+open the contents file for writing only at the first call, using the
+value of <code>\tocfilebasename</code> at that time. Changing the value of
+<code>\tocfilebasename</code> afterwards will not affect which file gets
+<em>written</em>, although it will affect which file gets <em>read</em> by
+<code>\readcontentsfile</code>. In case you need to write several contents
+files from a single TeX job, use <code>\definecontentsfile</code>
+(see <a href="#Alternative-contents-files">Alternative contents files</a>).
+
+<div class="node">
+<p><hr>
+<a name="Alternative-contents-files"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Changing-the-_002etoc-file_0027s-root-name">Changing the .toc file's root name</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Contents">Contents</a>
+
+</div>
+
+<h4 class="subsection">4.8.4 Alternative contents files</h4>
+
+<p><a name="index-list-of-figures-181"></a><a name="index-list-of-tables-182"></a><a name="index-definecontentsfile-183"></a>In addition to the usual table of contents, you may want to have a list
+of figures, list of tables, or other such contents-like list. You can do
+this with <code>\definecontentsfile{</code><var>abbrev</var><code>}</code>. All of the
+above commands are actually a special case that Eplain predefines with
+
+<pre class="example"> \definecontentsfile{toc}
+</pre>
+ <p class="noindent">The <var>abbrev</var> is used both for the file extension and in
+the control sequence names.
+
+<div class="node">
+<p><hr>
+<a name="Cross-references"></a>
+<a name="Cross_002dreferences"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Page-references">Page references</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Contents">Contents</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#User-definitions">User definitions</a>
+
+</div>
+
+<h3 class="section">4.9 Cross-references</h3>
+
+<p><a name="index-cross_002dreferences-184"></a>It is often useful to refer the reader to other parts of your document;
+but putting literal page, section, equation, or whatever numbers in the
+text is certainly a bad thing.
+
+ <p>Eplain therefore provides commands for symbolic cross-references. It
+uses an auxiliary file with extension <tt>.aux</tt>
+<a name="index-g_t_002eaux-_0040r_007bfile_007d-185"></a>(and the same root name as your document) to keep track of the
+information. Therefore, it takes two passes to get the cross-references
+right&mdash;one to write them out, and one to read them in. Eplain
+automatically reads the <tt>.aux</tt> file at the first reference; after
+reading it, Eplain reopens it for writing.
+
+ <p>You can control whether or not Eplain warns you about undefined
+labels. See <a href="#Citations">Citations</a>.
+
+ <p><a name="index-labels_002c-characters-valid-in-186"></a>Labels in Eplain's cross-reference commands can use characters of
+category code eleven (letter), twelve (other), ten (space), three (math
+shift), four (alignment tab), seven (superscript), or eight (subscript).
+For example, `<samp><span class="samp">(a1 $&amp;^_</span></samp>' is a valid label (assuming the category
+codes of plain TeX), but `<samp><span class="samp">%#\{</span></samp>' has no valid characters.
+
+ <p>You can also do symbolic cross-references for bibliographic citations
+and list items. See <a href="#Citations">Citations</a>, and <a href="#Lists">Lists</a>.
+
+ <p>Eplain can create hypertext links for the cross-references
+(see <a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a>).
+
+<ul class="menu">
+<li><a accesskey="1" href="#Defining-generic-references">Defining generic references</a>
+<li><a accesskey="2" href="#Using-generic-references">Using generic references</a>
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="Defining-generic-references"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Using-generic-references">Using generic references</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Cross_002dreferences">Cross-references</a>
+
+</div>
+
+<h4 class="subsection">4.9.1 Defining generic references</h4>
+
+<p><a name="index-defining-general-references-187"></a><a name="index-references_002c-defining-general-188"></a><a name="index-cross_002dreferences_002c-defining-general-189"></a>
+<a name="index-definexref-190"></a>Eplain provides the command <code>\definexref</code> for general
+cross-references. It takes three arguments: the name of the label (see
+section above for valid label names), the value of the label (which can
+be anything), and the &ldquo;class&rdquo; of the reference&mdash;whether it's a
+section, or theorem, or what. For example:
+
+<pre class="example"> \definexref{sec-intro}{3.1}{section}
+</pre>
+ <p class="noindent">Of course, the label value is usually generated by another
+macro using TeX count registers or some such.
+
+ <p><code>\definexref</code> doesn't actually define <var>label</var>; instead, it
+writes out the definition to the <tt>.aux</tt> file, where Eplain will read
+it on the next TeX run.
+
+ <p>The <var>class</var> argument is used by the <code>\ref</code> and <code>\refs</code>
+commands. See the next section.
+
+<div class="node">
+<p><hr>
+<a name="Using-generic-references"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Defining-generic-references">Defining generic references</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Cross_002dreferences">Cross-references</a>
+
+</div>
+
+<h4 class="subsection">4.9.2 Using generic references</h4>
+
+<p><a name="index-defining-general-references-191"></a><a name="index-references_002c-defining-general-192"></a><a name="index-cross_002dreferences_002c-defining-general-193"></a>
+To retrieve the value of the label defined via <code>\definexref</code> (see
+the previous section), Eplain provides the following macros:
+
+
+<a name="index-refn-194"></a>
+<dl><dt><code>\refn{</code><var>label</var><code>}</code><dd><a name="index-xrefn-195"></a><br><dt><code>\xrefn{</code><var>label</var><code>}</code><dd><code>\refn</code> and <code>\xrefn</code> (they are synonyms) produce the bare
+definition of <var>label</var>. If <var>label</var> isn't defined, issue a
+warning, and produce <var>label</var> itself instead, in typewriter. (The
+warning isn't given if <code>\xrefwarningfalse</code>.)
+<a name="index-xrefwarning-_0040r_007bconditional_007d-196"></a>
+<a name="index-ref-197"></a><br><dt><code>\ref{</code><var>label</var><code>}</code><dd>Given the class <var>c</var> for <var>label</var> (see the description of
+<code>\definexref</code> in the previous section), expand the control sequence
+<code>\</code><var>c</var><code> word</code> (if it's defined) followed by a tie. Then call
+<code>\refn</code> on <var>label</var>. (Example below.)
+
+ <p><a name="index-refs-198"></a><br><dt><code>\refs{</code><var>label</var><code>}</code><dd>Like <code>\ref</code>, but append the letter `<samp><span class="samp">s</span></samp>' to the
+<code>\...word</code>.
+
+ </dl>
+
+ <p>The purpose of the <code>\...word</code> macro is to produce the word
+`Section' or `Figure' or whatever that usually precedes the actual
+reference number.
+
+ <p>Here is an example:
+
+<pre class="example"> \def\sectionword{Section}
+ \definexref{sec-intro}{3.1}{section}
+ \definexref{sec-next}{3.2}{section}
+ See \refs{sec-intro} and \refn{sec-next} ...
+</pre>
+ <p class="noindent">This produces `See Sections 3.1 and 3.2 <small class="dots">...</small>'
+
+<div class="node">
+<p><hr>
+<a name="Page-references"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Equation-references">Equation references</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Cross_002dreferences">Cross-references</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#User-definitions">User definitions</a>
+
+</div>
+
+<h3 class="section">4.10 Page references</h3>
+
+<p>Eplain provides two commands for handling references to page numbers,
+one for definition and one for use.
+
+ <dl>
+<dt><code>\xrdef{</code><var>label</var><code>}</code><dd><a name="index-xrdef-199"></a>Define <var>label</var> to be the current page number. This produces no
+printed output, and ignores following spaces.
+
+ <br><dt><code>\xref{</code><var>label</var><code>}</code><dd><a name="index-xref-200"></a>Produce the text `p.&nbsp;<!-- /@w --><var>pageno</var>', which is the usual form for
+cross-references. The <var>pageno</var> is actually <var>label</var>'s
+definition; if <var>label</var> isn't defined, the text of the label itself
+is printed. The `p.&nbsp;<!-- /@w -->' prefix is defined by <code>\xrefpageword</code>.
+<a name="index-xrefpageword-201"></a>Its default definition is <code>p.\thinspace</code>.
+
+ </dl>
+
+ <p>Eplain can create hypertext links for the page references (see <a href="#Page-reference-hyperlinks">Page reference hyperlinks</a>).
+
+<div class="node">
+<p><hr>
+<a name="Equation-references"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Indexing">Indexing</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Page-references">Page references</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#User-definitions">User definitions</a>
+
+</div>
+
+<h3 class="section">4.11 Equation references</h3>
+
+<p><a name="index-equations_002c-references-to-202"></a><a name="index-equations_002c-numbering-203"></a>Instead of referring to pages, it's most useful if equation labels
+refer to equation numbers. Therefore, Eplain reserves a <code>\count</code>
+register, <code>\eqnumber</code>,
+<a name="index-eqnumber-204"></a>for the current equation number, and increments it at each
+numbered equation.
+
+ <p>Here are the commands to define equation labels and then refer to them:
+
+ <dl>
+<dt><code>\eqdef{</code><var>label</var><code>}</code><dd><a name="index-eqdef-205"></a>This defines <var>label</var> to be the current value of <code>\eqnumber</code>,
+and, if the current context is not inner, then produces a <code>\eqno</code>
+command. (The condition makes it possible to use <code>\eqdef</code> in an
+<code>\eqalignno</code> construction, for example.) The text of the equation
+number is produced using <code>\eqprint</code>. See <a href="#Formatting-equation-references">Formatting equation references</a>.
+
+ <p><a name="index-empty-equation-labels-206"></a><a name="index-labels_002c-empty-equation-207"></a><a name="index-equations_002c-giving-numbers-to-all-208"></a>If <var>label</var> is empty, you still get an equation number (although
+naturally you can't reliably refer to it). This is useful if you want
+to put numbers on all equations in your document, and you don't want to
+think up unique labels.
+
+ <p><a name="index-empty-equation-labels_002c-referring-to-209"></a><a name="index-labels_002c-empty-equation_002c-referring-to-210"></a>To refer to the last equation with the empty label, you just use the
+empty label in one of the equation reference macros (see below). This
+can be handy when you want to refer to an equation shortly after its
+definition, say, in the sentence following the displayed equation, and
+do not intend to refer to the equation later. But use this trick with
+extreme caution: if later you change the text and insert another
+empty definition between the original definition and the reference,
+the reference will start to refer to the new empty-labeled equation.
+
+ <br><dt><code>\eqdefn{</code><var>label</var><code>}</code><dd><a name="index-eqdefn-211"></a>This is like <code>\eqdef</code>, except it always omits the <code>\eqno</code>
+command. It can therefore be used in places where <code>\eqdef</code> can't;
+for example, in a non-displayed equation. The text of the equation
+number is not produced, so you can also use it in the (admittedly
+unusual) circumstance when you want to define an equation label but not
+print that label.
+
+ <br><dt><code>\eqref{</code><var>label</var><code>}</code><dd><a name="index-eqref-212"></a>This produces a formatted reference to <var>label</var>. If <var>label</var> is
+undefined (perhaps because it is a forward reference), it just produces
+the text of the label itself. Otherwise, it calls <code>\eqprint</code>.
+
+ <br><dt><code>\eqrefn{</code><var>label</var><code>}</code><dd><a name="index-eqrefn-213"></a>This produces the cross-reference text for <var>label</var>. That is, it
+is like <code>\eqref</code>, except it doesn't call <code>\eqprint</code>.
+
+ </dl>
+
+ <p><a name="index-equation-labels_002c-characters-valid-in-214"></a>Equation labels can contain the same characters that are valid in
+general cross-references.
+
+ <p>Eplain can create hypertext links for the equation references
+(see <a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a>).
+
+<ul class="menu">
+<li><a accesskey="1" href="#Formatting-equation-references">Formatting equation references</a>
+<li><a accesskey="2" href="#Subequation-references">Subequation references</a>
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="Formatting-equation-references"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Subequation-references">Subequation references</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Equation-references">Equation references</a>
+
+</div>
+
+<h4 class="subsection">4.11.1 Formatting equation references</h4>
+
+<p><a name="index-equation-numbers_002c-formatting-of-215"></a>Both defining an equation label and referring to it should usually
+produce output. This output is produced with the <code>\eqprint</code> macro,
+which takes one argument, the equation number being defined or referred
+to. By default, this just produces `<samp><span class="samp">(</span><var>number</var><span class="samp">)</span></samp>', where
+<var>number</var> is the equation number. To produce the equation number in
+a different font, or with different surrounding symbols, or whatever,
+you can redefine <code>\eqprint</code>.
+<a name="index-eqprint-216"></a>For example, the following definition would print all equation numbers
+in italics. (The extra braces define a group, to keep the font change
+from affecting surrounding text.)
+
+<pre class="example"> \def\eqprint#1{{\it (#1)}}
+</pre>
+ <p>In addition to changing the formatting of equation numbers, you might want
+to add more structure to the equation number; for example, you might
+want to include the chapter number, to get equation numbers like
+`(1.2)'. To achieve this, you redefine <code>\eqconstruct</code>.
+<a name="index-eqconstruct-217"></a>For example:
+
+<pre class="example"> \def\eqconstruct#1{\the\chapternumber.#1}
+</pre>
+ <p class="noindent">(If you are keeping the chapter number in a count register named
+<code>\chapternumber</code>, naturally.)
+
+ <p>The reason for having both <code>\eqconstruct</code> and <code>\eqprint</code> may
+not be immediately apparent. The difference is that <code>\eqconstruct</code>
+affects the text that cross-reference label is defined to be, while
+<code>\eqprint</code> affects only what is typeset on the page. The example
+just below might help.
+
+ <p>Usually, you want equation labels to refer to equation numbers. But
+sometimes you might want a more complicated text. For example, you
+might have an equation `(1)', and then have a variation several pages
+later which you want to refer to as `(1*)'.
+
+ <p>Therefore, Eplain allows you to give an optional argument (i.e.,
+arbitrary text in square brackets) before the cross-reference label to
+\eqdef. Then, when you refer to the equation, that text is produced.
+Here's how to get the example just mentioned:
+
+<pre class="example"> $$...\eqdef{a-eq}$$
+ ...
+ $$...\eqdef[\eqrefn{a-eq}*]{a-eq-var}$$
+ In \eqref{a-eq-var}, we expand on \eqref{a-eq}, ...
+</pre>
+ <p>We use <code>\eqrefn</code> in the cross-reference text, not
+<code>\eqref</code>, so that <code>\eqprint</code> is called only once.
+
+<div class="node">
+<p><hr>
+<a name="Subequation-references"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Formatting-equation-references">Formatting equation references</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Equation-references">Equation references</a>
+
+</div>
+
+<h4 class="subsection">4.11.2 Subequation references</h4>
+
+<p><a name="index-equations_002c-groups-of-218"></a><a name="index-subequations_002c-referring-to-219"></a>Eplain also provides for one level of substructure for equations. That
+is, you might want to define a related group of equations with numbers
+like `2.1' and `2.2', and then be able to refer to the group as a whole:
+&ldquo;<small class="dots">...</small> in the system of equations (2)<small class="dots">...</small>&rdquo;.
+
+ <p>The commands to do this are <code>\eqsubdef</code> and
+<a name="index-eqsubdef-220"></a><code>\eqsubdefn</code>.
+<a name="index-eqsubdefn-221"></a>They take one <var>label</var> argument like their counterparts above,
+and generally behave in the same way. The difference is in how they
+construct the equation number: instead of using just <code>\eqnumber</code>,
+they also use another counter, <code>\subeqnumber</code>.
+<a name="index-subeqnumber-222"></a>This counter is advanced by one at every <code>\eqsubdef</code> or
+<code>\eqsubdefn</code>, and reset to zero at every <code>\eqdef</code> or
+<code>\eqdefn</code>.
+
+ <p>You use <code>\eqref</code> to refer to subequations as well as main
+equations.
+
+ <p>To put the two together to construct the text that the label will
+produce, they use a macro <code>\eqsubreftext</code>.
+<a name="index-eqsubreftext-223"></a>This macros takes two arguments, the &ldquo;main&rdquo; equation number (which,
+because the equation label can be defined as arbitrary text, as
+described in the previous section, might be anything at all) and the
+&ldquo;sub&rdquo; equation number (which is always just a number). Eplain's
+default definition just puts a period between them:
+
+<pre class="example"> \def\eqsubreftext#1#2{#1.#2}%
+</pre>
+ <p class="noindent">You can redefine <code>\eqsubreftext</code> to print however you
+like. For example, this definition makes the labels print as `2a',
+`2b', and so on.
+
+<pre class="example"> \newcount\subref
+ \def\eqsubreftext#1#2{%
+ \subref = #2 % The space stops a &lt;number&gt;.
+ \advance\subref by 96 % `a' is character code 97.
+ #1\char\subref
+ }
+</pre>
+ <p class="noindent">Sadly, we must define a new count register, <code>\subref</code>,
+instead of using the scratch count register <code>\count255</code>, because
+`<samp><span class="samp">#1</span></samp>' might include other macro calls which use <code>\count255</code>.
+
+<div class="node">
+<p><hr>
+<a name="Indexing"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Justification">Justification</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Equation-references">Equation references</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#User-definitions">User definitions</a>
+
+</div>
+
+<h3 class="section">4.12 Indexing</h3>
+
+<p><a name="index-indexing-224"></a><a name="index-sorting-an-index-225"></a>
+Eplain provides support for generating raw material for an index, and
+for typesetting a sorted index. A separate program must do the actual
+collection and sorting of terms, because TeX itself has no support
+for sorting.
+
+ <p>Eplain can create hypertext links pointing from the index to the index
+terms (see <a href="#Index-hyperlinks">Index hyperlinks</a>).
+
+ <p><a name="index-g_t_0040acronym_007bURL_007d-for-MakeIndex-226"></a><a name="index-makeindex-227"></a>Eplain's indexing commands were designed to work with the program
+MakeIndex, available from CTAN hosts in
+<samp><span class="file">tex-archive/indexing/makeindex</span></samp>; MakeIndex is also commonly
+included in prepackaged TeX distributions. It is beyond the scope of
+this manual to explain how to run MakeIndex, and all of its many
+options. See <a href="http://www.ctan.org/tex-archive/indexing/makeindex">http://www.ctan.org/tex-archive/indexing/makeindex</a>.
+
+ <p>The basic strategy for indexing works like this:
+
+ <ol type=1 start=1>
+
+ <p><a name="index-g_t_002eidx-_0040r_007bfiles_007d-228"></a><li>For a document <samp><span class="file">foo.tex</span></samp>, Eplain's indexing commands (e.g.,
+<code>\idx</code>; see the section `Indexing terms' below) write the raw index
+material to <samp><span class="file">foo.idx</span></samp>.
+
+ <p><a name="index-g_t_002eind-_0040r_007bfiles_007d-229"></a><li>MakeIndex reads <samp><span class="file">foo.idx</span></samp>, collects and sorts the index, and
+writes the result to <samp><span class="file">foo.ind</span></samp>.
+
+ <li>Eplain reads and typesets <samp><span class="file">foo.ind</span></samp> on a subsequent run of
+TeX. See the section `Typesetting an index' below.
+
+ </ol>
+
+ <p><a name="index-texi2dvi-230"></a>The <samp><span class="command">texi2dvi</span></samp> program can help you automate this
+process (see <a href="#Invoking-Eplain">Invoking Eplain</a>).
+
+ <p><a name="index-multiple-indexes-231"></a><a name="index-indexes_002c-multiple-232"></a><a name="index-defineindex-233"></a>If your document needs more than one index, each must have its own
+file. Therefore, Eplain provides the command <code>\defineindex</code>, which
+takes an argument that is a single letter, which replaces `<samp><span class="samp">i</span></samp>' in
+the filenames and in the indexing command names described below. For
+example,
+
+<pre class="example"> \defineindex{m}
+</pre>
+ <p class="noindent">defines the command <code>\mdx</code> to write to the file
+<samp><span class="file">foo.mdx</span></samp>. Eplain simply does <code>\defineindex{i}</code> to define
+the default commands.
+
+<ul class="menu">
+<li><a accesskey="1" href="#Indexing-terms">Indexing terms</a>: Specifying what to index.
+<li><a accesskey="2" href="#Typesetting-an-index">Typesetting an index</a>: Printing the sorted output.
+<li><a accesskey="3" href="#Customizing-indexing">Customizing indexing</a>: Creating commands and specifying extra actions.
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="Indexing-terms"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Typesetting-an-index">Typesetting an index</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Indexing">Indexing</a>
+
+</div>
+
+<h4 class="subsection">4.12.1 Indexing terms</h4>
+
+<p><a name="index-indexing-terms-234"></a><a name="index-silent-indexing-235"></a>
+Indexing commands in Eplain come in pairs: one command that only
+writes the index entry to the `<samp><span class="samp">.idx</span></samp>' file (see above section), and
+one that also typesets the term being indexed. The former always starts
+with `<samp><span class="samp">s</span></samp>' (for &ldquo;silent&rdquo;). In either case, the name always includes
+`<samp><var>I</var><span class="samp">dx</span></samp>', where <var>I</var> is the index letter, also described
+above. Eplain defines the index `<samp><span class="samp">i</span></samp>' itself, so that's what we'll
+use in the names below.
+
+ <p><a name="index-subterm-in-indexing-236"></a>The silent form of the commands take a subterm as a trailing optional
+argument. For example, <code>\sidx{truth}[definition of]</code> on page 75
+makes an index entry that will eventually be typeset (by default) as
+
+<pre class="display"> truth
+ definition of, 75
+</pre>
+ <p><a name="index-trailing-spaces-and-indexing-commands-237"></a><a name="index-spaces_002c-trailing-and-indexing-commands-238"></a><a name="index-indexing-and-trailing-spaces-239"></a>Also, the silent commands ignore trailing spaces. The non-silent ones do not.
+
+<ul class="menu">
+<li><a accesskey="1" href="#Indexing-commands">Indexing commands</a>: Making index entries.
+<li><a accesskey="2" href="#Modifying-index-entries">Modifying index entries</a>: Ranges, see/see also, page number typesetting.
+<li><a accesskey="3" href="#Index-entries-with-special-characters">Index entries with special characters</a>
+<li><a accesskey="4" href="#Proofing-index-terms">Proofing index terms</a>: Noting index entries in the margins.
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="Indexing-commands"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Modifying-index-entries">Modifying index entries</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Indexing-terms">Indexing terms</a>
+
+</div>
+
+<h5 class="subsubsection">4.12.1.1 Indexing commands</h5>
+
+<p><a name="index-indexing-commands-240"></a>Here are the commands.
+
+ <ul>
+<li><a name="index-sidx-241"></a><a name="index-idx-242"></a><code>\sidx{</code><var>term</var><code>}[</code><var>subterm</var><code>]</code> makes an index entry for
+<var>term</var>, optionally with subterm <var>subterm</var>.
+<code>\idx{</code><var>term</var><code>}</code> also produces <var>term</var> as output. Example:
+
+ <pre class="example"> \sidx{truth}[beauty of]
+ The beauty of truth is \idx{death}.
+ </pre>
+ <p>Subterms at the second and further levels can also be
+specified in <var>subterm</var>, using the
+<code>\idxsubentryseparator</code> character to separate
+them. This character is by default `<samp><span class="samp">!</span></samp>'.
+
+ <li><a name="index-sidxname-243"></a><a name="index-idxnameseparator-244"></a><a name="index-idxname-245"></a><code>\sidxname{</code><var>First M.</var><code>}{</code><var>von Last</var><code>}[</code><var>subterm</var><code>]</code>
+makes an index
+entry for `<samp><var>von Last</var><span class="samp">, </span><var>First M.</var></samp>'. You can change the
+`<samp><span class="samp">, </span></samp>' by redefining <code>\idxnameseparator</code>.
+<code>\idxname{</code><var>First M.</var><code>}{</code><var>von Last</var><code>}</code> also produces <var>First M. von
+Last</var> as output. (These commands are useful special cases of <code>\idx</code>
+and <code>\sidx</code>.) Example:
+
+ <pre class="example"> \sidxname{Richard}{Stark}
+ \idxname{Donald}{Westlake} has written many kinds of novels, under
+ almost as many names.
+ </pre>
+ <li><a name="index-sidxmarked-246"></a><a name="index-idxmarked-247"></a><code>\sidxmarked\</code><var>cs</var><code>{</code><var>term</var><code>}[</code><var>subterm</var><code>]</code> makes an index
+entry for <var>term</var><code>[</code><var>subterm</var><code>]</code>, but <var>term</var> will be put
+in the index as <code>\</code><var>cs</var><code>{term}</code>, but still sorted as just
+<var>term</var>. <code>\idxmarked\</code><var>cs</var><code>{</code><var>term</var><code>}</code> also typesets
+<code>\</code><var>cs</var><code>{term}</code>. This provides for the usual ways of changing
+the typesetting of index entries. Example:
+
+ <pre class="example"> \def\article#1{``#1''}
+ \sidxmarked\article{Miss Elsa and Aunt Sophie}
+ Peter Drucker's \idxmarked\article{The Polanyis} is a remarkable
+ essay about a remarkable family.
+ </pre>
+ <li><a name="index-idxsubmarked-248"></a><a name="index-sidxsubmarked-249"></a><code>\sidxsubmarked{</code><var>term</var><code>}\</code><var>cs</var><code>{subterm}</code> makes an index
+entry for <var>term</var>, <var>subterm</var> as usual, but also puts <var>subterm</var> in
+the index as <code>\</code><var>cs</var><code>{term}</code>.
+<code>\idxsubmarked{</code><var>term</var><code>}\</code><var>cs</var><code>{subterm}</code> also typesets
+<var>term</var><code> \</code><var>cs</var><code>{subterm}</code>, in the unlikely event that your
+syntax is convoluted enough to make this useful. Example:
+
+ <pre class="example"> \def\title#1{{\sl #1}}
+ \sidxsubmarked{Anderson, Laurie}\title{Strange Angels}
+ The \idxsubmarked{Anderson}\title{Carmen} is a strange twist.
+ </pre>
+ </ul>
+
+ <p><a name="index-index-entry-general-sorting-250"></a><a name="index-sorting-of-index-entries-251"></a>The commands above rely on MakeIndex's feature for separating sorting of
+an index entry's from its typesetting. You can use this directly by
+specifying an index entry as <var>sort</var><code>@</code><var>typeset</var>. For
+example:
+
+<pre class="example"> \sidx{Ap-weight@$A_\pi$-weight}
+</pre>
+ <p class="noindent">will sort as <code>Ap-weight</code>, but print with the proper math.
+The <code>@</code> here is MakeIndex's default character for this purpose.
+See <a href="http://www.ctan.org/tex-archive/indexing/makeindex">http://www.ctan.org/tex-archive/indexing/makeindex</a>. To make an index
+entry with an <code>@</code> in it, you have to escape it with a backslash;
+Eplain provides no macros for doing this.
+
+ <p><a name="index-afterindexterm-_0040r_007bhook_007d-252"></a><a name="index-whatsits-made-by-index-entries-253"></a>After any index command, Eplain runs
+<code>\hookaction{afterindexterm}</code>. Because the index commands always
+add a whatsit item to the current list, you may wish to preserve a
+penalty or space past the new item. For example, given a conditional
+<code>\if@aftersctnhead</code> set true when you're at a section heading, you
+could do:
+
+<pre class="example"> \hookaction{afterindexterm}{\if@aftersctnhead \nobreak \fi}
+</pre>
+ <div class="node">
+<p><hr>
+<a name="Modifying-index-entries"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Index-entries-with-special-characters">Index entries with special characters</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Indexing-commands">Indexing commands</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Indexing-terms">Indexing terms</a>
+
+</div>
+
+<h5 class="subsubsection">4.12.1.2 Modifying index entries</h5>
+
+<p><a name="index-modifying-index-entries_0027-page-numbers-254"></a><a name="index-index-entries_0027-page-numbers_002c-modifying-255"></a>
+All the index commands described in the previous section take an initial
+optional argument before the index term, which modify the index entry's
+meaning in various ways. You can specify only one of the following in
+any given command, except that <code>begin</code> and <code>end</code> can be
+specified together with <code>pagemarkup=</code><var>cs</var> (separate them with
+a comma without a following space, like this:
+<code>[begin,pagemarkup=defn]</code>).
+
+ <p>These work via MakeIndex's &ldquo;encapsulation&rdquo; feature. See <a href="#Customizing-indexing">Customizing indexing</a>, if you're not using the default characters for the
+MakeIndex operators. The other optional argument (specifying a subterm)
+is independent of these.
+
+ <p>Here are the possibilities:
+
+ <dl>
+<dt><code>begin</code><dt><code>end</code><dd><a name="index-begin-_0040r_007bfor-index-entries_007d-256"></a><a name="index-end-_0040r_007bfor-index-entries_007d-257"></a><a name="index-index-entries-and-ranges-258"></a><a name="index-ranges-and-index-entry-259"></a>These mark an index entry as the beginning or end of a range. The index
+entries must match exactly for MakeIndex to recognize them.
+Example:
+
+ <pre class="example"> \sidx[begin]{future}[Cohen, Leonard]
+ ...
+ \sidx[end]{future}[Cohen, Leonard]
+ </pre>
+ <p class="noindent">will typeset as something like
+
+ <pre class="display"> future,
+ Cohen, Leonard, 65&ndash;94
+ </pre>
+ <br><dt><code>see</code><dd><a name="index-see-_0040r_007bfor-index-entries_007d-260"></a><a name="index-see_002c-and-index-entries-261"></a><a name="index-cross_002dreferencing-index-entries-262"></a><a name="index-index-entries_002c-and-cross_002dreferencing-263"></a>This marks an index entry as pointing to another; the real index term is
+an additional (non-optional) argument to the command. Thus you can
+anticipate a term readers may wish to look up, yet which you have
+decided not to index. Example:
+
+ <pre class="example"> \sidx[see]{analysis}[archetypal]{archetypal criticism}
+ </pre>
+ <p class="noindent">becomes
+
+ <pre class="display"> analysis,
+ archetypal, <i>see</i> archetypal criticism
+ </pre>
+ <br><dt><code>seealso</code><dd><a name="index-seealso-_0040r_007bfor-index-entries_007d-264"></a>Similar to <code>see</code> (the previous item), but also allows for normal
+index entries of the referencing term. Example:
+
+ <pre class="example"> \sidx[seealso]{archetypal criticism}[elements of]{dichotomies}
+ </pre>
+ <p class="noindent">becomes
+
+ <pre class="display"> archetypal criticism,
+ elements of, 75, 97, 114, <i>see also</i> dichotomies
+ </pre>
+ <p>(Aside for the academically curious: The archetypally critical book I
+took these dichotomous examples from is Laurence Berman's <cite>The
+Musical Image</cite>, which I happened to co-design and typeset.)
+
+ <br><dt><code>pagemarkup=</code><var>cs</var><dd>This puts <code>\</code><var>cs</var> before the page number in the typeset index,
+thus allowing you to underline definitive entries, italicize examples,
+and the like. You do <em>not</em> precede the control sequence <var>cs</var>
+with a backslash. (That just leads to expansive difficulties.) Naturally
+it is up to you to define the control sequences you want to use. Example:
+
+ <pre class="example"> \def\defn#1{{\sl #1}}
+ \sidx[pagemarkeup=defn]{indexing}
+ </pre>
+ <p class="noindent">becomes something like
+
+ <pre class="example"> indexing, <code>\defn{75}</code>
+ </pre>
+ </dl>
+
+<div class="node">
+<p><hr>
+<a name="Index-entries-with-special-characters"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Proofing-index-terms">Proofing index terms</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Modifying-index-entries">Modifying index entries</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Indexing-terms">Indexing terms</a>
+
+</div>
+
+<h5 class="subsubsection">4.12.1.3 Index entries with special characters</h5>
+
+<p><a name="index-special-characters_002c-in-index-entries-265"></a><a name="index-index-entries-with-special-characters-266"></a>
+Indexing terms with special characters can become quite cumbersome
+because you have to keep both TeX and MakeIndex happy at the same
+time. For example, while `<samp><span class="samp">!</span></samp>' has no special meaning for TeX,
+it is a subentry separator for MakeIndex, therefore you'd have to
+escape occurrences of literal `<samp><span class="samp">!</span></samp>' in index terms. Things get
+even more interesting with characters which are special in both TeX
+and MakeIndex.
+
+ <p>This in turn has some implications for the non-silent forms of the
+indexing commands (see <a href="#Indexing-terms">Indexing terms</a>), since TeX and MakeIndex
+use different conventions for escaping characters. For example, this
+will not typeset the exclamation point correctly within the text,
+while it will come out right inside the index, after MakeIndex strips
+the quoting character (`<samp><span class="samp">"</span></samp>'):
+
+<pre class="example"> \idx{"!}
+</pre>
+ <p class="noindent">This would have to be rewritten using the silent command:
+
+<pre class="example"> !\sidx{"!}
+</pre>
+ <p class="noindent">In general, it is a good idea to eschew the non-silent
+commands whenever index term contains anything unusual.
+
+ <p>To understand this keep in mind that indexing commands read the terms
+verbatim so that the terms can embed almost any character, and that's
+what gets written into the <samp><span class="file">.idx</span></samp> file. The non-silent forms
+then typeset the term by rescanning the verbatim copy, therefore for
+the non-silent commands the term, besides being a valid MakeIndex
+input, must also represent a valid TeX input. The silent commands
+don't have this restriction&mdash;their terms only need to become valid
+TeX input <em>after</em> MakeIndex processes the <samp><span class="file">.idx</span></samp> file and
+writes the <samp><span class="file">.ind</span></samp> file. This is what makes the non-silent
+commands less powerful and more troublesome when dealing with special
+characters.
+
+ <p><a name="index-index-entries_002c-with-verbatim-text-267"></a><a name="index-index_002c-and-verbatim-text-268"></a><a name="index-verbatim-text_002c-in-index-269"></a>Here's an example showing that terms for the silent commands can
+contain almost any character:
+
+<pre class="example"> \sidx[see]{comments}[with %@with \verbatim %"|endverbatim]
+ {commenting with \verbatim %"|endverbatim}
+</pre>
+ <p class="noindent">We didn't have to escape `<samp><span class="samp">%</span></samp>' in the sort string for
+MakeIndex, while we had to put it inside the verbatim environment
+(see <a href="#Verbatim-listing">Verbatim listing</a>) in the part which MakeIndex will pass back
+to TeX. Also, we had to escape the `<samp><span class="samp">|</span></samp>' character because it
+is special for MakeIndex. If you have trouble understanding the
+reasons for the different types of escaping used, it is best to
+examine the <samp><span class="file">.idx</span></samp> and <samp><span class="file">.ind</span></samp> files resulting from
+processing the above input.
+
+ <p>As was mentioned, index terms can embed &ldquo;almost any character&rdquo;, so
+now we'll describe the exceptions.
+
+ <p>The following characters are reset to their usual meanings because
+they are not useful verbatim: multiple consequent spaces are
+converted into a single space; <acronym>ASCII</acronym> tab characters are
+treated as spaces; <acronym>ASCII</acronym> return is treated as end-of-line
+(this means, among other things, that long terms can be broken across
+several lines).
+
+ <p><a name="index-braces_002c-inside-index-entries-270"></a><a name="index-index-entries-containing-braces-271"></a>You have to be careful with the begin- and end-group characters
+(`<samp><span class="samp">{</span></samp>' and `<samp><span class="samp">}</span></samp>' by default). If they are matched, you don't
+have to do anything special. For example:
+
+<pre class="example"> \sidx {braces {, }@braces
+ \verbatim {"|endverbatim, \verbatim }"|endverbatim}
+</pre>
+ <p class="noindent">However, if they are not matched you have two problems on
+hand. The first one is TeX&mdash;you have to instruct TeX to use
+something else as begin- and/or end-group characters. Eplain provides
+an easy way to do this: just define
+<a name="index-idxargopen-272"></a><code>\idxargopen</code> and/or
+<a name="index-idxargclose-273"></a><code>\idxargclose</code> to the begin- and end-group characters you are
+going to use with indexing macros, and use braces inside index terms
+without any restrictions. Here's an example:
+
+<pre class="example"> \def\idxargopen{`\&lt;}
+ \def\idxargclose{`\&gt;}
+ \sidx &lt;left brace "{@left brace \verbatim "{"|endverbatim&gt;
+</pre>
+ <p class="noindent">In this example we've also dealt with the second
+problem&mdash;braces are MakeIndex's grouping characters as well (by
+default), so we have escaped unmatched braces with `<samp><span class="samp">"</span></samp>'.
+
+ <p><a name="index-brackets_002c-inside-index-entries-274"></a><a name="index-index-entries-containing-brackets-275"></a>And the final note: if you need a subentry containing brackets
+(`<samp><span class="samp">[</span></samp>' and `<samp><span class="samp">]</span></samp>'), avoid the optional argument of <code>\sidx</code>
+and friends, and use instead MakeIndex's subentry separator to create
+the subentry with the brackets in it:
+
+<pre class="example"> \sidx{entry!subentry with a bracket [}
+</pre>
+ <div class="node">
+<p><hr>
+<a name="Proofing-index-terms"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Index-entries-with-special-characters">Index entries with special characters</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Indexing-terms">Indexing terms</a>
+
+</div>
+
+<h5 class="subsubsection">4.12.1.4 Proofing index terms</h5>
+
+<p><a name="index-proofing-index-terms-276"></a><a name="index-index-entries_002c-proofing-277"></a><a name="index-margins_002c-index-terms-in-278"></a>
+As you are reading through a manuscript, it is helpful to see what terms
+have been indexed, so you can add others, catch miscellaneous errors,
+etc. (Speaking from bitter experience, I can say it is extremely
+error-prone to leave all indexing to the end of the writing, since it
+involves adding many TeX commands to the source files.)
+
+ <p><a name="index-indexproofterm-279"></a><a name="index-indexprooffont-280"></a><a name="index-cmtt8-281"></a>So Eplain puts index terms in the margin of each page, if you
+set <code>\indexproofingtrue</code>. It is <code>false</code> by default. The terms
+are typeset by the macro <code>\indexproofterm</code>, which takes a single
+argument, the term to be typeset. Eplain's definition of
+<code>\indexproofterm</code> just puts it into an <code>\hbox</code>, first doing
+<code>\indexprooffont</code>, which Eplain defines to select the font
+<code>cmtt8</code>. With this definition long terms run off the page, but
+since this is just for proofreading anyway, it seems acceptable.
+
+ <p><a name="index-pageno-282"></a><a name="index-insidemargin-283"></a><a name="index-hoffset-284"></a><a name="index-outsidemargin-285"></a><a name="index-indexsetmargins-286"></a>On the other hand, we certainly don't want the index term to run into
+the text of the page, so Eplain uses the right-hand side of the page
+rather than the left-hand page (assuming a language read left to right
+here). So <code>\ifodd\pageno</code>, Eplain kerns by <code>\outsidemargin</code>,
+otherwise by <code>\insidemargin</code>. If those macros are undefined,
+<code>\indexsetmargins</code> defines them to be one inch plus <code>\hoffset</code>.
+
+ <p><a name="index-g_t_0040_0040indexproof-_0040r_007binsertion-class_007d-287"></a><a name="index-indexproofunbox-288"></a><a name="index-makeheadline-289"></a><a name="index-output-routine-and-index-proofing-290"></a>To get the proofing index entries on the proper page, Eplain defines a new
+insertion class <code>\@indexproof</code>. To unbox any index proofing
+material, Eplain redefines <code>\makeheadline</code> to call
+<code>\indexproofunbox</code> before the original <code>\makeheadline</code>. Thus,
+if you have your own output routine, that redefines or doesn't use
+<code>\makeheadline</code>, it's up to you to call <code>\indexproofunbox</code> at
+the appropriate time.
+
+<div class="node">
+<p><hr>
+<a name="Typesetting-an-index"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Customizing-indexing">Customizing indexing</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Indexing-terms">Indexing terms</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Indexing">Indexing</a>
+
+</div>
+
+<h4 class="subsection">4.12.2 Typesetting an index</h4>
+
+<p><a name="index-typesetting-an-index-291"></a><a name="index-index-typesetting-292"></a><a name="index-readindexfile-293"></a>
+The command <code>\readindexfile{i}</code> reads and typesets the
+<samp><span class="file">.ind</span></samp> file that MakeIndex outputs (from the <samp><span class="file">.idx</span></samp> file which
+the indexing commands in the previous sections write). Eplain defines a
+number of commands that support the default MakeIndex output.
+
+ <p><a name="index-indexfilebasename-294"></a><a name="index-jobname-295"></a>More precisely, <code>\readindexfile</code> reads
+<code>\indexfilebasename.</code><var>index-letter</var><code>nd</code>, where the
+<var>index-letter</var> is the argument. <code>\indexfilebasename</code> is
+<code>\jobname</code> by default, but if you have different indexes in
+different parts of a book, you may wish to change it, just as with
+bibliographies (see <a href="#Citations">Citations</a>).
+
+ <p><a name="index-begin_0040_007btheindex_0040_007d-296"></a><a name="index-end_0040_007btheindex_0040_007d-297"></a>MakeIndex was designed to work with LaTeX; therefore, by default the
+<samp><span class="file">.ind</span></samp> file starts with <code>\begin{theindex}</code> and ends with
+<code>\end{theindex}</code>. If no <code>\begin</code> has been defined, Eplain
+defines one to ignore its argument and set up for typesetting the index
+(see below), and also defines a <code>\end</code> to ignore its argument. (In
+a group, naturally, since there is a primitive <code>\end</code>).
+
+ <p><a name="index-parindent-_0040r_007bin-indexes_007d-298"></a><a name="index-index-fonts-299"></a><a name="index-indexfonts-300"></a><a name="index-double-columns-in-indexes-301"></a>Eplain calls <code>\indexfonts</code>, sets <code>\parindent = 0pt</code>, and does
+<code>\doublecolumns</code> (see <a href="#Multiple-columns">Multiple columns</a>) at the
+<code>\begin{theindex}</code>. <code>\indexfonts</code> does nothing by default;
+it's just there for you to override. (Indexes are usually typeset in
+smaller type than the main text.)
+
+ <p><a name="index-beginindex-_0040r_007bhook_007d-302"></a>It ends the setup with <code>\hookrun{beginindex}</code>, so you can
+override anything you like in that hook (see <a href="#Hooks">Hooks</a>). For example:
+
+<pre class="example"> \hookaction{beginindex}{\triplecolumns}
+</pre>
+ <p><a name="index-item-_0040r_007bin-indexes_007d-303"></a><a name="index-subitem-_0040r_007bin-indexes_007d-304"></a><a name="index-subsubitem-_0040r_007bin-indexes_007d-305"></a><a name="index-index-entry-formatting-306"></a><a name="index-formatting-index-entries-307"></a><a name="index-space-above-index-entries-308"></a><a name="index-continued-index-entries-309"></a><a name="index-index-entry-continuations-310"></a>MakeIndex turns each main index entry into an <code>\item</code>, subentries
+into <code>\subitem</code>, and subsubentries into <code>\subsubitem</code>. By
+default, the first line of main entries are not indented, and subentries
+are indented 1em per level. Main entries are preceded by a <code>\vskip</code>
+of <code>\aboveitemskipamount</code>, <code>0pt plus2pt</code> by default. Page
+breaks are encouraged before main entries (<code>\penalty -100</code>), but
+prohibited afterwards&mdash;Eplain has no provision for &ldquo;continued&rdquo;
+index entries.
+
+ <p>All levels do the following:
+
+ <p><a name="index-hangindent-_0040r_007bfor-index-entries_007d-311"></a><a name="index-raggedright-_0040r_007bfor-index-entries_007d-312"></a><a name="index-hyphenpenalty-_0040r_007bfor-index-entries_007d-313"></a>
+<pre class="example"> \hangindent = 1em
+ \raggedright
+ \hyphenpenalty = 10000
+</pre>
+ <p><a name="index-indexitem-_0040r_007bhook_007d-314"></a>Each entry ends with <code>\hookrun{indexitem}</code>, so you can change any
+of this. For example, to increase the allowable rag:
+
+<pre class="example"> \hookaction{indexitem}{\advance\rightskip by 2em}
+</pre>
+ <p><a name="index-indexspace-315"></a><a name="index-index-groupings-316"></a>Finally, MakeIndex outputs <code>\indexspace</code> between each group of
+entries in the <samp><span class="file">.ind</span></samp> file. Eplain makes this equivalent to
+<code>\bigbreak</code>.
+
+<div class="node">
+<p><hr>
+<a name="Customizing-indexing"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Typesetting-an-index">Typesetting an index</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Indexing">Indexing</a>
+
+</div>
+
+<h4 class="subsection">4.12.3 Customizing indexing</h4>
+
+<p><a name="index-customizing-indexing-317"></a>
+<a name="index-afterindexterm-318"></a><a name="index-commas-after-index-terms-319"></a><a name="index-after-index-terms-320"></a>By default, MakeIndex outputs `<samp><span class="samp">, </span></samp>' after each term in the index. To
+change this, you can add the following to your MakeIndex style
+(<samp><span class="file">.ist</span></samp>) file:
+
+<pre class="example"> delim_0 "\\afterindexterm "
+ delim_1 "\\afterindexterm "
+ delim_2 "\\afterindexterm "
+</pre>
+ <p class="noindent">Eplain makes <code>\afterindexterm</code> equivalent to
+<code>\quad</code>.
+
+ <p>You can also change the keywords Eplain recognizes (see <a href="#Modifying-index-entries">Modifying index entries</a>):
+
+ <dl>
+<dt><code>\idxrangebeginword</code><dd><a name="index-idxrangebeginword-321"></a>`begin'
+
+ <br><dt><code>\idxrangeendword</code><dd><a name="index-idxrangeendword-322"></a>`end'
+
+ <br><dt><code>\idxseecmdword</code><dd><a name="index-idxseecmdword-323"></a>`see'
+
+ <br><dt><code>\idxseealsocmdword</code><dd><a name="index-idxseealsocmdword-324"></a>`seealso'
+
+ </dl>
+
+ <p>You can also change the magic characters Eplain puts into the
+<samp><span class="file">.idx</span></samp> file, in case you've changed them in the <code>.ist</code> file:
+
+ <dl>
+<dt><code>\idxsubentryseparator</code><dd><a name="index-idxsubentryseparator-325"></a>`<samp><span class="samp">!</span></samp>'
+
+ <br><dt><code>\idxencapoperator</code><dd><a name="index-idxencapoperator-326"></a>`<samp><span class="samp">|</span></samp>'
+
+ <br><dt><code>\idxbeginrangemark</code><dd><a name="index-idxbeginrangemark-327"></a>`<samp><span class="samp">(</span></samp>'
+
+ <br><dt><code>\idxendrangemark</code><dd><a name="index-idxendrangemark-328"></a>`<samp><span class="samp">)</span></samp>'
+
+ </dl>
+
+ <p>There is no macro for the <code>actual</code> (`<samp><span class="samp">@</span></samp>' by default)
+character, because it's impossible to make it expand properly.
+
+ <p><a name="index-idxpagenum-329"></a><a name="index-see-also-index-entries-and-sorting-330"></a>You can change the (imaginary) page number that &ldquo;see also&rdquo;
+entries sort as by redefining <code>\idxmaxpagenum</code>. This is 99999 by
+default, which is one digit too many for old versions of MakeIndex.
+
+ <p><a name="index-indexseeword-331"></a><a name="index-indexseealsowords-332"></a><a name="index-seevariant-333"></a><a name="index-indexsee-334"></a><a name="index-indexseealso-335"></a>The words output by Eplain for &ldquo;see&rdquo; and &ldquo;see also&rdquo; index entries
+are defined by <code>\indexseeword</code> and <code>\indexseealsowords</code>
+respectively. You can change the typeface used for these words by
+redefining <code>\seevariant</code>. And finally, the macros
+<code>\indexsee</code> and <code>\indexseealso</code> actually produce the &ldquo;see
+<small class="dots">...</small>&rdquo; entries, so you can redefine them if you want something
+entirely different. If you do redefine them, make them take two
+parameters, the term being referenced and the <code>\idxmaxpagenum</code>
+(the latter should normally be ignored). See the example below.
+
+ <p><a name="index-see-_0040r_007bfor-index-entries_007d-336"></a><a name="index-see_002c-and-index-entries-337"></a><a name="index-cross_002dreferencing-index-entries-338"></a><a name="index-index-entries_002c-and-cross_002dreferencing-339"></a><a name="index-commas-in-cross_002dreferencing-index-entries-340"></a>Unfortunately, it is impossible to reliably control the commas
+produced by MakeIndex in front of &ldquo;see <small class="dots">...</small>&rdquo; entries in the
+<samp><span class="file">.ind</span></samp> file, either at MakeIndex level or at Eplain level.
+However, the
+<a name="index-sed-341"></a><samp><span class="command">sed</span></samp> script contained in <samp><span class="command">trimsee</span></samp>
+<a name="index-trimsee-342"></a>distributed with Eplain in the <samp><span class="file">util</span></samp> directory can be used to
+filter out these commas from the output of MakeIndex. For example,
+suppose you want the following style for your &ldquo;see <small class="dots">...</small>&rdquo; entries:
+
+<pre class="display"> analysis,
+ archetypal (<i>see</i> archetypal criticism)
+ archetypal criticism,
+ elements of, 75, 97, 114 (<i>see also</i> dichotomies)
+</pre>
+ <p class="noindent">You would need to redefine these macros in your TeX
+file:
+
+<pre class="example"> \def\indexsee#1#2{({\seevariant \indexseeword\/ }#1)}
+ \def\indexseealso#1#2{({\seevariant \indexseealsowords\/ }#1)}
+</pre>
+ <p class="noindent">and then filter out the commas in front of the &ldquo;see <small class="dots">...</small>&rdquo;
+entries by running the following command to produce the <samp><span class="file">.ind</span></samp>
+file (assuming the name of the <samp><span class="file">.idx</span></samp> file is <samp><span class="file">myfile.idx</span></samp>
+and the <samp><span class="file">trimsee</span></samp> script is placed in the current directory):
+
+<pre class="example"> prompt$ cat myfile.idx | makeindex | ./trimsee &gt; myfile.ind
+</pre>
+ <p>By default, <samp><span class="file">trimsee</span></samp> uses default page list separators and
+default &ldquo;see <small class="dots">...</small>&rdquo; command names. If you set up MakeIndex to use
+different page list separator or change the names of <code>\indexsee</code>
+and <code>\indexseealso</code> commands, it is possible to adjust the
+<samp><span class="file">trimsee</span></samp> script through its command line options, which are the
+following:
+
+ <dl>
+<dt><samp><span class="option">-i </span><var>is</var></samp><dd>Use <var>is</var> as a regular expression matching separator before &ldquo;see
+<small class="dots">...</small>&rdquo; commands in the input (default: `<samp><span class="samp">, \+</span></samp>').
+
+ <br><dt><samp><span class="option">-o </span><var>os</var></samp><dd>Use <var>os</var> as a separator to replace <var>is</var> before &ldquo;see <small class="dots">...</small>&rdquo;
+commands (default: `<samp> </samp>').
+
+ <br><dt><samp><span class="option">-s </span><var>see</var></samp><dd>Use <var>see</var> as a regular expression matching &ldquo;see <small class="dots">...</small>&rdquo;
+commands (default: `<samp><span class="samp">\\indexsee</span></samp>').
+
+ <br><dt><samp><span class="option">-h</span></samp><dt><samp><span class="option">--help</span></samp><dd>Print a usage message.
+
+ <br><dt><samp><span class="option">-v</span></samp><dt><samp><span class="option">--version</span></samp><dd>Print version.
+</dl>
+
+ <p><samp><span class="file">trimsee</span></samp> reads input from the standard input, and directs its
+output to the standard output.
+
+<div class="node">
+<p><hr>
+<a name="Justification"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Tables">Tables</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Indexing">Indexing</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#User-definitions">User definitions</a>
+
+</div>
+
+<h3 class="section">4.13 Justification</h3>
+
+<p><a name="index-centering-343"></a><a name="index-left_002djustification-344"></a><a name="index-right_002djustification-345"></a><a name="index-justification-346"></a>Eplain defines three commands to conveniently justify multiple
+lines of text: <code>\flushright</code>, <code>\flushleft</code>, and
+<code>\center</code>.
+<a name="index-flushright-347"></a><a name="index-flushleft-348"></a><a name="index-center-349"></a>
+They all work in the same way; let's take <code>\center</code> as the
+example. To start centering lines, you say <code>\center</code> inside a
+group; to stop, you end the group. Between the two commands, each
+end-of-line in the input file also starts a new line in the output file.
+
+ <p>The entire block of text is broken into paragraphs at blank lines,
+so all the TeX paragraph-shaping parameters apply in the usual way.
+This is convenient, but it implies something else that isn't so
+convenient: changes to any linespacing parameters, such as
+<code>\baselineskip</code>, will have <em>no effect</em> on the paragraph in
+which they are changed. TeX does not handle linespacing changes
+within a paragraph (because it doesn't know where the line breaks are
+until the end of the paragraph).
+
+ <p>The space between paragraphs is by default one blank line's worth.
+You can adjust this space by assigning to <code>\blanklineskipamount</code>;
+<a name="index-blanklineskipamount-_0040r_007bin-justified-text_007d-350"></a>this (vertical) glue is inserted after each blank line.
+
+ <p>Here is an example:
+
+<pre class="example"> {\center First line.
+
+ Second line, with a blank line before.
+ }
+</pre>
+ <p class="noindent">This produces:
+
+<div align="center">First line.</div>
+<div align="center"></div>
+<div align="center">Second line, with a blank line before.</div>
+
+ <p>You may wish to use the justification macros inside of your own
+macros. Just be sure to put them in a group. For example, here is how
+a title macro might be defined:
+
+<pre class="example"> \def\title{\begingroup\titlefont\center}
+ \def\endtitle{\endgroup}
+</pre>
+ <div class="node">
+<p><hr>
+<a name="Tables"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Margins">Margins</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Justification">Justification</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#User-definitions">User definitions</a>
+
+</div>
+
+<h3 class="section">4.14 Tables</h3>
+
+<p><a name="index-tables-351"></a><a name="index-alignments-352"></a>Eplain provides a single command, <code>\makecolumns</code>,
+<a name="index-makecolumns-353"></a>to make generating one particular kind of table easier. More ambitious
+macro packages might be helpful to you for more difficult applications.
+The files <samp><span class="file">ruled.tex</span></samp> and <samp><span class="file">TXSruled.tex</span></samp>, available from
+<a href="http://www.ctan.org/tex-archive/macros/texsis">http://www.ctan.org/tex-archive/macros/texsis</a>, is the only
+one I know of.
+
+ <p>Many tables are homogenous, i.e., all the entries are semantically the
+same. The arrangement into columns is to save space on the page, not
+to encode different meanings. In this kind of the table, it is useful to
+have the column breaks chosen automatically, so that you can add or
+delete entries without worrying about the column breaks.
+
+ <p><code>\makecolumns</code> takes two arguments: the number of entries in the
+table, and the number of columns to break them into. As you can see
+from the example below, the first argument is delimited by a slash, and
+the second by a colon and a space (or end-of-line). The entries for the
+table then follow, one per line (not including the line with the
+<code>\makecolumns</code> command itself).
+
+ <p><code>\parindent</code> defines the space to the left of the
+table. <code>\hsize</code> defines the width of the table.
+So you can adjust the position of the table on the page by assignments
+to these parameters, probably inside a group.
+
+ <p>You can also control the penalty at a page break before the
+<code>\makecolumns</code> by setting the parameter
+<code>\abovecolumnspenalty</code>.
+<a name="index-abovecolumnspenalty-354"></a>Usually, the table is preceded by some explanatory text. You wouldn't
+want a page break to occur after the text and before the table, so
+Eplain sets it to <code>10000</code>. But if the table produced by
+<code>\makecolumns</code> is standing on its own, <code>\abovecolumnspenalty</code>
+should be decreased.
+
+ <p>If you happen to give <code>\makecolumns</code> a smaller number of entries
+than you really have, some text beyond the (intended) end of the table
+will be incorporated into the table, probably producing an error
+message, or at least some strange looking entries. And if you give
+<code>\makecolumns</code> a larger number of entries than you really have,
+some of the entries will be typeset as straight text, probably also
+looking somewhat out of place.
+
+ <p>Here is an example:
+
+<pre class="example"> % Arrange 6 entries into 2 columns:
+ \makecolumns 6/2: % This line doesn't have an entry.
+ one
+ two
+ three
+ four
+ five
+ six
+ Text after the table.
+</pre>
+ <p class="noindent">This produces `one', `two', and `three' in the first column, and
+`four', `five', and `six' in the second.
+
+<div class="node">
+<p><hr>
+<a name="Margins"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Multiple-columns">Multiple columns</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Tables">Tables</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#User-definitions">User definitions</a>
+
+</div>
+
+<h3 class="section">4.15 Margins</h3>
+
+<p><a name="index-margins_002c-changing-355"></a>TeX's primitives describe the type area in terms of an offset from
+the upper left corner, and the width and height of the type. Some
+people prefer to think in terms of the <dfn>margins</dfn> at the top, bottom,
+left, and right of the page, and most composition systems other than
+TeX conceive of the page laid out in this way. Therefore, Eplain
+provides commands to directly assign and increment the margins.
+
+ <dl>
+<dt><code>\topmargin = </code><var>dimen</var><dt><code>\bottommargin = </code><var>dimen</var><dt><code>\leftmargin = </code><var>dimen</var><br><dt><code>\rightmargin = </code><var>dimen</var><dd><a name="index-topmargin-356"></a><a name="index-bottommargin-357"></a><a name="index-leftmargin-358"></a><a name="index-rightmargin-359"></a>These commands set the specified margin to the <var>dimen</var> given.
+The <code>=</code> and the spaces around it are optional. The control
+sequences here are not TeX registers, despite appearances;
+therefore, commands like <code>\showthe\topmargin</code> will not do what you
+expect.
+
+ <dt><code>\advancetopmargin by </code><var>dimen</var><dt><code>\advancebottommargin by </code><var>dimen</var><dt><code>\advanceleftmargin by </code><var>dimen</var><br><dt><code>\advancerightmargin by </code><var>dimen</var><dd><a name="index-advancetopmargin-360"></a><a name="index-advancebottommargin-361"></a><a name="index-advanceleftmargin-362"></a><a name="index-advancerightmargin-363"></a>These commands change the specified margin by the <var>dimen</var> given.
+</dl>
+
+ <p>Regardless of whether you use the assignment or the advance commands,
+Eplain always changes the type area in response, not the other margins.
+For example, when TeX starts, the left and right margins are both one
+inch. If you then say <code>\leftmargin = 2in</code>, the right margin will
+remain at one inch, and the width of the lines (i.e., <code>\hsize</code>)
+<a name="index-hsize-364"></a>will decrease by one inch.
+
+ <p>When you use any of these commands, Eplain computes the old value of
+the particular margin, by how much you want to change it, and then
+resets the values of TeX's primitive parameters to correspond.
+Unfortunately, Eplain cannot compute the right or bottom margin without
+help: you must tell it the full width and height of the final output
+page. It defines two new parameters for this:
+
+ <dl>
+<dt><code>\paperheight</code><dd><a name="index-paperheight-365"></a>The height of the output page; default is 11truein.
+
+ <br><dt><code>\paperwidth</code><dd><a name="index-paperwidth-366"></a>The width of the output page; default is 8.5truein.
+</dl>
+
+ <p>If your output page has different dimensions than this, you must
+reassign to these parameters, as in
+
+<pre class="example"> \paperheight = 11truein
+ \paperwidth = 17truein
+</pre>
+ <div class="node">
+<p><hr>
+<a name="Multiple-columns"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Footnotes">Footnotes</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Margins">Margins</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#User-definitions">User definitions</a>
+
+</div>
+
+<h3 class="section">4.16 Multiple columns</h3>
+
+<p><a name="index-double-column-output-367"></a><a name="index-triple-column-output-368"></a><a name="index-quadruple-column-output-369"></a><a name="index-multiple-column-output-370"></a>Eplain provides for double, triple, and quadruple column output: say
+<code>\doublecolumns</code>,
+<a name="index-doublecolumns-371"></a><code>\triplecolumns</code>,
+<a name="index-triplecolumns-372"></a>or <code>\quadcolumns</code>,
+<a name="index-quadcolumns-373"></a>and from that point on, the manuscript will be
+set in columns. To go back to one column, say
+<code>\singlecolumn</code>.
+<a name="index-singlecolumn-374"></a>
+<a name="index-column-balancing-with-_0040code_007b_005csinglecolumn_007d-375"></a><a name="index-balancing-of-columns-with-_0040code_007b_005csinglecolumn_007d-376"></a>You may need to invoke <code>\singlecolumn</code> to balance the columns
+on the last page of output.
+
+ <p><a name="index-columnfill-377"></a><a name="index-column-eject-378"></a><a name="index-eject-in-multicolumns-379"></a><a name="index-pagetotal-380"></a>To do a &ldquo;column eject&rdquo;, i.e., move to the top of the next column, do
+<code>\columnfill</code>. This does not actually force an eject, however: it
+merely inserts a kern of size <code>\@normalvsize</code> minus
+<code>\pagetotal</code> (<code>\@normalvsize</code> being the usual height of the
+page; to implement multicolumns, Eplain multiplies <code>\vsize</code> itself
+by the number of columns). In most circumstances, a column break will be
+forced after this kern (during the column splitting operation when the
+whole page is output), as desired.
+
+ <p><a name="index-gutter-381"></a>The columns are separated by the value of the dimen parameter
+<code>\gutter</code>. Default value is two picas.
+<a name="index-gutterbox-382"></a>If you want to add vertical material between the columns, use
+<code>\gutterbox</code>. For example, to put a vertical line between columns,
+define
+<code>\gutterbox</code> as
+
+<pre class="example"> \def\gutterbox{\vbox to \dimen0{\vfil\hbox{\vrule height\dimen0}\vfil}}%
+</pre>
+ <p class="noindent">The dimension counter
+<code>\dimen0</code>
+contains the height of the column.
+
+ <p>All the <code>\...columns</code> macros insert the value of the glue parameter
+<code>\abovecolumnskip</code>
+<a name="index-abovecolumnskip-383"></a>before the multicolumn text, and the value of the glue parameter
+<code>\belowcolumnskip</code>
+<a name="index-belowcolumnskip-384"></a>after it. The default value for both of these parameters is
+<code>\bigskipamount</code>, i.e., one linespace in plain TeX.
+
+ <p>The macros take into account only the insertion classes
+<a name="index-insertion-classes-385"></a>defined by plain TeX; namely, footnotes and <code>\topinsert</code>s. If
+you have additional insertion classes, you will need to change
+the implementation.
+
+ <p>Also, Eplain makes insertions the full page width. There is no
+provision for column-width insertions.
+
+<div class="node">
+<p><hr>
+<a name="Footnotes"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Fractions">Fractions</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Multiple-columns">Multiple columns</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#User-definitions">User definitions</a>
+
+</div>
+
+<h3 class="section">4.17 Footnotes</h3>
+
+<p><a name="index-footnotes_002c-numbered-386"></a>The most common reference mark for footnotes is a raised number,
+incremented on each footnote. The <code>\numberedfootnote</code>
+<a name="index-numberedfootnote-387"></a>macro provides this. It takes one argument, the footnote text.
+
+ <p>If your document uses only numbered footnotes, you could make typing
+<code>\numberedfootnote</code> more convenient with a command such as:
+
+<pre class="example"> \let\footnote = \numberedfootnote
+</pre>
+ <p class="noindent">After doing this, you can type your footnotes as
+<code>\footnote{</code><var>footnote text</var><code>}</code>, instead of as
+<code>\numberedfootnote{</code><var>footnote text</var><code>}</code>.
+
+ <p>Eplain keeps the current footnote number in the count register
+<code>\footnotenumber</code>. So, to reset the footnote number to zero,
+as you might want to do at, for example, the beginning of a chapter, you
+could say <code>\footnotenumber=0</code>.
+
+ <p>Plain TeX separates the footnote marker from the footnote text by
+an en space (it uses the <code>\textindent</code> macro). In Eplain, you can
+change this space by setting the dimension register
+<code>\footnotemarkseparation</code>.
+<a name="index-footnotemarkseparation-388"></a>The default is still an en.
+
+ <p>You can produce a space between footenotes by setting the glue
+register <code>\interfootnoteskip</code>.
+<a name="index-interfootnoteskip-389"></a>The default is zero.
+
+ <p><code>\parskip</code> is also set to zero by default before the beginning of
+each footnote (but not for the text of the footnote).
+
+ <p>You can also control footnote formatting in a more general way:
+Eplain expands the token register <code>\everyfootnote</code>
+<a name="index-everyfootnote-390"></a>before a footnote is typeset, but after the default values for all the
+parameters have been established. For example, if you want your
+footnotes to be printed in seven-point type, indented by one inch, you
+could say:
+
+<pre class="example"> \everyfootnote = {\sevenrm \leftskip = 1in}
+</pre>
+ <p>By default, an <code>\hrule</code> is typeset above each group of footnotes
+on a page. You can control the dimensions of this rule by setting
+the dimension registers <code>\footnoterulewidth</code>
+<a name="index-footnoterulewidth-391"></a>and <code>\footnoteruleheight</code>.
+<a name="index-footnoteruleheight-392"></a>The space between the rule and the first footnote on the page is
+determined by the dimension register <code>\belowfootnoterulespace</code>.
+<a name="index-belowfootnoterulespace-393"></a>If you don't want any rule at all, set <code>\footenoteruleheight=0pt</code>,
+and, most likely, <code>\belowfootnoterulespace=0pt</code>. The defaults for
+these parameters typeset the rule in the same way as plain TeX: the
+rule is 0.4 points high, 2 true inches wide, with 2.6 points below it.
+
+ <p>The space above the rule and below the text on the page is controlled
+by the glue register <code>\skip\footins</code>. The default is a plain TeX
+<code>\bigskip</code>.
+
+ <p>Eplain can create hypertext links for the footnote marks (see <a href="#Footnote-hyperlinks">Footnote hyperlinks</a>).
+
+<div class="node">
+<p><hr>
+<a name="Fractions"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Paths">Paths</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Footnotes">Footnotes</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#User-definitions">User definitions</a>
+
+</div>
+
+<h3 class="section">4.18 Fractions</h3>
+
+<p><a name="index-fractions-394"></a>Exercise 11.6 of <cite>The TeXbook</cite> describes a macro <code>\frac</code>
+<a name="index-frac-395"></a>for setting fractions, but <code>\frac</code> never made it into plain TeX.
+So Eplain includes it.
+
+ <p><code>\frac</code> typesets the numerator and denominator in
+<code>\scriptfont0</code>, slightly raised and lowered. The numerator and
+denominator are separated by a slash. The denominator must be enclosed
+in braces if it's more than one token long, but the numerator need not
+be. (This is a consequence of <code>\frac</code> taking delimited arguments;
+see page&nbsp;<!-- /@w -->203 of <cite>The TeXbook</cite> for an explanation of
+delimited macro arguments.)
+
+ <p>For example, <code>\frac 23/{64}</code> turns `23/64' into
+.
+
+<div class="node">
+<p><hr>
+<a name="Paths"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Logos">Logos</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Fractions">Fractions</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#User-definitions">User definitions</a>
+
+</div>
+
+<h3 class="section">4.19 Paths</h3>
+
+<p><a name="index-pathnames_002c-breaking-396"></a><a name="index-filenames_002c-breaking-397"></a><a name="index-electronic-mail-addresses_002c-breaking-398"></a>
+When you typeset long pathnames, electronic mail addresses, or other
+such &ldquo;computer&rdquo; names, you would like TeX to break lines at
+punctuation characters within the name, rather than trying to find
+hyphenation points within the words. For example, it would be better to
+break the email address <code>letters@alpha.gnu.ai.mit.edu</code> at the
+`<samp><span class="samp">@</span></samp>' or a `<samp><span class="samp">.</span></samp>', rather than at the hyphenation points in
+`<samp><span class="samp">letters</span></samp>' and `<samp><span class="samp">alpha</span></samp>'.
+
+ <p><a name="index-path-399"></a>If you use the <code>\path</code> macro to typeset the names, TeX will find
+these good breakpoints. The argument to <code>\path</code> is delimited by
+any character other other than `<samp><span class="samp">\</span></samp>' which does not appear in the
+name itself.
+`<samp><span class="samp">|</span></samp>' is often a good choice, as in:
+
+<pre class="example"> \path|letters@alpha.gnu.ai.mit.edu|
+</pre>
+ <p><a name="index-discretionaries-400"></a>You can control the exact set of characters at which breakpoints will be
+allowed by calling <code>\discretionaries</code>. This takes the same sort of
+delimited argument; any character in the argument will henceforth be a valid
+breakpoint within <code>\path</code>. The default set is essentially all the
+punctuation characters:
+
+<pre class="example"> \discretionaries |~!@$%^&amp;*()_+`-=#{}[]:";'&lt;&gt;,.?\/|
+</pre>
+ <p><a name="index-specialpathdelimiters-_0040r_007b_0028conditional_0029_007d-401"></a>If for some reason you absolutely must use <code>\</code> as the delimiter
+character for <code>\path</code>, you can set
+<code>\specialpathdelimiterstrue</code>. (Other delimiter characters can
+still be used.) TeX then processes the <code>\path</code> argument
+about four times more slowly.
+
+ <p><a name="index-g_t_0040acronym_007bURL_007d-for-_0040file_007bpath_002esty_007d-402"></a>The <code>\path</code> macro comes from <samp><span class="file">path.sty</span></samp>, written by Nelson
+Beebe and Philip Taylor and available at
+<a href="http://www.ctan.org/tex-archive/macros/latex/contrib/misc/path.sty">http://www.ctan.org/tex-archive/macros/latex/contrib/misc/path.sty</a>.
+
+<div class="node">
+<p><hr>
+<a name="Logos"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Boxes">Boxes</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Paths">Paths</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#User-definitions">User definitions</a>
+
+</div>
+
+<h3 class="section">4.20 Logos</h3>
+
+<p><a name="index-logos-403"></a><a name="index-names_002c-of-_0040TeX_007b_007d-variants-404"></a>
+Eplain redefines the <code>\TeX</code>
+<a name="index-TeX-405"></a>macro of plain TeX to end with <code>\null</code>, so that the proper
+spacing is produced when <code>\TeX</code> is used at the end of a sentence.
+The other <small class="dots">...</small>TeX macros listed here do this, also.
+
+ <p>Eplain defines
+<code>\AMSTeX</code>,
+<a name="index-AMS_0040TeX_007b_007d-406"></a><a name="index-AMSTeX-407"></a><code>\BibTeX</code>
+<a name="index-Bib_0040TeX_007b_007d-408"></a><a name="index-BibTeX-409"></a><code>\AMSLaTeX</code>,
+<a name="index-AMS_0040LaTeX_007b_007d-410"></a><a name="index-AMSLaTeX-411"></a><code>\LAMSTeX</code>,
+<a name="index-LAMS_0040TeX_007b_007d-412"></a><a name="index-LAMSTeX-413"></a><code>\LaTeX</code>
+<a name="index-g_t_0040LaTeX_007b_007d-414"></a><a name="index-LaTeX-415"></a><code>\MF</code>,
+<a name="index-Metafont-416"></a><a name="index-MF-417"></a>and <code>\SLiTeX</code>
+<a name="index-SLi_0040TeX_007b_007d-418"></a><a name="index-SLiTeX-419"></a>to produce their respective logos. (Sorry, the logos are not shown
+here.) Some spelling variants of these are also supported.
+
+ <p><a name="index-g_t_0040acronym_007bURL_007d-for-_0040file_007btexnames_002esty_007d-420"></a>All these macros come from <samp><span class="file">texnames.sty</span></samp>, compiled by Nelson
+Beebe and available at
+<a href="http://www.ctan.org/tex-archive/info/biblio/texnames.sty">http://www.ctan.org/tex-archive/info/biblio/texnames.sty</a>.
+
+<div class="node">
+<p><hr>
+<a name="Boxes"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Checking-for-PDF-output">Checking for PDF output</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Logos">Logos</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#User-definitions">User definitions</a>
+
+</div>
+
+<h3 class="section">4.21 Boxes</h3>
+
+<p><a name="index-black-boxes-421"></a><a name="index-rectangles-422"></a>The solid rectangle that Eplain uses as a marker in unordered lists
+(see <a href="#Lists">Lists</a>) is available by itself: just say <code>\blackbox</code>.
+<a name="index-blackbox-423"></a>
+You can create black boxes of arbitrary size with <code>\hrule</code> or
+<code>\vrule</code>.
+
+ <p><a name="index-open-boxes-424"></a><a name="index-boxes_002c-open-425"></a>You can also get unfilled rectangles with <code>\makeblankbox</code>.
+<a name="index-makeblankbox-426"></a>This takes two explicit arguments: the height and depth of the rules that
+define the top and bottom of the rectangle. (The two arguments are
+added to get the width of the left and right borders, so that the
+thickness of the border is the same on all four sides.) It also uses,
+as implicit arguments, the dimensions of <code>\box0</code> to define the
+dimensions of the rectangle it produces. (The contents of <code>\box0</code>
+are ignored.)
+
+ <p>Here is an example. This small raised open box is suitable for
+putting next to numbers in, e.g., a table of contents.
+
+<pre class="example"> \def\openbox{%
+ \ht0 = 1.75pt \dp0 = 1.75pt \wd0 = 3.5pt
+ \raise 2.75pt \makeblankbox{.2pt}{.2pt}
+ }
+</pre>
+ <p>Finally, you can put a box around arbitrary text with <code>\boxit</code>.
+<a name="index-boxit-427"></a>This takes one argument, which must itself be a (TeX) box, and puts a
+printed box around it, separated by <code>\boxitspace</code>
+<a name="index-boxitspace-428"></a>white space (3 points by default) on all four sides. For example:
+
+<pre class="example"> \boxit{\hbox{This text is boxed.}}
+</pre>
+ <p>The reason that the argument must be a box is that when the text is
+more than one line long, TeX cannot figure out the line length for
+itself. Eplain does set <code>\parindent</code> to zero inside <code>\boxit</code>,
+since it is very unlikely you would want indentation there. (If you do,
+you can always reset it yourself.)
+
+ <p><code>\boxit</code> uses <code>\ehrule</code> and <code>\evrule</code> so that you can
+easily adjust the thicknesses of the box rules. See <a href="#Rules">Rules</a>.
+
+<div class="node">
+<p><hr>
+<a name="Checking-for-PDF-output"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Loading-LaTeX-packages">Loading LaTeX packages</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Boxes">Boxes</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#User-definitions">User definitions</a>
+
+</div>
+
+<h3 class="section">4.22 Checking for PDF output</h3>
+
+<p><a name="index-g_t_0040acronym_007bURL_007d-for-pdf_0040TeX_007b_007d-429"></a><a name="index-g_t_0040acronym_007bPDF_007d-output-430"></a><a name="index-pdftex-431"></a><a name="index-g_t_002epdf-_0040r_007bfiles_007d-432"></a>pdfTeX is a TeX variant that can output both <samp><span class="file">.dvi</span></samp> and
+<samp><span class="file">.pdf</span></samp> (Adobe's Portable Document Format) files (see
+<a href="http://www.ctan.org/tex-archive/systems/pdftex">http://www.ctan.org/tex-archive/systems/pdftex</a>). You might
+sometimes want to know whether the target format is <samp><span class="file">.pdf</span></samp> or
+<samp><span class="file">.dvi</span></samp>. The <code>\ifpdf</code>
+<a name="index-ifpdf-433"></a>switch can be used to detect pdfTeX in <acronym>PDF</acronym> mode:
+
+<pre class="example"> \ifpdf
+ This text is produced when pdfTeX is in PDF mode.
+ \else
+ This text is produced when pdfTeX is in DVI mode,
+ or when some program other than pdfTeX is used.
+ \fi
+</pre>
+ <p>Keep in mind that <code>\ifpdf</code> is set based on the value of the
+<code>\pdfoutput</code>
+<a name="index-pdfoutput-434"></a>primitive of pdfTeX at the time Eplain is loaded. If you change
+the value of <code>\pdfoutput</code> after you load Eplain, <code>\ifpdf</code>
+will not reflect the change.
+
+ <p><a name="index-g_t_0040acronym_007bURL_007d-for-_0040file_007bifpdf_002esty_007d-435"></a><a name="index-Oberdiek_002c-Heiko-436"></a>Eplain defines <code>\ifpdf</code> by incorporating Heiko Oberdiek's
+<samp><span class="file">ifpdf.sty</span></samp>, which is available at
+<a href="http://www.ctan.org/tex-archive/macros/latex/contrib/oberdiek/ifpdf.sty">http://www.ctan.org/tex-archive/macros/latex/contrib/oberdiek/ifpdf.sty</a>.
+
+<div class="node">
+<p><hr>
+<a name="Loading-LaTeX-packages"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Checking-for-PDF-output">Checking for PDF output</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#User-definitions">User definitions</a>
+
+</div>
+
+<h3 class="section">4.23 Loading LaTeX packages</h3>
+
+<p><a name="index-g_t_0040LaTeX_007b_007d-packages-437"></a><a name="index-packages_002c-_0040LaTeX_007b_007d-438"></a><a name="index-g_t_002esty-_0040r_007bfiles_007d-439"></a><a name="index-g_t_002ecls-_0040r_007bfiles_007d-440"></a>Eplain provides a limited support for loading LaTeX packages
+(<samp><span class="file">.sty</span></samp> files&mdash;not <samp><span class="file">.cls</span></samp>). This will mostly work for
+packages which were designed with plain TeX compatibility in mind,
+which means that most LaTeX packages cannot be loaded. The
+packages which are known to work are listed below (see <a href="#Packages-known-to-work">Packages known to work</a>). If you discover a working package which is not in
+the list, please report it to the Eplain mailing list
+(see <a href="#Introduction">Introduction</a>).
+
+ <p><a name="index-graphics-collection_002c-_0040LaTeX_007b_007d-441"></a><a name="index-g_t_0040LaTeX_007b_007d-graphics-collection-442"></a><a name="index-miniltx_002etex-443"></a><a name="index-Carlisle_002c-David-444"></a><a name="index-Rahtz_002c-Sebastian-445"></a>To set up a pseudo-LaTeX environment for the packages, Eplain uses
+<samp><span class="file">miniltx.tex</span></samp>
+(<a href="http://www.ctan.org/tex-archive/macros/plain/graphics/miniltx.tex">http://www.ctan.org/tex-archive/macros/plain/graphics/miniltx.tex</a>)
+from the LaTeX graphics collection, written by David Carlisle and
+Sebastian Rahtz (the collection is available at
+<a href="http://www.ctan.org/tex-archive/macros/latex/required/graphics">http://www.ctan.org/tex-archive/macros/latex/required/graphics</a>).
+Eplain extends <samp><span class="file">miniltx.tex</span></samp> to provide some additional features,
+e.g., support for package options.
+
+<ul class="menu">
+<li><a accesskey="1" href="#The-_005cusepackage-command">The \usepackage command</a>: Command to load packages.
+<li><a accesskey="2" href="#Environment-for-loading-packages">Environment for loading packages</a>: Environment for the \usepackage commands.
+<li><a accesskey="3" href="#Packages-known-to-work">Packages known to work</a>: Supported packages.
+<li><a accesskey="4" href="#Packages-known-not-to-work">Packages known not to work</a>: Packages known not to work with Eplain.
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="The-%5cusepackage-command"></a>
+<a name="The-_005cusepackage-command"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Environment-for-loading-packages">Environment for loading packages</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Loading-LaTeX-packages">Loading LaTeX packages</a>
+
+</div>
+
+<h4 class="subsection">4.23.1 The <code>\usepackage</code> command</h4>
+
+<p><a name="index-usepackage-446"></a><code>\usepackage</code> loads a LaTeX package. Its syntax is similar to
+that of LaTeX's <code>\usepackage</code> command:
+
+<pre class="example"> \usepackage[<var>options</var>]{<var>packages</var>}[<var>version</var>]
+</pre>
+ <p class="noindent">where <var>options</var> is a comma-separated list of package
+options, <var>packages</var> is a comma-separated list of packages to load
+(without the <samp><span class="file">.sty</span></samp> suffix), and <var>version</var> is a package
+version number given as a date in the format `<samp><span class="samp">YYYY/MM/DD</span></samp>'. If an
+older version of the package is found, a warning is issued. If
+several packages are loaded within a single <code>\usepackage</code>
+command, the <var>options</var> will be applied to each of the packages.
+As usual, parameters in square brackets are optional and can be
+omitted (together with the square brackets).
+
+ <p>For example:
+
+<pre class="example"> \usepackage[foo,bar]{pack1,pack2}[2005/08/29]
+</pre>
+ <p class="noindent">will load packages `<samp><span class="samp">pack1</span></samp>' and `<samp><span class="samp">pack2</span></samp>', each with
+the options `<samp><span class="samp">foo</span></samp>' and `<samp><span class="samp">bar</span></samp>', and will check that each of the
+packages are dated 2005/08/29 or newer.
+
+<div class="node">
+<p><hr>
+<a name="Environment-for-loading-packages"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Packages-known-to-work">Packages known to work</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#The-_005cusepackage-command">The \usepackage command</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Loading-LaTeX-packages">Loading LaTeX packages</a>
+
+</div>
+
+<h4 class="subsection">4.23.2 Environment for loading packages</h4>
+
+<p><a name="index-beginpackages-447"></a><a name="index-endpackages-448"></a>Some packages request that certain commands are executed after all
+packages have been loaded. In LaTeX, this means that the commands
+are executed at the beginning of the document, after the so-called
+<dfn>preamble</dfn>. Neither plain TeX nor Eplain have any kind of
+preamble; therefore, Eplain requires that all packages be loaded inside
+a <code>\beginpackages...\endpackages</code> block, for example:
+
+<pre class="example"> \beginpackages
+ \usepackage[foo,bar]{pack1}
+ \usepackage{pack2}
+ \endpackages
+</pre>
+ <p class="noindent">This requirement enables Eplain to execute the &ldquo;delayed&rdquo;
+commands at the end of the <code>\beginpackages...\endpackages</code> block.
+
+ <p>For the same reason, it is advisable to specify only one such block
+per document, just like there is only one preamble in LaTeX.
+
+ <p><a name="index-input-449"></a><a name="index-g_t_0040LaTeX_007b_007d-packages_002c-restoring-_0040code_007b_005cinput_007d-450"></a><a name="index-restoring-_0040code_007b_005cinput_007d_002c-_0040LaTeX_007b_007d-packages-451"></a>Some packages (and the pseudo-LaTeX environment, <samp><span class="file">miniltx.tex</span></samp>)
+redefine TeX's primitive <code>\input</code> to be a macro. Non-primitive
+<code>\input</code> is probably not what the user expects under
+plain&nbsp;<!-- /@w -->TeX. Therefore, at the beginning of the
+<code>\beginpackages...\endpackages</code> block Eplain saves the meaning of
+<code>\input</code> as
+<a name="index-eplaininput-452"></a><code>\eplaininput</code> and restores the original <code>\input</code> at the end
+of the block. This usually means that the primitive <code>\input</code> is
+restored, unless you (or some other macro package you've loaded
+directly) have redefined it before calling <code>\beginpackages</code>. In
+case you need to access the package-provided <code>\input</code>, Eplain saves
+it as <code>\packageinput</code>.
+
+ <p><a name="index-hanging-on-_0040code_007b_005cinput_007d-453"></a><a name="index-error-on-_0040code_007b_005cinput_007d-454"></a>Sometimes you may encounter packages which make conflicting
+redefinitions of <code>\input</code>. Common symptoms are TeX spewing
+incomprehensible error messages or hanging in a loop at a call to
+<code>\input</code>. This sometimes can be cured by restoring <code>\input</code>
+to <code>\eplaininput</code> before loading each package. For example:
+
+<pre class="example"> \beginpackages
+ \usepackage{pack1}
+ \let\input\eplaininput
+ \usepackage{pack2}
+ \endpackages
+</pre>
+ <div class="node">
+<p><hr>
+<a name="Packages-known-to-work"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Packages-known-not-to-work">Packages known not to work</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Environment-for-loading-packages">Environment for loading packages</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Loading-LaTeX-packages">Loading LaTeX packages</a>
+
+</div>
+
+<h4 class="subsection">4.23.3 Packages known to work</h4>
+
+<p><a name="index-g_t_0040LaTeX_007b_007d-packages-455"></a><a name="index-packages_002c-_0040LaTeX_007b_007d-456"></a>The following table lists packages that had been tested and are known
+to work with Eplain, and locations where you can find manuals for
+these packages. Some of the short descriptions of the packages were
+taken from the documentation for those packages.
+
+ <dl>
+<dt>autopict (`<samp><span class="samp">2001/06/04 v1.1j Picture mode autoload file</span></samp>')<dd><a name="index-autopict_002esty-457"></a><a href="http://tug.org/eplain/misc/ltpictur.pdf">http://tug.org/eplain/misc/ltpictur.pdf</a>
+
+ <p><a name="index-picture-mode-458"></a><a name="index-begin_0040_007bpicture_0040_007d-459"></a><a name="index-end_0040_007bpicture_0040_007d-460"></a>This is the LaTeX &ldquo;picture mode&rdquo;, started by
+<code>\begin{picture}</code> and ended by <code>\end{picture}</code> (in
+LaTeX, this package is not explicitly loaded since it is part of
+the LaTeX kernel). It provides commands to draw simple figures
+inside your document without resorting to any external tools.
+
+ <br><dt>color (`<samp><span class="samp">1999/02/16 v1.0i Standard LaTeX Color (DPC)</span></samp>')<dd><a name="index-color_002esty-461"></a><dt>graphics (`<samp><span class="samp">2001/07/07 v1.0n Standard LaTeX Graphics (DPC,SPQR)</span></samp>')<dd><a name="index-graphics_002esty-462"></a><dt>graphicx (`<samp><span class="samp">1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)</span></samp>')<dd><a name="index-graphicx_002esty-463"></a><a href="http://www.ctan.org/tex-archive/macros/latex/required/graphics/grfguide.pdf">http://www.ctan.org/tex-archive/macros/latex/required/graphics/grfguide.pdf</a>
+
+ <p><a name="index-graphics-collection_002c-_0040LaTeX_007b_007d-464"></a><a name="index-g_t_0040LaTeX_007b_007d-graphics-collection-465"></a><a name="index-color-466"></a><a name="index-rotation-467"></a><a name="index-scaling-468"></a>These packages are from the LaTeX graphics collection. They
+provide commands for changing text/page colors, text rotation and
+scaling, and much more.
+
+ <p><a name="index-color_002c-problems-with-pdf_0040TeX_007b_007d-469"></a><a name="index-graphics_002c-problems-with-pdf_0040TeX_007b_007d-470"></a><a name="index-pdf_0040TeX_007b_007d_002c-problems-using-color-and-graphics-471"></a><a name="index-pdf_0040TeX_007b_007d_002c-problems-with-_0040file_007bsupp_002dmis_002etex_007d-472"></a><a name="index-Con_0040TeX_007b_007dt-473"></a><a name="index-supp_002dmis_002etex_0040r_007b_002c-problems-with-pdf_0040TeX_007b_007d_007d-474"></a><a name="index-supp_002dpdf_002etex-475"></a><strong>Warning&nbsp;<!-- /@w -->1:</strong> If you encounter problems loading one of
+these packages under pdfTeX (more specifically, when pdfTeX
+reads <samp><span class="file">supp-mis.tex</span></samp>), the cause may be an outdated
+<samp><span class="file">supp-mis.tex</span></samp> (part of ConTeXt, a typesetting system for
+TeX) installed on your system. The problem was fixed in
+<samp><span class="file">supp-mis.tex</span></samp> version&nbsp;<!-- /@w -->2004.10.26. You can obtain
+up-to-date versions of <samp><span class="file">supp-mis.tex</span></samp> and the accompanying
+<samp><span class="file">supp-pdf.tex</span></samp> from
+<a href="http://www.ctan.org/tex-archive/macros/pdftex/graphics">http://www.ctan.org/tex-archive/macros/pdftex/graphics</a>.
+To convince TeX to use the new files, you have the following
+options in the decreasing order of preference:
+
+ <ol type=1 start=1>
+<li>put the new files in the same directory with your document;
+
+ <li>overwrite the outdated files installed by your TeX distribution;
+
+ <li>install the new <samp><span class="file">supp-mis.tex</span></samp> and <samp><span class="file">supp-pdf.tex</span></samp> files in
+the relevant subdirectory of your local <samp><span class="file">texmf</span></samp> tree (for info on
+TeX directory structure see
+<a href="http://www.tex.ac.uk/cgi-bin/texfaq2html?label=tds">http://www.tex.ac.uk/cgi-bin/texfaq2html?label=tds</a>);
+
+ <li>upgrade your ConTeXt installation.
+ </ol>
+
+ <p class="noindent">Note that option&nbsp;<!-- /@w -->1 is the safest but provides the fix
+only for your current document. Options&nbsp;<!-- /@w -->2 and&nbsp;<!-- /@w -->3 will
+usually suffice for Eplain but may break ConTeXt. Option&nbsp;<!-- /@w -->4 is
+the most general but is more complicated than the first three. Be
+sure to backup any files you overwrite. Also keep in mind that
+upgrading your TeX distribution may overwrite files you install in
+the system <samp><span class="file">texmf</span></samp> tree.<br> <strong>End of warning&nbsp;<!-- /@w -->1.</strong>
+
+ <p><strong>Warning&nbsp;<!-- /@w -->2:</strong> If you encounter problems using the
+<code>\pagecolor</code> command from the <samp><span class="file">color.sty</span></samp> package under
+pdfTeX, the cause may be an outdated pdfTeX color and graphics
+driver <samp><span class="file">pdftex.def</span></samp>. The problem was fixed in <samp><span class="file">pdftex.def</span></samp>
+version&nbsp;<!-- /@w -->0.03p. You can obtain an up-to-date version from
+<a href="http://www.ctan.org/tex-archive/graphics/pdftex/pdftex.def">http://www.ctan.org/tex-archive/graphics/pdftex/pdftex.def</a>.<br>
+<strong>End of warning&nbsp;<!-- /@w -->2.</strong>
+
+ <p><a name="index-omitting-typesetting-of-graphics-476"></a><a name="index-graphics_002c-omitting-typesetting-of-477"></a>The <samp><span class="file">graphics</span></samp>/<samp><span class="file">graphicx</span></samp> packages have the option
+<a name="index-g_t_0040code_007bdraft_007d_002c-option-for-_0040file_007bgraphics_002esty_007d-478"></a><code>draft</code> which instructs <code>\includegraphics</code> not to include the
+graphics but instead typeset a box with the dimensions of the graphics
+and the name of the graphics file in typewriter type at the center of
+the box. These packages expect the LaTeX-provided command
+<a name="index-ttfamily-479"></a><code>\ttfamily</code> to switch to the typewrite type. This command is not
+defined by <samp><span class="file">miniltx.tex</span></samp>, therefore Eplain defines it and makes it
+equivalent to plain&nbsp;<!-- /@w -->TeX's
+<a name="index-tt-480"></a><code>\tt</code>.
+
+ <p>See <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a>, for the demonstration of text rotation and
+graphics inclusion using the <samp><span class="file">graphicx</span></samp> package, and using the
+<samp><span class="file">color</span></samp> package to colorize hypertext links.
+
+ <p><a name="index-H_0040_0022oppner_002c-Klaus-481"></a>Klaus H&ouml;ppner has written a nice introduction to the LaTeX graphics
+packages and different graphics formats. You can download it from
+ <pre class="display"> <a href="http://www.tug.org/pracjourn/2005-3/hoeppner">http://www.tug.org/pracjourn/2005-3/hoeppner</a>
+ </pre>
+ <br><dt>epstopdf (`<samp><span class="samp">2001/02/04 v1.1 Conversion with epstopdf on the fly (HO)</span></samp>')<dd><a name="index-epstopdf_002esty-482"></a><a href="http://www.ctan.org/tex-archive/macros/latex/contrib/oberdiek">http://www.ctan.org/tex-archive/macros/latex/contrib/oberdiek</a>
+
+ <p><a name="index-Encapsulated-PostScript-483"></a><a name="index-g_t_0040acronym_007bEPS_007d-484"></a><a name="index-g_t_002eeps-_0040r_007bfiles_007d-485"></a><a name="index-Portable-Document-Format-486"></a><a name="index-g_t_0040acronym_007bPDF_007d-487"></a><a name="index-g_t_002epdf-_0040r_007bfiles_007d-488"></a><a name="index-epstopdf-489"></a>This package does on-the-fly conversion of Encapsulated PostScript
+(<acronym>EPS</acronym>) graphics into Portable Document Format (<acronym>PDF</acronym>)
+graphics for inclusion with the <code>\includegraphics</code> command from
+the <samp><span class="file">graphics</span></samp>/<samp><span class="file">graphicx</span></samp> packages, so that you do not have
+to explicitly call the <samp><span class="file">epstopdf</span></samp> script.
+
+ <br><dt>psfrag (`<samp><span class="samp">1998/04/11 v3.04 PSfrag (MCG)</span></samp>')<dd><a name="index-psfrag_002esty-490"></a><a href="http://www.ctan.org/tex-archive/macros/latex/contrib/psfrag/pfgguide.pdf">http://www.ctan.org/tex-archive/macros/latex/contrib/psfrag/pfgguide.pdf</a>
+
+ <p><a name="index-Encapsulated-PostScript-491"></a><a name="index-g_t_0040acronym_007bEPS_007d-492"></a><a name="index-g_t_002eeps-_0040r_007bfiles_007d-493"></a>PSfrag allows the user to precisely overlay Encapsulated PostScript
+(<acronym>EPS</acronym>) files with arbitrary (La)TeX constructions. In order to
+accomplish this, the user places a simple text &ldquo;tag&rdquo; in the graphics
+file, as a &ldquo;position marker&rdquo; of sorts. Then, using simple
+(La)TeX commands, the user instructs PSfrag to remove that tag from
+the figure, and replace it with a properly sized, aligned, and rotated
+(La)TeX equation.
+
+ <br><dt>soul (`<samp><span class="samp">2003/11/17 v2.4 letterspacing/underlining (mf)</span></samp>')<dd><a name="index-soul_002esty-494"></a><a href="http://www.ctan.org/tex-archive/macros/latex/contrib/soul">http://www.ctan.org/tex-archive/macros/latex/contrib/soul</a>
+
+ <p><a name="index-letterspacing-495"></a><a name="index-spacing-out-496"></a><a name="index-underlining-497"></a><a name="index-striking-out-498"></a><a name="index-overstriking-499"></a><a name="index-highlighting-500"></a>This package provides hyphenatable letterspacing (spacing out),
+underlining, and some derivatives. The package is optimized for
+LaTeX, but works with plain TeX&mdash;you don't actually need to
+load it with the <code>\usepackage</code> command, just say <code>\input
+soul.sty</code>. If you intend to use the highlighting macros of
+<samp><span class="file">soul</span></samp>, don't forget to load the <samp><span class="file">color</span></samp> package.
+
+ <br><dt>url (`<samp><span class="samp">2005/06/27 ver 3.2 Verb mode for urls, etc.</span></samp>')<dd><a name="index-url_002esty-501"></a><a href="http://www.ctan.org/tex-archive/macros/latex/contrib/misc/url.sty">http://www.ctan.org/tex-archive/macros/latex/contrib/misc/url.sty</a>
+
+ <p><a name="index-pathnames_002c-breaking-502"></a><a name="index-filenames_002c-breaking-503"></a><a name="index-electronic-mail-addresses_002c-breaking-504"></a>This package provides a form of <code>\verbatim</code> that allows
+line breaks at certain characters or combinations of characters,
+accepts reconfiguration, and can usually be used in the argument to
+another command. It is intended for email addresses, hypertext links,
+directories/paths, etc., which normally have no spaces.
+
+ <p>Eplain can create hypertext links with the <code>\url</code> command
+(see <a href="#URL-hyperlinks">URL hyperlinks</a>).
+
+ <p>Be sure to get a version dated at least 2005/06/27, as older versions
+have problems in plain&nbsp;<!-- /@w -->TeX.
+</dl>
+
+<div class="node">
+<p><hr>
+<a name="Packages-known-not-to-work"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Packages-known-to-work">Packages known to work</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Loading-LaTeX-packages">Loading LaTeX packages</a>
+
+</div>
+
+<h4 class="subsection">4.23.4 Packages known not to work</h4>
+
+<p><a name="index-g_t_0040LaTeX_007b_007d-packages-505"></a><a name="index-packages_002c-_0040LaTeX_007b_007d-506"></a>The following packages are known not to work with Eplain:
+
+ <dl>
+<dt>hyperref<dd><a name="index-hyperref_002esty-507"></a><a href="http://www.ctan.org/tex-archive/macros/latex/contrib/hyperref">http://www.ctan.org/tex-archive/macros/latex/contrib/hyperref</a>
+
+ <p>This package depends heavily on LaTeX, so that it is mostly
+unusable outside of LaTeX. Eplain provides its own macros for
+creating hyperlinks, see <a href="#Hyperlinks">Hyperlinks</a>.
+
+ <br><dt>pict2e (`<samp><span class="samp">2005/07/15 v0.2r Improved picture commands (HjG,RN)</span></samp>')<dd><a name="index-pict2e_002esty-508"></a><a href="http://www.ctan.org/tex-archive/macros/latex/contrib/pict2e">http://www.ctan.org/tex-archive/macros/latex/contrib/pict2e</a>
+
+ <br><dt>xcolor (`<samp><span class="samp">2005/06/06 v2.03 LaTeX color extensions (UK)</span></samp>')<dd><a name="index-xcolor_002esty-509"></a><a href="http://www.ctan.org/tex-archive/macros/latex/contrib/xcolor">http://www.ctan.org/tex-archive/macros/latex/contrib/xcolor</a>
+</dl>
+
+<!-- This is part of the Eplain manual. Public domain. -->
+<div class="node">
+<p><hr>
+<a name="Hyperlinks"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Arrow-theoretic-diagrams">Arrow theoretic diagrams</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#User-definitions">User definitions</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
+
+</div>
+
+<h2 class="chapter">5 Hyperlinks</h2>
+
+<p><a name="index-links_002c-hypertext-510"></a><a name="index-hypertext-links-511"></a>This chapter describes the support which Eplain provides for hypertext
+links (<dfn>hyperlinks</dfn> for short). Hyperlinks can be created
+implicitly by the cross-reference, indexing and other macros in
+Eplain. Macros for constructing explicit hyperlinks are also
+provided.
+
+<ul class="menu">
+<li><a accesskey="1" href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a>
+<li><a accesskey="2" href="#Explicit-hyperlinks">Explicit hyperlinks</a>
+<li><a accesskey="3" href="#Implicit-hyperlinks">Implicit hyperlinks</a>
+<li><a accesskey="4" href="#Hyperlink-drivers">Hyperlink drivers</a>
+<li><a accesskey="5" href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a>
+<li><a accesskey="6" href="#Turning-hyperlinks-on_002foff">Turning hyperlinks on/off</a>
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="Introduction-to-hyperlinks"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Explicit-hyperlinks">Explicit hyperlinks</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Hyperlinks">Hyperlinks</a>
+
+</div>
+
+<h3 class="section">5.1 Introduction to hyperlinks</h3>
+
+<p><a name="index-hyperlink-drivers-512"></a><a name="index-drivers_002c-hyperlink-513"></a>The original TeX engine has no built-in support for hyperlinks
+(a.k.a. hypertext links).
+Many of the present-day file formats with hyperlinking capabilities
+did not even exist at the time TeX was written. However, TeX's
+<a name="index-special-514"></a><code>\special</code> primitive can be used to instruct TeX to write
+special directives into its <samp><span class="file">.dvi</span></samp> output file. These directives
+are not interpreted by TeX in any way; they are intended for programs
+which process the <samp><span class="file">.dvi</span></samp> files produced by TeX, be it printing
+or converting to other formats, such as
+<a name="index-g_t_002eps-_0040r_007bfiles_007d-515"></a><a name="index-g_t_002epdf-_0040r_007bfiles_007d-516"></a><samp><span class="file">.ps</span></samp> or <samp><span class="file">.pdf</span></samp>.
+
+ <p>Another approach is to extend the original TeX engine with the
+ability to generate one of the hyperlinking formats; TeX's set of
+primitives can be extended to include hyperlink commands. This is the
+approach used by the pdfTeX engine, which is capable of producing
+<samp><span class="file">.pdf</span></samp> files directly from the TeX source, skipping the
+<samp><span class="file">.dvi</span></samp> generation and processing step.
+
+ <p>It turns out that the sets of commands for different formats are mostly
+not interchangeable, as each of the file formats has its own quirks and
+capabilities. And this is where Eplain <dfn>hyperlink drivers</dfn> come
+into play.
+
+ <p>In order for Eplain to generate proper commands, Eplain has to know
+two things: which engine or <samp><span class="file">.dvi</span></samp> processor you are using, and
+the set of commands it understands.
+
+ <p>The knowledge about the commands that the various processors
+understand is programmed into Eplain's hyperlink drivers. Eplain
+provides three drivers: <code>hypertex</code> (implementation of the
+HyperTeX standard, see <a href="http://arxiv.org/hypertex">http://arxiv.org/hypertex</a>), and
+<code>pdftex</code> and <code>dvipdfm</code> (named after the programs which
+process the hyperlink commands,
+<a name="index-pdftex-517"></a>pdfTeX and
+<a name="index-dvipdfm-518"></a>dvipdfm). Therefore, Eplain can only produce HyperTeX commands and
+hyperlink commands for one of these two programs&mdash;except that the
+extended <code>dvipdfmx</code> program can be used as well as the original
+<code>dvipdfm</code>, since they are compatible.
+
+ <p>To tell Eplain which <samp><span class="file">.dvi</span></samp> processor or extended TeX engine you
+are using, use the command
+<a name="index-enablehyperlinks-519"></a><code>\enablehyperlinks</code>.
+
+ <p>For example:
+
+<pre class="example"> \enablehyperlinks
+</pre>
+ <p class="noindent">instructs Eplain to attempt to automatically detect which
+driver to use, as follows: if it detects pdfTeX in <acronym>PDF</acronym>
+mode, it loads the <code>pdftex</code> driver. If it does not detect
+pdfTeX in <acronym>PDF</acronym> mode, the <code>hypertex</code> driver is loaded.
+The detection is based on the
+<a name="index-ifpdf-520"></a><code>\ifpdf</code> switch (see <a href="#Checking-for-PDF-output">Checking for PDF output</a>).
+
+ <p>If necessary, you can explicitly specify the driver name:
+
+<pre class="example"> \enablehyperlinks[pdftex]
+</pre>
+ <p class="noindent">will start producing hyperlinks under the assumption that
+you are using pdfTeX.
+
+ <p>Eplain does not produce any hyperlinks until you explicitly enable
+them with <code>\enablehyperlinks</code>. For one thing, this keeps Eplain
+backward-compatible with previous releases without hyperlink support.
+For another, you may be using a program other than pdfTeX or
+<code>dvipdfm</code>, which does not understand their hyperlink commands or
+the HyperTeX commands.
+
+<h4 class="subheading">Concepts and Terminology</h4>
+
+<p>In general, hyperlinks work as follows. You mark some place in your
+document as a hyperlink destination, associating a <dfn>hyperlink
+label</dfn> with that destination. Next, somewhere within your document,
+you create a hyperlink, using a label to identify the destination you
+want this link to point to. A hyperlink is a region in the document
+(which can take many forms, for example, text or a picture); when a
+user clicks on that region, they will be taken to a place in the
+document marked by the corresponding destination. The following two
+sections (<a href="#Explicit-hyperlinks">Explicit hyperlinks</a>, and <a href="#Implicit-hyperlinks">Implicit hyperlinks</a>)
+describe the macros you can use to define destinations and create
+links pointing to those destinations.
+
+ <p>In the rest of this chapter, we will often need to refer to links and
+destinations jointly, in which case we will use the term
+<dfn>hyperlinks</dfn>. We will use the terms <dfn>links</dfn> and
+<dfn>destinations</dfn> in cases when we need to refer specifically to
+links or destinations.
+
+ <p><a name="index-link-type-521"></a><a name="index-destination-type-522"></a><a name="index-type_002c-link-and-destination-523"></a>Hyperlink drivers provide several kinds of links and destinations. We
+will refer to them as <dfn>link types</dfn> and <dfn>destination types</dfn>.
+
+ <p>For example, one of the destination types that the <code>pdftex</code>
+driver provides is the `<samp><span class="samp">xyz</span></samp>' type; when the user follows a link
+pointing to an `<samp><span class="samp">xyz</span></samp>' destination, the exact location marked by
+that destination is displayed. Another destination type provided by
+the <code>pdftex</code> driver is the `<samp><span class="samp">fit</span></samp>' type; when the user follows
+a link pointing to a `<samp><span class="samp">fit</span></samp>' destination, the page containing that
+destination is zoomed to fit into the window in which the document is
+displayed.
+
+ <p>Similarly, drivers support various link types. For example, with the
+<code>pdftex</code> driver, the usual link type used to refer to
+destinations in the current document is called `<samp><span class="samp">name</span></samp>'. You can
+also create a link pointing to another local document (by using the
+`<samp><span class="samp">filename</span></samp>' link type) or to a <acronym>URL</acronym> (by using the
+`<samp><span class="samp">url</span></samp>' link type).
+
+ <p><a name="index-link-options-524"></a><a name="index-destination-options-525"></a><a name="index-options_002c-link-and-destination-526"></a>In addition, each hyperlink driver supports a number of destination and
+link <dfn>options</dfn>. By setting these options you can customize
+hyperlink parameters (e.g., the thickness of the border drawn around a
+hyperlink) or pass information to hyperlinks (for example, file name of
+a document, for a link pointing to a destination in another document).
+
+ <p>See <a href="#Hyperlink-drivers">Hyperlink drivers</a>, for the description of hyperlink types and
+options supported by the drivers. See <a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a>, for the information on how to set hyperlink options.
+
+<div class="node">
+<p><hr>
+<a name="Explicit-hyperlinks"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Implicit-hyperlinks">Implicit hyperlinks</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Hyperlinks">Hyperlinks</a>
+
+</div>
+
+<h3 class="section">5.2 Explicit hyperlinks</h3>
+
+<p><a name="index-explicit-hyperlinks-527"></a><a name="index-hyperlinks_002c-explicit-528"></a><a name="index-hldest-529"></a>Explicit hyperlinks are created by you, in the source of your
+document. The simplest command is <code>\hldest</code>, which marks the
+current position in your document as a destination:
+
+<pre class="example"> \hldest{<var>type</var>}{<var>options</var>}{<var>label</var>}
+</pre>
+ <p class="noindent">Here <var>type</var> is one of the destination types supported by
+the hyperlink driver (see <a href="#Hyperlink-drivers">Hyperlink drivers</a>), <var>options</var> is a
+comma-separated list of option assignments, and <var>label</var> is the
+hyperlink label to associate with this destination. This label will
+identify the destination when creating links pointing to this
+destination. For example, with the <code>pdftex</code> driver, the command
+
+<pre class="example"> \hldest{xyz}{zoom=2000}{index}
+</pre>
+ <p class="noindent">creates a destination of type `<samp><span class="samp">xyz</span></samp>' (&ldquo;the current
+position&rdquo;), sets the magnification ratio for this destination to be
+200%, and associates the label <code>index</code> with the destination.
+
+ <p><a name="index-hlstart-530"></a><a name="index-hlend-531"></a>Another command, <code>\hlstart</code>, paired with <code>\hlend</code>, turns all
+intervening material into a link:
+
+<pre class="example"> \hlstart{<var>type</var>}{<var>options</var>}{<var>label</var>} ... \hlend
+</pre>
+ <p class="noindent">Here <var>type</var>, <var>options</var> and <var>label</var> have the same
+meaning as for <code>\hldest</code>. Continuing the previous example,
+
+<pre class="example"> \hlstart{name}{bstyle=U,bwidth=2}{index} Index\hlend
+</pre>
+ <p class="noindent">typesets the word `Index' as a link with underline border of
+width&nbsp;<!-- /@w -->2&nbsp;<!-- /@w -->PostScript points, pointing to the named destination
+<code>index</code> defined in the previous example. (The other options, like
+highlight mode and border color, are determined by the defaults,
+see <a href="#Setting-default-types-and-options">Setting default types and options</a>).
+
+ <p>The <var>label</var> argument of both <code>\hldest</code> and <code>\hlstart</code>
+can contain special characters (such as `<samp><span class="samp">#</span></samp>', `<samp><span class="samp">%</span></samp>', `<samp><span class="samp">&amp;</span></samp>',
+`<samp><span class="samp">~</span></samp>', etc.) without any escaping. This is especially important
+for <acronym>URL</acronym> links supported by some drivers (see <a href="#Hyperlink-drivers">Hyperlink drivers</a>).
+
+ <p>Both <code>\hldest</code> and <code>\hlstart</code> ignore following spaces.
+
+ <p>Both <code>\hldest</code> and <code>\hlstart</code> expand the first token of
+<var>options</var> once, so you can save a list of options in a macro and
+pass it for the <var>options</var>. For example:
+
+<pre class="example"> \def\linkopts{bstyle=U,bwidth=2}
+ \hlstart{name}{\linkopts}{index}Index\hlend
+</pre>
+ <p class="noindent">is functionally equivalent to the previous example.
+
+ <p>See <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a>, for a demonstration of the usage of
+explicit hyperlinks.
+
+<div class="node">
+<p><hr>
+<a name="Implicit-hyperlinks"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Hyperlink-drivers">Hyperlink drivers</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Explicit-hyperlinks">Explicit hyperlinks</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Hyperlinks">Hyperlinks</a>
+
+</div>
+
+<h3 class="section">5.3 Implicit hyperlinks</h3>
+
+<p><a name="index-implicit-hyperlinks-532"></a><a name="index-hyperlinks_002c-implicit-533"></a><dfn>Implicit hyperlinks</dfn> are hyperlinks created implicitly by various
+Eplain macros, such as the macros for citations, cross-references,
+indexing, etc.
+
+ <p><a name="index-link-group-534"></a><a name="index-linkgroup-535"></a><a name="index-group_002c-link-536"></a><a name="index-destination-group-537"></a><a name="index-destgroup-538"></a><a name="index-group_002c-destination-539"></a>All such macros are divided into <dfn>link groups</dfn> and
+<dfn>destination groups</dfn> (or <dfn>linkgroups</dfn> and <dfn>destgroups</dfn> for
+short) so that parameters can be set individually for each group. For
+example, all equation macros which define a destination are assigned
+to the `eq' destgroup; equation macros which create a link are
+assigned to the `eq' linkgroup. By setting parameters for the `eq'
+linkgroup (destgroup), you can uniformly customize all links
+(destinations) related to equation references, without interfering
+with settings for the other groups.
+
+ <p>See <a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a>, for information on how to
+set parameters for a group.
+
+ <p>Here is the list of the linkgroups:
+
+<pre class="display"> hrefint, hrefext, url, cite, ref, xref, eq, idx, foot, footback.
+</pre>
+ <p>And here are the destgroups:
+
+<pre class="display"> bib, li, definexref, xrdef, eq, idx, foot, footback.
+</pre>
+ <p>See <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a>, for a demonstration of the usage of
+implicit hyperlinks.
+
+ <p>The following subsections describe each of the linkgroups and destgroups
+and the hyperlink support provided.
+
+<ul class="menu">
+<li><a accesskey="1" href="#General-hyperlinks">General hyperlinks</a>: hrefint, hrefext
+<li><a accesskey="2" href="#URL-hyperlinks">URL hyperlinks</a>: url
+<li><a accesskey="3" href="#Citation-hyperlinks">Citation hyperlinks</a>: cite, bib
+<li><a accesskey="4" href="#List-hyperlinks">List hyperlinks</a>: li
+<li><a accesskey="5" href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a>: definexref, ref
+<li><a accesskey="6" href="#Page-reference-hyperlinks">Page reference hyperlinks</a>: xrdef, xref
+<li><a accesskey="7" href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a>: eq
+<li><a accesskey="8" href="#Index-hyperlinks">Index hyperlinks</a>: idx
+<li><a accesskey="9" href="#Footnote-hyperlinks">Footnote hyperlinks</a>: foot, footback
+<li><a href="#Contents-hyperlinks">Contents hyperlinks</a>
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="General-hyperlinks"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#URL-hyperlinks">URL hyperlinks</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Implicit-hyperlinks">Implicit hyperlinks</a>
+
+</div>
+
+<h4 class="subsection">5.3.1 General hyperlinks: hrefint, hrefext</h4>
+
+<p><a name="index-href-540"></a><code>\href{</code><var>url</var><code>}{</code><var>text</var><code>}</code> typesets <var>text</var> as a link
+to <var>url</var>. It basically does what the explicit hyperlink macros do
+(see <a href="#Explicit-hyperlinks">Explicit hyperlinks</a>), but is more convenient (at the expense
+of flexibility).
+
+ <p>If <var>url</var> starts with `<samp><span class="samp">#</span></samp>', the rest of <var>url</var> is assumed to
+be a local hyperlink destination name (destination within the same
+document). Parameters for these links can be set by customizing the
+<a name="index-group-_0060hrefint_0027-541"></a><a name="index-linkgroup-_0060hrefint_0027-542"></a>`hrefint' linkgroup. For example:
+
+<pre class="example"> See \href{#intro}{Introduction}
+</pre>
+ <p class="noindent">will make `Introduction' into an internal link, which might
+have been created, e.g., with <code>\xrdef{intro}</code>.
+
+ <p><a name="index-g_t_0040acronym_007bURL_007d-hyperlink-543"></a><a name="index-hyperlinks_002c-_0040acronym_007bURL_007d-544"></a>If <var>url</var> does not start with `<samp><span class="samp">#</span></samp>', it is assumed to be a
+<acronym>URL</acronym> link. Parameters for these links can be set by
+customizing the
+<a name="index-group-_0060hrefext_0027-545"></a><a name="index-linkgroup-_0060hrefext_0027-546"></a>`hrefext' linkgroup. The special characters (such as `<samp><span class="samp">#</span></samp>' and
+`<samp><span class="samp">~</span></samp>') in the <acronym>URL</acronym> don't need to be escaped. For example:
+
+<pre class="example"> \href{http://tug.org/eplain/doc/eplain.html#Hyperlinks}{Hyperlinks
+ in Eplain}
+</pre>
+ <p class="noindent">See <a href="#URL-hyperlinks">URL hyperlinks</a>, for another way to create
+<acronym>URL</acronym> hyperlinks.
+
+ <p>The <var>text</var> argument of <code>\href</code> can contain verbatim text
+(see <a href="#Verbatim-listing">Verbatim listing</a>) or other macros which manipulate character
+catcodes. For example:
+
+<pre class="example"> \href{#WeirdChars}{The weird chars \verbatim #&amp;%$~|endverbatim}
+</pre>
+ <p><code>\href</code> does not currently handle other link types, such as
+<a name="index-g_t_0040samp_007bfile_003a_007d-links-547"></a>`<samp><span class="samp">file:</span></samp>' and
+<a name="index-g_t_0040samp_007brun_003a_007d-links-548"></a>`<samp><span class="samp">run:</span></samp>' links.
+
+<div class="node">
+<p><hr>
+<a name="URL-hyperlinks"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Citation-hyperlinks">Citation hyperlinks</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#General-hyperlinks">General hyperlinks</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Implicit-hyperlinks">Implicit hyperlinks</a>
+
+</div>
+
+<h4 class="subsection">5.3.2 URL hyperlinks: url</h4>
+
+<p><a name="index-g_t_0040acronym_007bURL_007d-hyperlink-549"></a><a name="index-hyperlinks_002c-_0040acronym_007bURL_007d-550"></a><a name="index-group-_0060url_0027-551"></a><a name="index-linkgroup-_0060url_0027-552"></a>The `url' linkgroup covers the
+<a name="index-url-_0040r_007b_0028hyperlinks_0029_007d-553"></a><code>\url</code> command from the LaTeX package
+<a name="index-url_002esty-554"></a><samp><span class="file">url</span></samp> (see <a href="#Packages-known-to-work">Packages known to work</a>), as well as any new
+<code>\url</code>-like commands you define. The type for this linkgroup is
+set to `<samp><span class="samp">url</span></samp>' by the drivers which support this link type.
+`<samp><span class="samp">url</span></samp>' links use the parameter to the <code>\url</code> command as the
+<acronym>URL</acronym> to point to.
+
+ <p>You may be using the <code>\url</code> command to typeset something other than
+a <acronym>URL</acronym>, e.g., a path, for which you do not want a link to be
+created; in that case, you can disable the `url' linkgroup with the
+command <code>\hloff[url]</code> (see <a href="#Turning-hyperlinks-on_002foff-for-a-group">Turning hyperlinks on/off for a group</a>).
+
+ <p><a name="index-boxed-links_002c-avoiding-555"></a><a name="index-avoiding-boxed-links-556"></a><a name="index-color_002c-hyperlinks-557"></a><a name="index-colored-links-558"></a><a name="index-hyperlink-color-559"></a>By default, <acronym>URL</acronym> (and other types of) links are boxed, so
+that they are visually marked even if you do not load the LaTeX
+<a name="index-color_002esty-560"></a>`color' package (see <a href="#Loading-LaTeX-packages">Loading LaTeX packages</a>) and therefore link text
+is not colored. You can see the effect by compiling the following code
+snippet (be sure to get a modern <samp><span class="file">url.sty</span></samp>, older versions do not
+work in plain&nbsp;<!-- /@w -->TeX; see <a href="#Packages-known-to-work">Packages known to work</a>):
+
+<pre class="example"> \input eplain
+ \beginpackages
+ \usepackage{url}
+ \endpackages
+
+ \enablehyperlinks
+
+ \url{http://foo/bar}
+ \bye
+</pre>
+ <p>If the hyperlink driver you use supports the link option <code>bwidth</code>
+(see <a href="#Hyperlink-drivers">Hyperlink drivers</a>), you can produce colored links with no
+border around them. Try this:
+
+<pre class="example"> \input eplain
+ \beginpackages
+ \usepackage{url}
+ \usepackage{color}
+ \endpackages
+
+ \enablehyperlinks
+ \hlopts{bwidth=0}
+
+ \url{http://foo/bar}
+ \bye
+</pre>
+ <p class="noindent">The command <code>\hlopts{bwidth=0}</code> sets border width to
+zero as the default for all links, and loading the <samp><span class="file">color</span></samp> package
+automatically colors links using the default color (see <a href="#Options-supported-by-all-drivers">Options supported by all drivers</a>). If you want the border width setting to
+apply to <acronym>URL</acronym> links only, say <code>\hlopts[url]{bwidth=0}</code>
+(see <a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a>).
+
+<div class="node">
+<p><hr>
+<a name="Citation-hyperlinks"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#List-hyperlinks">List hyperlinks</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#URL-hyperlinks">URL hyperlinks</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Implicit-hyperlinks">Implicit hyperlinks</a>
+
+</div>
+
+<h4 class="subsection">5.3.3 Citation hyperlinks: cite, bib</h4>
+
+<p><a name="index-citations_002c-hyperlinks-561"></a><a name="index-hyperlinks_002c-citations-562"></a><a name="index-group-_0060cite_0027-563"></a><a name="index-linkgroup-_0060cite_0027-564"></a><a name="index-cite-_0040r_007b_0028hyperlinks_0029_007d-565"></a>The `cite' linkgroup includes only the <code>\cite</code> command
+(see <a href="#Citations">Citations</a>). <code>\cite</code> turns each of the references in the
+list into a link pointing to the respective bibliography entry
+produced by the <code>\bibliography</code> command.
+
+ <p><a name="index-bibliography_002c-hyperlinks-566"></a><a name="index-hyperlinks_002c-bibliography-567"></a><a name="index-group-_0060bib_0027-568"></a><a name="index-destgroup-_0060bib_0027-569"></a><a name="index-bibliography-_0040r_007b_0028hyperlinks_0029_007d-570"></a>The `bib' destgroup includes the macros related to the
+<code>\bibliography</code> command (see <a href="#Citations">Citations</a>). <code>\bibliography</code>
+inputs a <samp><span class="file">.bbl</span></samp> file, which contains a list of bibliography
+entries. For each of the entries, a destination is defined.
+
+ <p>Both commands use the citation label as the hyperlink label.
+
+<div class="node">
+<p><hr>
+<a name="List-hyperlinks"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Citation-hyperlinks">Citation hyperlinks</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Implicit-hyperlinks">Implicit hyperlinks</a>
+
+</div>
+
+<h4 class="subsection">5.3.4 List hyperlinks: li</h4>
+
+<p><a name="index-lists_002c-hyperlinks-571"></a><a name="index-hyperlinks_002c-lists-572"></a><a name="index-li-_0040r_007b_0028hyperlinks_0029_007d-573"></a><a name="index-group-_0060li_0027-574"></a><a name="index-destgroup-_0060li_0027-575"></a>The `li' destgroup consists of the <code>\li</code> command (see <a href="#Lists">Lists</a>),
+which defines a destination if you supply the optional argument
+(cross-reference label). This label is also used as the hyperlink
+label.
+
+<div class="node">
+<p><hr>
+<a name="Cross-reference-hyperlinks"></a>
+<a name="Cross_002dreference-hyperlinks"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Page-reference-hyperlinks">Page reference hyperlinks</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#List-hyperlinks">List hyperlinks</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Implicit-hyperlinks">Implicit hyperlinks</a>
+
+</div>
+
+<h4 class="subsection">5.3.5 Cross-reference hyperlinks: definexref, ref</h4>
+
+<p><a name="index-definexref-_0040r_007b_0028hyperlinks_0029_007d-576"></a><a name="index-cross_002dreferences_002c-hyperlinks-577"></a><a name="index-hyperlinks_002c-cross_002dreferences-578"></a><a name="index-group-_0060definexref_0027-579"></a><a name="index-destgroup-_0060definexref_0027-580"></a>The `definexref' destgroup is for the <code>\definexref</code> command
+(see <a href="#Defining-generic-references">Defining generic references</a>). <code>\definexref</code> defines a
+destination using the cross-reference label (the first argument) as the
+hyperlink label.
+
+ <p><a name="index-group-_0060ref_0027-581"></a><a name="index-linkgroup-_0060ref_0027-582"></a>The `ref' linkgroup includes <code>\refn</code> and <code>\xrefn</code> (they are
+synonyms), <code>\ref</code>, and <code>\refs</code> (see <a href="#Using-generic-references">Using generic references</a>).
+
+ <p><a name="index-refn-_0040r_007b_0028hyperlinks_0029_007d-583"></a><a name="index-xrefn-_0040r_007b_0028hyperlinks_0029_007d-584"></a><code>\refn</code> turns the cross-reference it produces into a link, using
+the cross-reference label as the hyperlink label. If an optional
+argument is present, it is tied by
+<a name="index-reftie-585"></a><code>\reftie</code> to the reference and become part of the link.
+
+ <p><a name="index-ref-_0040r_007b_0028hyperlinks_0029_007d-586"></a><code>\ref</code> works similarly to <code>\refn</code>. It takes an optional
+argument, which is treated the same way as the optional argument to
+<code>\refn</code>. In addition, <code>\ref</code> can produce a &ldquo;class word&rdquo;.
+Both the optional argument and the class word become part of the link,
+when present. The cross-reference is tied by
+<a name="index-reftie-587"></a><code>\reftie</code> to the preceding word. The optional argument is
+separated from the class word by
+<a name="index-refspace-588"></a><code>\refspace</code>.
+
+ <p><a name="index-refs-_0040r_007b_0028hyperlinks_0029_007d-589"></a>Unlike <code>\ref</code>, <code>\refs</code> does not take an optional argument and
+does not make the class word part of the link, which is appropriate for
+its intended use.
+
+<div class="node">
+<p><hr>
+<a name="Page-reference-hyperlinks"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Implicit-hyperlinks">Implicit hyperlinks</a>
+
+</div>
+
+<h4 class="subsection">5.3.6 Page reference hyperlinks: xrdef, xref</h4>
+
+<p><a name="index-xrdef-_0040r_007b_0028hyperlinks_0029_007d-590"></a><a name="index-page-reference-hyperlink-591"></a><a name="index-hyperlinks_002c-page-references-592"></a><a name="index-group-_0060xrdef_0027-593"></a><a name="index-destgroup-_0060xrdef_0027-594"></a>The `xrdef' destgroup is for <code>\xrdef</code> (see <a href="#Page-references">Page references</a>).
+<code>\xrdef</code> defines a destination using cross-reference label as the
+hyperlink label.
+
+ <p><a name="index-xref-_0040r_007b_0028hyperlinks_0029_007d-595"></a><a name="index-refspace-596"></a><a name="index-xrefpageword-597"></a><a name="index-group-_0060xref_0027-598"></a><a name="index-linkgroup-_0060xref_0027-599"></a>The `xref' linkgroup includes the <code>\xref</code> command (see <a href="#Page-references">Page references</a>). <code>\xref</code> turns its optional argument (followed by
+<code>\refspace</code>), <code>\xrefpageword</code> and the cross-reference (page
+number) into a link, using the cross-reference label as the hyperlink
+label.
+
+<div class="node">
+<p><hr>
+<a name="Equation-reference-hyperlinks"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Index-hyperlinks">Index hyperlinks</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Page-reference-hyperlinks">Page reference hyperlinks</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Implicit-hyperlinks">Implicit hyperlinks</a>
+
+</div>
+
+<h4 class="subsection">5.3.7 Equation reference hyperlinks: eq</h4>
+
+<p><a name="index-eqdef-_0040r_007b_0028hyperlinks_0029_007d-600"></a><a name="index-eqdefn-_0040r_007b_0028hyperlinks_0029_007d-601"></a><a name="index-eqsubdef-_0040r_007b_0028hyperlinks_0029_007d-602"></a><a name="index-eqsubdefn-_0040r_007b_0028hyperlinks_0029_007d-603"></a><a name="index-equations_002c-hyperlinks-604"></a><a name="index-hyperlinks_002c-equations-605"></a><a name="index-group-_0060eq_0027-606"></a><a name="index-destgroup-_0060eq_0027-607"></a>All commands that define equation labels are part of the `eq' destgroup.
+These are <code>\eqdef</code>, <code>\eqdefn</code>, <code>\eqsubdef</code> and
+<code>\eqsubdefn</code> (see <a href="#Equation-references">Equation references</a>). All these commands use
+the equation label as the hyperlink label. However, if the equation
+label is empty, they make up a (hopefully) unique hyperlink label for
+the destination. This label will be used for the link when you refer to
+this empty-labeled equation with one of the equation reference macros.
+
+ <p><a name="index-phantomeqlabel-608"></a><a name="index-phantomeqnumber-609"></a>The command <code>\phantomeqlabel</code> is called to generate hyperlink
+labels for the empty-labeled equations. By default, it produces the
+labels in the format `<samp><span class="samp">PHEQ</span><var>number</var></samp>', where <var>number</var> comes
+from the count register <code>\phantomeqnumber</code>; this count register is
+incremented at every empty-labeled equation definition.
+
+ <p><a name="index-eqref-610"></a><a name="index-eqrefn-611"></a><a name="index-reftie-612"></a><a name="index-group-_0060eq_0027-613"></a><a name="index-linkgroup-_0060eq_0027-614"></a>The commands <code>\eqref</code> and <code>\eqrefn</code> (see <a href="#Equation-references">Equation references</a>) form the `eq' linkgroup. These commands take an optional
+argument, which, when present, is tied with <code>\reftie</code> to the
+equation reference and becomes part of the link. The equation label is
+used for the hyperlink label; if the label is empty, the link is for the
+label generated for the last empty-labeled equation.
+
+<div class="node">
+<p><hr>
+<a name="Index-hyperlinks"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Footnote-hyperlinks">Footnote hyperlinks</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Implicit-hyperlinks">Implicit hyperlinks</a>
+
+</div>
+
+<h4 class="subsection">5.3.8 Index hyperlinks: idx</h4>
+
+<p><a name="index-idx-_0040r_007b_0028hyperlinks_0029_007d-615"></a><a name="index-idxname-_0040r_007b_0028hyperlinks_0029_007d-616"></a><a name="index-idxmarked-_0040r_007b_0028hyperlinks_0029_007d-617"></a><a name="index-idxsubmarked-_0040r_007b_0028hyperlinks_0029_007d-618"></a><a name="index-index-hyperlink-619"></a><a name="index-hyperlinks_002c-index-620"></a><a name="index-group-_0060idx_0027-621"></a><a name="index-linkgroup-_0060idx_0027-622"></a><a name="index-destgroup-_0060idx_0027-623"></a>All indexing commands (<code>\idx</code>, <code>\idxname</code>, <code>\idxmarked</code>,
+<code>\idxsubmarked</code> and their silent equivalents, see <a href="#Indexing-commands">Indexing commands</a>) form the `idx' destgroup. The `idx' linkgroup consists of
+the macros which are used to typeset the index when you say
+<a name="index-readindexfile-_0040r_007b_0028hyperlinks_0029_007d-624"></a><code>\readindexfile{</code><var>index-letter</var><code>}</code> (see <a href="#Typesetting-an-index">Typesetting an index</a>).
+
+ <p><a name="index-makeindex-625"></a>To create the links in index entries, Eplain uses MakeIndex's
+&ldquo;encapsulation&rdquo; feature. When you use an indexing macro to mark an
+index term, Eplain writes out a line to the
+<a name="index-g_t_002eidx-_0040r_007bfiles_007d-626"></a><samp><span class="file">.idx</span></samp> file of the following general form:
+
+<pre class="example"> \indexentry{<var>entry</var>|<var>pagemarkup</var>}{<var>pageno</var>}
+</pre>
+ <p class="noindent">where <var>entry</var> is the index entry (converted into the
+internal format that MakeIndex understands), <var>cs</var> is the markup
+command you specified with the <code>pagemarkup=</code><var>cs</var> optional
+argument to the indexing commands (see <a href="#Modifying-index-entries">Modifying index entries</a>),
+and <var>pageno</var> is the page number on which the term appeared. When
+processing the <samp><span class="file">.idx</span></samp> file, MakeIndex makes the page number an
+argument to the page markup command (&ldquo;encapsulates&rdquo; the page
+number), so the page number in the
+<a name="index-g_t_002eind-_0040r_007bfiles_007d-627"></a><samp><span class="file">.ind</span></samp> file appears as <code>\</code><var>cs</var><code>{</code><var>pageno</var><code>}</code>. Eplain
+internally replaces the <var>cs</var> command name with its own command,
+which, in addition to calling the original <code>\</code><var>cs</var>
+encapsulator, turns the page number into a link.
+
+ <p>Eplain provides two approaches to linking page numbers in the index to
+locations of index terms in the text.
+
+<ul class="menu">
+<li><a accesskey="1" href="#Exact-destinations-for-index-terms">Exact destinations for index terms</a>
+<li><a accesskey="2" href="#Page-destinations-for-index-terms">Page destinations for index terms</a>
+<li><a accesskey="3" href="#Choosing-destination-placement">Choosing destination placement</a>
+<li><a accesskey="4" href="#Index-page-list-and-page-range-parsers">Index page list and page range parsers</a>
+<li><a accesskey="5" href="#Hyperlinks-in-see-and-see-also-entries">Hyperlinks in see and see also entries</a>
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="Exact-destinations-for-index-terms"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Page-destinations-for-index-terms">Page destinations for index terms</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Index-hyperlinks">Index hyperlinks</a>
+
+</div>
+
+<h5 class="subsubsection">5.3.8.1 Exact destinations for index terms</h5>
+
+<p>In this approach, each command that marks an index term defines a unique
+destination and passes its label on to the <samp><span class="file">.idx</span></samp> file as part of
+the <code>\indexentry</code> command. The <code>\indexentry</code> line that Eplain
+writes to the <samp><span class="file">.idx</span></samp> file becomes
+
+<pre class="example"> \indexentry{<var>entry</var>|hlidx{<var>label</var>}{<var>cs</var>}}{<var>pageno}</var>
+</pre>
+ <p><a name="index-hlidx-628"></a>where <code>\hlidx</code> is the command that is defined by Eplain
+to take three arguments: a hyperlink label (<var>label</var>), a name of
+page number encapsulator (<var>cs</var>) and a page number (<var>pageno</var>).
+In the <samp><span class="file">.ind</span></samp> file that MakeIndex will generate, the page number
+will now appear as
+
+<pre class="example"> \hlidx{<var>label</var>}{<var>cs</var>}{<var>pageno</var>}
+</pre>
+ <p class="noindent">The result of this command is
+<code>\</code><var>cs</var><code>{</code><var>pageno</var><code>}</code>, wrapped up into a link pointing to
+<var>label</var> destination.
+
+ <p>The hyperlink labels for the index terms are generated by the
+<a name="index-hlidxlabel-629"></a><code>\hlidxlabel</code> command, by default in the format
+`<samp><span class="samp">IDX</span><var>number</var></samp>', where <var>number</var> is the value of the count
+register
+<a name="index-hlidxlabelnumber-630"></a><code>\hlidxlabelnumber</code>. This count register is incremented at each
+index term.
+
+ <p><a name="index-exact-index-hyperlinks-631"></a><a name="index-index_002c-exact-hyperlinks-632"></a><a name="index-hyperlinks_002c-index_002c-exact-633"></a>The advantage of this approach, as compared to the second approach
+described below, is that links in the index point to exact locations of
+the indexed terms on the page. The disadvantage of this approach is
+that MakeIndex will regard <em>all</em> index entries as distinct, because
+each one contains a (unique) hyperlink label. This disadvantage can be
+partially overcome by the script
+<a name="index-idxuniq-634"></a><a name="index-filtering-index-entries-with-hyperlinks-635"></a><a name="index-hyperlinks_002c-filtering-index-entries-636"></a><samp><span class="file">idxuniq</span></samp> distributed with Eplain in the <samp><span class="file">util</span></samp> directory.
+This script filters out <code>\indexentry</code> lines differing only in the
+hyperlink label but identical otherwise. You should process the
+<samp><span class="file">.idx</span></samp> with this script before passing it on to MakeIndex. For
+example:
+
+<pre class="example"> prompt$ ./idxuniq file.idx | makeindex &gt; file.ind
+</pre>
+ <p class="noindent">Still, this solution is not ideal, as the page-range formation
+ability of MakeIndex will not work, and there will be problems of
+apparently identical index entries clashing (e.g., when a range-end
+entry appears on the same page as another entry with the same
+definition; <samp><span class="file">idxuniq</span></samp> will not filter out the second entry).
+
+<div class="node">
+<p><hr>
+<a name="Page-destinations-for-index-terms"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Choosing-destination-placement">Choosing destination placement</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Exact-destinations-for-index-terms">Exact destinations for index terms</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Index-hyperlinks">Index hyperlinks</a>
+
+</div>
+
+<h5 class="subsubsection">5.3.8.2 Page destinations for index terms</h5>
+
+<p>In the second approach, Eplain does not write out any destination labels
+for the index terms. Instead, Eplain writes out a wrapper for page
+number encapsulator which can parse the page number and generate a link
+pointing to the <em>page</em> on which the term appeared. On top of each
+page containing an index term, Eplain defines a destination with label
+produced by
+<a name="index-hlidxpagelabel-637"></a><code>\hlidxpagelabel</code>. The <code>\hlidxpagelabel</code> command takes a
+single argument (page number <var>number</var>) and by default produces the
+label in the format `<samp><span class="samp">IDXPG</span><var>number</var></samp>'.
+
+ <p>With this approach, the <code>\indexentry</code> line which Eplain writes to
+the <code>.idx</code> file looks like this:
+
+<pre class="example"> \indexentry{<var>entry</var>|hlidxpage{<var>cs</var>}}{<var>pageno}</var>
+</pre>
+ <p><a name="index-hlidxpage-638"></a>where <code>\hlidxpage</code> is the command that is defined by Eplain
+to take two arguments: a name of page number encapsulator (<var>cs</var>)
+and a page number (<var>pageno</var>). In the <samp><span class="file">.ind</span></samp> file that
+MakeIndex will generate, the page number will appear as
+
+<pre class="example"> \hlidxpage{<var>cs</var>}{<var>pageno</var>}
+</pre>
+ <p>The advantage of this approach is that all features of MakeIndex are
+intact. The drawback is that links in the index do not point to exact
+locations of indexed terms on a page, but to the top of a page on
+which the term appears.
+
+ <p><a name="index-index_002c-parsing-page-numbers-639"></a><a name="index-page-range_002c-parsing-640"></a><a name="index-page-list_002c-parsing-641"></a><a name="index-parsing-page-numbers-642"></a>Another disadvantage is that this approach depends on the page range and
+page list separators which MakeIndex was configured to output.
+<code>\hlidxpage</code> must be able to parse the first page number in a page
+range like `<samp><span class="samp">1--4</span></samp>'. In addition, page list parsing is needed
+because MakeIndex combines two consecutive page numbers in one call to
+the page number encapsulator, so <code>\hlidxpage</code> can be passed, e.g.,
+`<samp><span class="samp">1, 2</span></samp>' for the <var>pageno</var>. In this last case, <code>\hlidxpage</code>
+splits the two page numbers, applies <code>\</code><var>cs</var> to each of them,
+and makes each of the page numbers a link to the appropriate page. Note
+that this will alter typesetting slightly, because now the page list
+separator (a comma followed by a space, by default) is not typeset using
+the page number encapsulator (<code>\</code><var>cs</var>).
+
+ <p>Eplain's defaults for the page list and page number delimiters are the
+same as those in MakeIndex, a comma followed by a space (`<samp><span class="samp">, </span></samp>') and
+two dashes (`<samp><span class="samp">--</span></samp>'), respectively. If you customize MakeIndex to use
+different delimiters, you must not forget to let Eplain know about them
+with the commands
+
+<pre class="example"> \setidxpagelistdelimiter{<var>list-delim</var>}
+ \setidxpagerangedelimiter{<var>page-delim</var>}
+</pre>
+ <p class="noindent">(see <a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a>).
+
+<div class="node">
+<p><hr>
+<a name="Choosing-destination-placement"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Index-page-list-and-page-range-parsers">Index page list and page range parsers</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Page-destinations-for-index-terms">Page destinations for index terms</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Index-hyperlinks">Index hyperlinks</a>
+
+</div>
+
+<h5 class="subsubsection">5.3.8.3 Choosing destination placement</h5>
+
+<p><a name="index-index_002c-placement-of-destinations-643"></a><a name="index-index_002c-destination-placement-644"></a><a name="index-index_002c-selecting-destination-placement-645"></a><a name="index-index_002c-choosing-destination-placement-646"></a><a name="index-hyperlinks_002c-index-destination-placement-647"></a>The approach that Eplain should use for the index terms can be
+selected in the
+<a name="index-enablehyperlinks-648"></a><code>\enablehyperlinks</code> command. The optional argument it accepts is
+a comma-separated list of options. The
+<a name="index-idxexact-649"></a><code>idxexact</code> option selects the first approach,
+<a name="index-idxpage-650"></a><code>idxpage</code> the second, and
+<a name="index-idxnone-651"></a><code>idxnone</code> disables hyperlink support for the index terms
+altogether, in case you want to stop Eplain from writing its link
+wrappers into the <samp><span class="file">.idx</span></samp> file. The default is <code>idxpage</code>.
+
+ <p>For example:
+
+<pre class="example"> \enablehyperlinks[idxexact]
+</pre>
+ <p class="noindent">selects the first approach (&ldquo;exact index links&rdquo;).
+
+<div class="node">
+<p><hr>
+<a name="Index-page-list-and-page-range-parsers"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Hyperlinks-in-see-and-see-also-entries">Hyperlinks in see and see also entries</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Choosing-destination-placement">Choosing destination placement</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Index-hyperlinks">Index hyperlinks</a>
+
+</div>
+
+<h5 class="subsubsection">5.3.8.4 Index page list and page range parsers</h5>
+
+<p>The macros that Eplain uses to parse page lists and page ranges,
+<code>\idxparselist</code> and <code>\idxparserange</code>, can sometimes be useful
+when defining page number encapsulators. See <a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a>, for the description of these commands and an example of their
+usage.
+
+<div class="node">
+<p><hr>
+<a name="Hyperlinks-in-see-and-see-also-entries"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Index-page-list-and-page-range-parsers">Index page list and page range parsers</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Index-hyperlinks">Index hyperlinks</a>
+
+</div>
+
+<h5 class="subsubsection">5.3.8.5 Hyperlinks in see and see also entries</h5>
+
+<p><a name="index-hyperlinks_002c-see-and-see-also-index-entries-652"></a><a name="index-index_002c-hyperlinks-in-see-and-see-also-entries-653"></a><a name="index-see-also-index-entries-and-hyperlinks-654"></a><a name="index-see_002c-and-index-entries_002c-hyperlinks-655"></a>There is no automatic support for hyperlinks with &ldquo;see&rdquo; and &ldquo;see
+also&rdquo; index entries, as there is not enough information to trace the
+parameters of
+<a name="index-indexsee-656"></a><code>\indexsee</code> and
+<a name="index-indexseealso-657"></a><code>\indexseealso</code> to corresponding index entries. But if desired,
+this can be implemented with <code>\hldest</code> and <code>\hlstart</code>
+(see <a href="#Explicit-hyperlinks">Explicit hyperlinks</a>); for example:
+
+<pre class="example"> \sidx{semantic theory of truth@%
+ \leavevmode\hldest{}{}{idx:theo truth}semantic theory of truth}
+ ...
+ \sidx[seealso]{truth}[definition of]%
+ {\hlstart{}{}{idx:theo truth}semantic theory of truth\hlend}
+</pre>
+ <div class="node">
+<p><hr>
+<a name="Footnote-hyperlinks"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Contents-hyperlinks">Contents hyperlinks</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Index-hyperlinks">Index hyperlinks</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Implicit-hyperlinks">Implicit hyperlinks</a>
+
+</div>
+
+<h4 class="subsection">5.3.9 Footnote hyperlinks: foot, footback</h4>
+
+<p><a name="index-footnotes_002c-hyperlinks-658"></a><a name="index-hyperlinks_002c-footnotes-659"></a><a name="index-group-_0060foot_0027-660"></a><a name="index-group-_0060footback_0027-661"></a><a name="index-linkgroup-_0060foot_0027-662"></a><a name="index-linkgroup-_0060footback_0027-663"></a><a name="index-destgroup-_0060foot_0027-664"></a><a name="index-destgroup-_0060footback_0027-665"></a>The `foot' link and destination groups include the
+<a name="index-numberedfootnote-_0040r_007b_0028hyperlinks_0029_007d-666"></a><code>\numberedfootnote</code> and
+<a name="index-footnote-_0040r_007b_0028hyperlinks_0029_007d-667"></a><code>\footnote</code> macros (see <a href="#Footnotes">Footnotes</a>). The `footback' groups
+include the same macros, but control parameters for links and
+destinations created inside the footnote to point back to the footnote
+mark within the text body.
+
+ <p>The macros use hyperlink labels generated by
+<a name="index-hlfootlabel-668"></a><code>\hlfootlabel</code> and
+<a name="index-hlfootbacklabel-669"></a><code>\hlfootbacklabel</code>. The default formats for the labels are
+`<samp><span class="samp">FOOT</span><var>number</var></samp>' and `<samp><span class="samp">FOOTB</span><var>number</var></samp>', respectively,
+where <var>number</var> is the value of the count register
+<a name="index-hlfootlabelnumber-670"></a><code>\hlfootlabelnumber</code>. This register is incremented at every
+footnote.
+
+ <p>Generally, footnote hyperlinks are not of much use, because the
+footnotes are usually placed on the same page as the footnote mark.
+Therefore, footnote hyperlinks are disabled by default. Here is how you
+can turn them on selectively, without affecting the other kinds of
+hyperlinks (see <a href="#Turning-hyperlinks-on_002foff-for-a-group">Turning hyperlinks on/off for a group</a>):
+
+<pre class="example"> \hldeston[foot,footback]
+ \hlon[foot,footback]
+</pre>
+ <div class="node">
+<p><hr>
+<a name="Contents-hyperlinks"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Footnote-hyperlinks">Footnote hyperlinks</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Implicit-hyperlinks">Implicit hyperlinks</a>
+
+</div>
+
+<h4 class="subsection">5.3.10 Contents hyperlinks</h4>
+
+<p><a name="index-table-of-contents_002c-hyperlinks-671"></a><a name="index-contents_002c-hyperlinks-672"></a><a name="index-hyperlinks_002c-table-of-contents-673"></a>There is currently no special support for hyperlinks in the table of
+contents (see <a href="#Contents">Contents</a>), but implementing them with the
+<code>\hldest</code> and <code>\hlstart ... \hlend</code> commands
+(see <a href="#Explicit-hyperlinks">Explicit hyperlinks</a>) should be possible.
+
+<div class="node">
+<p><hr>
+<a name="Hyperlink-drivers"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Implicit-hyperlinks">Implicit hyperlinks</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Hyperlinks">Hyperlinks</a>
+
+</div>
+
+<h3 class="section">5.4 Hyperlink drivers</h3>
+
+<p>This section describes the hyperlink drivers: the types of hyperlinks
+they support, and the options they accept. During the first reading,
+you may only want to skim through this section.
+
+ <p>Some of the descriptions below come from <cite>Portable Document Format
+Reference Manual Version&nbsp;<!-- /@w -->1.3</cite>, March&nbsp;<!-- /@w -->11, 1999.
+
+<ul class="menu">
+<li><a accesskey="1" href="#Options-supported-by-all-drivers">Options supported by all drivers</a>
+<li><a accesskey="2" href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a>
+<li><a accesskey="3" href="#Hyperlink-drivers-pdftex-and-dvipdfm">Hyperlink drivers pdftex and dvipdfm</a>
+<li><a accesskey="4" href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a>
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="Options-supported-by-all-drivers"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Hyperlink-drivers">Hyperlink drivers</a>
+
+</div>
+
+<h4 class="subsection">5.4.1 Options supported by all drivers</h4>
+
+<p><a name="index-hyperlink-options_002c-common-674"></a>This subsection describes the destination and link options which are
+supported by all hyperlink drivers.
+
+<h5 class="subsubheading">Destination options supported by all drivers</h5>
+
+<p><a name="index-destination-options_002c-common-675"></a><a name="index-options_002c-destination_002c-common-676"></a>
+ <dl>
+<dt><code>raise</code><dd><a name="index-raise-_0040r_007b_0028hyperlink-option_0029_007d-677"></a><a name="index-raising-hyperlink-destinations-678"></a><a name="index-hyperlink-destination_002c-raising-679"></a><a name="index-destinations_002c-raising-680"></a>Specifies how much to raise destinations above the baseline. When set
+to zero or empty, destinations are placed at the baseline.
+
+ <p>It is usually convenient to set this option to some variable parameter,
+so that the height to which destinations are raised is automatically
+adjusted according to the current context. For example, setting it to
+<a name="index-normalbaselineskip-681"></a><code>\normalbaselineskip</code> (or some fraction of it, like
+<code>1.7\normalbaselineskip</code>) makes the setting appropriate for
+different point sizes, in case your document uses more than one.
+
+ <p>The default setting is <code>\normalbaselineskip</code>. Initially, the
+destgroups do not define this option, so they fall back on the default,
+except for the `eq' destgroup, for which this option is set to
+<code>1.7\normalbaselineskip</code>,
+<a name="index-mathematics-displays_002c-hyperlinks-682"></a><a name="index-displayed-math-and-hyperlinks-683"></a><a name="index-large-operators-and-hyperlinks-684"></a><a name="index-hyperlinks_002c-large-operators-685"></a><a name="index-destinations_002c-large-operators-686"></a>to accommodate the usual cases of large operators in displayed math.
+
+ <p>Example: <code>\hldestopts[eq]{raise=2.5\normalbaselineskip}</code>
+</dl>
+
+<h5 class="subsubheading">Link options supported by all drivers</h5>
+
+<p><a name="index-link-options_002c-common-687"></a><a name="index-options_002c-link_002c-common-688"></a>
+ <dl>
+<dt><code>colormodel</code><dt><code>color</code><dd><a name="index-colormodel-_0040r_007b_0028hyperlink-option_0029_007d-689"></a><a name="index-color-_0040r_007b_0028hyperlink-option_0029_007d-690"></a><a name="index-color_002c-hyperlinks-691"></a><a name="index-colored-links-692"></a><a name="index-hyperlink-color-693"></a>These two options define the color to be used for rendering the link
+text. The colors are used only when a <code>\color</code> command is defined,
+e.g., by loading the LaTeX `color' package (see <a href="#Packages-known-to-work">Packages known to work</a>). The <code>\color</code> command is called as
+<code>\color[</code><var>colormodel</var><code>]{</code><var>color</var><code>}</code>, where <var>colormodel</var>
+and <var>color</var> are the definitions of the <code>colormodel</code> and
+<code>color</code> options, respectively. However, if <var>colormodel</var> is
+empty, the optional argument to <code>\color</code> is omitted; and if
+<var>color</var> is empty, the <code>\color</code> command is omitted altogether.
+The default setting is <var>colormodel</var><code>=cmyk</code> and
+<var>color</var><code>=0.28,1,1,0.35</code>.
+
+ <p>When specifying colors with several components delimited by commas
+(e.g., RGB and CMYK colors in the LaTeX `color' package), it is not
+possible to specify the components directly in the option list of
+<code>\hlopts</code>, because comma is the option list delimiter. With the
+`color' package, it is possible to specify such colors by defining a
+custom color with <code>\definecolor</code> and using the new color name with
+an empty <var>colormodel</var> (see examples below).
+
+ <p>Examples:
+
+ <pre class="example"> \hlopts{colormodel=,color=blue}% predefined color
+ \definecolor{mycolor}{rgb}{.3,.8,.95}
+ \hlopts{colormodel=,color=mycolor}% custom color
+ \hlopts{colormodel=gray,color=.4}
+ </pre>
+ </dl>
+
+<div class="node">
+<p><hr>
+<a name="Hyperlink-driver-hypertex"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Hyperlink-drivers-pdftex-and-dvipdfm">Hyperlink drivers pdftex and dvipdfm</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Options-supported-by-all-drivers">Options supported by all drivers</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Hyperlink-drivers">Hyperlink drivers</a>
+
+</div>
+
+<h4 class="subsection">5.4.2 Hyperlink driver <code>hypertex</code></h4>
+
+<p><a name="index-hypertex-_0040r_007b_0028hyperlink-driver_0029_007d-694"></a><a name="index-g_t_0040code_007bhypertex_007d_002c-hyperlink-driver-695"></a><a name="index-driver-_0040code_007bhypertex_007d-696"></a><a name="index-hyperlink-driver-_0040code_007bhypertex_007d-697"></a>HyperTeX is a standard for inclusion of hyperlink information in
+TeX (and LaTeX) documents (see <a href="http://arxiv.org/hypertex">http://arxiv.org/hypertex</a>).
+This standard defines a set of hyperlink tags implemented as
+<code>\special</code> commands written into the <acronym>DVI</acronym> file. The
+major advantage of such standard is that a single <samp><span class="file">.dvi</span></samp> file
+containing HyperTeX commands can be viewed by any
+HyperTeX-enabled viewer (e.g., any more or less modern version of
+<a name="index-xdvi-698"></a><code>xdvi</code>) or converted to other file formats (e.g., <acronym>PDF</acronym>)
+by any HyperTeX-enabled <acronym>DVI</acronym> converter (e.g.,
+<a name="index-dvipdfm-699"></a><code>dvipdfmx</code> or
+<a name="index-dvips-700"></a><code>dvips</code> with
+<a name="index-g_t_0040r_007bGhostscript_007d-701"></a>Ghostscript's
+<a name="index-ps2pdf-702"></a><code>ps2pdf</code> script).
+
+ <p>The downside to the standard is that it is by design &ldquo;the common
+factor&rdquo; of other formats supporting hyperlinks, so many features of a
+particular file format cannot be supported by HyperTeX. Therefore,
+if you need to use special features of a particular format, HyperTeX
+is not a good choice. For the <acronym>PDF</acronym> file format, Eplain
+provides the <code>pdftex</code> and <code>dvipdfm</code> drivers which provide
+fine control over the <acronym>PDF</acronym> options (see <a href="#Hyperlink-drivers-pdftex-and-dvipdfm">Hyperlink drivers pdftex and dvipdfm</a>).
+
+ <p>For more information on programs which support the HyperTeX standard,
+please see
+
+<pre class="display"> <a href="http://arxiv.org/hypertex">http://arxiv.org/hypertex</a>
+ <a href="http://www.tug.org/tex-archive/support/hypertex/hypertex">http://www.tug.org/tex-archive/support/hypertex/hypertex</a>
+</pre>
+ <p class="noindent">For convenience, we list a few HyperTeX-enabled converters:
+
+
+<a name="index-dvips-703"></a>
+<dl><dt><code>dvips</code><dd>Note that you need to pass the <samp><span class="option">-z</span></samp> option to <code>dvips</code> to
+tell it to preserve the information about the hyperlinks. To generate a
+<samp><span class="file">.pdf</span></samp> file with hyperlinks, you can use the
+<a name="index-ps2pdf-704"></a><samp><span class="file">ps2pdf</span></samp> script of
+<a name="index-g_t_0040r_007bGhostscript_007d-705"></a>Ghostscript. For example, if <samp><span class="file">foo.tex</span></samp> is a TeX file using
+HyperTeX commands, then
+
+ <pre class="example"> prompt$ tex foo.tex
+ prompt$ dvips -z foo.dvi -o
+ prompt$ ps2pdf foo.ps
+ </pre>
+ <p class="noindent">will produce <samp><span class="file">foo.pdf</span></samp> with hyperlinks.
+
+ <br><dt><code>dvipdfm</code><dt><code>dvipdfmx</code><dd><a name="index-dvipdfm-706"></a>No special command line arguments are required, these programs
+automatically detect the HyperTeX commands.
+
+ </dl>
+
+ <p>One more note is in place: support for the HyperTeX commands varies
+from one previewer/converter to another, so you might need to experiment
+to see if what you need is supported by the program(s) you intend to
+use. For example, dvips(k) as of version&nbsp;<!-- /@w -->5.92b converts all
+internal hyperlinks into page links pointing to a page containing the
+destination, so that &ldquo;exact&rdquo; linking to destinations is not possible
+(this was confirmed to be a bug and most probably has already been fixed
+in later versions of dvips(k)); dvipdfm as of version&nbsp;<!-- /@w -->0.13.2c and
+dvipdfmx as of version&nbsp;<!-- /@w -->20040411 do not correctly parse links to
+external local files, and produce a <acronym>URL</acronym> link instead of a
+file link.
+
+<ul class="menu">
+<li><a accesskey="1" href="#Destination-types-for-hypertex">Destination types for hypertex</a>
+<li><a accesskey="2" href="#Destination-options-for-hypertex">Destination options for hypertex</a>
+<li><a accesskey="3" href="#Link-types-for-hypertex">Link types for hypertex</a>
+<li><a accesskey="4" href="#Link-options-for-hypertex">Link options for hypertex</a>
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="Destination-types-for-hypertex"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Destination-options-for-hypertex">Destination options for hypertex</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a>
+
+</div>
+
+<h5 class="subsubsection">5.4.2.1 Destination types for <code>hypertex</code></h5>
+
+<p><a name="index-destination-types_002c-_0040code_007bhypertex_007d-707"></a><a name="index-types_002c-destination_002c-_0040code_007bhypertex_007d-708"></a><a name="index-g_t_0040code_007bhypertex_007d_002c-destination-types-709"></a>
+ <dl>
+<dt><code>xyz</code><dd><a name="index-xyz-_0040r_007b_0028destination-type_0029_007d-710"></a>&ldquo;Current position&rdquo;. This is the default type.
+
+ <p>Example: <code>\hldest{xyz}{}{dest123}</code>
+
+ <br><dt><code>raw</code><dd><a name="index-raw-_0040r_007b_0028destination-type_0029_007d-711"></a>The destination specification (in the form of a HyperTeX
+<code>\special</code>) is taken from the command sequence <code>\</code><var>cs</var>,
+where <var>cs</var> is the value of the
+<a name="index-cmd-_0040r_007b_0028destination-option_0029_007d-712"></a><code>cmd</code> option. In the definition of <code>\</code><var>cs</var>, use
+<a name="index-g_t_0040_0040hllabel-713"></a><code>\@hllabel</code> to refer to the hyperlink label. This option is
+intended to be used with destgroups (see <a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a>), as it does not make sense in a direct call to
+<a name="index-hldest-714"></a><code>\hldest</code>&mdash;you can just call the raw command.
+
+ <p>Example:
+
+ <pre class="example"> \makeatletter
+ \def\mydest{\special{html:&lt;a name="\@hllabel"&gt;}%
+ \special{html:&lt;/a&gt;}}
+ \resetatcatcode
+ \indent\hldest{raw}{cmd=mydest}{SpecialDest}
+ Special destination.
+ </pre>
+ </dl>
+
+<div class="node">
+<p><hr>
+<a name="Destination-options-for-hypertex"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Link-types-for-hypertex">Link types for hypertex</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Destination-types-for-hypertex">Destination types for hypertex</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a>
+
+</div>
+
+<h5 class="subsubsection">5.4.2.2 Destination options for <code>hypertex</code></h5>
+
+<p><a name="index-destination-options_002c-_0040code_007bhypertex_007d-715"></a><a name="index-options_002c-destination_002c-_0040code_007bhypertex_007d-716"></a><a name="index-g_t_0040code_007bhypertex_007d_002c-destination-options-717"></a>
+ <dl>
+<dt><code>cmd</code><dd><a name="index-cmd-_0040r_007b_0028destination-option_0029_007d-718"></a>Name of the macro (without the leading `<samp><span class="samp">\</span></samp>') containing a
+HyperTeX <code>\special</code> for the <code>raw</code> destination.
+
+ <p>See <a href="#Destination-types-for-hypertex">Destination types for hypertex</a>, the description of the <code>raw</code>
+destination, for an example.
+</dl>
+
+<div class="node">
+<p><hr>
+<a name="Link-types-for-hypertex"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Link-options-for-hypertex">Link options for hypertex</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Destination-options-for-hypertex">Destination options for hypertex</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a>
+
+</div>
+
+<h5 class="subsubsection">5.4.2.3 Link types for <code>hypertex</code></h5>
+
+<p><a name="index-link-types_002c-_0040code_007bhypertex_007d-719"></a><a name="index-types_002c-link_002c-_0040code_007bhypertex_007d-720"></a><a name="index-g_t_0040code_007bhypertex_007d_002c-link-types-721"></a>
+ <dl>
+<dt><code>name</code><dd><a name="index-name-_0040r_007b_0028hyperlink-type_0029_007d-722"></a><a name="index-named-destination-723"></a><a name="index-destinations_002c-named-724"></a><a name="index-hyperlink-destination_002c-named-725"></a>Go to a &ldquo;named destination&rdquo;. The label is the destination name. All
+destinations in HyperTeX are named destinations. This is the default
+type.
+
+ <p>Example: <code>\hlstart{name}{}{dest123}Link to dest123\hlend</code>
+
+ <br><dt><code>url</code><dd><a name="index-url-_0040r_007b_0028hyperlink-type_0029_007d-726"></a><a name="index-g_t_0040acronym_007bURL_007d-hyperlink-727"></a><a name="index-destinations_002c-_0040acronym_007bURL_007d-728"></a><a name="index-hyperlinks_002c-_0040acronym_007bURL_007d-729"></a>Go to a <acronym>URL</acronym>. The label is the <acronym>URL</acronym>.
+
+ <p>Example:
+
+ <pre class="example"> <code>\hlstart{url}{}{http://tug.org/eplain/}Eplain home\hlend</code>
+ </pre>
+ <br><dt><code>filename</code><dd><a name="index-filename-_0040r_007b_0028hyperlink-type_0029_007d-730"></a><a name="index-file_002c-hyperlink-to-731"></a><a name="index-destinations_002c-in-another-file-732"></a><a name="index-hyperlinks_002c-to-another-file-733"></a>Go to a named destination in another file. The label is the
+destination name. The file name is specified by the
+<a name="index-file-_0040r_007b_0028hyperlink-option_0029_007d-734"></a><code>file</code> option. The file name extension can be specified separately
+by the
+<a name="index-ext-_0040r_007b_0028hyperlink-option_0029_007d-735"></a><code>ext</code> option. The idea is to set the <code>ext</code> option globally at
+the beginning of the document to avoid hard-coding the extension
+together with the file name within each link&mdash;HyperTeX is not
+restricted to any single output format, it can be <acronym>DVI</acronym>,
+<acronym>PDF</acronym>, possibly other formats.
+
+ <p>Example:
+
+ <pre class="example"> \hlopts{ext=.pdf}
+ \hlstart{filename}{file=book}{dest123}
+ Link to dest123 in file `book.pdf'\hlend
+ </pre>
+ <br><dt><code>raw</code><dd><a name="index-raw-_0040r_007b_0028hyperlink-type_0029_007d-736"></a>The link specification (in the form of a HyperTeX <code>\special</code>) is
+taken from the command sequence <code>\</code><var>cs</var>, where <var>cs</var> is the
+value of the
+<a name="index-cmd-_0040r_007b_0028hyperlink-option_0029_007d-737"></a><code>cmd</code> option. In the definition of <code>\</code><var>cs</var>, use
+<a name="index-g_t_0040_0040hllabel-738"></a><code>\@hllabel</code> to refer to the hyperlink label. Use the predefined
+command
+<a name="index-hlhash-739"></a><code>\hlhash</code> to insert the <code>#</code> characters. This option is
+intended to be used with linkgroups (see <a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a>), as it does not make sense in a direct call to
+<a name="index-hlstart-740"></a><code>\hlstart</code>&mdash;you can just call the raw command.
+
+ <p>Example:
+
+ <pre class="example"> \makeatletter
+ \def\mylink{\special{html:&lt;a href="\hlhash\@hllabel"&gt;}}
+ \resetatcatcode
+ \hlstart{raw}{cmd=mylink}{SpecialDest}
+ Link to the special destination.\hlend
+ </pre>
+ </dl>
+
+<div class="node">
+<p><hr>
+<a name="Link-options-for-hypertex"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Link-types-for-hypertex">Link types for hypertex</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a>
+
+</div>
+
+<h5 class="subsubsection">5.4.2.4 Link options for <code>hypertex</code></h5>
+
+<p><a name="index-link-options_002c-_0040code_007bhypertex_007d-741"></a><a name="index-options_002c-link_002c-_0040code_007bhypertex_007d-742"></a><a name="index-g_t_0040code_007bhypertex_007d_002c-link-options-743"></a>
+ <dl>
+<dt><code>cmd</code><dd><a name="index-cmd-_0040r_007b_0028hyperlink-option_0029_007d-744"></a>Name of the macro (without the leading `<samp><span class="samp">\</span></samp>') containing a
+HyperTeX <code>\special</code> for the <code>raw</code> link.
+
+ <p>See <a href="#Link-types-for-hypertex">Link types for hypertex</a>, the description of the <code>raw</code> link,
+for an example.
+
+ <br><dt><code>file</code><dd><a name="index-file-_0040r_007b_0028hyperlink-option_0029_007d-745"></a>File name for the <code>filename</code> link type. See also the <code>ext</code>
+option.
+
+ <p>See <a href="#Link-types-for-hypertex">Link types for hypertex</a>, the description of the <code>filename</code>
+link, for an example.
+
+ <br><dt><code>ext</code><dd><a name="index-ext-_0040r_007b_0028hyperlink-option_0029_007d-746"></a>File name extension for the <code>filename</code> link type. The idea is to
+set the <code>ext</code> option globally at the beginning of the document to
+avoid hard-coding the extension together with the file name within each
+link&mdash;HyperTeX is not restricted to any single output format, it can
+be <acronym>DVI</acronym>, <acronym>PDF</acronym>, possibly other formats.
+
+ <p>See <a href="#Link-types-for-hypertex">Link types for hypertex</a>, the description of the <code>filename</code>
+link, for an example.
+</dl>
+
+<div class="node">
+<p><hr>
+<a name="Hyperlink-drivers-pdftex-and-dvipdfm"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Hyperlink-drivers">Hyperlink drivers</a>
+
+</div>
+
+<h4 class="subsection">5.4.3 Hyperlink drivers <code>pdftex</code> and <code>dvipdfm</code></h4>
+
+<p><a name="index-pdftex-_0040r_007b_0028hyperlink-driver_0029_007d-747"></a><a name="index-dvipdfm-_0040r_007b_0028hyperlink-driver_0029_007d-748"></a><a name="index-g_t_0040code_007bpdftex_007d_002c-hyperlink-driver-749"></a><a name="index-g_t_0040code_007bdvipdfm_007d_002c-hyperlink-driver-750"></a><a name="index-driver-_0040code_007bpdftex_007d-751"></a><a name="index-driver-_0040code_007bdvipdfm_007d-752"></a><a name="index-hyperlink-driver-_0040code_007bpdftex_007d-753"></a><a name="index-hyperlink-driver-_0040code_007bdvipdfm_007d-754"></a>This subsection describes link and destination types and options
+supported by the <code>pdftex</code> and <code>dvipdfm</code> drivers. Many of the
+hyperlink types and options are common to both drivers, so we describe
+them together.
+
+<ul class="menu">
+<li><a accesskey="1" href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a>
+<li><a accesskey="2" href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a>
+<li><a accesskey="3" href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a>
+<li><a accesskey="4" href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a>
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="Destination-types-for-pdftex-and-dvipdfm"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Hyperlink-drivers-pdftex-and-dvipdfm">Hyperlink drivers pdftex and dvipdfm</a>
+
+</div>
+
+<h5 class="subsubsection">5.4.3.1 Destination types for <code>pdftex</code> and <code>dvipdfm</code></h5>
+
+<p><a name="index-destination-types_002c-_0040code_007bpdftex_007d-755"></a><a name="index-destination-types_002c-_0040code_007bdvipdfm_007d-756"></a><a name="index-types_002c-destination_002c-_0040code_007bpdftex_007d-757"></a><a name="index-types_002c-destination_002c-_0040code_007bdvipdfm_007d-758"></a><a name="index-g_t_0040code_007bpdftex_007d_002c-destination-types-759"></a><a name="index-g_t_0040code_007bdvipdfm_007d_002c-destination-types-760"></a>
+ <dl>
+<dt><code>xyz</code><dd><a name="index-xyz-_0040r_007b_0028destination-type_0029_007d-761"></a>&ldquo;Current position&rdquo;. The option
+<a name="index-zoom-_0040r_007b_0028destination-option_0029_007d-762"></a><code>zoom</code> specifies magnification to use (zero or empty means leave
+magnification unchanged, which is the default). This is the default
+type.
+
+ <p>For <code>dvipdfm</code>: the options
+<a name="index-left-_0040r_007b_0028destination-option_0029_007d-763"></a><code>left</code> and
+<a name="index-top-_0040r_007b_0028destination-option_0029_007d-764"></a><code>top</code> specify position coordinates to use (empty options mean
+current position coordinate, which is the default).
+
+ <p>Example: <code>\hldest{xyz}{zoom=2000}{dest123}</code>
+
+ <br><dt><code>fit</code><dd><a name="index-fit-_0040r_007b_0028destination-type_0029_007d-765"></a>Fit the page to the window.
+
+ <p>Example: <code>\hldest{fit}{}{dest123}</code>
+
+ <br><dt><code>fith</code><dd><a name="index-fith-_0040r_007b_0028destination-type_0029_007d-766"></a>Fit the width of the page to the window.
+
+ <p>For <code>dvipdfm</code>: the
+<a name="index-top-_0040r_007b_0028destination-option_0029_007d-767"></a><code>top</code> option specifies vertical position (default is empty, meaning
+current position).
+
+ <p>Example: <code>\hldest{fith}{}{dest123}</code>
+
+ <br><dt><code>fitv</code><dd><a name="index-fitv-_0040r_007b_0028destination-type_0029_007d-768"></a>Fit the height of the page to the window.
+
+ <p>For <code>dvipdfm</code>: The option
+<a name="index-left-_0040r_007b_0028destination-option_0029_007d-769"></a><code>left</code> specifies horizontal position (default is empty, meaning
+current position).
+
+ <p>Example: <code>\hldest{fitv}{}{dest123}</code>
+
+ <br><dt><code>fitb</code><dd><a name="index-fitb-_0040r_007b_0028destination-type_0029_007d-770"></a>Fit the page's bounding box to the window.
+
+ <p>Example: <code>\hldest{fitb}{}{dest123}</code>
+
+ <br><dt><code>fitbh</code><dd><a name="index-fitbh-_0040r_007b_0028destination-type_0029_007d-771"></a>Fit the width of the page's bounding box to the window.
+
+ <p>For <code>dvipdfm</code>: the option
+<a name="index-top-_0040r_007b_0028destination-option_0029_007d-772"></a><code>top</code> specifies vertical position (default is empty, meaning
+current position).
+
+ <p>Example: <code>\hldest{fitbh}{}{dest123}</code>
+
+ <br><dt><code>fitbv</code><dd><a name="index-fitbv-_0040r_007b_0028destination-type_0029_007d-773"></a>Fit the height of the page's bounding box to the window.
+
+ <p>For <code>dvipdfm</code>: the option
+<a name="index-left-_0040r_007b_0028destination-option_0029_007d-774"></a><code>left</code> specifies horizontal position (default is empty, meaning
+current position).
+
+ <p>Example: <code>\hldest{fitbv}{}{dest123}</code>
+
+ <br><dt><code>fitr</code><dd><a name="index-fitr-_0040r_007b_0028destination-type_0029_007d-775"></a>For <code>pdftex</code>: fit the rectangle specified by the options
+<a name="index-width-_0040r_007b_0028destination-option_0029_007d-776"></a><code>width</code>,
+<a name="index-height-_0040r_007b_0028destination-option_0029_007d-777"></a><code>height</code> and
+<a name="index-depth-_0040r_007b_0028destination-option_0029_007d-778"></a><code>depth</code> (as a TeX rule specification) in the window. For
+dimensions set to empty, the corresponding value of the parent box is
+used (these are the defaults).
+
+ <p>For <code>dvipdfm</code>: fit the rectangle specified by the options
+<a name="index-left-_0040r_007b_0028destination-option_0029_007d-779"></a><code>left</code>,
+<a name="index-bottom-_0040r_007b_0028destination-option_0029_007d-780"></a><code>bottom</code>,
+<a name="index-right-_0040r_007b_0028destination-option_0029_007d-781"></a><code>right</code> and
+<a name="index-top-_0040r_007b_0028destination-option_0029_007d-782"></a><code>top</code> (in
+<a name="index-PostScript-point-783"></a>PostScript points, 72&nbsp;<!-- /@w -->points per inch) in the window. For
+dimensions set to empty, current position coordinate is substituted
+(these are the defaults).
+
+ <p>Example for <code>pdftex</code>:
+
+ <pre class="example"> \hldest{fitr}{width=\hsize,
+ height=.5\vsize,depth=0pt}{dest123}
+ </pre>
+ <p>Example for <code>dvipdfm</code>:
+
+ <pre class="example"> \hldest{fitr}{left=72,bottom=72,
+ right=720,top=360}{dest123}
+ </pre>
+ <br><dt><code>raw</code><dd><a name="index-raw-_0040r_007b_0028destination-type_0029_007d-784"></a>The destination specification (in the form of a pdfTeX command or a
+dvipdfm <code>\special</code>) is taken from the command sequence
+<code>\</code><var>cs</var>, where <var>cs</var> is the value of the
+<a name="index-cmd-_0040r_007b_0028destination-option_0029_007d-785"></a><code>cmd</code> option. In the definition of <code>\</code><var>cs</var>, use
+<a name="index-g_t_0040_0040hllabel-786"></a><code>\@hllabel</code> to refer to the hyperlink label. This option is
+intended to be used with destgroups (see <a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a>), as it does not make sense in a direct call to
+<a name="index-hldest-787"></a><code>\hldest</code>&mdash;you can just call the raw command.
+
+ <p>Example for <code>pdftex</code>:
+
+ <pre class="example"> \makeatletter
+ \def\mydest{\pdfdest name{\@hllabel} xyz}
+ \resetatcatcode
+ \hldesttype{raw}
+ \hldestopts{cmd=mydest}
+ </pre>
+ <p>Example for <code>dvipdfm</code>:
+
+ <pre class="example"> \makeatletter
+ \def\mydest{\special{pdf: dest (\@hllabel)
+ [@thispage /XYZ @xpos @ypos 0]}}
+ \resetatcatcode
+ \hldesttype{raw}
+ \hldestopts{cmd=mydest}
+ </pre>
+ </dl>
+
+<div class="node">
+<p><hr>
+<a name="Destination-options-for-pdftex-and-dvipdfm"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Hyperlink-drivers-pdftex-and-dvipdfm">Hyperlink drivers pdftex and dvipdfm</a>
+
+</div>
+
+<h5 class="subsubsection">5.4.3.2 Destination options for <code>pdftex</code> and <code>dvipdfm</code></h5>
+
+<p><a name="index-destination-options_002c-_0040code_007bpdftex_007d-788"></a><a name="index-destination-options_002c-_0040code_007bdvipdfm_007d-789"></a><a name="index-options_002c-destination_002c-_0040code_007bpdftex_007d-790"></a><a name="index-options_002c-destination_002c-_0040code_007bdvipdfm_007d-791"></a><a name="index-g_t_0040code_007bpdftex_007d_002c-destination-options-792"></a><a name="index-g_t_0040code_007bdvipdfm_007d_002c-destination-options-793"></a>With respect to the destination options, the <code>pdftex</code> and
+<code>dvipdfm</code> differ in the way the fit rectangle is specified
+(relative coordinates for <code>pdftex</code>, absolute coordinates for
+<code>dvipdfm</code>).
+
+<h5 class="subsubheading">Common destination options</h5>
+
+ <dl>
+<dt><code>cmd</code><dd><a name="index-cmd-_0040r_007b_0028destination-option_0029_007d-794"></a>Name of the macro (without the leading `<samp><span class="samp">\</span></samp>') containing a
+pdfTeX command or a dvipdfm <code>\special</code> for the <code>raw</code>
+destination.
+
+ <p>See <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a>, the description of the
+<code>raw</code> destination, for an example.
+
+ <br><dt><code>zoom</code><dd><a name="index-zoom-_0040r_007b_0028destination-option_0029_007d-795"></a><a name="index-destinations_002c-magnification-796"></a><a name="index-hyperlink-destination_002c-magnification-797"></a><a name="index-magnification_002c-hyperlink-destination-798"></a><a name="index-zooming_002c-hyperlink-destination-799"></a>Magnification ratio times 1000 (like TeX's scale factor).
+Zero or empty means leave magnification unchanged, which is the
+default.
+
+ <p>Example: <code>\hldest{xyz}{zoom=2000}{dest123}</code>
+</dl>
+
+<h5 class="subsubheading"><code>pdftex</code>-specific destination options</h5>
+
+<p>The dimension options below must be specified as a TeX rule
+specification. When set to empty, the corresponding value
+of the parent box is used (this is the default for all dimension
+options).
+
+ <dl>
+<dt><code>depth</code><dd><a name="index-depth-_0040r_007b_0028destination-option_0029_007d-800"></a><a name="index-destinations_002c-dimensions-801"></a><a name="index-hyperlink-destination_002c-dimensions-802"></a><a name="index-dimensions_002c-hyperlink-destination-803"></a>Depth of the fit rectangle for the <code>fitr</code> destination.
+
+ <br><dt><code>height</code><dd><a name="index-height-_0040r_007b_0028destination-option_0029_007d-804"></a><a name="index-destinations_002c-dimensions-805"></a><a name="index-hyperlink-destination_002c-dimensions-806"></a><a name="index-dimensions_002c-hyperlink-destination-807"></a>Height of the fit rectangle for the <code>fitr</code> destination.
+
+ <br><dt><code>width</code><dd><a name="index-width-_0040r_007b_0028destination-option_0029_007d-808"></a><a name="index-destinations_002c-dimensions-809"></a><a name="index-hyperlink-destination_002c-dimensions-810"></a><a name="index-dimensions_002c-hyperlink-destination-811"></a>Width of the fit rectangle for the <code>fitr</code> destination.
+
+ <p>Example:
+
+ <pre class="example"> \hldest{fitr}{width=\hsize,
+ height=.5\vsize,depth=0pt}{dest123}
+ </pre>
+ </dl>
+
+<h5 class="subsubheading"><code>dvipdfm</code>-specific destination options</h5>
+
+<p>The dimension options below must be specified in
+<a name="index-PostScript-point-812"></a>PostScript points (72&nbsp;<!-- /@w -->points per inch), as a number without the
+`<samp><span class="samp">bp</span></samp>' unit name. When set to empty, the current position
+coordinate is used (this is the default for all dimension options).
+
+ <dl>
+<dt><code>bottom</code><dd><a name="index-bottom-_0040r_007b_0028destination-option_0029_007d-813"></a><a name="index-destinations_002c-dimensions-814"></a><a name="index-hyperlink-destination_002c-dimensions-815"></a><a name="index-dimensions_002c-hyperlink-destination-816"></a>Bottom position coordinate of a box specification for the various
+destination types.
+
+ <br><dt><code>left</code><dd><a name="index-left-_0040r_007b_0028destination-option_0029_007d-817"></a><a name="index-destinations_002c-dimensions-818"></a><a name="index-hyperlink-destination_002c-dimensions-819"></a><a name="index-dimensions_002c-hyperlink-destination-820"></a>Left position coordinate of a box specification for the various
+destination types.
+
+ <br><dt><code>right</code><dd><a name="index-right-_0040r_007b_0028destination-option_0029_007d-821"></a><a name="index-destinations_002c-dimensions-822"></a><a name="index-hyperlink-destination_002c-dimensions-823"></a><a name="index-dimensions_002c-hyperlink-destination-824"></a>Right position coordinate of a box specification for the various
+destination types.
+
+ <br><dt><code>top</code><dd><a name="index-top-_0040r_007b_0028destination-option_0029_007d-825"></a><a name="index-destinations_002c-dimensions-826"></a><a name="index-hyperlink-destination_002c-dimensions-827"></a><a name="index-dimensions_002c-hyperlink-destination-828"></a>Top position coordinate of a box specification for the various
+destination types.
+
+ <p>Example:
+
+ <pre class="example"> \hldest{fitr}{left=72,bottom=72,
+ right=720,top=360}{dest123}
+ </pre>
+ </dl>
+
+<div class="node">
+<p><hr>
+<a name="Link-types-for-pdftex-and-dvipdfm"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Hyperlink-drivers-pdftex-and-dvipdfm">Hyperlink drivers pdftex and dvipdfm</a>
+
+</div>
+
+<h5 class="subsubsection">5.4.3.3 Link types for <code>pdftex</code> and <code>dvipdfm</code></h5>
+
+<p><a name="index-link-types_002c-_0040code_007bpdftex_007d-829"></a><a name="index-link-types_002c-_0040code_007bdvipdfm_007d-830"></a><a name="index-types_002c-link_002c-_0040code_007bpdftex_007d-831"></a><a name="index-types_002c-link_002c-_0040code_007bdvipdfm_007d-832"></a><a name="index-g_t_0040code_007bpdftex_007d_002c-link-types-833"></a><a name="index-g_t_0040code_007bdvipdfm_007d_002c-link-types-834"></a>Link types are the same for the <code>pdftex</code> and <code>dvipdfm</code>
+drivers, except that the <code>pdftex</code> driver provides one additional
+link type <code>num</code> (link to a numbered destination). dvipdfm does not
+support numbered destinations, therefore it does not have this link
+type. Note that all destinations created by Eplain hyperlink macros are
+named destinations; to define a numbered destination, you have to use
+low-level pdfTeX commands.
+
+<h5 class="subsubheading">Common link types</h5>
+
+ <dl>
+<dt><code>name</code><dd><a name="index-name-_0040r_007b_0028hyperlink-type_0029_007d-835"></a><a name="index-named-destination-836"></a><a name="index-destinations_002c-named-837"></a><a name="index-hyperlink-destination_002c-named-838"></a>Go to a &ldquo;named destination&rdquo;. The label is the destination name.
+All destinations created with <code>\hldest</code> are named destinations
+(see <a href="#Explicit-hyperlinks">Explicit hyperlinks</a>). This is the default type.
+
+ <p>Example: <code>\hlstart{name}{}{dest123}Link to dest123\hlend</code>
+
+ <br><dt><code>url</code><dd><a name="index-url-_0040r_007b_0028hyperlink-type_0029_007d-839"></a><a name="index-g_t_0040acronym_007bURL_007d-hyperlink-840"></a><a name="index-destinations_002c-_0040acronym_007bURL_007d-841"></a><a name="index-hyperlinks_002c-_0040acronym_007bURL_007d-842"></a>Go to a <acronym>URL</acronym>. The label is the <acronym>URL</acronym>.
+
+ <p>Example: <code>\hlstart{url}{}{http://tug.org/eplain/}Eplain home\hlend</code>
+
+ <br><dt><code>page</code><dd><a name="index-page-_0040r_007b_0028hyperlink-type_0029_007d-843"></a><a name="index-page-destination-844"></a><a name="index-destinations_002c-page-845"></a><a name="index-hyperlink-destination_002c-page-846"></a>Go to a page. The label is the page number (counting from&nbsp;<!-- /@w -->1).
+Page fitting is specified by the
+<a name="index-pagefit-_0040r_007b_0028hyperlink-option_0029_007d-847"></a><code>pagefit</code> option.
+
+ <p>Example:
+
+ <pre class="example"> \hlstart{page}{pagefit=/FitH 600}{123}
+ Link to page~123\hlend
+ </pre>
+ <br><dt><code>filename</code><dd><a name="index-filename-_0040r_007b_0028hyperlink-type_0029_007d-848"></a><a name="index-file_002c-hyperlink-to-849"></a><a name="index-destinations_002c-in-another-file-850"></a><a name="index-hyperlinks_002c-to-another-file-851"></a>Go to a named destination in another file. The label is the
+destination name. The file name is specified by the
+<a name="index-file-_0040r_007b_0028hyperlink-option_0029_007d-852"></a><code>file</code> option. Page fitting is specified by the
+<a name="index-pagefit-_0040r_007b_0028hyperlink-option_0029_007d-853"></a><code>pagefit</code> option. The
+<a name="index-newwin-_0040r_007b_0028hyperlink-option_0029_007d-854"></a><code>newwin</code> option specifies whether the destination document is
+opened in the same window or in a new window.
+
+ <p>Example:
+
+ <pre class="example"> \hlstart{filename}{file=book.pdf,newwin=1}{dest123}
+ Link to dest123 in file `book.pdf'\hlend
+ </pre>
+ <br><dt><code>filepage</code><dd><a name="index-filepage-_0040r_007b_0028hyperlink-type_0029_007d-855"></a><a name="index-file_002c-hyperlink-to-856"></a><a name="index-destinations_002c-in-another-file-857"></a><a name="index-hyperlinks_002c-to-another-file-858"></a>Go to a page in another file. The label is the page number (counting
+from&nbsp;<!-- /@w -->1). The file name is specified by the
+<a name="index-file-_0040r_007b_0028hyperlink-option_0029_007d-859"></a><code>file</code> option. Page fitting is specified by the
+<a name="index-pagefit-_0040r_007b_0028hyperlink-option_0029_007d-860"></a><code>pagefit</code> option. The
+<a name="index-newwin-_0040r_007b_0028hyperlink-option_0029_007d-861"></a><code>newwin</code> option specifies whether the destination document is
+opened in the same window or in a new window.
+
+ <p>Example:
+
+ <pre class="example"> \hlstart{filepage}{file=book.pdf,newwin=,
+ pagefit=/FitR 50 100 300 500}{1}
+ Link to page~1 in file `book.pdf'\hlend
+ </pre>
+ <br><dt><code>raw</code><dd><a name="index-raw-_0040r_007b_0028hyperlink-type_0029_007d-862"></a>The link specification (in the form of a pdfTeX command or a dvipdfm
+<code>\special</code> primitive) is taken from the command sequence
+<code>\</code><var>cs</var>, where <var>cs</var> is the value of the
+<a name="index-cmd-_0040r_007b_0028hyperlink-option_0029_007d-863"></a><code>cmd</code> option. In the definition of <code>\</code><var>cs</var>, use
+<a name="index-g_t_0040_0040hllabel-864"></a><code>\@hllabel</code> to refer to the hyperlink label. This option is
+intended to be used with linkgroups (see <a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a>), as it does not make sense in a direct call to
+<a name="index-hlstart-865"></a><code>\hlstart</code>&mdash;you can just call the raw command.
+
+ <p>Example for <code>pdftex</code>:
+
+ <pre class="example"> % Redirect all \url links to the first page
+ \def\mycmd{\pdfstartlink goto page 1 {/Fit}}
+ \hltype[url]{raw}
+ \hlopts[url]{cmd=mycmd}
+ </pre>
+ <p>Example for <code>dvipdfm</code>:
+
+ <pre class="example"> % Redirect all \url links to the first page
+ \def\mycmd{\special{pdf: beginann &lt;&lt;/Type/Annot /Subtype/Link
+ /Dest[0 /Fit]&gt;&gt;}}
+ \hltype[url]{raw}
+ \hlopts[url]{cmd=mycmd}
+ </pre>
+ </dl>
+
+<h5 class="subsubheading"><code>pdftex</code>-specific link types</h5>
+
+ <dl>
+<dt><code>num</code><dd><a name="index-num-_0040r_007b_0028hyperlink-type_0029_007d-866"></a><a name="index-numbered-destination-867"></a><a name="index-destinations_002c-numbered-868"></a><a name="index-hyperlink-destination_002c-numbered-869"></a>Go to a &ldquo;numbered destination&rdquo;. The label is the destination
+number.
+
+ <p>Example: <code>\hlstart{num}{}{123}Link to 123\hlend</code>
+</dl>
+
+<div class="node">
+<p><hr>
+<a name="Link-options-for-pdftex-and-dvipdfm"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Hyperlink-drivers-pdftex-and-dvipdfm">Hyperlink drivers pdftex and dvipdfm</a>
+
+</div>
+
+<h5 class="subsubsection">5.4.3.4 Link options for <code>pdftex</code> and <code>dvipdfm</code></h5>
+
+<p><a name="index-link-options_002c-_0040code_007bpdftex_007d-870"></a><a name="index-link-options_002c-_0040code_007bdvipdfm_007d-871"></a><a name="index-options_002c-link_002c-_0040code_007bpdftex_007d-872"></a><a name="index-options_002c-link_002c-_0040code_007bdvipdfm_007d-873"></a><a name="index-g_t_0040code_007bpdftex_007d_002c-link-options-874"></a><a name="index-g_t_0040code_007bdvipdfm_007d_002c-link-options-875"></a>Link options are mostly the same for the <code>pdftex</code> and
+<code>dvipdfm</code> drivers. The <code>pdftex</code> driver has additional
+options to specify link dimensions.
+
+<h5 class="subsubheading">Common link options</h5>
+
+ <dl>
+<dt><code>bcolor</code><dd><a name="index-bcolor-_0040r_007b_0028hyperlink-option_0029_007d-876"></a><a name="index-hyperlink-border-color-877"></a><a name="index-border-color_002c-hyperlink-878"></a><a name="index-color_002c-hyperlink-border-879"></a>Border color. An array of three numbers in the range 0 to 1,
+representing a color in DeviceRGB.
+
+ <p>Example: <code>\hlstart{name}{bcolor=.1 .5 1}{dest123}Link\hlend</code>
+
+ <br><dt><code>bdash</code><dd><a name="index-bdash-_0040r_007b_0028hyperlink-option_0029_007d-880"></a><a name="index-dashed-hyperlink-border-881"></a><a name="index-hyperlinks_002c-border-style-882"></a><a name="index-border-style_002c-hyperlink-883"></a>Array of numbers representing on and off stroke lengths for drawing
+dashes.
+
+ <p>Example: <code>\hlstart{name}{bstyle=D,bdash=2 4}{dest123}Link\hlend</code>
+
+ <br><dt><code>bstyle</code><dd><a name="index-bstyle-_0040r_007b_0028hyperlink-option_0029_007d-884"></a><a name="index-solid-hyperlink-border-885"></a><a name="index-dashed-hyperlink-border-886"></a><a name="index-beveled-hyperlink-border-887"></a><a name="index-inset-hyperlink-border-888"></a><a name="index-underline-hyperlink-border-889"></a><a name="index-hyperlinks_002c-border-style-890"></a><a name="index-style_002c-hyperlink-border-891"></a><a name="index-border-style_002c-hyperlink-892"></a>Link border style:
+
+ <dl>
+<dt><code>S</code><dd>The border is drawn as a solid line.
+
+ <br><dt><code>D</code><dd>The border is drawn with a dashed line (the dash pattern is specified
+by the
+<a name="index-bdash-_0040r_007b_0028hyperlink-option_0029_007d-893"></a><code>bdash</code> option).
+
+ <br><dt><code>B</code><dd>The border is drawn in a beveled style.
+
+ <br><dt><code>I</code><dd>The border is drawn in an inset style.
+
+ <br><dt><code>U</code><dd>The border is drawn as a line on the bottom of the link rectangle.
+</dl>
+
+ <p>The default is `<samp><span class="samp">S</span></samp>'.
+
+ <p>Example: <code>\hlstart{name}{bstyle=D,bdash=2 4}{dest123}Link\hlend</code>
+
+ <br><dt><code>bwidth</code><dd><a name="index-bwidth-_0040r_007b_0028hyperlink-option_0029_007d-894"></a><a name="index-width_002c-hyperlink-border-895"></a><a name="index-hyperlinks_002c-border-width-896"></a><a name="index-border-width_002c-hyperlink-897"></a>Border width in
+<a name="index-PostScript-point-898"></a>PostScript points (72&nbsp;<!-- /@w -->points per inch). The default is&nbsp;<!-- /@w -->1.
+
+ <p>Example: <code>\hlstart{name}{bwidth=2}{dest123}Link\hlend</code>
+
+ <br><dt><code>cmd</code><dd><a name="index-cmd-_0040r_007b_0028hyperlink-option_0029_007d-899"></a>Name of the macro (without the leading `<samp><span class="samp">\</span></samp>') containing a
+pdfTeX command or a dvipdfm <code>\special</code> for the <code>raw</code> link.
+
+ <p>See <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a>, the description of the
+<code>raw</code> link, for an example.
+
+ <br><dt><code>file</code><dd><a name="index-file-_0040r_007b_0028hyperlink-option_0029_007d-900"></a>File name for the <code>filename</code> and <code>filepage</code> link types.
+
+ <p>See <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a>, the descriptions of the
+<code>filename</code> and <code>filepage</code> links, for an example.
+
+ <br><dt><code>hlight</code><dd><a name="index-hlight-_0040r_007b_0028hyperlink-option_0029_007d-901"></a><a name="index-hyperlinks_002c-highlight-mode-902"></a><a name="index-highlight-modes_002c-hyperlink-903"></a>Link border highlight modes:
+
+ <dl>
+<dt><code>I</code><dd>The rectangle specified by the bounding box of the link is inverted.
+
+ <br><dt><code>N</code><dd>No highlighting is done.
+
+ <br><dt><code>O</code><dd>The border of the link is inverted.
+
+ <br><dt><code>P</code><dd>The region underneath the bounding box of the link is drawn inset into
+the page.
+</dl>
+
+ <p>The default is `<samp><span class="samp">I</span></samp>'.
+
+ <p>Example: <code>\hlstart{name}{bstyle=S,hlight=O}{dest123}Link\hlend</code>
+
+ <br><dt><code>newwin</code><dd><a name="index-newwin-_0040r_007b_0028hyperlink-option_0029_007d-904"></a><a name="index-hyperlinks_002c-opening-in-a-new-window-905"></a><a name="index-new-window_002c-opening-hyperlink-in-906"></a>For the <code>filename</code> and <code>filepage</code> links, specifies whether the destination document is
+opened in the same window or in a new window. The settings are:
+
+ <dl>
+<dt><code>0</code><dd>Open in the same window.
+<br><dt><span class="roman">non-</span><code>0</code><dd>Open in a new window.
+<br><dt><span class="roman">empty</span><dd>Behavior according to the viewer settings.
+</dl>
+
+ <p>The default is empty.
+
+ <p>See <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a>, the descriptions of the
+<code>filename</code> and <code>filepage</code> links, for an example.
+
+ <br><dt><code>pagefit</code><dd><a name="index-pagefit-_0040r_007b_0028hyperlink-option_0029_007d-907"></a>For the <code>page</code> and <code>filepage links</code>, specifies how the page
+must be fitted to the window. <code>pagefit</code> specification is written
+to the <acronym>PDF</acronym> file as is, so it must conform to the
+<acronym>PDF</acronym> standard.
+
+ <p>See <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a>, the descriptions of the
+<code>page</code> and <code>filepage</code> links, for an example.
+</dl>
+
+<h5 class="subsubheading"><code>pdftex</code>-specific link options</h5>
+
+<p>The dimension options below must be specified as a TeX rule
+specification. When set to empty, the corresponding value
+of the parent box is used (this is the default for all dimension
+options).
+
+ <dl>
+<dt><code>depth</code><dd><a name="index-depth-_0040r_007b_0028hyperlink-option_0029_007d-908"></a><a name="index-hyperlink-dimensions-909"></a><a name="index-dimensions_002c-hyperlink-910"></a>Depth of the link.
+
+ <br><dt><code>height</code><dd><a name="index-height-_0040r_007b_0028hyperlink-option_0029_007d-911"></a><a name="index-hyperlink-dimensions-912"></a><a name="index-dimensions_002c-hyperlink-913"></a>Height of the link.
+
+ <br><dt><code>width</code><dd><a name="index-width-_0040r_007b_0028hyperlink-option_0029_007d-914"></a><a name="index-hyperlink-dimensions-915"></a><a name="index-dimensions_002c-hyperlink-916"></a>Width of the link.
+
+ <p>Example:
+
+ <pre class="example"> \hlstart{name}{width=5in,height=20pc,depth=0pt}{dest123}
+ Link\hlend
+ </pre>
+ </dl>
+
+<div class="node">
+<p><hr>
+<a name="Hyperlink-driver-nolinks"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Hyperlink-drivers-pdftex-and-dvipdfm">Hyperlink drivers pdftex and dvipdfm</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Hyperlink-drivers">Hyperlink drivers</a>
+
+</div>
+
+<h4 class="subsection">5.4.4 Hyperlink driver <code>nolinks</code></h4>
+
+<p><a name="index-nolinks-_0040r_007b_0028hyperlink-driver_0029_007d-917"></a><a name="index-g_t_0040code_007bnolinks_007d_002c-hyperlink-driver-918"></a><a name="index-driver-_0040code_007bnolinks_007d-919"></a><a name="index-hyperlink-driver-_0040code_007bnolinks_007d-920"></a><a name="index-omitting-hyperlinks-921"></a><a name="index-disabling-hyperlinks-922"></a><a name="index-hyperlinks_002c-disabling-923"></a><a name="index-destinations_002c-disabling-924"></a><a name="index-spacing_002c-preserving-with-hyperlinks-925"></a><a name="index-hyperlinks_002c-preserving-spacing-926"></a><a name="index-page_002dbreaking_002c-preserving-with-hyperlinks-927"></a><a name="index-hyperlinks_002c-preserving-page_002dbreaking-928"></a>Select this driver to suppress all hyperlinks in your document.
+
+ <p>Selecting this driver is quite different from not selecting any driver
+at all, or from selecting some driver and then turning hyperlinks off
+for the entire document with
+<a name="index-hloff-929"></a><code>\hloff</code> and
+<a name="index-hldestoff-930"></a><code>\hldestoff</code> (see <a href="#Turning-hyperlinks-on_002foff">Turning hyperlinks on/off</a>).
+
+ <p>The purpose of <code>\hldestoff</code> and <code>\hloff</code> is to mark (parts) of
+your document where hyperlinks should never appear. (Imagine you want
+to prevent a cross-referencing macro from generating a link at a certain
+spot in your document.)
+
+ <p>If instead you have prepared a document with hyperlinks and just want to
+compile a version without them, it is better to select the driver
+<code>nolinks</code>. This ensures that spacing and page-breaking are the
+same as what you were getting with hyperlinks enabled.
+
+ <p>The reason for this is that hyperlinks are produced by the
+<code>\special</code> primitives or low-level hyperlink commands. Each such
+command is placed inside a
+<a name="index-whatsits-made-by-hyperlinks-931"></a><dfn>whatsit</dfn> (an internal TeX object), which may introduce
+legitimate breakpoints at places where none would exist without the
+whatsits. The macros <code>\hldestoff</code> and <code>\hloff</code> disable the
+hyperlink macros completely, so that no whatsits are produced.
+
+ <p>In contrast, the <code>nolinks</code> driver does not completely disable
+hyperlink macros. Instead, it defines them to merely write to the log
+file (what gets written is unimportant). This also produces
+whatsits, thus imitating the whatsits from the hyperlink commands.
+(This trick was borrowed from the
+<a name="index-color_002esty-932"></a><a name="index-graphics-collection_002c-_0040LaTeX_007b_007d-933"></a><a name="index-g_t_0040LaTeX_007b_007d-graphics-collection-934"></a>LaTeX `color' package.)
+
+ <p>Another reason for using <code>nolinks</code> is that in horizontal mode
+<code>\hldest</code> places destinations inside boxes of zero width, height,
+and depth. When you say <code>\hldestoff</code>, <code>\hldest</code> will omit
+both destination definitions and these boxes. The missing boxes can
+again cause the typesetting to be inconsistent with that with
+destinations enabled. Here again, the <code>nolinks</code> driver helps by
+defining <code>\hldest</code> to produce the empty boxes.
+
+ <p>So, if you are planning to produce versions of your <acronym>PDF</acronym>
+document both with and without hyperlinks, here is the recommended way
+to enable the hyperlinks under pdfTeX:
+
+ <p><a name="index-enablehyperlinks-935"></a>
+<pre class="example"> \ifpdf
+ \enablehyperlinks
+ \else
+ \enablehyperlinks[nolinks]%
+ \fi
+</pre>
+ <div class="node">
+<p><hr>
+<a name="Setting-hyperlink-types-and-options"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Turning-hyperlinks-on_002foff">Turning hyperlinks on/off</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Hyperlink-drivers">Hyperlink drivers</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Hyperlinks">Hyperlinks</a>
+
+</div>
+
+<h3 class="section">5.5 Setting hyperlink types and options</h3>
+
+<p><a name="index-default-hyperlink-type-936"></a><a name="index-default-hyperlink-options-937"></a><a name="index-hyperlinks_002c-default-type-938"></a><a name="index-hyperlinks_002c-default-options-939"></a><a name="index-destinations_002c-default-type-940"></a><a name="index-destinations_002c-default-options-941"></a>You can define default types for links and destinations, which will be
+used when you do not specify a type in
+<a name="index-hlstart-942"></a><code>\hlstart</code> or
+<a name="index-hldest-943"></a><code>\hldest</code>. Similarly, you can define default values for the
+options; the default value for an option is used when you do not set the
+option in the argument to <code>\hlstart</code> or <code>\hldest</code>.
+
+ <p><a name="index-group-type_002c-hyperlink-944"></a><a name="index-group-options_002c-hyperlink-945"></a><a name="index-hyperlinks_002c-group-type-946"></a><a name="index-hyperlinks_002c-group-options-947"></a><a name="index-link_002c-group-type-948"></a><a name="index-link_002c-group-options-949"></a><a name="index-linkgroup-type-950"></a><a name="index-linkgroup-options-951"></a><a name="index-destinations_002c-group-type-952"></a><a name="index-destinations_002c-group-options-953"></a><a name="index-destgroup-type-954"></a><a name="index-destgroup-options-955"></a>The parameters for implicit links and destinations can be customized by
+setting the &ldquo;group&rdquo; types and options. When not set, the defaults are
+used.
+
+ <p>All these settings are local to the current (TeX) group, so if
+you want to set an option temporarily, you can do so inside a
+<code>\begingroup...\endgroup</code> block; when the group ends, the
+previous settings are restored.
+
+<ul class="menu">
+<li><a accesskey="1" href="#Setting-default-types-and-options">Setting default types and options</a>
+<li><a accesskey="2" href="#Setting-group-types">Setting group types</a>
+<li><a accesskey="3" href="#Setting-group-options">Setting group options</a>
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="Setting-default-types-and-options"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Setting-group-types">Setting group types</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a>
+
+</div>
+
+<h4 class="subsection">5.5.1 Setting default types and options</h4>
+
+<p><a name="index-hltype-956"></a><a name="index-hldesttype-957"></a>The default types for links and destinations can be set with the
+following commands:
+
+<pre class="example"> \hltype{<var>type</var>}
+ \hldesttype{<var>type</var>}
+</pre>
+ <p class="noindent">where <var>type</var> is one of the
+link/destination types supported by the selected hyperlink driver
+(see <a href="#Hyperlink-drivers">Hyperlink drivers</a>).
+
+ <p><a name="index-hlopts-958"></a><a name="index-hldestopts-959"></a>Default values for the options can be set with the following commands:
+
+<pre class="example"> \hlopts{<var>options</var>}
+ \hldestopts{<var>options</var>}
+</pre>
+ <p class="noindent">where <var>options</var> is a comma-separated list of option
+assignments in the format `<samp><var>option</var><span class="samp">=</span><var>value</var></samp>'. Again, what options
+are allowed depends on the selected hyperlink driver.
+
+ <p><a name="index-boxed-links_002c-avoiding-960"></a><a name="index-avoiding-boxed-links-961"></a><a name="index-color_002c-hyperlinks-962"></a><a name="index-colored-links-963"></a><a name="index-hyperlink-color-964"></a>Many people regard the default boxed links as not aesthetic and
+intruding on page layout. The reason why boxed links are the default is
+that the links are not colored until you load the LaTeX
+<a name="index-color_002esty-965"></a>`color' package (see <a href="#Loading-LaTeX-packages">Loading LaTeX packages</a>) or use other means to
+define the <code>\color</code> command; therefore, not producing any kind of
+link border may result in the links not being marked in any way.
+However, when the links are actually colored, there is no need to
+produce the link boxes anymore; to avoid the boxes, you can set the
+default border width to zero (if the driver you use supports the link
+option <code>bwidth</code>; see <a href="#Hyperlink-drivers">Hyperlink drivers</a>):
+
+<pre class="example"> \hlopts{bwidth=0}
+</pre>
+ <div class="node">
+<p><hr>
+<a name="Setting-group-types"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Setting-group-options">Setting group options</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Setting-default-types-and-options">Setting default types and options</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a>
+
+</div>
+
+<h4 class="subsection">5.5.2 Setting group types</h4>
+
+<p><a name="index-hltype-966"></a><a name="index-hldesttype-967"></a><a name="index-group-type_002c-hyperlink-968"></a><a name="index-hyperlinks_002c-group-type-969"></a><a name="index-link_002c-group-type-970"></a><a name="index-linkgroup-type-971"></a><a name="index-destinations_002c-group-type-972"></a><a name="index-destgroup-type-973"></a>When called with an optional argument, as in
+
+<pre class="example"> \hltype[<var>groups</var>]{<var>type</var>}
+ \hldesttype[<var>groups</var>]{<var>type</var>}
+</pre>
+ <p class="noindent">where <var>groups</var> is a comma-separated list of groups,
+<code>\hltype</code> and <code>\hldesttype</code> set the type for each group from
+<var>groups</var> to <var>type</var>. The default type is used for all groups
+with an empty type (this is the initial setting for all groups, except
+that the type for the `url' linkgroup is set to `<samp><span class="samp">url</span></samp>' by the
+drivers which support this link type).
+
+ <p><a name="index-group-_0060_0027-_0028empty_0029-974"></a><a name="index-default-hyperlink-type-975"></a><a name="index-default-hyperlink-options-976"></a><a name="index-hyperlinks_002c-default-type-977"></a><a name="index-hyperlinks_002c-default-options-978"></a><a name="index-destinations_002c-default-type-979"></a><a name="index-destinations_002c-default-options-980"></a>There are two special &ldquo;groups&rdquo; which can be used inside the
+<var>groups</var> list. An empty group sets the default type. This allows
+to set the default type and group types in one command, for example:
+
+<pre class="example"> \hltype[eq,]{<var>type</var>}
+</pre>
+ <p class="noindent">sets the link type for the `eq' linkgroup and the
+default link type to <var>type</var>.
+
+ <p><a name="index-group-_0060_002a_0027-981"></a><a name="index-groups_002c-specifying-all-982"></a><a name="index-all-groups_002c-specifying-983"></a>Another special group is a star (`<samp><span class="samp">*</span></samp>') group, which signifies all
+defined groups. For example, the command
+
+<pre class="example"> \hldesttype[*,]{<var>type</var>}
+</pre>
+ <p class="noindent">sets the destination type to <var>type</var> for each group,
+as well as the default destination type.
+
+<div class="node">
+<p><hr>
+<a name="Setting-group-options"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Setting-group-types">Setting group types</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a>
+
+</div>
+
+<h4 class="subsection">5.5.3 Setting group options</h4>
+
+<p><a name="index-group-options_002c-hyperlink-984"></a><a name="index-hyperlinks_002c-group-options-985"></a><a name="index-link_002c-group-options-986"></a><a name="index-linkgroup-options-987"></a><a name="index-destinations_002c-group-options-988"></a><a name="index-destgroup-options-989"></a>Option values for each group are stored as a list of option
+assignments. This list does not have to contain every supported
+option. Values for options missing from this list are taken from the
+default option values.
+
+ <p><a name="index-hlopts-990"></a><a name="index-hldestopts-991"></a>To manipulate the list of option values for the groups, you use the
+<code>\hlopts</code> and <code>\hldestopts</code> commands with an optional
+argument:
+
+<pre class="example"> \hlopts[<var>groups</var>]{<var>options</var>}
+ \hldestopts[<var>groups</var>]{<var>options</var>}
+ \hlopts![<var>groups</var>]{<var>options</var>}
+ \hldestopts![<var>groups</var>]{<var>options</var>}
+</pre>
+ <p class="noindent">where <var>groups</var> is a comma-separated list of groups and
+<var>options</var> is a comma-separated list of option assignments. The
+two special &ldquo;groups&rdquo;, the empty group and the star (`<samp><span class="samp">*</span></samp>')
+group, have the same meaning as for <code>\hltype</code> and
+<code>\hldesttype</code>.
+<a name="index-group_002c-preserving-option-list-992"></a><a name="index-hyperlink-group_002c-preserving-option-list-993"></a><a name="index-option-list_002c-preserving-for-group-994"></a>When used without the exclamation mark, <code>\hlopts</code> and
+<code>\hldestopts</code> preserve the current list of options for the groups,
+and only update the options listed in <var>options</var>. If you add the
+exclamation mark, the current list of options for each group in
+<var>groups</var> is discarded and the new list is set to <var>options</var>.
+
+ <p>The &ldquo;overriding&rdquo; nature of the `<samp><span class="samp">!</span></samp>' is appropriate when you give
+a complete specification of the options for a group, e.g., at the
+beginning of your document. On the other hand, when you want to
+adjust some option(s) and leave others intact, you should use the
+macros without the `<samp><span class="samp">!</span></samp>'.
+
+ <p><a name="index-raise-_0040r_007b_0028hyperlink-option_0029_007d-995"></a><a name="index-mathematics-displays_002c-hyperlinks-996"></a><a name="index-displayed-math-and-hyperlinks-997"></a><a name="index-large-operators-and-hyperlinks-998"></a><a name="index-hyperlinks_002c-large-operators-999"></a><a name="index-destinations_002c-large-operators-1000"></a><a name="index-raising-hyperlink-destinations-1001"></a>For example, with displayed mathematical formulas, you often need to
+adjust the `<samp><span class="samp">raise</span></samp>' option for the
+<a name="index-group-_0060eq_0027-1002"></a><a name="index-linkgroup-_0060eq_0027-1003"></a>`eq' destgroup, because the formulas often contain large parentheses and
+brackets. But when doing so, you want to leave the other settings
+unchanged. To achieve this, call <code>\hldestopts</code> without the
+`<samp><span class="samp">!</span></samp>', for example:
+
+<pre class="example"> $$\hldestopts[eq]{raise=2.5\normalbaselineskip}
+ ...
+ $$
+</pre>
+ <p class="noindent">The display commands (`<samp><span class="samp">$$</span></samp>') implicitly put the entire
+formula inside a (TeX) group (<code>\begingroup...\endgroup</code>), so
+you do not need to isolate the setting of the `<samp><span class="samp">raise</span></samp>' option&mdash;it
+will be restored after the closing `<samp><span class="samp">$$</span></samp>'.
+
+ <p><a name="index-option-list_002c-group-1004"></a><a name="index-group-option-list-1005"></a><a name="index-hyperlinks_002c-group-option-list-1006"></a>Initially, Eplain sets the option lists for almost all groups to empty,
+so that the groups fall back on the default values for all options. The
+one exception to this rule is the `eq' destgroup, whose initial option
+list contains one setting:
+
+<pre class="example"> raise=1.7\normalbaselineskip
+</pre>
+ <p class="noindent">This setting usually accommodates the large operators, which often
+appear in displayed math.
+
+<div class="node">
+<p><hr>
+<a name="Turning-hyperlinks-on%2foff"></a>
+<a name="Turning-hyperlinks-on_002foff"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Hyperlinks">Hyperlinks</a>
+
+</div>
+
+<h3 class="section">5.6 Turning hyperlinks on/off</h3>
+
+<p><a name="index-omitting-hyperlinks-1007"></a><a name="index-disabling-hyperlinks-1008"></a><a name="index-hyperlinks_002c-disabling-1009"></a><a name="index-destinations_002c-disabling-1010"></a>Links and/or destinations can be turned on or off globally by disabling
+the low-level commands, or for each group individually.
+
+ <p>All these settings are local to the current (TeX) group, so if you
+want to enable or disable links/destinations temporarily, you can do so
+inside a <code>\begingroup...\endgroup</code> block; when the group ends, the
+previous settings are restored.
+
+<ul class="menu">
+<li><a accesskey="1" href="#Turning-low_002dlevel-commands-on_002foff">Turning low-level commands on/off</a>
+<li><a accesskey="2" href="#Turning-hyperlinks-on_002foff-for-a-group">Turning hyperlinks on/off for a group</a>
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="Turning-low-level-commands-on%2foff"></a>
+<a name="Turning-low_002dlevel-commands-on_002foff"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Turning-hyperlinks-on_002foff-for-a-group">Turning hyperlinks on/off for a group</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Turning-hyperlinks-on_002foff">Turning hyperlinks on/off</a>
+
+</div>
+
+<h4 class="subsection">5.6.1 Turning low-level commands on/off</h4>
+
+<p><a name="index-hldeston-1011"></a><a name="index-hldestoff-1012"></a><a name="index-hlon-1013"></a><a name="index-hloff-1014"></a>The low-level commands <code>\hlstart</code>, <code>\hlend</code> and
+<code>\hldest</code> can be turned on/off with the following commands:
+
+<pre class="example"> \hldeston
+ \hldestoff
+ \hlon
+ \hloff
+</pre>
+ <p class="noindent">See <a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a>, for the implications of using
+these commands to disable hyperlinks for the entire document.
+
+<div class="node">
+<p><hr>
+<a name="Turning-hyperlinks-on%2foff-for-a-group"></a>
+<a name="Turning-hyperlinks-on_002foff-for-a-group"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Turning-low_002dlevel-commands-on_002foff">Turning low-level commands on/off</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Turning-hyperlinks-on_002foff">Turning hyperlinks on/off</a>
+
+</div>
+
+<h4 class="subsection">5.6.2 Turning hyperlinks on/off for a group</h4>
+
+<p><a name="index-group_002c-disabling-hyperlinks-1015"></a><a name="index-hyperlink-group_002c-disabling-hyperlinks-1016"></a>If you want to disable links/destinations produced by certain groups,
+you can give a list of the groups as an optional argument to these
+commands:
+
+<pre class="example"> \hldeston[<var>groups</var>]
+ \hldestoff[<var>groups</var>]
+ \hlon[<var>groups</var>]
+ \hloff[<var>groups</var>]
+</pre>
+ <p class="noindent">where <var>groups</var> is the list of linkgroups/destgroups. This
+list can contain two special groups. The empty group switches the
+low-level commands (see <a href="#Turning-low_002dlevel-commands-on_002foff">Turning low-level commands on/off</a>), and the
+star (`<samp><span class="samp">*</span></samp>') group operates on all defined groups.
+
+ <p>Note that turning off the low-level commands disables all hyperlinks
+globally, including groups which have them enabled. Turning off certain
+linkgroups/destgroups records the fact that the macros in the group
+should not produce links/destinations. To illustrate the distinction,
+assume that all links are on; after the following sequence of commands:
+
+<pre class="example"> \hloff
+ \hloff[eq]
+ \hlon
+</pre>
+ <p class="noindent">all links are on except for the `eq' linkgroup.
+
+<!-- arrow.texi - documentation for Eplain's commutative diagrams. -->
+<!-- Copyright (C) 1991, 1992 Steven Smith. -->
+<!-- This is part of the Eplain manual. -->
+<!-- This file is free software; you can redistribute it and/or modify -->
+<!-- it under the terms of the GNU General Public License as published by -->
+<!-- the Free Software Foundation; either version 2, or (at your option) -->
+<!-- any later version. -->
+<!-- This file 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 General Public License for more details. -->
+<!-- You should have received a copy of the GNU General Public License -->
+<!-- along with this file; if not, write to the Free Software -->
+<!-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -->
+<!-- 02110-1301, USA. -->
+<!-- \input texinfo -->
+<!-- setfilename arrow.info -->
+<!-- settitle Arrow Theoretic Diagrams -->
+<!-- Input arrow macros without altering texinfo's \catcodes. -->
+<!-- Use the arrow macros in an `@iftex @tex ... @end iftex' environment. -->
+<div class="node">
+<p><hr>
+<a name="Arrow-theoretic-diagrams"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Programming-definitions">Programming definitions</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Hyperlinks">Hyperlinks</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
+
+</div>
+
+<h2 class="chapter">6 Arrow theoretic diagrams</h2>
+
+<p>This chapter describes definitions for producing commutative diagrams.
+
+ <p>Steven Smith wrote this documentation (and the macros).
+
+<ul class="menu">
+<li><a accesskey="1" href="#Slanted-lines-and-vectors">Slanted lines and vectors</a>
+<li><a accesskey="2" href="#Commutative-diagrams">Commutative diagrams</a>
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="Slanted-lines-and-vectors"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Commutative-diagrams">Commutative diagrams</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Arrow-theoretic-diagrams">Arrow theoretic diagrams</a>
+
+</div>
+
+<h3 class="section">6.1 Slanted lines and vectors</h3>
+
+<p>The macros <code>\drawline</code>
+<a name="index-drawline-1017"></a>and <code>\drawvector</code>
+<a name="index-drawvector-1018"></a>provide the capability found in LaTeX's
+<a name="index-g_t_0040LaTeX_007b_007d-1019"></a><a name="index-picture-mode-1020"></a>picture mode to draw slanted lines and vectors of certain directions.
+Both of these macros take three arguments: two integer arguments to
+specify the direction of the line or vector, and one argument to specify
+its length. For example, `<samp><span class="samp">\drawvector(-4,1){60pt}</span></samp>' produces the
+vector
+<a name="index-lines-1021"></a><a name="index-vectors-1022"></a>which lies in the 2d quadrant, has a slope of minus 1/4, and a width of
+60 pt.
+
+ <p>Note that if an <code>\hbox</code> is placed around <code>\drawline</code> or
+<code>\drawvector</code>, then the width of the <code>\hbox</code> will be the
+positive dimension specified in the third argument, except when a
+vertical line or vector is specified, e.g.,
+<code>\drawline(0,1){1in}</code>, which has zero width. If the specified
+direction lies in the 1st or 2d quadrant (e.g., <code>(1,1)</code> or
+<code>(-2,3)</code>), then the <code>\hbox</code> will have positive height and zero
+depth. Conversely, if the specified direction lies in the 3d or 4th
+quadrant (e.g., <code>(-1,-1)</code> or <code>(2,-3)</code>), then the <code>\hbox</code>
+will have positive depth and zero height.
+
+ <p>There are a finite number of directions that can be specified. For
+<code>\drawline</code>, the absolute value of each integer defining the
+direction must be less than or equal to six, i.e., <code>(7,-1)</code> is
+incorrect, but <code>(6,-1)</code> is acceptable. For <code>\drawvector</code>, the
+absolute value of each integer must be less than or equal to four.
+Furthermore, the two integers cannot have common divisors; therefore, if
+a line with slope 2 is desired, say <code>(2,1)</code> instead of
+<code>(4,2)</code>. Also, specify <code>(1,0)</code> instead of, say, <code>(3,0)</code>
+for horizontal lines and likewise for vertical lines.
+
+ <p>Finally, these macros depend upon the LaTeX font <code>line10</code>. If
+your site doesn't have this font, ask your system administrator to get
+it. Future enhancements will include macros to draw dotted lines and
+dotted vectors of various directions.
+
+<div class="node">
+<p><hr>
+<a name="Commutative-diagrams"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Slanted-lines-and-vectors">Slanted lines and vectors</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Arrow-theoretic-diagrams">Arrow theoretic diagrams</a>
+
+</div>
+
+<h3 class="section">6.2 Commutative diagrams</h3>
+
+<p><a name="index-commutative-diagrams-1023"></a>
+The primitive commands <code>\drawline</code> and <code>\drawvector</code> can be
+used to typeset arrow theoretic diagrams. This section describes (1)
+macros to facilitate typesetting arrows and morphisms, and (2) macros to
+facilitate the construction of commutative diagrams. All macros
+described in this section must be used in math mode.
+
+<ul class="menu">
+<li><a accesskey="1" href="#Arrows-and-morphisms">Arrows and morphisms</a>
+<li><a accesskey="2" href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a>
+<li><a accesskey="3" href="#Commutative-diagram-parameters">Commutative diagram parameters</a>
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="Arrows-and-morphisms"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Commutative-diagrams">Commutative diagrams</a>
+
+</div>
+
+<h4 class="subsection">6.2.1 Arrows and morphisms</h4>
+
+<p><a name="index-arrows-1024"></a><a name="index-morphisms-1025"></a>
+The macros <code>\mapright</code> and <code>\mapleft</code> produce right and left
+<a name="index-mapright-1026"></a><a name="index-mapleft-1027"></a>pointing arrows, respectively. Use superscript (<code>^</code>) to place a
+morphism above the arrow, e.g., `<samp><span class="samp">\mapright^\alpha</span></samp>'; use subscript
+(<code>_</code>) to place a morphism below the arrow, e.g.,
+`<samp><span class="samp">\mapright_{\tilde l}</span></samp>'. Superscripts and subscripts may be used
+simulataneously, e.g., `<samp><span class="samp">\mapright^\pi_{\rm epimor.}</span></samp>'.
+
+ <p>Similarly, the macros <code>\mapup</code> and <code>\mapdown</code> produce up and
+<a name="index-mapup-1028"></a><a name="index-mapdown-1029"></a>down pointing arrows, respectively. Use <code>\rt</code>
+<a name="index-rt-1030"></a>to place a morphism to the right of the arrow, e.g., `<samp><span class="samp">\mapup\rt{\rm
+id}</span></samp>'; use <code>\lft</code>
+<a name="index-lft-1031"></a>to place a morphism to the left of the arrow, e.g., `<samp><span class="samp">\mapup\lft\omega</span></samp>'.
+<code>\lft</code> and <code>\rt</code> may be used simultaneously, e.g.,
+`<samp><span class="samp">\mapdown\lft\pi\rt{\rm monomor.}</span></samp>'.
+
+ <p>Slanted arrows are produced by the macro <code>\arrow</code>, which takes
+<a name="index-arrow-1032"></a>a direction argument (e.g., `<samp><span class="samp">\arrow(3,-4)</span></samp>'). Use <code>\rt</code> and
+<code>\lft</code> to place morphisms to the right and left, respectively, of
+the arrow. A slanted line (no arrowhead) is produced with the macro
+<code>\sline</code>,
+<a name="index-sline-1033"></a>whose syntax is identical to that of <code>\arrow</code>.
+
+ <p>The length of these macros is predefined by the default TeX
+dimensions <code>\harrowlength</code>,
+<a name="index-harrowlength-1034"></a>for horizontal arrows (or lines),
+<code>\varrowlength</code>,
+<a name="index-varrowlength-1035"></a>for vertical arrows (or lines), and
+<code>\sarrowlength</code>,
+<a name="index-sarrowlength-1036"></a>for slanted arrows (or lines). To change any of these dimensions, say,
+e.g., `<samp><span class="samp">\harrowlength=40pt</span></samp>'. As with all other TeX dimensions,
+the change may be as global or as local as you like. Furthermore, the
+placement of morphisms on the arrows is controlled by the dimensions
+<code>\hmorphposn</code>,
+<a name="index-hmorphposn-1037"></a><code>\vmorphposn</code>,
+<a name="index-vmorphposn-1038"></a>and <code>\morphdist</code>.
+<a name="index-morphdist-1039"></a>The first two dimensions control the horizontal and vertical position of
+the morphism from its default position; the latter dimension controls
+the distance of the morphism from the arrow. If you have more than one
+morphism per arrow (i.e., a <code>^</code>/<code>_</code> or <code>\lft</code>/<code>\rt</code>
+construction), use the parameters
+<code>\hmorphposnup</code>,
+<a name="index-hmorphposnup-1040"></a><code>\hmorphposndn</code>,
+<a name="index-hmorphposndn-1041"></a><code>\vmorphposnup</code>,
+<a name="index-vmorphposnup-1042"></a><code>\vmorphposndn</code>,
+<a name="index-vmorphposndn-1043"></a><code>\hmorphposnrt</code>,
+<a name="index-hmorphposnrt-1044"></a><code>\hmorphposnlft</code>,
+<a name="index-hmorphposnlft-1045"></a><code>\vmorphposnrt</code>,
+<a name="index-vmorphposnrt-1046"></a>and <code>\vmorphposnlft</code>.
+<a name="index-vmorphposnlft-1047"></a>The default values of all these dimensions are provided in the section
+on parameters that follows below.
+
+ <p>There is a family of macros to produce horizontal lines, arrows, and
+adjoint arrows. The following macros produce horizontal maps and have
+the same syntax as <code>\mapright</code>:
+
+ <dl>
+<dt><code>\mapright</code><dd><a name="index-mapright-1048"></a><code>$X\mapright Y$</code>
+
+ <br><dt><code>\mapleft</code><dd><a name="index-mapleft-1049"></a><code>$X\mapleft Y$</code>
+
+ <br><dt><code>\hline</code><dd><a name="index-hline-1050"></a><code>$X\hline Y$</code>
+
+ <br><dt><code>\bimapright</code><dd><a name="index-bimapright-1051"></a><code>$X\bimapright Y$</code>
+
+ <br><dt><code>\bimapleft</code><dd><a name="index-bimapleft-1052"></a><code>$X\bimapleft Y$</code>
+
+ <br><dt><code>\adjmapright</code><dd><a name="index-adjmapright-1053"></a><code>$X\adjmapright Y$</code>
+
+ <br><dt><code>\adjmapleft</code><dd><a name="index-adjmapleft-1054"></a><code>$X\adjmapleft Y$</code>
+
+ <br><dt><code>\bihline</code><dd><a name="index-bihline-1055"></a><code>$X\bihline Y$</code>
+</dl>
+
+ <p>There is also a family of macros to produce vertical lines, arrows, and
+adjoint arrows. The following macros produce vertical maps and have
+the same syntax as <code>\mapdown</code>:
+
+ <dl>
+<dt><code>\mapdown</code><dd><a name="index-mapdown-1056"></a>(a down arrow)
+
+ <br><dt><code>\mapup</code><dd><a name="index-mapup-1057"></a>(an up arrow)
+
+ <br><dt><code>\vline</code><dd><a name="index-vline-1058"></a>(vertical line)
+
+ <br><dt><code>\bimapdown</code><dd><a name="index-bimapdown-1059"></a>(two down arrows)
+
+ <br><dt><code>\bimapup</code><dd><a name="index-bimapup-1060"></a>(two up arrows)
+
+ <br><dt><code>\adjmapdown</code><dd><a name="index-adjmapdown-1061"></a>(two adjoint arrows; down then up)
+
+ <br><dt><code>\adjmapup</code><dd><a name="index-adjmapup-1062"></a>(two adjoint arrows; up then down)
+
+ <br><dt><code>\bivline</code><dd><a name="index-bivline-1063"></a>(two vertical lines)
+</dl>
+
+ <p>Finally, there is a family of macros to produce slanted lines, arrows,
+and adjoint arrows. The following macros produce slanted maps and have
+the same syntax as <code>\arrow</code>:
+
+ <dl>
+<dt><code>\arrow</code><dd><a name="index-arrow-1064"></a>(a slanted arrow)
+
+ <br><dt><code>\sline</code><dd><a name="index-sline-1065"></a>(a slanted line)
+
+ <br><dt><code>\biarrow</code><dd><a name="index-biarrow-1066"></a>(two straight arrows)
+
+ <br><dt><code>\adjarrow</code><dd><a name="index-adjarrow-1067"></a>(two adjoint arrows)
+
+ <br><dt><code>\bisline</code><dd><a name="index-bisline-1068"></a>(two straight lines)
+
+ </dl>
+
+ <p>The width between double arrows is controlled by the parameter
+<code>\channelwidth</code>.
+<a name="index-channelwidth-1069"></a>The parameters <code>\hchannel</code> and <code>\vchannel</code>, if nonzero,
+override <code>\channelwidth</code> by controlling the horizontal and vertical
+shifting from the first arrow to the second.
+
+ <p>There are no adornments on these arrows to distinguish inclusions from
+epimorphisms from monomorphisms. Many texts, such as Lang's book
+<cite>Algebra</cite>, use as a tasteful alternative the symbol `inc' (in roman) next
+to an arrow to denote inclusion.
+<a name="index-Lang_002c-Serge-1070"></a>
+Future enhancements will include a mechanism to draw curved arrows
+found in, e.g., the Snake Lemma, by employing a version of the
+<code>\path</code> macros of Appendix D of <cite>The TeXbook</cite>.
+<a name="index-Snake-Lemma-1071"></a>
+
+<div class="node">
+<p><hr>
+<a name="Construction-of-commutative-diagrams"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Commutative-diagram-parameters">Commutative diagram parameters</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Arrows-and-morphisms">Arrows and morphisms</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Commutative-diagrams">Commutative diagrams</a>
+
+</div>
+
+<h4 class="subsection">6.2.2 Construction of commutative diagrams</h4>
+
+<p>There are two approaches to the construction of commutative diagrams
+described here. The first approach, and the simplest, treats
+commutative diagrams like fancy matrices, as Knuth does in Exercise
+18.46 of <cite>The TeXbook</cite>. This case is covered by the macro
+<code>\commdiag</code>,
+<a name="index-commdiag-1072"></a>which is an altered version of the Plain TeX macro <code>\matrix</code>.
+<a name="index-matrix-1073"></a>An example suffices to demonstrate this macro. The following
+commutative diagram (illustrating the covering homotopy property; Bott
+and Tu, <cite>Differential Forms in Algebraic Topology</cite>)
+<a name="index-Bott_002c-Raoul-1074"></a><a name="index-Tu_002c-Loring-W_002e-1075"></a><a name="index-covering-homotopy-property-1076"></a>is produced with the code
+
+<pre class="example"> $$\commdiag{Y&amp;\mapright^f&amp;E\cr \mapdown&amp;\arrow(3,2)\lft{f_t}&amp;\mapdown\cr
+ Y\times I&amp;\mapright^{\bar f_t}&amp;X}$$
+</pre>
+ <p>Of course, the parameters may be changed to produce a different effect.
+The following commutative diagram (illustrating the universal mapping
+property; Warner, <cite>Foundations of Differentiable Manifolds and Lie
+Groups</cite>)
+<a name="index-Warner_002c-Frank-W_002e-1077"></a><a name="index-universal-mapping-property-1078"></a>is produced with the code
+
+<pre class="example"> $$\varrowlength=20pt
+ \commdiag{V\otimes W\cr \mapup\lft\phi&amp;\arrow(3,-1)\rt{\tilde l}\cr
+ V\times W&amp;\mapright^l&amp;U\cr}$$
+</pre>
+ <p>A diagram containing isosceles triangles is achieved by placing the apex
+of the triangle in the center column, as shown in the example
+(illustrating all constant minimal realizations of a linear system;
+Brockett, <cite>Finite Dimensional Linear Systems</cite>)
+<a name="index-Brockett_002c-Roger-W_002e-1079"></a><a name="index-minimal-realizations-1080"></a><a name="index-linear-systems-theory-1081"></a>which is produced with the code
+
+<pre class="example"> $$\sarrowlength=.42\harrowlength
+ \commdiag{&amp;R^m\cr &amp;\arrow(-1,-1)\lft{\bf B}\quad \arrow(1,-1)\rt{\bf G}\cr
+ R^n&amp;\mapright^{\bf P}&amp;R^n\cr
+ \mapdown\lft{e^{{\bf A}t}}&amp;&amp;\mapdown\rt{e^{{\bf F}t}}\cr
+ R^n&amp;\mapright^{\bf P}&amp;R^n\cr
+ &amp;\arrow(1,-1)\lft{\bf C}\quad \arrow(-1,-1)\rt{\bf H}\cr
+ &amp;R^q\cr}$$
+</pre>
+ <p>Other commutative diagram examples appear in the file
+<code>commdiags.tex</code>, which is distributed with this package.
+
+ <p>In these examples the arrow lengths and line slopes were carefully
+chosen to blend with each other. In the first example, the default
+settings for the arrow lengths are used, but a direction for the arrow
+must be chosen. The ratio of the default horizontal and vertical arrow
+lengths is approximately the golden mean
+<a name="index-golden-mean-1082"></a><a name="index-golden-mean-1083"></a>the arrow direction closest to this mean is <code>(3,2)</code>. In the second
+example, a slope of
+is desired and the default horizontal arrow length is 60 pt; therefore,
+choose a vertical arrow length of 20 pt. You may affect the interline
+glue settings of <code>\commdiag</code> by redefining the macro
+<code>\commdiagbaselines</code>.
+<a name="index-commdiagbaselines-1084"></a>(cf. Exercise 18.46 of <cite>The TeXbook</cite> and the section on
+parameters below.)
+
+ <p>The width, height, and depth of all morphisms are hidden so that the
+morphisms' size do not affect arrow positions. This can cause a large
+morphism at the top or bottom of a diagram to impinge upon the text
+surrounding the diagram. To overcome this problem, use TeX's
+<code>\noalign</code> primitive to insert a <code>\vskip</code> immediately above or
+below the offending line, e.g.,
+`<samp><span class="samp">$$\commdiag{\noalign{\vskip6pt}X&amp;\mapright^\int&amp;Y\cr ...}</span></samp>'.
+
+ <p>The macro <code>\commdiag</code> is too simple to be used for more complicated
+diagrams, which may have intersecting or overlapping arrows. A second
+approach, borrowed from Francis Borceux's <cite>Diagram</cite> macros for
+LaTeX, treats the commutative diagram like a grid of identically
+shaped boxes. To compose the commutative diagram, first draw an equally
+spaced grid, e.g.,
+<a name="index-grid-1085"></a><a name="index-Borceux_002c-Francis-1086"></a><a name="index-Diagram_002c-macros-for-LaTeX-1087"></a>on a piece of scratch paper. Then draw each element (vertices and
+arrows) of the commutative diagram on this grid, centered at each
+grid point. Finally, use the macro <code>\gridcommdiag</code>
+<a name="index-gridcommdiag-1088"></a>to implement your design as a TeX alignment. For example, the cubic
+diagram
+<a name="index-cube-1089"></a>that appears in Francis Borceux's documentation can be implemented on
+a 7 by 7 grid, and is achieved with the code
+
+<pre class="example"> $$\harrowlength=48pt \varrowlength=48pt \sarrowlength=20pt
+ \def\cross#1#2{\setbox0=\hbox{$#1$}%
+ \hbox to\wd0{\hss\hbox{$#2$}\hss}\llap{\unhbox0}}
+ \gridcommdiag{&amp;&amp;B&amp;&amp;\mapright^b&amp;&amp;D\cr
+ &amp;\arrow(1,1)\lft a&amp;&amp;&amp;&amp;\arrow(1,1)\lft d\cr
+ A&amp;&amp;\cross{\hmorphposn=12pt\mapright^c}{\vmorphposn=-12pt\mapdown\lft f}
+ &amp;&amp;C&amp;&amp;\mapdown\rt h\cr\cr
+ \mapdown\lft e&amp;&amp;F&amp;&amp;\cross{\hmorphposn=-12pt\mapright_j}
+ {\vmorphposn=12pt\mapdown\rt g}&amp;&amp;H\cr
+ &amp;\arrow(1,1)\lft i&amp;&amp;&amp;&amp;\arrow(1,1)\rt l\cr
+ E&amp;&amp;\mapright_k&amp;&amp;G\cr}$$
+</pre>
+ <p>The dimensions <code>\hgrid</code> and <code>\vgrid</code>
+<a name="index-hgrid-1090"></a><a name="index-vgrid-1091"></a>control the horizontal and vertical spacing of the grid used by
+<code>\gridcommdiag</code>. The default setting for both of these dimensions
+is 15 pt. Note that in the example of the cube the arrow lengths must
+be adjusted so that the arrows overlap into neighboring boxes by the
+desired amount. Hence, the <code>\gridcommdiag</code> method, albeit more
+powerful, is less automatic than the simpler <code>\commdiag</code> method.
+Furthermore, the ad hoc macro <code>\cross</code> is introduced to allow the
+effect of overlapping arrows. Finally, note that the positions of four
+of the morphisms are adjusted by setting <code>\hmorphposn</code> and
+<code>\vmorphposn</code>.
+
+ <p>One is not restricted to a square grid. For example, the proof of
+Zassenhaus's Butterfly Lemma can be illustrated by the diagram (appearing
+in Lang's book <cite>Algebra</cite>)
+<a name="index-Zassenhaus_002c-Hans-1092"></a><a name="index-Lang_002c-Serge-1093"></a><a name="index-Butterfly-Lemma-1094"></a>This diagram may be implemented on a 9 by 12 grid with an aspect ratio
+of 1/2, and is set with the code
+
+<pre class="example"> $$\hgrid=16pt \vgrid=8pt \sarrowlength=32pt
+ \def\cross#1#2{\setbox0=\hbox{$#1$}%
+ \hbox to\wd0{\hss\hbox{$#2$}\hss}\llap{\unhbox0}}
+ \def\l#1{\llap{$#1$\hskip.5em}}
+ \def\r#1{\rlap{\hskip.5em$#1$}}
+ \gridcommdiag{&amp;&amp;U&amp;&amp;&amp;&amp;V\cr &amp;&amp;\bullet&amp;&amp;&amp;&amp;\bullet\cr
+ &amp;&amp;\sarrowlength=16pt\sline(0,1)&amp;&amp;&amp;&amp;\sarrowlength=16pt\sline(0,1)\cr
+ &amp;&amp;\l{u(U\cap V)}\bullet&amp;&amp;&amp;&amp;\bullet\r{(U\cap V)v}\cr
+ &amp;&amp;&amp;\sline(2,-1)&amp;&amp;\sline(2,1)\cr
+ &amp;&amp;\cross{=}{\sline(0,1)}&amp;&amp;\bullet&amp;&amp;\cross{=}{\sline(0,1)}\cr\cr
+ &amp;&amp;\l{^{\textstyle u(U\cap v)}}\bullet&amp;&amp;\cross{=}{\sline(0,1)}&amp;&amp;
+ \bullet\r{^{\textstyle(u\cap V)v}}\cr
+ &amp;\sline(2,1)&amp;&amp;\sline(2,-1)&amp;&amp;\sline(2,1)&amp;&amp;\sline(2,-1)\cr
+ \l{u}\bullet&amp;&amp;&amp;&amp;\bullet&amp;&amp;&amp;&amp;\bullet\r{v}\cr
+ &amp;\sline(2,-1)&amp;&amp;\sline(2,1)&amp;&amp;\sline(2,-1)&amp;&amp;\sline(2,1)\cr
+ &amp;&amp;\bullet&amp;&amp;&amp;&amp;\bullet\cr &amp;&amp;u\cap V&amp;&amp;&amp;&amp;U\cap v\cr}$$
+</pre>
+ <p>Again, the construction of this diagram requires careful choices for the
+arrow lengths and is facilitated by the introduction of the ad hoc
+macros <code>\cross</code>, <code>\r</code>, and <code>\l</code>. Note also that
+superscripts were used to adjust the position of the vertices
+Many diagrams may be typeset with the predefined macros that appear
+here; however, ingenuity is often required to handle special cases.
+
+<div class="node">
+<p><hr>
+<a name="Commutative-diagram-parameters"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Commutative-diagrams">Commutative diagrams</a>
+
+</div>
+
+<h4 class="subsection">6.2.3 Commutative diagram parameters</h4>
+
+<p>The following is a list describing the parameters used in the
+commutative diagram macros. These dimensions may be changed globally or
+locally.
+
+ <dl>
+<dt><code>\harrowlength</code><dd><a name="index-harrowlength-1095"></a>(Default: 60 pt) The length of right or left arrows.
+
+ <br><dt><code>\varrowlength</code><dd><a name="index-varrowlength-1096"></a>(Default: 0.618<code>\harrowlength</code>) The length of up or down
+arrows.
+
+ <br><dt><code>\sarrowlength</code><dd><a name="index-sarrowlength-1097"></a>(Default: 60 pt) The horizontal length of slanted arrows.
+
+ <br><dt><code>\hmorphposn</code><dd><a name="index-hmorphposn-1098"></a>(Default: 0 pt) The horizontal position of the morphism with
+respect to its default position. There are also the dimensions
+<code>\hmorphposnup</code>,
+<a name="index-hmorphposnup-1099"></a><code>\hmorphposndn</code>,
+<a name="index-hmorphposndn-1100"></a><code>\hmorphposnrt</code>,
+<a name="index-hmorphposnrt-1101"></a>and <code>\hmorphposnlft</code>
+<a name="index-hmorphposnlft-1102"></a>for <code>^</code>/<code>_</code> or <code>\lft</code>/<code>\rt</code> constructions.
+
+ <br><dt><code>\vmorphposn</code><dd><a name="index-vmorphposn-1103"></a>(Default: 0 pt) The vertical position of the morphism with
+respect to its default position. There are also the dimensions
+<code>\vmorphposnup</code>,
+<a name="index-vmorphposnup-1104"></a><code>\vmorphposndn</code>,
+<a name="index-vmorphposndn-1105"></a><code>\vmorphposnrt</code>,
+<a name="index-vmorphposnrt-1106"></a>and <code>\vmorphposnlft</code>
+<a name="index-vmorphposnlft-1107"></a>for <code>^</code>/<code>_</code> or <code>\lft</code>/<code>\rt</code> constructions.
+
+ <br><dt><code>\morphdist</code><dd><a name="index-morphdist-1108"></a>(Default: 4 pt) The distance of morphisms from slanted lines
+or arrows.
+
+ <br><dt><code>\channelwidth</code><dd><a name="index-channelwidth-1109"></a>(Default: 3 pt) The distance between double lines or arrows.
+
+ <br><dt><code>\hchannel, \vchannel</code><dd><a name="index-hchannel-1110"></a><a name="index-vchannel-1111"></a>(Defaults: 0 pt) Overrides <code>\channelwidth</code>. The
+horizontal and vertical shifts between double lines or arrows.
+
+ <br><dt><code>\commdiagbaselines</code><dd><a name="index-commdiagbaselines-1112"></a>(Default: <code>\baselineskip=15pt
+\lineskip=3pt
+\lineskiplimit=3pt </code>)
+The parameters used by <code>\commdiag</code> for setting interline glue.
+
+ <br><dt><code>\hgrid</code><dd><a name="index-hgrid-1113"></a>(Default: 15 pt) The horizontal spacing of the grid used by
+<code>\gridcommdiag</code>.
+
+ <br><dt><code>\vgrid</code><dd><a name="index-vgrid-1114"></a>(Default: 15 pt) The vertical spacing of the grid used by
+<code>\gridcommdiag</code>.
+
+ </dl>
+
+<!-- bye -->
+<!-- This is part of the Eplain manual. Public domain. -->
+<div class="node">
+<p><hr>
+<a name="Programming-definitions"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Demo-files">Demo files</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Arrow-theoretic-diagrams">Arrow theoretic diagrams</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
+
+</div>
+
+<h2 class="chapter">7 Programming definitions</h2>
+
+<p>The definitions in this section are only likely to be useful when you
+are writing nontrivial macros, not when writing a document.
+
+<ul class="menu">
+<li><a accesskey="1" href="#Category-codes">Category codes</a>: Changing category codes.
+<li><a accesskey="2" href="#Allocation-macros">Allocation macros</a>: Non-outer versions of \newcount et al.
+<li><a accesskey="3" href="#Iteration">Iteration</a>: Doing `for' and `while' loops in TeX.
+<li><a accesskey="4" href="#Macro-arguments">Macro arguments</a>: Reading and ignoring them.
+<li><a accesskey="5" href="#Converting-to-characters">Converting to characters</a>: Normalizing control sequences and spaces.
+<li><a accesskey="6" href="#Expansion">Expansion</a>: Controlling expansion.
+<li><a accesskey="7" href="#Obeying-spaces">Obeying spaces</a>: Making whitespace count anywhere.
+<li><a accesskey="8" href="#Writing-out-numbers">Writing out numbers</a>: Making `1' into `one'.
+<li><a accesskey="9" href="#Mode_002dspecific-penalties">Mode-specific penalties</a>
+<li><a href="#Auxiliary-files">Auxiliary files</a>: Testing for their existence.
+<li><a href="#User_002ddefined-environments">User-defined environments</a>: User-defined environments.
+<li><a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a>
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="Category-codes"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Allocation-macros">Allocation macros</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Programming-definitions">Programming definitions</a>
+
+</div>
+
+<h3 class="section">7.1 Category codes</h3>
+
+<p><a name="index-category-codes-1115"></a>
+Plain TeX defines <code>\active</code> (as the number 13) for use in
+changing category codes. Although the author of <cite>The TeXbook</cite>
+<a name="index-Knuth_002c-Donald-Ervin-1116"></a>has &ldquo;intentionally kept the category codes numeric&rdquo;, two other
+categories are commonly used: letters (category code 11) and others
+(12). Therefore, Eplain defines <code>\letter</code> and
+<code>\other</code>.
+<a name="index-letter-1117"></a><a name="index-other-1118"></a>
+Sometimes it is cleaner to make a character active without actually
+<a name="index-active-characters-1119"></a>writing a <code>\catcode</code> command. The <code>\makeactive</code> command takes
+<a name="index-catcode-1120"></a><a name="index-makeactive-1121"></a>a character as an argument to make active (and ignores following
+spaces). For example, here are two commands which both make <kbd>\</kbd>
+active:
+<a name="index-backslash-character-1122"></a>
+<pre class="example"> \makeactive\\ \makeactive92
+</pre>
+ <p><a name="index-user_002dinaccessible-macros-1123"></a><a name="index-inaccessible-macros-1124"></a>Sometimes you might want to temporarily change the category code of
+the `@' character to <code>\letter</code>, so that you can use or define
+macros which are normally inaccessible to the user. For such
+situations, Eplain provides the <code>\makeatletter</code>
+<a name="index-makeatletter-1125"></a>command. It sets the category code of `@' to <code>\letter</code> (11) and
+defines
+<code>\resetatcatcode</code>
+<a name="index-resetatcatcode-1126"></a>to restore the category code to whatever it was before the call to
+<code>\makeatletter</code>. For example:
+
+<pre class="example"> \makeatletter
+ \def\@hidden@macro{This macro cannot normally be
+ called / redefined by the user}
+ \resetatcatcode
+</pre>
+ <p class="noindent">There is also <code>\makeatother</code>
+<a name="index-makeatother-1127"></a>which works similarly but sets the category code of `@' to
+<code>\other</code> (12).
+
+ <p>Usually, when you give a definition to an active character, you have
+to do so inside a group where you temporarily make the character active,
+and then give it a global definition (cf. the definition of
+<code>\obeyspaces</code> in <cite>The TeXbook</cite>).
+<a name="index-definitions_002c-global-1128"></a>This is inconvenient if you are writing a long macro, or if the
+character already has a global definition you do not wish to transcend.
+Eplain provides <code>\letreturn</code>, which defines the usual end-of-line
+<a name="index-letreturn-1129"></a><a name="index-return-character-1130"></a>character to be the argument. For example:
+
+<pre class="example"> \def\mymacro{... \letreturn\myreturn ... }
+ \mymacro hello
+ there
+</pre>
+ <p class="noindent">The end-of-line between `<samp><span class="samp">hello</span></samp>' and `<samp><span class="samp">there</span></samp>' causes
+<code>\myreturn</code> to be expanded.
+
+ <p><cite>The TeXbook</cite> describes <code>\uncatcodespecials</code>,
+<a name="index-uncatcodespecials-1131"></a>which makes all characters which are normally &ldquo;special&rdquo; into &ldquo;other&rdquo;
+characters, but the definition never made it into plain TeX.
+Eplain therefore defines it.
+
+ <p>Finally, <code>\percentchar</code>
+<a name="index-percentchar-1132"></a>expands into a literal `%' character. This is useful when you
+<code>\write</code> TeX output to a file, and want to avoid spurious
+spaces. For example, Eplain writes a <code>\percentchar</code> after the
+definition of cross-references. The macros <code>\lbracechar</code>
+<a name="index-lbracechar-1133"></a>and <code>\rbracechar</code>
+<a name="index-rbracechar-1134"></a>expand similarly.
+
+<div class="node">
+<p><hr>
+<a name="Allocation-macros"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Iteration">Iteration</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Category-codes">Category codes</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Programming-definitions">Programming definitions</a>
+
+</div>
+
+<h3 class="section">7.2 Allocation macros</h3>
+
+<p><a name="index-allocation-macros-1135"></a><a name="index-register-allocation-1136"></a>
+Plain TeX provides macros that allocate registers of each primitive
+type in TeX, to prevent different sets of macros from using the same
+register for two different things. The macros are all named starting
+with `<samp><span class="samp">new</span></samp>',
+<a name="index-new_0040dots_007b_007d-1137"></a>e.g., <code>\newcount</code> allocates a new &ldquo;count&rdquo;
+(integer) register. Such allocations are usually needed only at the top
+level of some macro definition file; therefore, plain TeX makes the
+allocation registers <code>\outer</code>,
+<a name="index-outer-1138"></a>to help find errors. (The error this helps to find is a missing right
+brace in some macro definition.)
+
+ <p>Sometimes, however, it is useful to allocate a register as part of
+some macro. An outer control sequence cannot be used as part of a macro
+definition (or in a few other contexts: the parameter text of a
+definition, an argument to a definition, the preamble of an alignment,
+or in conditional text that is being skipped). Therefore, Eplain
+defines &ldquo;inner&rdquo; versions of all the allocation macros, named with the
+prefix `<samp><span class="samp">inner</span></samp>':
+<code>\innernewbox</code>,
+<a name="index-innernewbox-1139"></a><code>\innernewcount</code>,
+<a name="index-innernewcount-1140"></a><code>\innernewdimen</code>,
+<a name="index-innernewdimen-1141"></a><code>\innernewfam</code>,
+<a name="index-innernewfam-1142"></a><code>\innernewhelp</code>,
+<a name="index-innernewhelp-1143"></a><code>\innernewif</code>,
+<a name="index-innernewif-1144"></a><code>\innernewinsert</code>,
+<a name="index-innernewinsert-1145"></a><code>\innernewlanguage</code>,
+<a name="index-innernewlanguage-1146"></a><code>\innernewread</code>,<br>
+<a name="index-innernewread-1147"></a><code>\innernewskip</code>,
+<a name="index-innernewskip-1148"></a><code>\innernewtoks</code>,
+<a name="index-innernewtoks-1149"></a><code>\innernewwrite</code>.
+<a name="index-innernewwrite-1150"></a>
+You can also define non-outer versions of other macros in the same way
+that Eplain defines the above. The basic macro is called
+<code>\innerdef</code>:
+<a name="index-innerdef-1151"></a>
+<pre class="example"> \innerdef <var>\innername</var> {<var>outername</var>}
+</pre>
+ <p>The first argument (<var>\innername</var>) to <code>\innerdef</code> is the
+control sequence that you want to define. Any previous definition of
+<var>\innername</var> is replaced. The second argument
+(<var>outername</var>) is the <em>characters</em> in the name of the outer
+control sequence. (You can't use the actual control sequence name,
+since it's outer!)
+
+ <p>If the outer control sequence is named <var>\cs</var>, and you want to
+define <code>inner</code><var>cs</var> as the inner one, you can use
+<code>\innerinnerdef</code>,
+<a name="index-innerinnerdef-1152"></a>which is just an abbreviation for a call to <code>\innerdef</code>. For
+example, these two calls are equivalent:
+
+<pre class="example"> \innerdef\innerproclaim{proclaim}
+ \innerinnerdef{proclaim}
+</pre>
+ <div class="node">
+<p><hr>
+<a name="Iteration"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Macro-arguments">Macro arguments</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Allocation-macros">Allocation macros</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Programming-definitions">Programming definitions</a>
+
+</div>
+
+<h3 class="section">7.3 Iteration</h3>
+
+<p><a name="index-iteration-1153"></a><a name="index-loops-1154"></a><a name="index-for-loops-1155"></a><a name="index-while-loops-1156"></a><a name="index-do_0040dots_007b_007dwhile-loops-1157"></a>
+You can iterate through a comma-separated list of items with
+<code>\for</code>.
+<a name="index-for-1158"></a>Here is an example:
+
+<pre class="example"> \for\name:=karl,kathy\do{%
+ \message{\name}%
+ }%
+</pre>
+ <p class="noindent">This writes `<samp><span class="samp">karl</span></samp>' and `<samp><span class="samp">kathy</span></samp>' to the terminal. Spaces
+before or after the commas in the list, or after the <code>:=</code>, are
+<em>not</em> ignored. To strip leading spaces off the items, use
+<code>\For</code>:
+<a name="index-For-1159"></a>
+<pre class="example"> \For\name:=
+ karl,
+ kathy\do{%
+ \message{\name}%
+ }%
+</pre>
+ <p class="noindent">Note that trailing spaces are still <em>not</em> ignored.
+
+ <p>Both <code>\for</code> and <code>\For</code> expand the first token of the item
+list fully, so this is equivalent to the above:
+
+<pre class="example"> \def\namelist{karl,kathy}%
+ \for\name:=\namelist\do ...
+</pre>
+ <p class="noindent">However, this won't work, either with <code>\for</code> or with
+<code>\For</code>:
+
+<pre class="example"> \def\namelist{karl,kathy}%
+ \For\name:= \namelist\do ...
+</pre>
+ <p class="noindent">because <code>\for</code> and <code>\For</code> expand the first
+token after <code>:=</code> which is space, not <code>\namelist</code>.
+
+ <p>Eplain provides another kind of loops, which is an extension of plain
+TeX's
+<a name="index-loop-1160"></a><code>\loop</code>. If you say:
+
+ <p><a name="index-repeat-1161"></a>
+<pre class="example"> \loop
+ <var>loop-text</var>
+ \if <var>condition</var>
+ <var>if-text</var>
+ \repeat
+</pre>
+ <p class="noindent">then <var>loop-text</var> will be repeated as long as <var>condition</var>
+is satisfied (<code>\if</code> can be any of the TeX's conditional
+commands, without the matching <code>\fi</code>). Eplain extends this with
+the optional else clause:
+
+<pre class="example"> \loop
+ <var>loop-text</var>
+ \if <var>condition</var>
+ <var>if-text</var>
+ \else
+ <var>else-text</var>
+ \repeat
+</pre>
+ <p class="noindent">Here, <var>loop-text</var> will be repeated as long as
+<var>condition</var> is <em>not</em> satisfied. This extension is from
+<a name="index-Eijkhout_002c-Victor-1162"></a>Victor Eijkhout's
+<a name="index-g_t_0040i_007b_0040TeX_007b_007d-by-Topic_007d-1163"></a><i>TeX by Topic</i> (page&nbsp;<!-- /@w -->104).
+
+<div class="node">
+<p><hr>
+<a name="Macro-arguments"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Converting-to-characters">Converting to characters</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Iteration">Iteration</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Programming-definitions">Programming definitions</a>
+
+</div>
+
+<h3 class="section">7.4 Macro arguments</h3>
+
+<p><a name="index-arguments_002c-ignoring-1164"></a><a name="index-ignoring-arguments-1165"></a><a name="index-gobbling-arguments-1166"></a>It is occasionally useful to redefine a macro that takes arguments to
+do nothing. Eplain defines <code>\gobble</code>,
+<a name="index-gobble-1167"></a><code>\gobbletwo</code>,
+<a name="index-gobbletwo-1168"></a>and <code>\gobblethree</code> to swallow one, two, and three arguments,
+respectively.
+
+ <p>For example, if you want to produce a &ldquo;short&rdquo; table of
+<a name="index-table-of-contents_002c-short-1169"></a>contents&mdash;one that includes only chapters, say&mdash;the easiest thing to
+do is read the entire <code>.toc</code> file (see <a href="#Contents">Contents</a>), and just
+ignore the commands that produce section or subsection entries. To be
+specific:
+
+<pre class="example"> \let\tocchapterentry = \shorttocchapter
+ \let\tocsectionentry = \gobbletwo
+ \let\tocsubsectionentry = \gobbletwo
+ \readtocfile
+</pre>
+ <p class="noindent">(Of course, this assumes you only have chapters, sections, and
+subsections in your document.)
+
+ <p>In addition, Eplain defines <code>\eattoken</code>
+<a name="index-eattoken-1170"></a>to swallow the single following token, using <code>\let</code>. Thus,
+<code>\gobble</code> followed by `<samp><span class="samp">{...}</span></samp>' ignores the entire
+brace-enclosed text. <code>\eattoken</code> followed by the same ignores only
+the opening left brace.
+
+ <p>Eplain defines a macro <code>\identity</code>
+<a name="index-identity-1171"></a>which takes one argument and expands to that argument. This may be
+useful if you want to provide a function for the user to redefine, but
+don't need to do anything by default. (For example, the default
+definition of <code>\eqconstruct</code> (see <a href="#Formatting-equation-references">Formatting equation references</a>) is <code>\identity</code>.)
+
+ <p>You may also want to read an optional argument. The established
+convention is that optional arguments are put in square brackets, so
+that is the syntax Eplain recognizes. Eplain ignores space tokens
+before an optional argument, via <code>\futurenonspacelet</code>.
+
+ <p>You test for an optional argument by using <code>\@getoptionalarg</code>.
+<!-- this confuses texinfo.tex: findex @@getoptionalarg -->
+It takes one argument, a control sequence to expand after reading the
+argument, if present. If an optional argument is present, the control
+sequence <code>\@optionalarg</code> expands to it; otherwise,
+<code>\@optionalarg</code> is <code>\empty</code>. You must therefore have the
+category code of <kbd>@</kbd> set to 11 (letter). Here is an example:
+
+<pre class="example"> \catcode`@=\letter
+ \def\cmd{\@getoptionalarg\finishcmd}
+ \def\finishcmd{%
+ \ifx\@optionalarg\empty
+ % <span class="roman">No optional argument present.</span>
+ \else
+ % <span class="roman">One was present.</span>
+ \fi
+ }
+</pre>
+ <p>If an optional argument contains another optional argument, the inner
+one will need to be enclosed in braces, so TeX does not mistake the
+end of the first for the end of the second.
+
+<div class="node">
+<p><hr>
+<a name="Converting-to-characters"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Expansion">Expansion</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Macro-arguments">Macro arguments</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Programming-definitions">Programming definitions</a>
+
+</div>
+
+<h3 class="section">7.5 Converting to characters</h3>
+
+<p><a name="index-characters_002c-converting-to-1172"></a>Eplain defines <code>\xrlabel</code>
+<a name="index-xrlabel-1173"></a>to produce control sequence names for cross-reference labels, et al.
+This macro expands to its argument with an `<samp><span class="samp">_</span></samp>' appended. (It does
+this because the usual use of <code>\xrlabel</code> is to generate a control
+sequence name, and we naturally want to avoid conflicts between control
+sequence names.)
+
+ <p>Because <code>\xrlabel</code> is fully expandable, to make a control
+sequence name out of the result you need only do
+
+<pre class="example"> <code>\csname \xrlabel{</code><var>label</var><code>}\endcsname</code>
+</pre>
+ <p class="noindent">The <code>\csname</code> primitive makes a control sequence name out
+of any sequence of character tokens, regardless of category code.
+Labels can therefore include any characters except for `<samp><span class="samp">\</span></samp>',
+`<samp><span class="samp">{</span></samp>', `<samp><span class="samp">}</span></samp>', and `<samp><span class="samp">#</span></samp>', all of which are used in macro
+definitions themselves.
+
+ <p><a name="index-sanitize-1174"></a><code>\sanitize</code> takes a control sequence as an argument and converts
+the expansion of the control sequence into a list of character tokens.
+This is the behavior you want when writing information like chapter
+titles to an output file. For example, here is part of the definition
+of <code>\writenumberedtocentry</code>; <code>#2</code> is the title that the user
+has given.
+
+<pre class="example"> ...
+ \def\temp{#2}%
+ ...
+ \write\tocfile{%
+ ...
+ \sanitize\temp
+ ...
+ }%
+</pre>
+ <div class="node">
+<p><hr>
+<a name="Expansion"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Obeying-spaces">Obeying spaces</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Converting-to-characters">Converting to characters</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Programming-definitions">Programming definitions</a>
+
+</div>
+
+<h3 class="section">7.6 Expansion</h3>
+
+<p>This section describes some miscellanous macros for expansion, etc.
+
+<ul class="menu">
+<li><a accesskey="1" href="#g_t_005ccsn-and-_005cece">\csn and \ece</a>: Abbreviations for \csname expansions.
+<li><a accesskey="2" href="#g_t_005cedefappend">\edefappend</a>
+<li><a accesskey="3" href="#Hooks">Hooks</a>: Manipulating and executing named actions.
+<li><a accesskey="4" href="#Properties">Properties</a>: Associating information with a csname.
+<li><a accesskey="5" href="#g_t_005cexpandonce">\expandonce</a>
+<li><a accesskey="6" href="#g_t_005cifundefined">\ifundefined</a>
+<li><a accesskey="7" href="#g_t_005cifempty">\ifempty</a>
+<li><a accesskey="8" href="#g_t_005cifinteger-and-_005cisinteger">\ifinteger and \isinteger</a>
+<li><a accesskey="9" href="#g_t_005cfuturenonspacelet">\futurenonspacelet</a>
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="%5ccsn-and-%5cece"></a>
+<a name="g_t_005ccsn-and-_005cece"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#g_t_005cedefappend">\edefappend</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Expansion">Expansion</a>
+
+</div>
+
+<h4 class="subsection">7.6.1 <code>\csn</code> and <code>\ece</code></h4>
+
+<p><a name="index-csn-1175"></a><code>\csn</code>{<var>name</var>} simply abbreviates <code>\csname</code> <var>name</var>
+<code>\endcsname</code>, thus saving some typing. The extra level of expansion
+does take some time, though, so I don't recommend it for an inner loop.
+
+ <p><a name="index-ece-1176"></a><code>\ece</code>{<var>token</var>}{<var>name</var>} abbreviates
+
+<pre class="example"> \expandafter <var>token</var> \csname <var>name</var> \endcsname
+</pre>
+ <p class="noindent">For example,
+
+<pre class="example"> \def\fontabbrevdef#1#2{\ece\def{@#1font}{#2}}
+ \fontabbrevdef{normal}{ptmr}
+</pre>
+ <p class="noindent">defines a control sequence <code>\@normalfont</code> to expand to
+<code>ptmr</code>.
+
+<div class="node">
+<p><hr>
+<a name="%5cedefappend"></a>
+<a name="g_t_005cedefappend"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Hooks">Hooks</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#g_t_005ccsn-and-_005cece">\csn and \ece</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Expansion">Expansion</a>
+
+</div>
+
+<h4 class="subsection">7.6.2 <code>\edefappend</code></h4>
+
+<p><a name="index-edefappend-1177"></a><code>\edefappend</code> is a way of adding on to an existing definition. It
+takes two arguments: the first is the control sequence name, the second
+the new tokens to append to the definition. The second argument is
+fully expanded (in the <code>\edef</code> that redefines the control sequence).
+
+ <p>For example:
+
+<pre class="example"> \def\foo{abc}
+ \def\bar{xyz}
+ \edefappend\foo{\bar karl}
+</pre>
+ <p class="noindent">results in <code>\foo</code> being defined as `<samp><span class="samp">abcxyzkarl</span></samp>'.
+
+<div class="node">
+<p><hr>
+<a name="Hooks"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Properties">Properties</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#g_t_005cedefappend">\edefappend</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Expansion">Expansion</a>
+
+</div>
+
+<h4 class="subsection">7.6.3 Hooks</h4>
+
+<p><a name="index-hooks-1178"></a>A <dfn>hook</dfn> is simply a name for a group of actions which is executed
+in certain places&mdash;presumably when it is most useful to allow
+customization or modification. TeX already provides many builtin
+hooks; for example, the <code>\every ...</code> token lists are all
+examples of hooks.
+
+ <p>Eplain provides several macros for adding actions to hooks. They all
+take two arguments: the name of the hook and the new actions.
+
+
+<a name="index-hookaction-1179"></a>
+<dl><dt><code>hookaction </code><var>name</var> <var>actions</var><dd><a name="index-hookappend-1180"></a><dt><code>hookappend </code><var>name</var> <var>actions</var><dd><a name="index-hookprepend-1181"></a><br><dt><code>hookprepend </code><var>name</var> <var>actions</var><dd>Each of these adds <var>actions</var> to the hook <var>name</var>. (Any
+previously-defined actions are retained.) <var>name</var> is not a control
+sequence, but rather the characters of the name.
+
+ <p><a name="index-hookactiononce-1182"></a><br><dt><code>hookactiononce </code><var>name</var><code> \</code><var>cs</var><dd><code>\hookactiononce</code> adds <var>cs</var> to <var>name</var>, like the macros
+above, but first it adds
+
+ <pre class="example"> \global\let <var>\cs</var> \relax
+ </pre>
+ <p class="noindent">to the definition of <var>\cs</var>. (This implies <var>\cs</var> must
+be a true expandable macro, not a control sequence <code>\let</code> to a
+primitive or some other such thing.) Thus, <var>\cs</var> is expanded the
+next time the hook <var>name</var> is run, but it will disappear after that.
+
+ <p>The <code>\global</code> is useful because <code>\hookactiononce</code> is most
+useful when the grouping structure of the TeX code could be anything.
+Neither this nor the other hook macros do global assignments to the hook
+variable itself, so TeX's usual grouping rules apply.
+</dl>
+
+ <p><a name="index-hookrun-1183"></a>The companion macro to defining hook actions is <code>\hookrun</code>, for
+running them. This takes a single argument, the name of the hook. If
+no actions for the hook are defined, no error ensues.
+
+ <p>Here is a skeleton of general <code>\begin</code> and <code>\end</code> macros that
+run hooks, and a couple of calls to define actions. The use of
+<code>\hookprepend</code> for the begin action and <code>\hookappend</code> for the
+end action ensures that the actions are executed in proper sequence with
+other actions (as long as the other actions use <code>\hookprepend</code> and
+<code>\hookappend</code> also).
+
+<pre class="example"> \def\begin#1{ ... \hookrun{begin} ... }
+ \def\end#1{ ... \hookrun{end} ... }
+ \hookprepend{begin}\start_underline
+ \hookappend{end}\finish_underline
+</pre>
+ <div class="node">
+<p><hr>
+<a name="Properties"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#g_t_005cexpandonce">\expandonce</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Hooks">Hooks</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Expansion">Expansion</a>
+
+</div>
+
+<h4 class="subsection">7.6.4 Properties</h4>
+
+<p><a name="index-properties-1184"></a><a name="index-atom-1185"></a>A <dfn>property</dfn> is a name/value pair associated with another symbol,
+traditionally called an <dfn>atom</dfn>. Both atom and property names are
+control sequence names.
+
+ <p>Eplain provides two macros for dealing with property lists:
+<code>\setproperty</code> and <code>\getproperty</code>.
+
+
+<a name="index-setproperty-1186"></a>
+<dl><dt><code>\setproperty </code><var>atom</var> <var>propname</var> <var>value</var><dd><code>\setproperty</code> defines the property <var>property</var> on the atom
+<var>atom</var> to be <var>value</var>. <var>atom</var> and <var>propname</var> can be
+anything acceptable to <code>\csname</code>. <var>value</var> can be anything.
+
+ <p><a name="index-getproperty-1187"></a><br><dt><code>\getproperty </code><var>atom</var> <var>propname</var><dd><code>\getproperty</code> expands to the value stored for <var>propname</var> on
+<var>atom</var>. If <var>propname</var> is undefined, it expands to nothing
+(i.e., <code>\empty</code>).
+
+ </dl>
+
+ <p>The idea of properties originated in Lisp (I believe). There, the
+implementation truly does associate properties with atoms. In TeX,
+where we have no builtin support for properties, the association is only
+conceptual.
+
+ <p>The following example typesets `<samp><span class="samp">xyz</span></samp>'.
+
+<pre class="example"> \setproperty{a}{pr}{xyz}
+ \getproperty{a}{pr}
+</pre>
+ <div class="node">
+<p><hr>
+<a name="%5cexpandonce"></a>
+<a name="g_t_005cexpandonce"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#g_t_005cifundefined">\ifundefined</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Properties">Properties</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Expansion">Expansion</a>
+
+</div>
+
+<h4 class="subsection">7.6.5 <code>\expandonce</code></h4>
+
+<p><a name="index-expansion_002c-one_002dlevel-1188"></a><a name="index-expandonce-1189"></a><code>\expandonce</code> is defined as <code>\expandafter\noexpand</code>. Thus,
+<code>\expandonce </code><var>token</var> expands <var>token</var> once, instead of to
+TeX primitives. This is most useful in an <code>\edef</code>.
+
+ <p>For example, the following defines <code>\temp</code> to be <code>\foo</code>, not
+`<samp><span class="samp">abc</span></samp>'.
+
+<pre class="example"> \def\foo{abc}
+ \def\bar{\foo}
+ \edef\temp{\expandonce\bar}
+</pre>
+ <div class="node">
+<p><hr>
+<a name="%5cifundefined"></a>
+<a name="g_t_005cifundefined"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#g_t_005cifempty">\ifempty</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#g_t_005cexpandonce">\expandonce</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Expansion">Expansion</a>
+
+</div>
+
+<h4 class="subsection">7.6.6 <code>\ifundefined</code></h4>
+
+<p><a name="index-ifundefined-1190"></a><code>\ifundefined{</code><var>cs</var><code>} </code><var>t</var><code> \else </code><var>f</var><code> \fi</code> expands the
+<var>t</var> text if the control sequence <code>\</code><var>cs</var> is undefined or
+has been <code>\let</code> to <code>\relax</code>, and the <var>f</var> text otherwise.
+
+ <p><a name="index-skipping-tokens-1191"></a><a name="index-undefined-control-sequence_002c-checking-for-1192"></a>Since <code>\ifundefined</code> is not a primitive conditional, it cannot be
+used in places where TeX might skip tokens &ldquo;at high speed&rdquo;, e.g.,
+within another conditional&mdash;TeX can't match up the <code>\if</code>'s and
+<code>\fi</code>'s.
+
+ <p>This macro was taken directly from <cite>The TeXbook</cite>, page 308.
+
+<div class="node">
+<p><hr>
+<a name="%5cifempty"></a>
+<a name="g_t_005cifempty"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#g_t_005cifinteger-and-_005cisinteger">\ifinteger and \isinteger</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#g_t_005cifundefined">\ifundefined</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Expansion">Expansion</a>
+
+</div>
+
+<h4 class="subsection">7.6.7 <code>\ifempty</code></h4>
+
+<p><a name="index-ifempty-1193"></a><a name="index-empty-string_002c-checking-for-1194"></a><a name="index-empty-argument_002c-checking-for-1195"></a><code>\ifempty{</code><var>arg</var><code>} </code><var>t</var><code> \else </code><var>f</var><code> \fi</code> expands the
+<var>t</var> text if <var>arg</var> is the empty string, and the <var>f</var> text
+otherwise. This macro is useful when you need to test for empty
+arguments to your macros, for example:
+
+<pre class="example"> \def\foo#1{\ifempty{#1} <var>t</var> \else <var>f</var> \fi}
+</pre>
+ <p><a name="index-skipping-tokens-1196"></a>Since <code>\ifempty</code> is not a primitive conditional, it cannot be
+used in places where TeX might skip tokens &ldquo;at high speed&rdquo;, e.g.,
+within another conditional&mdash;TeX can't match up the <code>\if</code>'s and
+<code>\fi</code>'s.
+
+ <p>Note that the following code
+
+<pre class="example"> \def\empty{}
+ \ifempty\empty\message{empty}\else\message{not empty}\fi
+</pre>
+ <p class="noindent">will produce the message `<samp><span class="samp">not empty</span></samp>'.
+
+<div class="node">
+<p><hr>
+<a name="%5cifinteger-and-%5cisinteger"></a>
+<a name="g_t_005cifinteger-and-_005cisinteger"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#g_t_005cfuturenonspacelet">\futurenonspacelet</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#g_t_005cifempty">\ifempty</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Expansion">Expansion</a>
+
+</div>
+
+<h4 class="subsection">7.6.8 <code>\ifinteger</code> and <code>\isinteger</code></h4>
+
+<p><a name="index-ifinteger-1197"></a><a name="index-integers_002c-detecting-1198"></a><a name="index-numbers_002c-detecting-1199"></a><a name="index-detecting-numbers-1200"></a><a name="index-identifying-numbers-1201"></a><a name="index-recognizing-numbers-1202"></a><code>\ifinteger{</code><var>arg</var><code>} </code><var>t</var><code> \else </code><var>f</var><code> \fi</code> expands the
+<var>t</var> text if <var>arg</var> is an integer, and the <var>f</var> text
+otherwise. This macro can detect positive and negative integers.
+
+ <p>Since <code>\ifinteger</code> is not a primitive conditional, it cannot be
+used in places where TeX might skip tokens &ldquo;at high speed&rdquo;, e.g.,
+within another conditional&mdash;TeX can't match up the <code>\if</code>'s
+and <code>\fi</code>'s. For such situations Eplain provides
+<a name="index-isinteger-1203"></a><code>\isinteger</code>, which can be used as follows:
+
+<pre class="example"> \if\isinteger{<var>arg</var>} <var>t</var> \else <var>f</var> \fi
+</pre>
+ <p>Although <code>\ifinteger</code> and <code>\isinteger</code> work well
+with regular input, they are not bullet-proof. For example, the
+following code
+
+<pre class="example"> \ifinteger{12_ab}integer\else not integer\fi
+</pre>
+ <p class="noindent">will expand to `<samp><span class="samp">ab_integer</span></samp>' (and thus would not
+even compile outside math mode).
+
+ <p><a name="index-g_t_0040TeX_007b_007d-Frequently-Asked-Question-1204"></a>These macros come from TeX Frequently Asked Question
+(<a href="http://www.tex.ac.uk/cgi-bin/texfaq2html">http://www.tex.ac.uk/cgi-bin/texfaq2html</a>).
+
+<div class="node">
+<p><hr>
+<a name="%5cfuturenonspacelet"></a>
+<a name="g_t_005cfuturenonspacelet"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#g_t_005cifinteger-and-_005cisinteger">\ifinteger and \isinteger</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Expansion">Expansion</a>
+
+</div>
+
+<h4 class="subsection">7.6.9 <code>\futurenonspacelet</code></h4>
+
+<p><a name="index-lookahead-without-spaces-1205"></a><a name="index-spaces_002c-ignoring-1206"></a><a name="index-futurenonspacelet-1207"></a>The <code>\futurelet</code> primitive allows you to look at the next token
+from the input. Sometimes, though, you want to look ahead ignoring any
+spaces. This is what <code>\futurenonspacelet</code> does. It is otherwise
+the same as <code>\futurelet</code>: you give it two control sequences as
+arguments, and it assigns the next nonspace token to the first, and then
+expands the second. For example:
+
+<pre class="example"> \futurenonspacelet\temp\finishup
+ \def\finishup{\ifx\temp ...}
+</pre>
+ <div class="node">
+<p><hr>
+<a name="Obeying-spaces"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Writing-out-numbers">Writing out numbers</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Expansion">Expansion</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Programming-definitions">Programming definitions</a>
+
+</div>
+
+<h3 class="section">7.7 Obeying spaces</h3>
+
+<p><a name="index-whitespace-1208"></a><a name="index-spaces_002c-obeying-1209"></a><a name="index-newlines_002c-obeying-1210"></a><a name="index-obeywhitespace-1211"></a>
+<code>\obeywhitespace</code> makes both end-of-lines and space characters in
+the input be respected in the output. Unlike plain TeX's
+<code>\obeyspaces</code>, even spaces at the beginnings of lines turn into
+blank space.
+
+ <p>By default, the size of the space that is produced by a space
+character is the natural space of the current font, i.e.,
+what <code>\ </code> produces.
+
+ <p>Ordinarily, a blank line in the input produces as much blank vertical
+space as a line of text would occupy. You can adjust this by assigning
+to the parameter <code>\blanklineskipamount</code>:
+<a name="index-blanklineskipamount-_0040r_007bin-obeyed-text_007d-1212"></a>if you set this negative, the space produced by a blank line will be
+smaller; if positive, larger.
+
+ <p>Tabs are not affected by this routine. In particular, if tabs occur
+at the beginning of a line, they will disappear. (If you are trying to
+make TeX do the &ldquo;right thing&rdquo; with tabs, don't. Use a utility
+program like <i>expand</i> instead.)
+<a name="index-tabs-1213"></a>
+
+<div class="node">
+<p><hr>
+<a name="Writing-out-numbers"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Mode_002dspecific-penalties">Mode-specific penalties</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Obeying-spaces">Obeying spaces</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Programming-definitions">Programming definitions</a>
+
+</div>
+
+<h3 class="section">7.8 Writing out numbers</h3>
+
+<p><a name="index-numbers_002c-written-form-of-1214"></a> <code>\numbername</code>
+<a name="index-numbername-1215"></a>produces the written-out form of its argument, i.e., `zero' through
+`ten' for the numbers 0&ndash;10, and numerals for all others.
+
+<div class="node">
+<p><hr>
+<a name="Mode-specific-penalties"></a>
+<a name="Mode_002dspecific-penalties"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Auxiliary-files">Auxiliary files</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Writing-out-numbers">Writing out numbers</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Programming-definitions">Programming definitions</a>
+
+</div>
+
+<h3 class="section">7.9 Mode-specific penalties</h3>
+
+<p>TeX's built-in <code>\penalty</code> command simply appends to the
+current list, no matter what kind of list it is. You might intend a
+particular penalty to always be a &ldquo;vertical&rdquo; penalty, however, i.e.,
+appended to a vertical list. Therefore, Eplain provides
+<code>\vpenalty</code>
+<a name="index-vpenalty-1216"></a>and <code>\hpenalty</code>
+which first leave the other mode and then do <code>\penalty</code>.
+
+ <p>More precisely, <code>\vpenalty</code> inserts <code>\par</code> if the current
+mode is horizontal, and <code>\hpenalty</code> inserts <code>\leavevmode</code> if
+the current mode is vertical. (Thus, <code>\vpenalty</code> cannot be used in
+math mode.)
+
+<div class="node">
+<p><hr>
+<a name="Auxiliary-files"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#User_002ddefined-environments">User-defined environments</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Mode_002dspecific-penalties">Mode-specific penalties</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Programming-definitions">Programming definitions</a>
+
+</div>
+
+<h3 class="section">7.10 Auxiliary files</h3>
+
+<p><a name="index-axuiliary-files_002c-existence-of-1217"></a>It is common to write some information out to a file to be used on a
+subsequent run. But when it is time to read the file again, you only
+want to do so if the file actually exists. <code>\testfileexistence</code>
+<a name="index-testfileexistence-1218"></a>is given an argument which is appended to <code>\jobname</code>,
+<a name="index-jobname-1219"></a>and sets the conditional <code>\iffileexists</code>
+<a name="index-iffileexists-1220"></a><a name="index-fileexists-_0040r_007b_0028conditional_0029_007d-1221"></a>appropriately. For example:
+
+<pre class="example"> \testfileexistence{toc}%
+ \iffileexists
+ \input \jobname.toc
+ \fi
+</pre>
+ <p><code>\testfileexistence</code> takes an optional parameter; when
+given, it will override <code>\jobname</code> for the root part of the file
+name. For example, if you want to test for the file
+<samp><span class="file">answers.aux</span></samp>, you can do this with the following:
+
+<pre class="example"> \testfileexistence[answers]{aux}%
+ \iffileexists
+ \input answers.aux
+ \fi
+</pre>
+ <div class="node">
+<p><hr>
+<a name="User-defined-environments"></a>
+<a name="User_002ddefined-environments"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Page-list-and-page-range-parsers">Page list and page range parsers</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Auxiliary-files">Auxiliary files</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Programming-definitions">Programming definitions</a>
+
+</div>
+
+<h3 class="section">7.11 User-defined environments</h3>
+
+<p><a name="index-environments_002c-user_002ddefined-1222"></a>Plain TeX does not provide &ldquo;named&rdquo; block structures, only the anonymous
+<code>\begingroup</code> and <code>\endgroup</code> pair. The disadvantage of this
+is that when there are several such groups and one is mismatched, it can
+be difficult to find the error. Eplain provides a named block structure
+so that if you forget an <code>\environment</code> or an
+<code>\endenvironment</code>, you will (probably) get an error message about
+it.
+
+ <p>For example:
+
+<pre class="example"> \def\itpar{
+ \environment{@italicpar}
+ \it\par
+ }
+ \def\enditpar{
+ \par
+ \endenvironment{@italicpar}%
+ }
+</pre>
+ <p class="noindent">which could then be used to set italicized paragraphs:
+
+<pre class="example"> \itpar
+ If I reprehend anything in this world, it is the use of my oracular
+ tongue, and a nice derangement of epitaphs!
+ \enditpar
+</pre>
+ <p>The above sort of environment allows nesting. But environments
+shouldn't always be allowed to nest. Put the control sequence
+<code>\checkenv</code> at the beginning of a macro that is going to define an
+environment that should not be nested.
+
+<div class="node">
+<p><hr>
+<a name="Page-list-and-page-range-parsers"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#User_002ddefined-environments">User-defined environments</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Programming-definitions">Programming definitions</a>
+
+</div>
+
+<h3 class="section">7.12 Page list and page range parsers</h3>
+
+<p><a name="index-idxparselist-1223"></a><a name="index-idxparserange-1224"></a><a name="index-idxpagei-1225"></a><a name="index-idxpageii-1226"></a>The macros which Eplain uses to parse the page lists and ranges in the
+index, <code>\idxparselist</code> and <code>\idxparserange</code> (see <a href="#Page-destinations-for-index-terms">Page destinations for index terms</a>), are sometimes useful when defining page
+number encapsulators. They take one argument, text to parse. When a
+page list (range) is not present, they set <code>\idxpagei</code> to be
+<code>\empty</code>; when a list (range) is detected, they set
+<code>\idxpagei</code> and <code>\idxpageii</code> to the first and the second page
+numbers, respectively.
+
+ <p><a name="index-setidxpagelistdelimiter-1227"></a><a name="index-setidxpagerangedelimiter-1228"></a>Eplain's defaults for the page list and page range delimiters are the
+same as those in MakeIndex, a comma followed by a space (`<samp><span class="samp">, </span></samp>') and
+two dashes (`<samp><span class="samp">--</span></samp>'), respectively. If you customize MakeIndex to use
+different delimiters, you must not forget to let Eplain know about them
+with the commands
+
+<pre class="example"> \setidxpagelistdelimiter{<var>list-delim</var>}
+ \setidxpagerangedelimiter{<var>page-delim</var>}
+</pre>
+ <p class="noindent">These commands save the <var>list-delim</var> and
+<var>page-delim</var> delimiters in
+<a name="index-idxpagelistdelimiter-1229"></a><a name="index-idxpagerangedelimiter-1230"></a><code>\idxpagelistdelimiter</code> and <code>\idxpagerangedelimiter</code>,
+respectively.
+
+ <p><a name="index-underlining-page-numbers-in-index-1231"></a><a name="index-index_002c-underlining-page-numbers-1232"></a><a name="index-ituline-1233"></a>For example, you may want to define a page number markup command which
+italicizes and properly underlines page ranges by underlining only the
+page numbers and not the delimiter:
+
+ <p><a name="index-idxpagerangedelimiter-1234"></a>
+<pre class="example"> \def\ituline#1{%
+ {\it
+ \idxparserange{#1}%
+ \ifx\idxpagei\empty
+ % The argument is a single page number.
+ \underbar{#1}%
+ \else
+ % The argument is a page range.
+ \underbar{\idxpagei}\idxpagerangedelimiter\underbar{\idxpageii}%
+ \fi}%
+ }
+</pre>
+ <p class="noindent">Note that the <code>\ituline</code> macro is not aware of page
+lists. This is not needed if you use hyperlinks in the index, because
+<code>\hlidx</code> and <code>\hlidxpage</code> will break up the page lists before
+calling the user's page encapsulator (see <a href="#Page-destinations-for-index-terms">Page destinations for index terms</a>), so <code>\ituline</code> will never see the lists. If, however, you
+need to design a macro which also takes care of the lists, you can
+extend <code>\ituline</code> with an additional call to <code>\idxparselist</code>.
+
+<!-- This is part of the Eplain manual. Public domain. -->
+<div class="node">
+<p><hr>
+<a name="Demo-files"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Macro-index">Macro index</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Programming-definitions">Programming definitions</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
+
+</div>
+
+<h2 class="chapter">8 Demo files</h2>
+
+<p><a name="index-demo-files-1235"></a>This chapter contains listings of source files, along with the output
+they produce (where appropriate), which illustrate various aspects of
+Eplain. The files can be found in the <samp><span class="command">demo</span></samp> subdirectory of
+Eplain distribution. These demos, both the sources and the compiled PDF
+and PS files, are also available from <a href="http://tug.org/eplain/demo">http://tug.org/eplain/demo</a>.
+
+<ul class="menu">
+<li><a accesskey="1" href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a>
+<li><a accesskey="2" href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029">Highlighting TeX comments in listings (lscommnt.tex)</a>
+</ul>
+
+<div class="node">
+<p><hr>
+<a name="Hyperlinks-(xhyper.tex)"></a>
+<a name="Hyperlinks-_0028xhyper_002etex_0029"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029">Highlighting TeX comments in listings (lscommnt.tex)</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Demo-files">Demo files</a>
+
+</div>
+
+<h3 class="section">8.1 Hyperlinks (<code>xhyper.tex</code>)</h3>
+
+<div class="block-image"><img src="xhyper.jpg" alt="xhyper.jpg"></div>
+
+ <p><a name="index-xhyper_002etex-1236"></a>
+<a name="index-hyperlinks_002c-demo-1237"></a><a name="index-explicit-hyperlinks_002c-demo-1238"></a><a name="index-hyperlinks_002c-explicit_002c-demo-1239"></a><a name="index-implicit-hyperlinks_002c-demo-1240"></a><a name="index-hyperlinks_002c-implicit_002c-demo-1241"></a>
+<a name="index-hlstart-1242"></a><a name="index-hlend-1243"></a>
+<a name="index-group-options_002c-hyperlink_002c-demo-1244"></a><a name="index-hyperlinks_002c-group-options_002c-demo-1245"></a><a name="index-link_002c-group-options_002c-demo-1246"></a><a name="index-linkgroup-options_002c-demo-1247"></a><a name="index-destinations_002c-group-options_002c-demo-1248"></a><a name="index-destgroup-options_002c-demo-1249"></a>
+<a name="index-group-type_002c-hyperlink_002c-demo-1250"></a><a name="index-destinations_002c-group-type_002c-demo-1251"></a><a name="index-destgroup-type_002c-demo-1252"></a>
+<a name="index-hlopts-1253"></a><a name="index-hldesttype-1254"></a><a name="index-hldestopts-1255"></a>
+<a name="index-cross_002dreferences_002c-demo-1256"></a><a name="index-definexref-1257"></a><a name="index-ref-1258"></a>
+<a name="index-graphics-collection_002c-_0040LaTeX_007b_007d_002c-demo-1259"></a><a name="index-g_t_0040LaTeX_007b_007d-graphics-collection_002c-demo-1260"></a><a name="index-color_002c-demo-1261"></a><a name="index-rotation_002c-demo-1262"></a><a name="index-scaling_002c-demo-1263"></a><a name="index-color_002esty-1264"></a><a name="index-graphicx_002esty-1265"></a><a name="index-url_002esty-1266"></a>
+<a name="index-includegraphics-1267"></a><a name="index-rotatebox-1268"></a><a name="index-definecolor-1269"></a><a name="index-url-1270"></a>
+
+<pre class="verbatim">% (This file is public domain.)
+%
+% This file demonstrates the following features of Eplain:
+%
+% - explicit and implicit hyperlinks;
+% - symbolic cross-references;
+% - inserting external graphics using |\includegraphics| from
+% the \LaTeX\ package |graphicx.sty|.
+% - rotating text using |\rotatebox| from |graphicx.sty|.
+%
+% The compiled demo can be downloaded from
+%
+% http://tug.org/eplain/demo
+%
+% In order to compile this file yourself, you will need the CTAN lion
+% drawing by Duane Bibby from
+%
+% ftp://tug.ctan.org/ftpmaint/CTAN_lion/ctan_lion_350x350.png
+%
+% (thanks, |www.ctan.org|). Place the image file in the same
+% directory with this file, and change to that directory. Now, to
+% produce a PDF, run twice the command
+%
+% pdftex xhyper.tex
+%
+% During the first run, Eplain will write the information about the
+% cross-references into |xhyper.aux|, and during the second run this
+% information will be read by Eplain to typeset the references.
+%
+% Demo case:
+%
+% Suppose you are using pdf\TeX, have a figure you want to insert
+% scaled to $200\,pt$ horizontally, and you want this figure to
+% completely fill the PDF viewer's window whenever the reader
+% selects a link pointing to this figure. Additionally, you want to
+% typeset some text as live hyperlinks, clicking on which will start
+% a Web browser and open a URL.
+
+\input eplain
+
+% Load \LaTeX\ packages.
+\beginpackages
+ % |url.sty| provides the |\url| command which we will use to typeset
+ % a URL. We request that |url.sty| be the version from June~27,
+ % 2005, or later, because earlier versions had problems interacting
+ % with plain \TeX.
+ \usepackage{url}[2005/06/27]
+ % |color.sty| provides support for colored text; all hyperlinks are
+ % automatically colored by Eplain when this package is loaded. We give
+ % the |dvipsnames| option because we want to use named colors from the
+ % |dvips| graphics driver.
+ \usepackage[dvipsnames]{color}
+ % Finally, we load |graphicx.sty|, for the macros |\includegraphics|
+ % and |\rotatebox|.
+ \usepackage{graphicx}
+\endpackages
+
+% Remember that hyperlinks are off by default. Therefore, we need to
+% enable them.
+\enablehyperlinks
+
+% Customize some hyperlink options. First, we set border width to~$0$
+% for all links to get rid of the default boxes around links (we
+% prefer colored links over the boxed links). Next, we say that all
+% links created by the |url| hyperlink group (which means the |\url|
+% command from |url.sty|) must be colored using the named color
+% |BlueViolet|.
+\hlopts{bwidth=0}
+\hlopts[url]{colormodel=named,color=BlueViolet}
+
+% Inhibit page numbering (we have only one page).
+\nopagenumbers
+
+% Define a class word for the cross-reference class |figure|. This
+% word, when defined, will be automatically prepended by Eplain to the
+% reference created by |\ref| (read on to see its use).
+\def\figureword{fig.}
+
+% Allocate a count register for the figure's number, and a box
+% register which we'll use to measure dimensions of the image.
+\newcount\fignumber
+\newbox\imgbox
+
+% Now comes the fun part--constructing the figure for the image of the
+% \CTAN\ lion. We define a macro
+%
+% \fig{LABEL}{FILENAME}{CAPTION}{WIDTH}
+%
+% which creates a figure using LABEL for the cross-reference and
+% hyperlink label, reading the image from file FILENAME, using CAPTION
+% to name the figure, and WIDTH to scale the image horizontally.
+\def\fig#1#2#3#4{%
+ % Leave some space above the figure. This will also ensure that we
+ % are in the vertical mode before we produce a |\vbox|.
+ \medskip
+ % Advance the figure number. |\global| ensures that the change to
+ % the count register is global, even when |\fig| is buried inside a
+ % group.
+ \global\advance\fignumber by 1
+ % We use |\includegraphics| (from |graphicx.sty|) to load the image,
+ % scaled to the specified width, into our ``measuring'' box
+ % |\imgbox|.
+ \setbox\imgbox = \hbox{\includegraphics[width=#4]{#2}}%
+ % To make the demo even more exciting, let's put the figure's
+ % caption to the left of the image into the |\indent| space of the
+ % new paragraph, and rotate the caption~$90^\circ$.
+ \textindent{%
+ \rotatebox{90}{F{\sc IGURE}~\the\fignumber. #3}%
+ }%
+ % Continue the paragraph by constructing a |\vbox| with the image of
+ % the lion. We use |\definexref| to define the cross-reference
+ % label.
+ \vbox{%
+ % In addition to the cross-reference label, |\definexref| will
+ % create a hyperlink destination with the same label. Therefore,
+ % we customize this destination to do what we need. We say that
+ % destination type for the hyperlink group |definexref| (to which
+ % |\definexref| belongs) should be |fitr|. This destination type
+ % will magnify the rectangle specified by the options |width|,
+ % |height| and |depth| to the PDF viewer's window. Therefore, we
+ % set those options accordingly with |\hldestopts| (notice the use
+ % of |depth| instead of |height|---we will want the rectangle to
+ % extend {\it downward}, to cover the image which will come
+ % next). Notice that these settings will be isolated within the
+ % current group (i.e., the |\vbox| we're constructing).
+ \hldesttype[definexref]{fitr}%
+ \hldestopts[definexref]{width=\wd\imgbox,height=0pt,depth=\ht\imgbox}%
+ % We define a symbolic label so that we can later refer
+ % to the figure with |\ref|. The command |\definexref| does
+ % exactly that. The last argument to |\definexref| specifies
+ % class of the label, which determines the word used by |\ref| in
+ % front of the reference text (remember that we've defined
+ % |\figureword| above).
+ \definexref{#1}{\the\fignumber}{figure}%
+ % Finally, produce the image which we've been stashing in the box
+ % register |\imgbox|.
+ \box\imgbox
+ }%
+ \medskip
+}
+
+% Create the figure.
+\fig{CTANlion}{ctan_lion_350x350}{Lion in the archives}{200pt}
+
+% Finished with the fun part, we can relax and typeset some
+% hyperlinks. The easiest way to do that is to use the |\ref|
+% cross-reference command. We can even pass an optional argument
+% (|the lion in|), which will be placed before the class word (|fig.|)
+% and become part of the link (to make sure the reader does not have
+% to aim too hard).
+Show me \ref[the lion in]{CTANlion}.
+
+% If you are the restless kind, here's another way to create a
+% hyperlink to the image: we create a link explicitly by using
+% |\hlstart ... \hlend|. We don't specify the link type, therefore
+% the default type |name| will be used (these are ``named links'',
+% i.e., links pointing to destinations identified by labels). In the
+% options argument, we specify that the border of the link should be
+% inverted when the user clicks the link (|hlight=O|), and also set
+% special color for this link, overriding the default dark-red. The
+% label for the destination is the same as the cross-reference label,
+% |CTANlion|.
+Show me
+\hlstart{}{hlight=O,colormodel=named,color=OliveGreen}{CTANlion}
+ the CTAN lion\hlend.
+
+% Let's now point somewhere outside our document. Eplain homepage is
+% a good target. In the similar spirit, let's consider two
+% approaches. The easy one is to use the |\url| command from
+% |url.sty|. Remember that we have customized the color of |url|
+% hyperlinks, so this one will show up with a different color than the
+% default dark-red.
+Take me to \url{http://tug.org/eplain}.
+
+% The second approach is to create an explicit URL link. We specify
+% yet another border highlighting mode, |P|, which means that the
+% region underneath the bounding box of the link will be drawn inset
+% into the page. Also, let's set the color of the hyperlink to an RGB
+% color |0.4,0.1,0.4|. Since we cannot use commas to separate the
+% color elements inside the options parameter to |\hlstart| (commas
+% there separate options), we have to first create a user-defined
+% color with |\definecolor| from |color.sty|, and use that in
+% |\hlstart|.
+\definecolor{mycolor}{rgb}{0.4,0.1,0.4}
+
+Take me to
+\hlstart{url}{hlight=P,colormodel=,color=mycolor}{http://tug.org/eplain}
+ Eplain homepage\hlend.
+
+\bye
+</pre>
+
+<div class="node">
+<p><hr>
+<a name="Highlighting-TeX-comments-in-listings-(lscommnt.tex)"></a>
+<a name="Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Demo-files">Demo files</a>
+
+</div>
+
+<h3 class="section">8.2 Highlighting TeX comments in listings (<code>lscommnt.tex</code>)</h3>
+
+<div class="block-image"><img src="lscommnt.jpg" alt="lscommnt.jpg"></div>
+
+ <p><a name="index-lscommnt_002etex-1271"></a>
+<a name="index-verbatim-listing_002c-demo-1272"></a><a name="index-listing-files_002c-demo-1273"></a><a name="index-files_002c-verbatim-listing-of_002c-demo-1274"></a><a name="index-comments_002c-highlighting-in-listings-1275"></a><a name="index-highlighting_002c-in-listings-1276"></a>
+<a name="index-listing-1277"></a><a name="index-setuplistinghook-1278"></a><a name="index-linenumberedlisting-1279"></a><a name="index-nolastlinelisting-1280"></a><a name="index-hlightcommentslisting-1281"></a>
+
+<pre class="verbatim">% (This file is public domain.)
+% Demonstrate how Eplain can be used to include a TeX source file
+% verbatim, typesetting comments in colored italic typewriter type.
+
+% Load Eplain and LaTeX's color.sty package.
+\input eplain
+\beginpackages \usepackage{color} \endpackages
+\nopagenumbers % Disable page numbers.
+\font\commentfont = cmitt10 % Font for the comments (italic \tt).
+% We'll define some `protected' macros with `@' in their names.
+\makeatletter
+% Define an equivalent of Eplain's \letreturn, to be able to assign
+% various actions to the (active) percent character.
+\begingroup \makeactive\%
+ \gdef\letpercent{\let%}
+\endgroup
+% The listing hook to be called in \setuplistinghook, see below. It
+% makes `%' active and assigns it a `start comment' action.
+\def\hlightcommentslisting{\makeactive\% \letpercent\start@comment}%
+% This is what `%' is aliased to before a comment is started.
+\def\start@comment{%
+ \leavevmode % Needed in the very first line of the input to process
+ % the new par (possibly inserting line number) before we
+ % kick in with the color and stuff.
+ \begingroup % Isolate color and font changes and the redefinitions.
+ \commentfont
+ \color[cmyk]{0.28,1,1,0.35}%
+ \percentchar % Produce the actual `%' and
+ \letpercent\percentchar % make all following `%'s do the same.
+ \letreturn\end@comment % Call \end@comment at end-of-line.
+}
+% \end@comment (alias for ^^M inside a comment) will end the comment
+% started by \start@comment. We make ^^M active temporarily so that
+% the active version of ^^M gets "frozen" into \end@comment.
+\begingroup \makeactive\^^M % Avoid ^^M's from here on.
+ \gdef\end@comment{\endgroup ^^M}%
+\endgroup
+\resetatcatcode % Make `@' again inaccessible for use in macro names.
+
+% Define \setuplistinghook to setup comments highlighting, line
+% numbering and omitting the last (empty) line of input.
+\def\setuplistinghook{\hlightcommentslisting \linenumberedlisting
+ \nolastlinelisting}
+% Isn't this fun? This file typesets itself, with the extra bonus of
+% the pretty-printed comments and numbered source lines!
+\listing{lscommnt}
+\bye
+</pre>
+
+<!-- Public domain. -->
+<div class="node">
+<p><hr>
+<a name="Macro-index"></a>
+Next:&nbsp;<a rel="next" accesskey="n" href="#Concept-index">Concept index</a>,
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Demo-files">Demo files</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
+
+</div>
+
+<h2 class="unnumbered">Macro index</h2>
+
+<ul class="index-fn" compact>
+<li><a href="#index-g_t_0040_0040hllabel-864"><code>@hllabel</code></a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-g_t_0040_0040hllabel-786"><code>@hllabel</code></a>: <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></li>
+<li><a href="#index-g_t_0040_0040hllabel-738"><code>@hllabel</code></a>: <a href="#Link-types-for-hypertex">Link types for hypertex</a></li>
+<li><a href="#index-g_t_0040_0040hllabel-713"><code>@hllabel</code></a>: <a href="#Destination-types-for-hypertex">Destination types for hypertex</a></li>
+<li><a href="#index-g_t_0040_0040indexproof-_0040r_007binsertion-class_007d-287"><code>@indexproof </code><span class="roman">insertion class</span></a>: <a href="#Proofing-index-terms">Proofing index terms</a></li>
+<li><a href="#index-abovecolumnskip-383"><code>abovecolumnskip</code></a>: <a href="#Multiple-columns">Multiple columns</a></li>
+<li><a href="#index-abovecolumnspenalty-354"><code>abovecolumnspenalty</code></a>: <a href="#Tables">Tables</a></li>
+<li><a href="#index-abovelistpenalty-132"><code>abovelistpenalty</code></a>: <a href="#Formatting-lists">Formatting lists</a></li>
+<li><a href="#index-abovelistskip-131"><code>abovelistskip</code></a>: <a href="#Formatting-lists">Formatting lists</a></li>
+<li><a href="#index-abovelistskipamount-126"><code>abovelistskipamount</code></a>: <a href="#Formatting-lists">Formatting lists</a></li>
+<li><a href="#index-adjarrow-1067"><code>adjarrow</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-adjmapdown-1061"><code>adjmapdown</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-adjmapleft-1054"><code>adjmapleft</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-adjmapright-1053"><code>adjmapright</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-adjmapup-1062"><code>adjmapup</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-advancebottommargin-361"><code>advancebottommargin</code></a>: <a href="#Margins">Margins</a></li>
+<li><a href="#index-advanceleftmargin-362"><code>advanceleftmargin</code></a>: <a href="#Margins">Margins</a></li>
+<li><a href="#index-advancerightmargin-363"><code>advancerightmargin</code></a>: <a href="#Margins">Margins</a></li>
+<li><a href="#index-advancetopmargin-360"><code>advancetopmargin</code></a>: <a href="#Margins">Margins</a></li>
+<li><a href="#index-afterindexterm-318"><code>afterindexterm</code></a>: <a href="#Customizing-indexing">Customizing indexing</a></li>
+<li><a href="#index-afterindexterm-_0040r_007bhook_007d-252"><code>afterindexterm </code><span class="roman">hook</span></a>: <a href="#Indexing-commands">Indexing commands</a></li>
+<li><a href="#index-AMSLaTeX-411"><code>AMSLaTeX</code></a>: <a href="#Logos">Logos</a></li>
+<li><a href="#index-AMSTeX-407"><code>AMSTeX</code></a>: <a href="#Logos">Logos</a></li>
+<li><a href="#index-arrow-1032"><code>arrow</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-bblem-88"><code>bblem</code></a>: <a href="#Formatting-bibliographies">Formatting bibliographies</a></li>
+<li><a href="#index-bblfilebasename-62"><code>bblfilebasename</code></a>: <a href="#Citations">Citations</a></li>
+<li><a href="#index-bblhook-92"><code>bblhook</code></a>: <a href="#Formatting-bibliographies">Formatting bibliographies</a></li>
+<li><a href="#index-bblnewblock-90"><code>bblnewblock</code></a>: <a href="#Formatting-bibliographies">Formatting bibliographies</a></li>
+<li><a href="#index-bblrm-86"><code>bblrm</code></a>: <a href="#Formatting-bibliographies">Formatting bibliographies</a></li>
+<li><a href="#index-bblsc-89"><code>bblsc</code></a>: <a href="#Formatting-bibliographies">Formatting bibliographies</a></li>
+<li><a href="#index-bcolor-_0040r_007b_0028hyperlink-option_0029_007d-876"><code>bcolor </code><span class="roman">(hyperlink option)</span></a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-bdash-_0040r_007b_0028hyperlink-option_0029_007d-880"><code>bdash </code><span class="roman">(hyperlink option)</span></a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-begin-_0040r_007bfor-index-entries_007d-256"><code>begin </code><span class="roman">for index entries</span></a>: <a href="#Modifying-index-entries">Modifying index entries</a></li>
+<li><a href="#index-beginindex-_0040r_007bhook_007d-302"><code>beginindex </code><span class="roman">hook</span></a>: <a href="#Typesetting-an-index">Typesetting an index</a></li>
+<li><a href="#index-beginlist-142"><code>beginlist</code></a>: <a href="#Formatting-lists">Formatting lists</a></li>
+<li><a href="#index-beginpackages-447"><code>beginpackages</code></a>: <a href="#Environment-for-loading-packages">Environment for loading packages</a></li>
+<li><a href="#index-begin_0040_007bpicture_0040_007d-459"><code>begin{picture}</code></a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-begin_0040_007btheindex_0040_007d-296"><code>begin{theindex}</code></a>: <a href="#Typesetting-an-index">Typesetting an index</a></li>
+<li><a href="#index-belowcolumnskip-384"><code>belowcolumnskip</code></a>: <a href="#Multiple-columns">Multiple columns</a></li>
+<li><a href="#index-belowfootnoterulespace-393"><code>belowfootnoterulespace</code></a>: <a href="#Footnotes">Footnotes</a></li>
+<li><a href="#index-belowlistskip-133"><code>belowlistskip</code></a>: <a href="#Formatting-lists">Formatting lists</a></li>
+<li><a href="#index-belowlistskipamount-127"><code>belowlistskipamount</code></a>: <a href="#Formatting-lists">Formatting lists</a></li>
+<li><a href="#index-biarrow-1066"><code>biarrow</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-biblabelcontents-85"><code>biblabelcontents</code></a>: <a href="#Formatting-bibliographies">Formatting bibliographies</a></li>
+<li><a href="#index-biblabelextraspace-91"><code>biblabelextraspace</code></a>: <a href="#Formatting-bibliographies">Formatting bibliographies</a></li>
+<li><a href="#index-biblabelprint-84"><code>biblabelprint</code></a>: <a href="#Formatting-bibliographies">Formatting bibliographies</a></li>
+<li><a href="#index-biblabelwidth-83"><code>biblabelwidth</code></a>: <a href="#Formatting-bibliographies">Formatting bibliographies</a></li>
+<li><a href="#index-bibliography-66"><code>bibliography</code></a>: <a href="#Citations">Citations</a></li>
+<li><a href="#index-bibliography-_0040r_007b_0028hyperlinks_0029_007d-570"><code>bibliography </code><span class="roman">(hyperlinks)</span></a>: <a href="#Citation-hyperlinks">Citation hyperlinks</a></li>
+<li><a href="#index-bibliographystyle-67"><code>bibliographystyle</code></a>: <a href="#Citations">Citations</a></li>
+<li><a href="#index-BibTeX-409"><code>BibTeX</code></a>: <a href="#Logos">Logos</a></li>
+<li><a href="#index-bihline-1055"><code>bihline</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-bimapdown-1059"><code>bimapdown</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-bimapleft-1052"><code>bimapleft</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-bimapright-1051"><code>bimapright</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-bimapup-1060"><code>bimapup</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-bisline-1068"><code>bisline</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-bivline-1063"><code>bivline</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-blackbox-423"><code>blackbox</code></a>: <a href="#Boxes">Boxes</a></li>
+<li><a href="#index-blanklineskipamount-_0040r_007bin-justified-text_007d-350"><code>blanklineskipamount </code><span class="roman">in justified text</span></a>: <a href="#Justification">Justification</a></li>
+<li><a href="#index-blanklineskipamount-_0040r_007bin-obeyed-text_007d-1212"><code>blanklineskipamount </code><span class="roman">in obeyed text</span></a>: <a href="#Obeying-spaces">Obeying spaces</a></li>
+<li><a href="#index-bottom-_0040r_007b_0028destination-option_0029_007d-813"><code>bottom </code><span class="roman">(destination option)</span></a>: <a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></li>
+<li><a href="#index-bottom-_0040r_007b_0028destination-option_0029_007d-780"><code>bottom </code><span class="roman">(destination option)</span></a>: <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></li>
+<li><a href="#index-bottommargin-357"><code>bottommargin</code></a>: <a href="#Margins">Margins</a></li>
+<li><a href="#index-boxit-427"><code>boxit</code></a>: <a href="#Boxes">Boxes</a></li>
+<li><a href="#index-boxitspace-428"><code>boxitspace</code></a>: <a href="#Boxes">Boxes</a></li>
+<li><a href="#index-bstyle-_0040r_007b_0028hyperlink-option_0029_007d-884"><code>bstyle </code><span class="roman">(hyperlink option)</span></a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-bwidth-_0040r_007b_0028hyperlink-option_0029_007d-894"><code>bwidth </code><span class="roman">(hyperlink option)</span></a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-catcode-1120"><code>catcode</code></a>: <a href="#Category-codes">Category codes</a></li>
+<li><a href="#index-center-349"><code>center</code></a>: <a href="#Justification">Justification</a></li>
+<li><a href="#index-centereddisplays-99"><code>centereddisplays</code></a>: <a href="#Displays">Displays</a></li>
+<li><a href="#index-channelwidth-1109"><code>channelwidth</code></a>: <a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></li>
+<li><a href="#index-channelwidth-1069"><code>channelwidth</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-cite-63"><code>cite</code></a>: <a href="#Citations">Citations</a></li>
+<li><a href="#index-cite-_0040r_007b_0028hyperlinks_0029_007d-565"><code>cite </code><span class="roman">(hyperlinks)</span></a>: <a href="#Citation-hyperlinks">Citation hyperlinks</a></li>
+<li><a href="#index-cmd-_0040r_007b_0028destination-option_0029_007d-794"><code>cmd </code><span class="roman">(destination option)</span></a>: <a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></li>
+<li><a href="#index-cmd-_0040r_007b_0028destination-option_0029_007d-785"><code>cmd </code><span class="roman">(destination option)</span></a>: <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></li>
+<li><a href="#index-cmd-_0040r_007b_0028destination-option_0029_007d-718"><code>cmd </code><span class="roman">(destination option)</span></a>: <a href="#Destination-options-for-hypertex">Destination options for hypertex</a></li>
+<li><a href="#index-cmd-_0040r_007b_0028destination-option_0029_007d-712"><code>cmd </code><span class="roman">(destination option)</span></a>: <a href="#Destination-types-for-hypertex">Destination types for hypertex</a></li>
+<li><a href="#index-cmd-_0040r_007b_0028hyperlink-option_0029_007d-899"><code>cmd </code><span class="roman">(hyperlink option)</span></a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-cmd-_0040r_007b_0028hyperlink-option_0029_007d-863"><code>cmd </code><span class="roman">(hyperlink option)</span></a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-cmd-_0040r_007b_0028hyperlink-option_0029_007d-744"><code>cmd </code><span class="roman">(hyperlink option)</span></a>: <a href="#Link-options-for-hypertex">Link options for hypertex</a></li>
+<li><a href="#index-cmd-_0040r_007b_0028hyperlink-option_0029_007d-737"><code>cmd </code><span class="roman">(hyperlink option)</span></a>: <a href="#Link-types-for-hypertex">Link types for hypertex</a></li>
+<li><a href="#index-color-_0040r_007b_0028hyperlink-option_0029_007d-690"><code>color </code><span class="roman">(hyperlink option)</span></a>: <a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></li>
+<li><a href="#index-colormodel-_0040r_007b_0028hyperlink-option_0029_007d-689"><code>colormodel </code><span class="roman">(hyperlink option)</span></a>: <a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></li>
+<li><a href="#index-columnfill-377"><code>columnfill</code></a>: <a href="#Multiple-columns">Multiple columns</a></li>
+<li><a href="#index-commdiag-1072"><code>commdiag</code></a>: <a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></li>
+<li><a href="#index-commdiagbaselines-1112"><code>commdiagbaselines</code></a>: <a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></li>
+<li><a href="#index-commdiagbaselines-1084"><code>commdiagbaselines</code></a>: <a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></li>
+<li><a href="#index-csn-1175"><code>csn</code></a>: <a href="#g_t_005ccsn-and-_005cece">\csn and \ece</a></li>
+<li><a href="#index-definecolor-1269"><code>definecolor</code></a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-definecontentsfile-183"><code>definecontentsfile</code></a>: <a href="#Alternative-contents-files">Alternative contents files</a></li>
+<li><a href="#index-defineindex-233"><code>defineindex</code></a>: <a href="#Indexing">Indexing</a></li>
+<li><a href="#index-definexref-1257"><code>definexref</code></a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-definexref-190"><code>definexref</code></a>: <a href="#Defining-generic-references">Defining generic references</a></li>
+<li><a href="#index-definexref-_0040r_007b_0028hyperlinks_0029_007d-576"><code>definexref </code><span class="roman">(hyperlinks)</span></a>: <a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a></li>
+<li><a href="#index-depth-_0040r_007b_0028destination-option_0029_007d-800"><code>depth </code><span class="roman">(destination option)</span></a>: <a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></li>
+<li><a href="#index-depth-_0040r_007b_0028destination-option_0029_007d-778"><code>depth </code><span class="roman">(destination option)</span></a>: <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></li>
+<li><a href="#index-depth-_0040r_007b_0028hyperlink-option_0029_007d-908"><code>depth </code><span class="roman">(hyperlink option)</span></a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-discretionaries-400"><code>discretionaries</code></a>: <a href="#Paths">Paths</a></li>
+<li><a href="#index-displaylines-100"><code>displaylines</code></a>: <a href="#Displays">Displays</a></li>
+<li><a href="#index-doublecolumns-371"><code>doublecolumns</code></a>: <a href="#Multiple-columns">Multiple columns</a></li>
+<li><a href="#index-drawline-1017"><code>drawline</code></a>: <a href="#Slanted-lines-and-vectors">Slanted lines and vectors</a></li>
+<li><a href="#index-drawvector-1018"><code>drawvector</code></a>: <a href="#Slanted-lines-and-vectors">Slanted lines and vectors</a></li>
+<li><a href="#index-dvipdfm-_0040r_007b_0028hyperlink-driver_0029_007d-748"><code>dvipdfm </code><span class="roman">(hyperlink driver)</span></a>: <a href="#Hyperlink-drivers-pdftex-and-dvipdfm">Hyperlink drivers pdftex and dvipdfm</a></li>
+<li><a href="#index-eattoken-1170"><code>eattoken</code></a>: <a href="#Macro-arguments">Macro arguments</a></li>
+<li><a href="#index-ece-1176"><code>ece</code></a>: <a href="#g_t_005ccsn-and-_005cece">\csn and \ece</a></li>
+<li><a href="#index-edefappend-1177"><code>edefappend</code></a>: <a href="#g_t_005cedefappend">\edefappend</a></li>
+<li><a href="#index-ehrule-51"><code>ehrule</code></a>: <a href="#Rules">Rules</a></li>
+<li><a href="#index-enablehyperlinks-935"><code>enablehyperlinks</code></a>: <a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></li>
+<li><a href="#index-enablehyperlinks-648"><code>enablehyperlinks</code></a>: <a href="#Choosing-destination-placement">Choosing destination placement</a></li>
+<li><a href="#index-enablehyperlinks-519"><code>enablehyperlinks</code></a>: <a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></li>
+<li><a href="#index-end-_0040r_007bfor-index-entries_007d-257"><code>end </code><span class="roman">for index entries</span></a>: <a href="#Modifying-index-entries">Modifying index entries</a></li>
+<li><a href="#index-endlist-144"><code>endlist</code></a>: <a href="#Formatting-lists">Formatting lists</a></li>
+<li><a href="#index-endnumberedlist-118"><code>endnumberedlist</code></a>: <a href="#Lists">Lists</a></li>
+<li><a href="#index-endorderedlist-120"><code>endorderedlist</code></a>: <a href="#Lists">Lists</a></li>
+<li><a href="#index-endpackages-448"><code>endpackages</code></a>: <a href="#Environment-for-loading-packages">Environment for loading packages</a></li>
+<li><a href="#index-endunorderedlist-122"><code>endunorderedlist</code></a>: <a href="#Lists">Lists</a></li>
+<li><a href="#index-end_0040_007bpicture_0040_007d-460"><code>end{picture}</code></a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-end_0040_007btheindex_0040_007d-297"><code>end{theindex}</code></a>: <a href="#Typesetting-an-index">Typesetting an index</a></li>
+<li><a href="#index-eplain-26"><code>eplain</code></a>: <a href="#Invoking-Eplain">Invoking Eplain</a></li>
+<li><a href="#index-eplaininput-452"><code>eplaininput</code></a>: <a href="#Environment-for-loading-packages">Environment for loading packages</a></li>
+<li><a href="#index-eqalignno-101"><code>eqalignno</code></a>: <a href="#Displays">Displays</a></li>
+<li><a href="#index-eqconstruct-217"><code>eqconstruct</code></a>: <a href="#Formatting-equation-references">Formatting equation references</a></li>
+<li><a href="#index-eqdef-205"><code>eqdef</code></a>: <a href="#Equation-references">Equation references</a></li>
+<li><a href="#index-eqdef-_0040r_007b_0028hyperlinks_0029_007d-600"><code>eqdef </code><span class="roman">(hyperlinks)</span></a>: <a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></li>
+<li><a href="#index-eqdefn-211"><code>eqdefn</code></a>: <a href="#Equation-references">Equation references</a></li>
+<li><a href="#index-eqdefn-_0040r_007b_0028hyperlinks_0029_007d-601"><code>eqdefn </code><span class="roman">(hyperlinks)</span></a>: <a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></li>
+<li><a href="#index-eqnumber-204"><code>eqnumber</code></a>: <a href="#Equation-references">Equation references</a></li>
+<li><a href="#index-eqprint-216"><code>eqprint</code></a>: <a href="#Formatting-equation-references">Formatting equation references</a></li>
+<li><a href="#index-eqref-610"><code>eqref</code></a>: <a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></li>
+<li><a href="#index-eqref-212"><code>eqref</code></a>: <a href="#Equation-references">Equation references</a></li>
+<li><a href="#index-eqrefn-611"><code>eqrefn</code></a>: <a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></li>
+<li><a href="#index-eqrefn-213"><code>eqrefn</code></a>: <a href="#Equation-references">Equation references</a></li>
+<li><a href="#index-eqsubdef-220"><code>eqsubdef</code></a>: <a href="#Subequation-references">Subequation references</a></li>
+<li><a href="#index-eqsubdef-_0040r_007b_0028hyperlinks_0029_007d-602"><code>eqsubdef </code><span class="roman">(hyperlinks)</span></a>: <a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></li>
+<li><a href="#index-eqsubdefn-221"><code>eqsubdefn</code></a>: <a href="#Subequation-references">Subequation references</a></li>
+<li><a href="#index-eqsubdefn-_0040r_007b_0028hyperlinks_0029_007d-603"><code>eqsubdefn </code><span class="roman">(hyperlinks)</span></a>: <a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></li>
+<li><a href="#index-eqsubreftext-223"><code>eqsubreftext</code></a>: <a href="#Subequation-references">Subequation references</a></li>
+<li><a href="#index-everyfootnote-390"><code>everyfootnote</code></a>: <a href="#Footnotes">Footnotes</a></li>
+<li><a href="#index-evrule-52"><code>evrule</code></a>: <a href="#Rules">Rules</a></li>
+<li><a href="#index-expandonce-1189"><code>expandonce</code></a>: <a href="#g_t_005cexpandonce">\expandonce</a></li>
+<li><a href="#index-ext-_0040r_007b_0028hyperlink-option_0029_007d-746"><code>ext </code><span class="roman">(hyperlink option)</span></a>: <a href="#Link-options-for-hypertex">Link options for hypertex</a></li>
+<li><a href="#index-ext-_0040r_007b_0028hyperlink-option_0029_007d-735"><code>ext </code><span class="roman">(hyperlink option)</span></a>: <a href="#Link-types-for-hypertex">Link types for hypertex</a></li>
+<li><a href="#index-file-_0040r_007b_0028hyperlink-option_0029_007d-900"><code>file </code><span class="roman">(hyperlink option)</span></a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-file-_0040r_007b_0028hyperlink-option_0029_007d-852"><code>file </code><span class="roman">(hyperlink option)</span></a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-file-_0040r_007b_0028hyperlink-option_0029_007d-745"><code>file </code><span class="roman">(hyperlink option)</span></a>: <a href="#Link-options-for-hypertex">Link options for hypertex</a></li>
+<li><a href="#index-file-_0040r_007b_0028hyperlink-option_0029_007d-734"><code>file </code><span class="roman">(hyperlink option)</span></a>: <a href="#Link-types-for-hypertex">Link types for hypertex</a></li>
+<li><a href="#index-fileexists-_0040r_007b_0028conditional_0029_007d-1221"><code>fileexists </code><span class="roman">(conditional)</span></a>: <a href="#Auxiliary-files">Auxiliary files</a></li>
+<li><a href="#index-filename-_0040r_007b_0028hyperlink-type_0029_007d-848"><code>filename </code><span class="roman">(hyperlink type)</span></a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-filename-_0040r_007b_0028hyperlink-type_0029_007d-730"><code>filename </code><span class="roman">(hyperlink type)</span></a>: <a href="#Link-types-for-hypertex">Link types for hypertex</a></li>
+<li><a href="#index-filepage-_0040r_007b_0028hyperlink-type_0029_007d-855"><code>filepage </code><span class="roman">(hyperlink type)</span></a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-fit-_0040r_007b_0028destination-type_0029_007d-765"><code>fit </code><span class="roman">(destination type)</span></a>: <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></li>
+<li><a href="#index-fitb-_0040r_007b_0028destination-type_0029_007d-770"><code>fitb </code><span class="roman">(destination type)</span></a>: <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></li>
+<li><a href="#index-fitbh-_0040r_007b_0028destination-type_0029_007d-771"><code>fitbh </code><span class="roman">(destination type)</span></a>: <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></li>
+<li><a href="#index-fitbv-_0040r_007b_0028destination-type_0029_007d-773"><code>fitbv </code><span class="roman">(destination type)</span></a>: <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></li>
+<li><a href="#index-fith-_0040r_007b_0028destination-type_0029_007d-766"><code>fith </code><span class="roman">(destination type)</span></a>: <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></li>
+<li><a href="#index-fitr-_0040r_007b_0028destination-type_0029_007d-775"><code>fitr </code><span class="roman">(destination type)</span></a>: <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></li>
+<li><a href="#index-fitv-_0040r_007b_0028destination-type_0029_007d-768"><code>fitv </code><span class="roman">(destination type)</span></a>: <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></li>
+<li><a href="#index-flushleft-348"><code>flushleft</code></a>: <a href="#Justification">Justification</a></li>
+<li><a href="#index-flushright-347"><code>flushright</code></a>: <a href="#Justification">Justification</a></li>
+<li><a href="#index-fmtversion-10"><code>fmtversion</code></a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-footnote-_0040r_007b_0028hyperlinks_0029_007d-667"><code>footnote </code><span class="roman">(hyperlinks)</span></a>: <a href="#Footnote-hyperlinks">Footnote hyperlinks</a></li>
+<li><a href="#index-footnotemarkseparation-388"><code>footnotemarkseparation</code></a>: <a href="#Footnotes">Footnotes</a></li>
+<li><a href="#index-footnoteruleheight-392"><code>footnoteruleheight</code></a>: <a href="#Footnotes">Footnotes</a></li>
+<li><a href="#index-footnoterulewidth-391"><code>footnoterulewidth</code></a>: <a href="#Footnotes">Footnotes</a></li>
+<li><a href="#index-For-1159"><code>For</code></a>: <a href="#Iteration">Iteration</a></li>
+<li><a href="#index-for-1158"><code>for</code></a>: <a href="#Iteration">Iteration</a></li>
+<li><a href="#index-frac-395"><code>frac</code></a>: <a href="#Fractions">Fractions</a></li>
+<li><a href="#index-fullmonthname-109"><code>fullmonthname</code></a>: <a href="#Time-of-day">Time of day</a></li>
+<li><a href="#index-futurenonspacelet-1207"><code>futurenonspacelet</code></a>: <a href="#g_t_005cfuturenonspacelet">\futurenonspacelet</a></li>
+<li><a href="#index-generaldisplay-104"><code>generaldisplay</code></a>: <a href="#Formatting-displays">Formatting displays</a></li>
+<li><a href="#index-getproperty-1187"><code>getproperty</code></a>: <a href="#Properties">Properties</a></li>
+<li><a href="#index-gloggingall-42"><code>gloggingall</code></a>: <a href="#Diagnostics">Diagnostics</a></li>
+<li><a href="#index-gobble-1167"><code>gobble</code></a>: <a href="#Macro-arguments">Macro arguments</a></li>
+<li><a href="#index-gobbletwo-1168"><code>gobbletwo</code></a>: <a href="#Macro-arguments">Macro arguments</a></li>
+<li><a href="#index-gridcommdiag-1088"><code>gridcommdiag</code></a>: <a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></li>
+<li><a href="#index-gtracingall-43"><code>gtracingall</code></a>: <a href="#Diagnostics">Diagnostics</a></li>
+<li><a href="#index-gutter-381"><code>gutter</code></a>: <a href="#Multiple-columns">Multiple columns</a></li>
+<li><a href="#index-gutterbox-382"><code>gutterbox</code></a>: <a href="#Multiple-columns">Multiple columns</a></li>
+<li><a href="#index-hangindent-_0040r_007bfor-index-entries_007d-311"><code>hangindent </code><span class="roman">for index entries</span></a>: <a href="#Typesetting-an-index">Typesetting an index</a></li>
+<li><a href="#index-harrowlength-1095"><code>harrowlength</code></a>: <a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></li>
+<li><a href="#index-harrowlength-1034"><code>harrowlength</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-hchannel-1110"><code>hchannel</code></a>: <a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></li>
+<li><a href="#index-height-_0040r_007b_0028destination-option_0029_007d-804"><code>height </code><span class="roman">(destination option)</span></a>: <a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></li>
+<li><a href="#index-height-_0040r_007b_0028destination-option_0029_007d-777"><code>height </code><span class="roman">(destination option)</span></a>: <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></li>
+<li><a href="#index-height-_0040r_007b_0028hyperlink-option_0029_007d-911"><code>height </code><span class="roman">(hyperlink option)</span></a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-hgrid-1113"><code>hgrid</code></a>: <a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></li>
+<li><a href="#index-hgrid-1090"><code>hgrid</code></a>: <a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></li>
+<li><a href="#index-hldest-943"><code>hldest</code></a>: <a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></li>
+<li><a href="#index-hldest-787"><code>hldest</code></a>: <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></li>
+<li><a href="#index-hldest-714"><code>hldest</code></a>: <a href="#Destination-types-for-hypertex">Destination types for hypertex</a></li>
+<li><a href="#index-hldest-529"><code>hldest</code></a>: <a href="#Explicit-hyperlinks">Explicit hyperlinks</a></li>
+<li><a href="#index-hldestoff-1012"><code>hldestoff</code></a>: <a href="#Turning-low_002dlevel-commands-on_002foff">Turning low-level commands on/off</a></li>
+<li><a href="#index-hldestoff-930"><code>hldestoff</code></a>: <a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></li>
+<li><a href="#index-hldeston-1011"><code>hldeston</code></a>: <a href="#Turning-low_002dlevel-commands-on_002foff">Turning low-level commands on/off</a></li>
+<li><a href="#index-hldestopts-1255"><code>hldestopts</code></a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-hldestopts-991"><code>hldestopts</code></a>: <a href="#Setting-group-options">Setting group options</a></li>
+<li><a href="#index-hldestopts-959"><code>hldestopts</code></a>: <a href="#Setting-default-types-and-options">Setting default types and options</a></li>
+<li><a href="#index-hldesttype-1254"><code>hldesttype</code></a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-hldesttype-967"><code>hldesttype</code></a>: <a href="#Setting-group-types">Setting group types</a></li>
+<li><a href="#index-hldesttype-957"><code>hldesttype</code></a>: <a href="#Setting-default-types-and-options">Setting default types and options</a></li>
+<li><a href="#index-hlend-1243"><code>hlend</code></a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-hlend-531"><code>hlend</code></a>: <a href="#Explicit-hyperlinks">Explicit hyperlinks</a></li>
+<li><a href="#index-hlfootbacklabel-669"><code>hlfootbacklabel</code></a>: <a href="#Footnote-hyperlinks">Footnote hyperlinks</a></li>
+<li><a href="#index-hlfootlabel-668"><code>hlfootlabel</code></a>: <a href="#Footnote-hyperlinks">Footnote hyperlinks</a></li>
+<li><a href="#index-hlfootlabelnumber-670"><code>hlfootlabelnumber</code></a>: <a href="#Footnote-hyperlinks">Footnote hyperlinks</a></li>
+<li><a href="#index-hlhash-739"><code>hlhash</code></a>: <a href="#Link-types-for-hypertex">Link types for hypertex</a></li>
+<li><a href="#index-hlidx-628"><code>hlidx</code></a>: <a href="#Exact-destinations-for-index-terms">Exact destinations for index terms</a></li>
+<li><a href="#index-hlidxlabel-629"><code>hlidxlabel</code></a>: <a href="#Exact-destinations-for-index-terms">Exact destinations for index terms</a></li>
+<li><a href="#index-hlidxlabelnumber-630"><code>hlidxlabelnumber</code></a>: <a href="#Exact-destinations-for-index-terms">Exact destinations for index terms</a></li>
+<li><a href="#index-hlidxpage-638"><code>hlidxpage</code></a>: <a href="#Page-destinations-for-index-terms">Page destinations for index terms</a></li>
+<li><a href="#index-hlidxpagelabel-637"><code>hlidxpagelabel</code></a>: <a href="#Page-destinations-for-index-terms">Page destinations for index terms</a></li>
+<li><a href="#index-hlight-_0040r_007b_0028hyperlink-option_0029_007d-901"><code>hlight </code><span class="roman">(hyperlink option)</span></a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-hlightcommentslisting-1281"><code>hlightcommentslisting</code></a>: <a href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029">Highlighting TeX comments in listings (lscommnt.tex)</a></li>
+<li><a href="#index-hline-1050"><code>hline</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-hloff-1014"><code>hloff</code></a>: <a href="#Turning-low_002dlevel-commands-on_002foff">Turning low-level commands on/off</a></li>
+<li><a href="#index-hloff-929"><code>hloff</code></a>: <a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></li>
+<li><a href="#index-hlon-1013"><code>hlon</code></a>: <a href="#Turning-low_002dlevel-commands-on_002foff">Turning low-level commands on/off</a></li>
+<li><a href="#index-hlopts-1253"><code>hlopts</code></a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-hlopts-990"><code>hlopts</code></a>: <a href="#Setting-group-options">Setting group options</a></li>
+<li><a href="#index-hlopts-958"><code>hlopts</code></a>: <a href="#Setting-default-types-and-options">Setting default types and options</a></li>
+<li><a href="#index-hlstart-1242"><code>hlstart</code></a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-hlstart-942"><code>hlstart</code></a>: <a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></li>
+<li><a href="#index-hlstart-865"><code>hlstart</code></a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-hlstart-740"><code>hlstart</code></a>: <a href="#Link-types-for-hypertex">Link types for hypertex</a></li>
+<li><a href="#index-hlstart-530"><code>hlstart</code></a>: <a href="#Explicit-hyperlinks">Explicit hyperlinks</a></li>
+<li><a href="#index-hltype-966"><code>hltype</code></a>: <a href="#Setting-group-types">Setting group types</a></li>
+<li><a href="#index-hltype-956"><code>hltype</code></a>: <a href="#Setting-default-types-and-options">Setting default types and options</a></li>
+<li><a href="#index-hmorphposn-1098"><code>hmorphposn</code></a>: <a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></li>
+<li><a href="#index-hmorphposn-1037"><code>hmorphposn</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-hmorphposndn-1100"><code>hmorphposndn</code></a>: <a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></li>
+<li><a href="#index-hmorphposndn-1041"><code>hmorphposndn</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-hmorphposnlft-1102"><code>hmorphposnlft</code></a>: <a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></li>
+<li><a href="#index-hmorphposnlft-1045"><code>hmorphposnlft</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-hmorphposnrt-1101"><code>hmorphposnrt</code></a>: <a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></li>
+<li><a href="#index-hmorphposnrt-1044"><code>hmorphposnrt</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-hmorphposnup-1099"><code>hmorphposnup</code></a>: <a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></li>
+<li><a href="#index-hmorphposnup-1040"><code>hmorphposnup</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-hoffset-284"><code>hoffset</code></a>: <a href="#Proofing-index-terms">Proofing index terms</a></li>
+<li><a href="#index-hookaction-1179"><code>hookaction</code></a>: <a href="#Hooks">Hooks</a></li>
+<li><a href="#index-hookactiononce-1182"><code>hookactiononce</code></a>: <a href="#Hooks">Hooks</a></li>
+<li><a href="#index-hookappend-1180"><code>hookappend</code></a>: <a href="#Hooks">Hooks</a></li>
+<li><a href="#index-hookprepend-1181"><code>hookprepend</code></a>: <a href="#Hooks">Hooks</a></li>
+<li><a href="#index-hookrun-1183"><code>hookrun</code></a>: <a href="#Hooks">Hooks</a></li>
+<li><a href="#index-href-540"><code>href</code></a>: <a href="#General-hyperlinks">General hyperlinks</a></li>
+<li><a href="#index-hruledefaultdepth-49"><code>hruledefaultdepth</code></a>: <a href="#Rules">Rules</a></li>
+<li><a href="#index-hruledefaultheight-48"><code>hruledefaultheight</code></a>: <a href="#Rules">Rules</a></li>
+<li><a href="#index-hsize-364"><code>hsize</code></a>: <a href="#Margins">Margins</a></li>
+<li><a href="#index-hypertex-_0040r_007b_0028hyperlink-driver_0029_007d-694"><code>hypertex </code><span class="roman">(hyperlink driver)</span></a>: <a href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a></li>
+<li><a href="#index-hyphenpenalty-_0040r_007bfor-index-entries_007d-313"><code>hyphenpenalty </code><span class="roman">for index entries</span></a>: <a href="#Typesetting-an-index">Typesetting an index</a></li>
+<li><a href="#index-identity-1171"><code>identity</code></a>: <a href="#Macro-arguments">Macro arguments</a></li>
+<li><a href="#index-idx-242"><code>idx</code></a>: <a href="#Indexing-commands">Indexing commands</a></li>
+<li><a href="#index-idx-_0040r_007b_0028hyperlinks_0029_007d-615"><code>idx </code><span class="roman">(hyperlinks)</span></a>: <a href="#Index-hyperlinks">Index hyperlinks</a></li>
+<li><a href="#index-idxargclose-273"><code>idxargclose</code></a>: <a href="#Index-entries-with-special-characters">Index entries with special characters</a></li>
+<li><a href="#index-idxargopen-272"><code>idxargopen</code></a>: <a href="#Index-entries-with-special-characters">Index entries with special characters</a></li>
+<li><a href="#index-idxbeginrangemark-327"><code>idxbeginrangemark</code></a>: <a href="#Customizing-indexing">Customizing indexing</a></li>
+<li><a href="#index-idxencapoperator-326"><code>idxencapoperator</code></a>: <a href="#Customizing-indexing">Customizing indexing</a></li>
+<li><a href="#index-idxendrangemark-328"><code>idxendrangemark</code></a>: <a href="#Customizing-indexing">Customizing indexing</a></li>
+<li><a href="#index-idxexact-649"><code>idxexact</code></a>: <a href="#Choosing-destination-placement">Choosing destination placement</a></li>
+<li><a href="#index-idxmarked-247"><code>idxmarked</code></a>: <a href="#Indexing-commands">Indexing commands</a></li>
+<li><a href="#index-idxmarked-_0040r_007b_0028hyperlinks_0029_007d-617"><code>idxmarked </code><span class="roman">(hyperlinks)</span></a>: <a href="#Index-hyperlinks">Index hyperlinks</a></li>
+<li><a href="#index-idxname-245"><code>idxname</code></a>: <a href="#Indexing-commands">Indexing commands</a></li>
+<li><a href="#index-idxname-_0040r_007b_0028hyperlinks_0029_007d-616"><code>idxname </code><span class="roman">(hyperlinks)</span></a>: <a href="#Index-hyperlinks">Index hyperlinks</a></li>
+<li><a href="#index-idxnameseparator-244"><code>idxnameseparator</code></a>: <a href="#Indexing-commands">Indexing commands</a></li>
+<li><a href="#index-idxnone-651"><code>idxnone</code></a>: <a href="#Choosing-destination-placement">Choosing destination placement</a></li>
+<li><a href="#index-idxpage-650"><code>idxpage</code></a>: <a href="#Choosing-destination-placement">Choosing destination placement</a></li>
+<li><a href="#index-idxpagei-1225"><code>idxpagei</code></a>: <a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a></li>
+<li><a href="#index-idxpageii-1226"><code>idxpageii</code></a>: <a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a></li>
+<li><a href="#index-idxpagelistdelimiter-1229"><code>idxpagelistdelimiter</code></a>: <a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a></li>
+<li><a href="#index-idxpagenum-329"><code>idxpagenum</code></a>: <a href="#Customizing-indexing">Customizing indexing</a></li>
+<li><a href="#index-idxpagerangedelimiter-1230"><code>idxpagerangedelimiter</code></a>: <a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a></li>
+<li><a href="#index-idxparselist-1223"><code>idxparselist</code></a>: <a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a></li>
+<li><a href="#index-idxparserange-1224"><code>idxparserange</code></a>: <a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a></li>
+<li><a href="#index-idxrangebeginword-321"><code>idxrangebeginword</code></a>: <a href="#Customizing-indexing">Customizing indexing</a></li>
+<li><a href="#index-idxrangeendword-322"><code>idxrangeendword</code></a>: <a href="#Customizing-indexing">Customizing indexing</a></li>
+<li><a href="#index-idxseealsocmdword-324"><code>idxseealsocmdword</code></a>: <a href="#Customizing-indexing">Customizing indexing</a></li>
+<li><a href="#index-idxseecmdword-323"><code>idxseecmdword</code></a>: <a href="#Customizing-indexing">Customizing indexing</a></li>
+<li><a href="#index-idxsubentryseparator-325"><code>idxsubentryseparator</code></a>: <a href="#Customizing-indexing">Customizing indexing</a></li>
+<li><a href="#index-idxsubmarked-248"><code>idxsubmarked</code></a>: <a href="#Indexing-commands">Indexing commands</a></li>
+<li><a href="#index-idxsubmarked-_0040r_007b_0028hyperlinks_0029_007d-618"><code>idxsubmarked </code><span class="roman">(hyperlinks)</span></a>: <a href="#Index-hyperlinks">Index hyperlinks</a></li>
+<li><a href="#index-ifempty-1193"><code>ifempty</code></a>: <a href="#g_t_005cifempty">\ifempty</a></li>
+<li><a href="#index-iffileexists-1220"><code>iffileexists</code></a>: <a href="#Auxiliary-files">Auxiliary files</a></li>
+<li><a href="#index-ifinteger-1197"><code>ifinteger</code></a>: <a href="#g_t_005cifinteger-and-_005cisinteger">\ifinteger and \isinteger</a></li>
+<li><a href="#index-ifpdf-520"><code>ifpdf</code></a>: <a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></li>
+<li><a href="#index-ifpdf-433"><code>ifpdf</code></a>: <a href="#Checking-for-PDF-output">Checking for PDF output</a></li>
+<li><a href="#index-ifrewritetocfile-176"><code>ifrewritetocfile</code></a>: <a href="#Reading-the-_002etoc-file">Reading the .toc file</a></li>
+<li><a href="#index-ifundefined-1190"><code>ifundefined</code></a>: <a href="#g_t_005cifundefined">\ifundefined</a></li>
+<li><a href="#index-includegraphics-1267"><code>includegraphics</code></a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-indexfilebasename-294"><code>indexfilebasename</code></a>: <a href="#Typesetting-an-index">Typesetting an index</a></li>
+<li><a href="#index-indexfonts-300"><code>indexfonts</code></a>: <a href="#Typesetting-an-index">Typesetting an index</a></li>
+<li><a href="#index-indexitem-_0040r_007bhook_007d-314"><code>indexitem </code><span class="roman">hook</span></a>: <a href="#Typesetting-an-index">Typesetting an index</a></li>
+<li><a href="#index-indexprooffont-280"><code>indexprooffont</code></a>: <a href="#Proofing-index-terms">Proofing index terms</a></li>
+<li><a href="#index-indexproofterm-279"><code>indexproofterm</code></a>: <a href="#Proofing-index-terms">Proofing index terms</a></li>
+<li><a href="#index-indexproofunbox-288"><code>indexproofunbox</code></a>: <a href="#Proofing-index-terms">Proofing index terms</a></li>
+<li><a href="#index-indexsee-656"><code>indexsee</code></a>: <a href="#Hyperlinks-in-see-and-see-also-entries">Hyperlinks in see and see also entries</a></li>
+<li><a href="#index-indexsee-334"><code>indexsee</code></a>: <a href="#Customizing-indexing">Customizing indexing</a></li>
+<li><a href="#index-indexseealso-657"><code>indexseealso</code></a>: <a href="#Hyperlinks-in-see-and-see-also-entries">Hyperlinks in see and see also entries</a></li>
+<li><a href="#index-indexseealso-335"><code>indexseealso</code></a>: <a href="#Customizing-indexing">Customizing indexing</a></li>
+<li><a href="#index-indexseealsowords-332"><code>indexseealsowords</code></a>: <a href="#Customizing-indexing">Customizing indexing</a></li>
+<li><a href="#index-indexseeword-331"><code>indexseeword</code></a>: <a href="#Customizing-indexing">Customizing indexing</a></li>
+<li><a href="#index-indexsetmargins-286"><code>indexsetmargins</code></a>: <a href="#Proofing-index-terms">Proofing index terms</a></li>
+<li><a href="#index-indexspace-315"><code>indexspace</code></a>: <a href="#Typesetting-an-index">Typesetting an index</a></li>
+<li><a href="#index-innerdef-1151"><code>innerdef</code></a>: <a href="#Allocation-macros">Allocation macros</a></li>
+<li><a href="#index-innerinnerdef-1152"><code>innerinnerdef</code></a>: <a href="#Allocation-macros">Allocation macros</a></li>
+<li><a href="#index-innernewbox-1139"><code>innernewbox</code></a>: <a href="#Allocation-macros">Allocation macros</a></li>
+<li><a href="#index-innernewcount-1140"><code>innernewcount</code></a>: <a href="#Allocation-macros">Allocation macros</a></li>
+<li><a href="#index-innernewdimen-1141"><code>innernewdimen</code></a>: <a href="#Allocation-macros">Allocation macros</a></li>
+<li><a href="#index-innernewfam-1142"><code>innernewfam</code></a>: <a href="#Allocation-macros">Allocation macros</a></li>
+<li><a href="#index-innernewhelp-1143"><code>innernewhelp</code></a>: <a href="#Allocation-macros">Allocation macros</a></li>
+<li><a href="#index-innernewif-1144"><code>innernewif</code></a>: <a href="#Allocation-macros">Allocation macros</a></li>
+<li><a href="#index-innernewinsert-1145"><code>innernewinsert</code></a>: <a href="#Allocation-macros">Allocation macros</a></li>
+<li><a href="#index-innernewlanguage-1146"><code>innernewlanguage</code></a>: <a href="#Allocation-macros">Allocation macros</a></li>
+<li><a href="#index-innernewread-1147"><code>innernewread</code></a>: <a href="#Allocation-macros">Allocation macros</a></li>
+<li><a href="#index-innernewskip-1148"><code>innernewskip</code></a>: <a href="#Allocation-macros">Allocation macros</a></li>
+<li><a href="#index-innernewtoks-1149"><code>innernewtoks</code></a>: <a href="#Allocation-macros">Allocation macros</a></li>
+<li><a href="#index-innernewwrite-1150"><code>innernewwrite</code></a>: <a href="#Allocation-macros">Allocation macros</a></li>
+<li><a href="#index-input-449"><code>input</code></a>: <a href="#Environment-for-loading-packages">Environment for loading packages</a></li>
+<li><a href="#index-insidemargin-283"><code>insidemargin</code></a>: <a href="#Proofing-index-terms">Proofing index terms</a></li>
+<li><a href="#index-interfootnoteskip-389"><code>interfootnoteskip</code></a>: <a href="#Footnotes">Footnotes</a></li>
+<li><a href="#index-interitemskip-134"><code>interitemskip</code></a>: <a href="#Formatting-lists">Formatting lists</a></li>
+<li><a href="#index-interitemskipamount-128"><code>interitemskipamount</code></a>: <a href="#Formatting-lists">Formatting lists</a></li>
+<li><a href="#index-isinteger-1203"><code>isinteger</code></a>: <a href="#g_t_005cifinteger-and-_005cisinteger">\ifinteger and \isinteger</a></li>
+<li><a href="#index-item-_0040r_007bin-indexes_007d-303"><code>item </code><span class="roman">in indexes</span></a>: <a href="#Typesetting-an-index">Typesetting an index</a></li>
+<li><a href="#index-itemletter-141"><code>itemletter</code></a>: <a href="#Formatting-lists">Formatting lists</a></li>
+<li><a href="#index-itemnumber-140"><code>itemnumber</code></a>: <a href="#Formatting-lists">Formatting lists</a></li>
+<li><a href="#index-ituline-1233"><code>ituline</code></a>: <a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a></li>
+<li><a href="#index-jobname-1219"><code>jobname</code></a>: <a href="#Auxiliary-files">Auxiliary files</a></li>
+<li><a href="#index-jobname-295"><code>jobname</code></a>: <a href="#Typesetting-an-index">Typesetting an index</a></li>
+<li><a href="#index-jobname-59"><code>jobname</code></a>: <a href="#Citations">Citations</a></li>
+<li><a href="#index-LAMSTeX-413"><code>LAMSTeX</code></a>: <a href="#Logos">Logos</a></li>
+<li><a href="#index-LaTeX-415"><code>LaTeX</code></a>: <a href="#Logos">Logos</a></li>
+<li><a href="#index-lbracechar-1133"><code>lbracechar</code></a>: <a href="#Category-codes">Category codes</a></li>
+<li><a href="#index-left-_0040r_007b_0028destination-option_0029_007d-817"><code>left </code><span class="roman">(destination option)</span></a>: <a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></li>
+<li><a href="#index-left-_0040r_007b_0028destination-option_0029_007d-763"><code>left </code><span class="roman">(destination option)</span></a>: <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></li>
+<li><a href="#index-leftdisplayindent-98"><code>leftdisplayindent</code></a>: <a href="#Displays">Displays</a></li>
+<li><a href="#index-leftdisplays-97"><code>leftdisplays</code></a>: <a href="#Displays">Displays</a></li>
+<li><a href="#index-leftdisplaysetup-103"><code>leftdisplaysetup</code></a>: <a href="#Formatting-displays">Formatting displays</a></li>
+<li><a href="#index-leftmargin-358"><code>leftmargin</code></a>: <a href="#Margins">Margins</a></li>
+<li><a href="#index-leqalignno-102"><code>leqalignno</code></a>: <a href="#Displays">Displays</a></li>
+<li><a href="#index-letreturn-1129"><code>letreturn</code></a>: <a href="#Category-codes">Category codes</a></li>
+<li><a href="#index-letter-1117"><code>letter</code></a>: <a href="#Category-codes">Category codes</a></li>
+<li><a href="#index-lft-1031"><code>lft</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-li-123"><code>li</code></a>: <a href="#Lists">Lists</a></li>
+<li><a href="#index-li-_0040r_007b_0028hyperlinks_0029_007d-573"><code>li </code><span class="roman">(hyperlinks)</span></a>: <a href="#List-hyperlinks">List hyperlinks</a></li>
+<li><a href="#index-linenumberedlisting-1279"><code>linenumberedlisting</code></a>: <a href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029">Highlighting TeX comments in listings (lscommnt.tex)</a></li>
+<li><a href="#index-linenumberedlisting-153"><code>linenumberedlisting</code></a>: <a href="#Verbatim-listing">Verbatim listing</a></li>
+<li><a href="#index-listcompact-124"><code>listcompact</code></a>: <a href="#Lists">Lists</a></li>
+<li><a href="#index-listing-1277"><code>listing</code></a>: <a href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029">Highlighting TeX comments in listings (lscommnt.tex)</a></li>
+<li><a href="#index-listing-150"><code>listing</code></a>: <a href="#Verbatim-listing">Verbatim listing</a></li>
+<li><a href="#index-listingfont-151"><code>listingfont</code></a>: <a href="#Verbatim-listing">Verbatim listing</a></li>
+<li><a href="#index-listleftindent-129"><code>listleftindent</code></a>: <a href="#Formatting-lists">Formatting lists</a></li>
+<li><a href="#index-listmarkerspace-135"><code>listmarkerspace</code></a>: <a href="#Formatting-lists">Formatting lists</a></li>
+<li><a href="#index-listrightindent-130"><code>listrightindent</code></a>: <a href="#Formatting-lists">Formatting lists</a></li>
+<li><a href="#index-loggingall-39"><code>loggingall</code></a>: <a href="#Diagnostics">Diagnostics</a></li>
+<li><a href="#index-loop-1160"><code>loop</code></a>: <a href="#Iteration">Iteration</a></li>
+<li><a href="#index-makeactive-1121"><code>makeactive</code></a>: <a href="#Category-codes">Category codes</a></li>
+<li><a href="#index-makeatletter-1125"><code>makeatletter</code></a>: <a href="#Category-codes">Category codes</a></li>
+<li><a href="#index-makeatother-1127"><code>makeatother</code></a>: <a href="#Category-codes">Category codes</a></li>
+<li><a href="#index-makeblankbox-426"><code>makeblankbox</code></a>: <a href="#Boxes">Boxes</a></li>
+<li><a href="#index-makecolumns-353"><code>makecolumns</code></a>: <a href="#Tables">Tables</a></li>
+<li><a href="#index-makeheadline-289"><code>makeheadline</code></a>: <a href="#Proofing-index-terms">Proofing index terms</a></li>
+<li><a href="#index-mapdown-1029"><code>mapdown</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-mapleft-1027"><code>mapleft</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-mapright-1026"><code>mapright</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-mapup-1028"><code>mapup</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-matrix-1073"><code>matrix</code></a>: <a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></li>
+<li><a href="#index-MF-417"><code>MF</code></a>: <a href="#Logos">Logos</a></li>
+<li><a href="#index-monthname-108"><code>monthname</code></a>: <a href="#Time-of-day">Time of day</a></li>
+<li><a href="#index-morphdist-1108"><code>morphdist</code></a>: <a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></li>
+<li><a href="#index-morphdist-1039"><code>morphdist</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-name-_0040r_007b_0028hyperlink-type_0029_007d-835"><code>name </code><span class="roman">(hyperlink type)</span></a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-name-_0040r_007b_0028hyperlink-type_0029_007d-722"><code>name </code><span class="roman">(hyperlink type)</span></a>: <a href="#Link-types-for-hypertex">Link types for hypertex</a></li>
+<li><a href="#index-new_0040dots_007b_007d-1137"><code>new...</code></a>: <a href="#Allocation-macros">Allocation macros</a></li>
+<li><a href="#index-newwin-_0040r_007b_0028hyperlink-option_0029_007d-904"><code>newwin </code><span class="roman">(hyperlink option)</span></a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-newwin-_0040r_007b_0028hyperlink-option_0029_007d-854"><code>newwin </code><span class="roman">(hyperlink option)</span></a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-noarrow-28"><code>noarrow</code></a>: <a href="#Invoking-Eplain">Invoking Eplain</a></li>
+<li><a href="#index-noauxfile-29"><code>noauxfile</code></a>: <a href="#Invoking-Eplain">Invoking Eplain</a></li>
+<li><a href="#index-nobibtex-27"><code>nobibtex</code></a>: <a href="#Invoking-Eplain">Invoking Eplain</a></li>
+<li><a href="#index-nocite-65"><code>nocite</code></a>: <a href="#Citations">Citations</a></li>
+<li><a href="#index-nolastlinelisting-1280"><code>nolastlinelisting</code></a>: <a href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029">Highlighting TeX comments in listings (lscommnt.tex)</a></li>
+<li><a href="#index-nolastlinelisting-155"><code>nolastlinelisting</code></a>: <a href="#Verbatim-listing">Verbatim listing</a></li>
+<li><a href="#index-nolinks-_0040r_007b_0028hyperlink-driver_0029_007d-917"><code>nolinks </code><span class="roman">(hyperlink driver)</span></a>: <a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></li>
+<li><a href="#index-normalbaselineskip-681"><code>normalbaselineskip</code></a>: <a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></li>
+<li><a href="#index-num-_0040r_007b_0028hyperlink-type_0029_007d-866"><code>num </code><span class="roman">(hyperlink type)</span></a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-numberedfootnote-387"><code>numberedfootnote</code></a>: <a href="#Footnotes">Footnotes</a></li>
+<li><a href="#index-numberedfootnote-_0040r_007b_0028hyperlinks_0029_007d-666"><code>numberedfootnote </code><span class="roman">(hyperlinks)</span></a>: <a href="#Footnote-hyperlinks">Footnote hyperlinks</a></li>
+<li><a href="#index-numberedlist-117"><code>numberedlist</code></a>: <a href="#Lists">Lists</a></li>
+<li><a href="#index-numberedlistdepth-138"><code>numberedlistdepth</code></a>: <a href="#Formatting-lists">Formatting lists</a></li>
+<li><a href="#index-numberedmarker-136"><code>numberedmarker</code></a>: <a href="#Formatting-lists">Formatting lists</a></li>
+<li><a href="#index-numbername-1215"><code>numbername</code></a>: <a href="#Writing-out-numbers">Writing out numbers</a></li>
+<li><a href="#index-obeywhitespace-1211"><code>obeywhitespace</code></a>: <a href="#Obeying-spaces">Obeying spaces</a></li>
+<li><a href="#index-orderedlist-119"><code>orderedlist</code></a>: <a href="#Lists">Lists</a></li>
+<li><a href="#index-other-1118"><code>other</code></a>: <a href="#Category-codes">Category codes</a></li>
+<li><a href="#index-outer-1138"><code>outer</code></a>: <a href="#Allocation-macros">Allocation macros</a></li>
+<li><a href="#index-outsidemargin-285"><code>outsidemargin</code></a>: <a href="#Proofing-index-terms">Proofing index terms</a></li>
+<li><a href="#index-page-_0040r_007b_0028hyperlink-type_0029_007d-843"><code>page </code><span class="roman">(hyperlink type)</span></a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-pagefit-_0040r_007b_0028hyperlink-option_0029_007d-907"><code>pagefit </code><span class="roman">(hyperlink option)</span></a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-pagefit-_0040r_007b_0028hyperlink-option_0029_007d-847"><code>pagefit </code><span class="roman">(hyperlink option)</span></a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-pageno-282"><code>pageno</code></a>: <a href="#Proofing-index-terms">Proofing index terms</a></li>
+<li><a href="#index-pagetotal-380"><code>pagetotal</code></a>: <a href="#Multiple-columns">Multiple columns</a></li>
+<li><a href="#index-paperheight-365"><code>paperheight</code></a>: <a href="#Margins">Margins</a></li>
+<li><a href="#index-paperwidth-366"><code>paperwidth</code></a>: <a href="#Margins">Margins</a></li>
+<li><a href="#index-parindent-_0040r_007bin-indexes_007d-298"><code>parindent </code><span class="roman">in indexes</span></a>: <a href="#Typesetting-an-index">Typesetting an index</a></li>
+<li><a href="#index-path-399"><code>path</code></a>: <a href="#Paths">Paths</a></li>
+<li><a href="#index-pdfoutput-434"><code>pdfoutput</code></a>: <a href="#Checking-for-PDF-output">Checking for PDF output</a></li>
+<li><a href="#index-pdftex-_0040r_007b_0028hyperlink-driver_0029_007d-747"><code>pdftex </code><span class="roman">(hyperlink driver)</span></a>: <a href="#Hyperlink-drivers-pdftex-and-dvipdfm">Hyperlink drivers pdftex and dvipdfm</a></li>
+<li><a href="#index-percentchar-1132"><code>percentchar</code></a>: <a href="#Category-codes">Category codes</a></li>
+<li><a href="#index-phantomeqlabel-608"><code>phantomeqlabel</code></a>: <a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></li>
+<li><a href="#index-phantomeqnumber-609"><code>phantomeqnumber</code></a>: <a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></li>
+<li><a href="#index-previouseverydisplay-105"><code>previouseverydisplay</code></a>: <a href="#Formatting-displays">Formatting displays</a></li>
+<li><a href="#index-printbetweencitations-80"><code>printbetweencitations</code></a>: <a href="#Formatting-citations">Formatting citations</a></li>
+<li><a href="#index-printcitefinish-79"><code>printcitefinish</code></a>: <a href="#Formatting-citations">Formatting citations</a></li>
+<li><a href="#index-printcitenote-81"><code>printcitenote</code></a>: <a href="#Formatting-citations">Formatting citations</a></li>
+<li><a href="#index-printcitestart-78"><code>printcitestart</code></a>: <a href="#Formatting-citations">Formatting citations</a></li>
+<li><a href="#index-printitem-143"><code>printitem</code></a>: <a href="#Formatting-lists">Formatting lists</a></li>
+<li><a href="#index-printlistinglineno-154"><code>printlistinglineno</code></a>: <a href="#Verbatim-listing">Verbatim listing</a></li>
+<li><a href="#index-quadcolumns-373"><code>quadcolumns</code></a>: <a href="#Multiple-columns">Multiple columns</a></li>
+<li><a href="#index-raggedright-_0040r_007bfor-index-entries_007d-312"><code>raggedright </code><span class="roman">for index entries</span></a>: <a href="#Typesetting-an-index">Typesetting an index</a></li>
+<li><a href="#index-raise-_0040r_007b_0028hyperlink-option_0029_007d-995"><code>raise </code><span class="roman">(hyperlink option)</span></a>: <a href="#Setting-group-options">Setting group options</a></li>
+<li><a href="#index-raise-_0040r_007b_0028hyperlink-option_0029_007d-677"><code>raise </code><span class="roman">(hyperlink option)</span></a>: <a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></li>
+<li><a href="#index-raw-_0040r_007b_0028destination-type_0029_007d-784"><code>raw </code><span class="roman">(destination type)</span></a>: <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></li>
+<li><a href="#index-raw-_0040r_007b_0028destination-type_0029_007d-711"><code>raw </code><span class="roman">(destination type)</span></a>: <a href="#Destination-types-for-hypertex">Destination types for hypertex</a></li>
+<li><a href="#index-raw-_0040r_007b_0028hyperlink-type_0029_007d-862"><code>raw </code><span class="roman">(hyperlink type)</span></a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-raw-_0040r_007b_0028hyperlink-type_0029_007d-736"><code>raw </code><span class="roman">(hyperlink type)</span></a>: <a href="#Link-types-for-hypertex">Link types for hypertex</a></li>
+<li><a href="#index-rbracechar-1134"><code>rbracechar</code></a>: <a href="#Category-codes">Category codes</a></li>
+<li><a href="#index-readindexfile-293"><code>readindexfile</code></a>: <a href="#Typesetting-an-index">Typesetting an index</a></li>
+<li><a href="#index-readindexfile-_0040r_007b_0028hyperlinks_0029_007d-624"><code>readindexfile </code><span class="roman">(hyperlinks)</span></a>: <a href="#Index-hyperlinks">Index hyperlinks</a></li>
+<li><a href="#index-readtocfile-174"><code>readtocfile</code></a>: <a href="#Reading-the-_002etoc-file">Reading the .toc file</a></li>
+<li><a href="#index-ref-1258"><code>ref</code></a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-ref-197"><code>ref</code></a>: <a href="#Using-generic-references">Using generic references</a></li>
+<li><a href="#index-ref-_0040r_007b_0028hyperlinks_0029_007d-586"><code>ref </code><span class="roman">(hyperlinks)</span></a>: <a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a></li>
+<li><a href="#index-refn-194"><code>refn</code></a>: <a href="#Using-generic-references">Using generic references</a></li>
+<li><a href="#index-refn-_0040r_007b_0028hyperlinks_0029_007d-583"><code>refn </code><span class="roman">(hyperlinks)</span></a>: <a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a></li>
+<li><a href="#index-refs-198"><code>refs</code></a>: <a href="#Using-generic-references">Using generic references</a></li>
+<li><a href="#index-refs-_0040r_007b_0028hyperlinks_0029_007d-589"><code>refs </code><span class="roman">(hyperlinks)</span></a>: <a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a></li>
+<li><a href="#index-refspace-596"><code>refspace</code></a>: <a href="#Page-reference-hyperlinks">Page reference hyperlinks</a></li>
+<li><a href="#index-refspace-588"><code>refspace</code></a>: <a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a></li>
+<li><a href="#index-reftie-612"><code>reftie</code></a>: <a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></li>
+<li><a href="#index-reftie-585"><code>reftie</code></a>: <a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a></li>
+<li><a href="#index-repeat-1161"><code>repeat</code></a>: <a href="#Iteration">Iteration</a></li>
+<li><a href="#index-resetatcatcode-1126"><code>resetatcatcode</code></a>: <a href="#Category-codes">Category codes</a></li>
+<li><a href="#index-rewritetocfile-_0040r_007b_0028conditional_0029_007d-177"><code>rewritetocfile </code><span class="roman">(conditional)</span></a>: <a href="#Reading-the-_002etoc-file">Reading the .toc file</a></li>
+<li><a href="#index-right-_0040r_007b_0028destination-option_0029_007d-821"><code>right </code><span class="roman">(destination option)</span></a>: <a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></li>
+<li><a href="#index-right-_0040r_007b_0028destination-option_0029_007d-781"><code>right </code><span class="roman">(destination option)</span></a>: <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></li>
+<li><a href="#index-rightmargin-359"><code>rightmargin</code></a>: <a href="#Margins">Margins</a></li>
+<li><a href="#index-rotatebox-1268"><code>rotatebox</code></a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-rt-1030"><code>rt</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-sanitize-1174"><code>sanitize</code></a>: <a href="#Converting-to-characters">Converting to characters</a></li>
+<li><a href="#index-sarrowlength-1097"><code>sarrowlength</code></a>: <a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></li>
+<li><a href="#index-sarrowlength-1036"><code>sarrowlength</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-see-_0040r_007bfor-index-entries_007d-336"><code>see </code><span class="roman">for index entries</span></a>: <a href="#Customizing-indexing">Customizing indexing</a></li>
+<li><a href="#index-see-_0040r_007bfor-index-entries_007d-260"><code>see </code><span class="roman">for index entries</span></a>: <a href="#Modifying-index-entries">Modifying index entries</a></li>
+<li><a href="#index-seealso-_0040r_007bfor-index-entries_007d-264"><code>seealso </code><span class="roman">for index entries</span></a>: <a href="#Modifying-index-entries">Modifying index entries</a></li>
+<li><a href="#index-seevariant-333"><code>seevariant</code></a>: <a href="#Customizing-indexing">Customizing indexing</a></li>
+<li><a href="#index-setidxpagelistdelimiter-1227"><code>setidxpagelistdelimiter</code></a>: <a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a></li>
+<li><a href="#index-setidxpagerangedelimiter-1228"><code>setidxpagerangedelimiter</code></a>: <a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a></li>
+<li><a href="#index-setproperty-1186"><code>setproperty</code></a>: <a href="#Properties">Properties</a></li>
+<li><a href="#index-setuplistinghook-1278"><code>setuplistinghook</code></a>: <a href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029">Highlighting TeX comments in listings (lscommnt.tex)</a></li>
+<li><a href="#index-setuplistinghook-152"><code>setuplistinghook</code></a>: <a href="#Verbatim-listing">Verbatim listing</a></li>
+<li><a href="#index-sidx-241"><code>sidx</code></a>: <a href="#Indexing-commands">Indexing commands</a></li>
+<li><a href="#index-sidxmarked-246"><code>sidxmarked</code></a>: <a href="#Indexing-commands">Indexing commands</a></li>
+<li><a href="#index-sidxname-243"><code>sidxname</code></a>: <a href="#Indexing-commands">Indexing commands</a></li>
+<li><a href="#index-sidxsubmarked-249"><code>sidxsubmarked</code></a>: <a href="#Indexing-commands">Indexing commands</a></li>
+<li><a href="#index-singlecolumn-374"><code>singlecolumn</code></a>: <a href="#Multiple-columns">Multiple columns</a></li>
+<li><a href="#index-sline-1033"><code>sline</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-SLiTeX-419"><code>SLiTeX</code></a>: <a href="#Logos">Logos</a></li>
+<li><a href="#index-special-514"><code>special</code></a>: <a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></li>
+<li><a href="#index-specialpathdelimiters-_0040r_007b_0028conditional_0029_007d-401"><code>specialpathdelimiters </code><span class="roman">(conditional)</span></a>: <a href="#Paths">Paths</a></li>
+<li><a href="#index-subeqnumber-222"><code>subeqnumber</code></a>: <a href="#Subequation-references">Subequation references</a></li>
+<li><a href="#index-subitem-_0040r_007bin-indexes_007d-304"><code>subitem </code><span class="roman">in indexes</span></a>: <a href="#Typesetting-an-index">Typesetting an index</a></li>
+<li><a href="#index-subsubitem-_0040r_007bin-indexes_007d-305"><code>subsubitem </code><span class="roman">in indexes</span></a>: <a href="#Typesetting-an-index">Typesetting an index</a></li>
+<li><a href="#index-testfileexistence-1218"><code>testfileexistence</code></a>: <a href="#Auxiliary-files">Auxiliary files</a></li>
+<li><a href="#index-TeX-405"><code>TeX</code></a>: <a href="#Logos">Logos</a></li>
+<li><a href="#index-timestamp-111"><code>timestamp</code></a>: <a href="#Time-of-day">Time of day</a></li>
+<li><a href="#index-timestring-110"><code>timestring</code></a>: <a href="#Time-of-day">Time of day</a></li>
+<li><a href="#index-toc_0040dots_007b_007dentry-166"><code>toc...entry</code></a>: <a href="#Writing-the-_002etoc-file">Writing the .toc file</a></li>
+<li><a href="#index-tocfilebasename-178"><code>tocfilebasename</code></a>: <a href="#Changing-the-_002etoc-file_0027s-root-name">Changing the .toc file's root name</a></li>
+<li><a href="#index-today-112"><code>today</code></a>: <a href="#Time-of-day">Time of day</a></li>
+<li><a href="#index-top-_0040r_007b_0028destination-option_0029_007d-825"><code>top </code><span class="roman">(destination option)</span></a>: <a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></li>
+<li><a href="#index-top-_0040r_007b_0028destination-option_0029_007d-764"><code>top </code><span class="roman">(destination option)</span></a>: <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></li>
+<li><a href="#index-topmargin-356"><code>topmargin</code></a>: <a href="#Margins">Margins</a></li>
+<li><a href="#index-tracingall-38"><code>tracingall</code></a>: <a href="#Diagnostics">Diagnostics</a></li>
+<li><a href="#index-tracingboxes-40"><code>tracingboxes</code></a>: <a href="#Diagnostics">Diagnostics</a></li>
+<li><a href="#index-tracingoff-41"><code>tracingoff</code></a>: <a href="#Diagnostics">Diagnostics</a></li>
+<li><a href="#index-triplecolumns-372"><code>triplecolumns</code></a>: <a href="#Multiple-columns">Multiple columns</a></li>
+<li><a href="#index-tt-480"><code>tt</code></a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-ttfamily-479"><code>ttfamily</code></a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-uncatcodespecials-1131"><code>uncatcodespecials</code></a>: <a href="#Category-codes">Category codes</a></li>
+<li><a href="#index-unorderedlist-121"><code>unorderedlist</code></a>: <a href="#Lists">Lists</a></li>
+<li><a href="#index-unorderedlistdepth-139"><code>unorderedlistdepth</code></a>: <a href="#Formatting-lists">Formatting lists</a></li>
+<li><a href="#index-unorderedmarker-137"><code>unorderedmarker</code></a>: <a href="#Formatting-lists">Formatting lists</a></li>
+<li><a href="#index-url-1270"><code>url</code></a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-url-_0040r_007b_0028hyperlink-type_0029_007d-839"><code>url </code><span class="roman">(hyperlink type)</span></a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-url-_0040r_007b_0028hyperlink-type_0029_007d-726"><code>url </code><span class="roman">(hyperlink type)</span></a>: <a href="#Link-types-for-hypertex">Link types for hypertex</a></li>
+<li><a href="#index-url-_0040r_007b_0028hyperlinks_0029_007d-553"><code>url </code><span class="roman">(hyperlinks)</span></a>: <a href="#URL-hyperlinks">URL hyperlinks</a></li>
+<li><a href="#index-usepackage-446"><code>usepackage</code></a>: <a href="#The-_005cusepackage-command">The \usepackage command</a></li>
+<li><a href="#index-varrowlength-1096"><code>varrowlength</code></a>: <a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></li>
+<li><a href="#index-varrowlength-1035"><code>varrowlength</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-vchannel-1111"><code>vchannel</code></a>: <a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></li>
+<li><a href="#index-verbatim-159"><code>verbatim</code></a>: <a href="#Verbatim-listing">Verbatim listing</a></li>
+<li><a href="#index-verbatimescapechar-160"><code>verbatimescapechar</code></a>: <a href="#Verbatim-listing">Verbatim listing</a></li>
+<li><a href="#index-vgrid-1114"><code>vgrid</code></a>: <a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></li>
+<li><a href="#index-vgrid-1091"><code>vgrid</code></a>: <a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></li>
+<li><a href="#index-vline-1058"><code>vline</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-vmorphposn-1103"><code>vmorphposn</code></a>: <a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></li>
+<li><a href="#index-vmorphposn-1038"><code>vmorphposn</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-vmorphposndn-1105"><code>vmorphposndn</code></a>: <a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></li>
+<li><a href="#index-vmorphposndn-1043"><code>vmorphposndn</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-vmorphposnlft-1107"><code>vmorphposnlft</code></a>: <a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></li>
+<li><a href="#index-vmorphposnlft-1047"><code>vmorphposnlft</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-vmorphposnrt-1106"><code>vmorphposnrt</code></a>: <a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></li>
+<li><a href="#index-vmorphposnrt-1046"><code>vmorphposnrt</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-vmorphposnup-1104"><code>vmorphposnup</code></a>: <a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></li>
+<li><a href="#index-vmorphposnup-1042"><code>vmorphposnup</code></a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-vpenalty-1216"><code>vpenalty</code></a>: <a href="#Mode_002dspecific-penalties">Mode-specific penalties</a></li>
+<li><a href="#index-vruledefaultwidth-50"><code>vruledefaultwidth</code></a>: <a href="#Rules">Rules</a></li>
+<li><a href="#index-width-_0040r_007b_0028destination-option_0029_007d-808"><code>width </code><span class="roman">(destination option)</span></a>: <a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></li>
+<li><a href="#index-width-_0040r_007b_0028destination-option_0029_007d-776"><code>width </code><span class="roman">(destination option)</span></a>: <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></li>
+<li><a href="#index-width-_0040r_007b_0028hyperlink-option_0029_007d-914"><code>width </code><span class="roman">(hyperlink option)</span></a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-writenumberedtocentry-167"><code>writenumberedtocentry</code></a>: <a href="#Writing-the-_002etoc-file">Writing the .toc file</a></li>
+<li><a href="#index-writenumberedtocline-168"><code>writenumberedtocline</code></a>: <a href="#Writing-the-_002etoc-file">Writing the .toc file</a></li>
+<li><a href="#index-writetocentry-165"><code>writetocentry</code></a>: <a href="#Writing-the-_002etoc-file">Writing the .toc file</a></li>
+<li><a href="#index-xrdef-199"><code>xrdef</code></a>: <a href="#Page-references">Page references</a></li>
+<li><a href="#index-xrdef-_0040r_007b_0028hyperlinks_0029_007d-590"><code>xrdef </code><span class="roman">(hyperlinks)</span></a>: <a href="#Page-reference-hyperlinks">Page reference hyperlinks</a></li>
+<li><a href="#index-xref-200"><code>xref</code></a>: <a href="#Page-references">Page references</a></li>
+<li><a href="#index-xref-_0040r_007b_0028hyperlinks_0029_007d-595"><code>xref </code><span class="roman">(hyperlinks)</span></a>: <a href="#Page-reference-hyperlinks">Page reference hyperlinks</a></li>
+<li><a href="#index-xrefn-195"><code>xrefn</code></a>: <a href="#Using-generic-references">Using generic references</a></li>
+<li><a href="#index-xrefn-_0040r_007b_0028hyperlinks_0029_007d-584"><code>xrefn </code><span class="roman">(hyperlinks)</span></a>: <a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a></li>
+<li><a href="#index-xrefpageword-597"><code>xrefpageword</code></a>: <a href="#Page-reference-hyperlinks">Page reference hyperlinks</a></li>
+<li><a href="#index-xrefpageword-201"><code>xrefpageword</code></a>: <a href="#Page-references">Page references</a></li>
+<li><a href="#index-xrefwarning-_0040r_007bconditional_007d-196"><code>xrefwarning </code><span class="roman">conditional</span></a>: <a href="#Using-generic-references">Using generic references</a></li>
+<li><a href="#index-xrefwarningfalse-69"><code>xrefwarningfalse</code></a>: <a href="#Citations">Citations</a></li>
+<li><a href="#index-xrlabel-1173"><code>xrlabel</code></a>: <a href="#Converting-to-characters">Converting to characters</a></li>
+<li><a href="#index-xyz-_0040r_007b_0028destination-type_0029_007d-761"><code>xyz </code><span class="roman">(destination type)</span></a>: <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></li>
+<li><a href="#index-xyz-_0040r_007b_0028destination-type_0029_007d-710"><code>xyz </code><span class="roman">(destination type)</span></a>: <a href="#Destination-types-for-hypertex">Destination types for hypertex</a></li>
+<li><a href="#index-zoom-_0040r_007b_0028destination-option_0029_007d-795"><code>zoom </code><span class="roman">(destination option)</span></a>: <a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></li>
+<li><a href="#index-zoom-_0040r_007b_0028destination-option_0029_007d-762"><code>zoom </code><span class="roman">(destination option)</span></a>: <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></li>
+ </ul><!-- Public domain. -->
+<!-- makeinfo complains about bad links if we make them implicit. Strange. -->
+<div class="node">
+<p><hr>
+<a name="Concept-index"></a>
+Previous:&nbsp;<a rel="previous" accesskey="p" href="#Macro-index">Macro index</a>,
+Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
+
+</div>
+
+<h2 class="unnumbered">Concept index</h2>
+
+
+
+<ul class="index-cp" compact>
+<li><a href="#index-g_t_002eaux-_0040r_007bfile_007d-185"><code>.aux </code><span class="roman">file</span></a>: <a href="#Cross_002dreferences">Cross-references</a></li>
+<li><a href="#index-g_t_002eaux-_0040r_007bfile_007d-58"><code>.aux </code><span class="roman">file</span></a>: <a href="#Citations">Citations</a></li>
+<li><a href="#index-g_t_002ebbl-_0040r_007bfile_007d-61"><code>.bbl </code><span class="roman">file</span></a>: <a href="#Citations">Citations</a></li>
+<li><a href="#index-g_t_002ebib-_0040r_007bfile_007d-60"><code>.bib </code><span class="roman">file</span></a>: <a href="#Citations">Citations</a></li>
+<li><a href="#index-g_t_002ebst-_0040r_007bfiles_007d-68"><code>.bst </code><span class="roman">files</span></a>: <a href="#Citations">Citations</a></li>
+<li><a href="#index-g_t_002ecls-_0040r_007bfiles_007d-440"><code>.cls </code><span class="roman">files</span></a>: <a href="#Loading-LaTeX-packages">Loading LaTeX packages</a></li>
+<li><a href="#index-g_t_002eeps-_0040r_007bfiles_007d-485"><code>.eps </code><span class="roman">files</span></a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-g_t_002efmt-_0040r_007bfile_007d-25"><code>.fmt </code><span class="roman">file</span></a>: <a href="#Invoking-Eplain">Invoking Eplain</a></li>
+<li><a href="#index-g_t_002efmt-_0040r_007bfile_007d-18"><code>.fmt </code><span class="roman">file</span></a>: <a href="#Installation">Installation</a></li>
+<li><a href="#index-g_t_002eidx-_0040r_007bfiles_007d-626"><code>.idx </code><span class="roman">files</span></a>: <a href="#Index-hyperlinks">Index hyperlinks</a></li>
+<li><a href="#index-g_t_002eidx-_0040r_007bfiles_007d-228"><code>.idx </code><span class="roman">files</span></a>: <a href="#Indexing">Indexing</a></li>
+<li><a href="#index-g_t_002eind-_0040r_007bfiles_007d-627"><code>.ind </code><span class="roman">files</span></a>: <a href="#Index-hyperlinks">Index hyperlinks</a></li>
+<li><a href="#index-g_t_002eind-_0040r_007bfiles_007d-229"><code>.ind </code><span class="roman">files</span></a>: <a href="#Indexing">Indexing</a></li>
+<li><a href="#index-g_t_002epdf-_0040r_007bfiles_007d-516"><code>.pdf </code><span class="roman">files</span></a>: <a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></li>
+<li><a href="#index-g_t_002epdf-_0040r_007bfiles_007d-488"><code>.pdf </code><span class="roman">files</span></a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-g_t_002epdf-_0040r_007bfiles_007d-432"><code>.pdf </code><span class="roman">files</span></a>: <a href="#Checking-for-PDF-output">Checking for PDF output</a></li>
+<li><a href="#index-g_t_002eps-_0040r_007bfiles_007d-515"><code>.ps </code><span class="roman">files</span></a>: <a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></li>
+<li><a href="#index-g_t_002esty-_0040r_007bfiles_007d-439"><code>.sty </code><span class="roman">files</span></a>: <a href="#Loading-LaTeX-packages">Loading LaTeX packages</a></li>
+<li><a href="#index-g_t_002etoc-_0040r_007bfile_007d-164"><code>.toc </code><span class="roman">file</span></a>: <a href="#Contents">Contents</a></li>
+<li><a href="#index-active-characters-1119">active characters</a>: <a href="#Category-codes">Category codes</a></li>
+<li><a href="#index-after-index-terms-320">after index terms</a>: <a href="#Customizing-indexing">Customizing indexing</a></li>
+<li><a href="#index-alignments-352">alignments</a>: <a href="#Tables">Tables</a></li>
+<li><a href="#index-all-groups_002c-specifying-983">all groups, specifying</a>: <a href="#Setting-group-types">Setting group types</a></li>
+<li><a href="#index-allocation-macros-1135">allocation macros</a>: <a href="#Allocation-macros">Allocation macros</a></li>
+<li><a href="#index-alphanumeric-references-75">alphanumeric references</a>: <a href="#Citations">Citations</a></li>
+<li><a href="#index-AMS_0040LaTeX_007b_007d-410">AMSLaTeX</a>: <a href="#Logos">Logos</a></li>
+<li><a href="#index-amsppt_002esty-30"><code>amsppt.sty</code></a>: <a href="#Invoking-Eplain">Invoking Eplain</a></li>
+<li><a href="#index-AMS_0040TeX_007b_007d-406">AMSTeX</a>: <a href="#Logos">Logos</a></li>
+<li><a href="#index-AMS_0040TeX_007b_007d-conflicts-31">AMSTeX conflicts</a>: <a href="#Invoking-Eplain">Invoking Eplain</a></li>
+<li><a href="#index-arguments_002c-ignoring-1164">arguments, ignoring</a>: <a href="#Macro-arguments">Macro arguments</a></li>
+<li><a href="#index-arrows-1024">arrows</a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-atom-1185">atom</a>: <a href="#Properties">Properties</a></li>
+<li><a href="#index-autopict_002esty-457"><code>autopict.sty</code></a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-avoiding-boxed-links-961">avoiding boxed links</a>: <a href="#Setting-default-types-and-options">Setting default types and options</a></li>
+<li><a href="#index-avoiding-boxed-links-556">avoiding boxed links</a>: <a href="#URL-hyperlinks">URL hyperlinks</a></li>
+<li><a href="#index-axuiliary-files_002c-existence-of-1217">axuiliary files, existence of</a>: <a href="#Auxiliary-files">Auxiliary files</a></li>
+<li><a href="#index-backslash-character-1122">backslash character</a>: <a href="#Category-codes">Category codes</a></li>
+<li><a href="#index-balancing-of-columns-with-_0040code_007b_005csinglecolumn_007d-376">balancing of columns with <code>\singlecolumn</code></a>: <a href="#Multiple-columns">Multiple columns</a></li>
+<li><a href="#index-Berry_002c-Karl-8">Berry, Karl</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-beveled-hyperlink-border-887">beveled hyperlink border</a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-bibliographies-54">bibliographies</a>: <a href="#Citations">Citations</a></li>
+<li><a href="#index-bibliography-fonts-87">bibliography fonts</a>: <a href="#Formatting-bibliographies">Formatting bibliographies</a></li>
+<li><a href="#index-bibliography-items_002c-extra-space-between-93">bibliography items, extra space between</a>: <a href="#Formatting-bibliographies">Formatting bibliographies</a></li>
+<li><a href="#index-bibliography_002c-formatting-the-82">bibliography, formatting the</a>: <a href="#Formatting-bibliographies">Formatting bibliographies</a></li>
+<li><a href="#index-bibliography_002c-hyperlinks-566">bibliography, hyperlinks</a>: <a href="#Citation-hyperlinks">Citation hyperlinks</a></li>
+<li><a href="#index-Bib_0040TeX_007b_007d-408">BibTeX</a>: <a href="#Logos">Logos</a></li>
+<li><a href="#index-Bib_0040TeX_007b_007d-55">BibTeX</a>: <a href="#Citations">Citations</a></li>
+<li><a href="#index-bibtex-33"><code>bibtex</code></a>: <a href="#Invoking-Eplain">Invoking Eplain</a></li>
+<li><a href="#index-black-boxes-421">black boxes</a>: <a href="#Boxes">Boxes</a></li>
+<li><a href="#index-Borceux_002c-Francis-1086">Borceux, Francis</a>: <a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></li>
+<li><a href="#index-border-color_002c-hyperlink-878">border color, hyperlink</a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-border-style_002c-hyperlink-883">border style, hyperlink</a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-border-width_002c-hyperlink-897">border width, hyperlink</a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-Bott_002c-Raoul-1074">Bott, Raoul</a>: <a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></li>
+<li><a href="#index-boxed-links_002c-avoiding-960">boxed links, avoiding</a>: <a href="#Setting-default-types-and-options">Setting default types and options</a></li>
+<li><a href="#index-boxed-links_002c-avoiding-555">boxed links, avoiding</a>: <a href="#URL-hyperlinks">URL hyperlinks</a></li>
+<li><a href="#index-boxes_002c-open-425">boxes, open</a>: <a href="#Boxes">Boxes</a></li>
+<li><a href="#index-braces_002c-inside-index-entries-270">braces, inside index entries</a>: <a href="#Index-entries-with-special-characters">Index entries with special characters</a></li>
+<li><a href="#index-brackets_002c-inside-index-entries-274">brackets, inside index entries</a>: <a href="#Index-entries-with-special-characters">Index entries with special characters</a></li>
+<li><a href="#index-Brockett_002c-Roger-W_002e-1079">Brockett, Roger W.</a>: <a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></li>
+<li><a href="#index-Butterfly-Lemma-1094">Butterfly Lemma</a>: <a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></li>
+<li><a href="#index-Carlisle_002c-David-444">Carlisle, David</a>: <a href="#Loading-LaTeX-packages">Loading LaTeX packages</a></li>
+<li><a href="#index-category-codes-1115">category codes</a>: <a href="#Category-codes">Category codes</a></li>
+<li><a href="#index-centering-343">centering</a>: <a href="#Justification">Justification</a></li>
+<li><a href="#index-characters_002c-converting-to-1172">characters, converting to</a>: <a href="#Converting-to-characters">Converting to characters</a></li>
+<li><a href="#index-citations-53">citations</a>: <a href="#Citations">Citations</a></li>
+<li><a href="#index-citations_002c-formatting-77">citations, formatting</a>: <a href="#Formatting-citations">Formatting citations</a></li>
+<li><a href="#index-citations_002c-hyperlinks-561">citations, hyperlinks</a>: <a href="#Citation-hyperlinks">Citation hyperlinks</a></li>
+<li><a href="#index-citations_002c-undefined-64">citations, undefined</a>: <a href="#Citations">Citations</a></li>
+<li><a href="#index-cmtt8-281"><code>cmtt8</code></a>: <a href="#Proofing-index-terms">Proofing index terms</a></li>
+<li><a href="#index-color-466">color</a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-color_002c-demo-1261">color, demo</a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-color_002c-hyperlink-border-879">color, hyperlink border</a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-color_002c-hyperlinks-962">color, hyperlinks</a>: <a href="#Setting-default-types-and-options">Setting default types and options</a></li>
+<li><a href="#index-color_002c-hyperlinks-691">color, hyperlinks</a>: <a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></li>
+<li><a href="#index-color_002c-hyperlinks-557">color, hyperlinks</a>: <a href="#URL-hyperlinks">URL hyperlinks</a></li>
+<li><a href="#index-color_002c-problems-with-pdf_0040TeX_007b_007d-469">color, problems with pdfTeX</a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-color_002esty-1264"><code>color.sty</code></a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-color_002esty-965"><code>color.sty</code></a>: <a href="#Setting-default-types-and-options">Setting default types and options</a></li>
+<li><a href="#index-color_002esty-932"><code>color.sty</code></a>: <a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></li>
+<li><a href="#index-color_002esty-560"><code>color.sty</code></a>: <a href="#URL-hyperlinks">URL hyperlinks</a></li>
+<li><a href="#index-color_002esty-461"><code>color.sty</code></a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-colored-links-963">colored links</a>: <a href="#Setting-default-types-and-options">Setting default types and options</a></li>
+<li><a href="#index-colored-links-692">colored links</a>: <a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></li>
+<li><a href="#index-colored-links-558">colored links</a>: <a href="#URL-hyperlinks">URL hyperlinks</a></li>
+<li><a href="#index-column-balancing-with-_0040code_007b_005csinglecolumn_007d-375">column balancing with <code>\singlecolumn</code></a>: <a href="#Multiple-columns">Multiple columns</a></li>
+<li><a href="#index-column-eject-378">column eject</a>: <a href="#Multiple-columns">Multiple columns</a></li>
+<li><a href="#index-commas-after-index-terms-319">commas after index terms</a>: <a href="#Customizing-indexing">Customizing indexing</a></li>
+<li><a href="#index-commas-in-cross_002dreferencing-index-entries-340">commas in cross-referencing index entries</a>: <a href="#Customizing-indexing">Customizing indexing</a></li>
+<li><a href="#index-comments_002c-highlighting-in-listings-1275">comments, highlighting in listings</a>: <a href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029">Highlighting TeX comments in listings (lscommnt.tex)</a></li>
+<li><a href="#index-commutative-diagrams-1023">commutative diagrams</a>: <a href="#Commutative-diagrams">Commutative diagrams</a></li>
+<li><a href="#index-contents-163">contents</a>: <a href="#Contents">Contents</a></li>
+<li><a href="#index-contents_002c-and-verbatim-text-170">contents, and verbatim text</a>: <a href="#Writing-the-_002etoc-file">Writing the .toc file</a></li>
+<li><a href="#index-contents_002c-hyperlinks-672">contents, hyperlinks</a>: <a href="#Contents-hyperlinks">Contents hyperlinks</a></li>
+<li><a href="#index-Con_0040TeX_007b_007dt-473">ConTeXt</a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-continued-index-entries-309">continued index entries</a>: <a href="#Typesetting-an-index">Typesetting an index</a></li>
+<li><a href="#index-covering-homotopy-property-1076">covering homotopy property</a>: <a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></li>
+<li><a href="#index-cross_002dreferences-184">cross-references</a>: <a href="#Cross_002dreferences">Cross-references</a></li>
+<li><a href="#index-cross_002dreferences_002c-defining-general-193">cross-references, defining general</a>: <a href="#Using-generic-references">Using generic references</a></li>
+<li><a href="#index-cross_002dreferences_002c-defining-general-189">cross-references, defining general</a>: <a href="#Defining-generic-references">Defining generic references</a></li>
+<li><a href="#index-cross_002dreferences_002c-demo-1256">cross-references, demo</a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-cross_002dreferences_002c-hyperlinks-577">cross-references, hyperlinks</a>: <a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a></li>
+<li><a href="#index-cross_002dreferencing-index-entries-338">cross-referencing index entries</a>: <a href="#Customizing-indexing">Customizing indexing</a></li>
+<li><a href="#index-cross_002dreferencing-index-entries-262">cross-referencing index entries</a>: <a href="#Modifying-index-entries">Modifying index entries</a></li>
+<li><a href="#index-g_t_0040kbd_007bCTRL_002dL_007d_002c-and-verbatim-listing-158"><kbd>CTRL-L</kbd>, and verbatim listing</a>: <a href="#Verbatim-listing">Verbatim listing</a></li>
+<li><a href="#index-cube-1089">cube</a>: <a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></li>
+<li><a href="#index-customizing-indexing-317">customizing indexing</a>: <a href="#Customizing-indexing">Customizing indexing</a></li>
+<li><a href="#index-dashed-hyperlink-border-881">dashed hyperlink border</a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-date-107">date</a>: <a href="#Time-of-day">Time of day</a></li>
+<li><a href="#index-default-hyperlink-options-976">default hyperlink options</a>: <a href="#Setting-group-types">Setting group types</a></li>
+<li><a href="#index-default-hyperlink-options-937">default hyperlink options</a>: <a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></li>
+<li><a href="#index-default-hyperlink-type-975">default hyperlink type</a>: <a href="#Setting-group-types">Setting group types</a></li>
+<li><a href="#index-default-hyperlink-type-936">default hyperlink type</a>: <a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></li>
+<li><a href="#index-defining-general-references-191">defining general references</a>: <a href="#Using-generic-references">Using generic references</a></li>
+<li><a href="#index-defining-general-references-187">defining general references</a>: <a href="#Defining-generic-references">Defining generic references</a></li>
+<li><a href="#index-definitions_002c-global-1128">definitions, global</a>: <a href="#Category-codes">Category codes</a></li>
+<li><a href="#index-demo-files-1235">demo files</a>: <a href="#Demo-files">Demo files</a></li>
+<li><a href="#index-destgroup-538">destgroup</a>: <a href="#Implicit-hyperlinks">Implicit hyperlinks</a></li>
+<li><a href="#index-destgroup-_0060bib_0027-569">destgroup `bib'</a>: <a href="#Citation-hyperlinks">Citation hyperlinks</a></li>
+<li><a href="#index-destgroup-_0060definexref_0027-580">destgroup `definexref'</a>: <a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a></li>
+<li><a href="#index-destgroup-_0060eq_0027-607">destgroup `eq'</a>: <a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></li>
+<li><a href="#index-destgroup-_0060foot_0027-664">destgroup `foot'</a>: <a href="#Footnote-hyperlinks">Footnote hyperlinks</a></li>
+<li><a href="#index-destgroup-_0060footback_0027-665">destgroup `footback'</a>: <a href="#Footnote-hyperlinks">Footnote hyperlinks</a></li>
+<li><a href="#index-destgroup-_0060idx_0027-623">destgroup `idx'</a>: <a href="#Index-hyperlinks">Index hyperlinks</a></li>
+<li><a href="#index-destgroup-_0060li_0027-575">destgroup `li'</a>: <a href="#List-hyperlinks">List hyperlinks</a></li>
+<li><a href="#index-destgroup-_0060xrdef_0027-594">destgroup `xrdef'</a>: <a href="#Page-reference-hyperlinks">Page reference hyperlinks</a></li>
+<li><a href="#index-destgroup-options-989">destgroup options</a>: <a href="#Setting-group-options">Setting group options</a></li>
+<li><a href="#index-destgroup-options-955">destgroup options</a>: <a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></li>
+<li><a href="#index-destgroup-options_002c-demo-1249">destgroup options, demo</a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-destgroup-type-973">destgroup type</a>: <a href="#Setting-group-types">Setting group types</a></li>
+<li><a href="#index-destgroup-type-954">destgroup type</a>: <a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></li>
+<li><a href="#index-destgroup-type_002c-demo-1252">destgroup type, demo</a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-destination-group-537">destination group</a>: <a href="#Implicit-hyperlinks">Implicit hyperlinks</a></li>
+<li><a href="#index-destination-options-525">destination options</a>: <a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></li>
+<li><a href="#index-destination-options_002c-common-675">destination options, common</a>: <a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></li>
+<li><a href="#index-destination-options_002c-_0040code_007bdvipdfm_007d-789">destination options, <code>dvipdfm</code></a>: <a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></li>
+<li><a href="#index-destination-options_002c-_0040code_007bhypertex_007d-715">destination options, <code>hypertex</code></a>: <a href="#Destination-options-for-hypertex">Destination options for hypertex</a></li>
+<li><a href="#index-destination-options_002c-_0040code_007bpdftex_007d-788">destination options, <code>pdftex</code></a>: <a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></li>
+<li><a href="#index-destination-type-522">destination type</a>: <a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></li>
+<li><a href="#index-destination-types_002c-_0040code_007bdvipdfm_007d-756">destination types, <code>dvipdfm</code></a>: <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></li>
+<li><a href="#index-destination-types_002c-_0040code_007bhypertex_007d-707">destination types, <code>hypertex</code></a>: <a href="#Destination-types-for-hypertex">Destination types for hypertex</a></li>
+<li><a href="#index-destination-types_002c-_0040code_007bpdftex_007d-755">destination types, <code>pdftex</code></a>: <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></li>
+<li><a href="#index-destinations_002c-default-options-980">destinations, default options</a>: <a href="#Setting-group-types">Setting group types</a></li>
+<li><a href="#index-destinations_002c-default-options-941">destinations, default options</a>: <a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></li>
+<li><a href="#index-destinations_002c-default-type-979">destinations, default type</a>: <a href="#Setting-group-types">Setting group types</a></li>
+<li><a href="#index-destinations_002c-default-type-940">destinations, default type</a>: <a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></li>
+<li><a href="#index-destinations_002c-dimensions-801">destinations, dimensions</a>: <a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></li>
+<li><a href="#index-destinations_002c-disabling-1010">destinations, disabling</a>: <a href="#Turning-hyperlinks-on_002foff">Turning hyperlinks on/off</a></li>
+<li><a href="#index-destinations_002c-disabling-924">destinations, disabling</a>: <a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></li>
+<li><a href="#index-destinations_002c-group-options-988">destinations, group options</a>: <a href="#Setting-group-options">Setting group options</a></li>
+<li><a href="#index-destinations_002c-group-options-953">destinations, group options</a>: <a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></li>
+<li><a href="#index-destinations_002c-group-options_002c-demo-1248">destinations, group options, demo</a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-destinations_002c-group-type-972">destinations, group type</a>: <a href="#Setting-group-types">Setting group types</a></li>
+<li><a href="#index-destinations_002c-group-type-952">destinations, group type</a>: <a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></li>
+<li><a href="#index-destinations_002c-group-type_002c-demo-1251">destinations, group type, demo</a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-destinations_002c-in-another-file-850">destinations, in another file</a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-destinations_002c-in-another-file-732">destinations, in another file</a>: <a href="#Link-types-for-hypertex">Link types for hypertex</a></li>
+<li><a href="#index-destinations_002c-large-operators-1000">destinations, large operators</a>: <a href="#Setting-group-options">Setting group options</a></li>
+<li><a href="#index-destinations_002c-large-operators-686">destinations, large operators</a>: <a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></li>
+<li><a href="#index-destinations_002c-magnification-796">destinations, magnification</a>: <a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></li>
+<li><a href="#index-destinations_002c-named-837">destinations, named</a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-destinations_002c-named-724">destinations, named</a>: <a href="#Link-types-for-hypertex">Link types for hypertex</a></li>
+<li><a href="#index-destinations_002c-numbered-868">destinations, numbered</a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-destinations_002c-page-845">destinations, page</a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-destinations_002c-raising-680">destinations, raising</a>: <a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></li>
+<li><a href="#index-destinations_002c-_0040acronym_007bURL_007d-841">destinations, <acronym>URL</acronym></a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-destinations_002c-_0040acronym_007bURL_007d-728">destinations, <acronym>URL</acronym></a>: <a href="#Link-types-for-hypertex">Link types for hypertex</a></li>
+<li><a href="#index-detecting-numbers-1200">detecting numbers</a>: <a href="#g_t_005cifinteger-and-_005cisinteger">\ifinteger and \isinteger</a></li>
+<li><a href="#index-diagnostics-36">diagnostics</a>: <a href="#Diagnostics">Diagnostics</a></li>
+<li><a href="#index-Diagram_002c-macros-for-LaTeX-1087">Diagram, macros for LaTeX</a>: <a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></li>
+<li><a href="#index-dimensions_002c-hyperlink-910">dimensions, hyperlink</a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-dimensions_002c-hyperlink-destination-803">dimensions, hyperlink destination</a>: <a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></li>
+<li><a href="#index-disabling-hyperlinks-1008">disabling hyperlinks</a>: <a href="#Turning-hyperlinks-on_002foff">Turning hyperlinks on/off</a></li>
+<li><a href="#index-disabling-hyperlinks-922">disabling hyperlinks</a>: <a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></li>
+<li><a href="#index-displayed-math-and-hyperlinks-997">displayed math and hyperlinks</a>: <a href="#Setting-group-options">Setting group options</a></li>
+<li><a href="#index-displayed-math-and-hyperlinks-683">displayed math and hyperlinks</a>: <a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></li>
+<li><a href="#index-displays_002c-left_002djustifying-94">displays, left-justifying</a>: <a href="#Displays">Displays</a></li>
+<li><a href="#index-do_0040dots_007b_007dwhile-loops-1157">do<small class="dots">...</small>while loops</a>: <a href="#Iteration">Iteration</a></li>
+<li><a href="#index-double-column-output-367">double column output</a>: <a href="#Multiple-columns">Multiple columns</a></li>
+<li><a href="#index-double-columns-in-indexes-301">double columns in indexes</a>: <a href="#Typesetting-an-index">Typesetting an index</a></li>
+<li><a href="#index-g_t_0040code_007bdraft_007d_002c-option-for-_0040file_007bgraphics_002esty_007d-478"><code>draft</code>, option for <samp><span class="file">graphics.sty</span></samp></a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-driver-_0040code_007bdvipdfm_007d-752">driver <code>dvipdfm</code></a>: <a href="#Hyperlink-drivers-pdftex-and-dvipdfm">Hyperlink drivers pdftex and dvipdfm</a></li>
+<li><a href="#index-driver-_0040code_007bhypertex_007d-696">driver <code>hypertex</code></a>: <a href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a></li>
+<li><a href="#index-driver-_0040code_007bnolinks_007d-919">driver <code>nolinks</code></a>: <a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></li>
+<li><a href="#index-driver-_0040code_007bpdftex_007d-751">driver <code>pdftex</code></a>: <a href="#Hyperlink-drivers-pdftex-and-dvipdfm">Hyperlink drivers pdftex and dvipdfm</a></li>
+<li><a href="#index-drivers_002c-hyperlink-513">drivers, hyperlink</a>: <a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></li>
+<li><a href="#index-dvipdfm-699"><code>dvipdfm</code></a>: <a href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a></li>
+<li><a href="#index-dvipdfm-518"><code>dvipdfm</code></a>: <a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></li>
+<li><a href="#index-g_t_0040code_007bdvipdfm_007d_002c-destination-options-793"><code>dvipdfm</code>, destination options</a>: <a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></li>
+<li><a href="#index-g_t_0040code_007bdvipdfm_007d_002c-destination-types-760"><code>dvipdfm</code>, destination types</a>: <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></li>
+<li><a href="#index-g_t_0040code_007bdvipdfm_007d_002c-hyperlink-driver-750"><code>dvipdfm</code>, hyperlink driver</a>: <a href="#Hyperlink-drivers-pdftex-and-dvipdfm">Hyperlink drivers pdftex and dvipdfm</a></li>
+<li><a href="#index-g_t_0040code_007bdvipdfm_007d_002c-link-options-875"><code>dvipdfm</code>, link options</a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-g_t_0040code_007bdvipdfm_007d_002c-link-types-834"><code>dvipdfm</code>, link types</a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-dvips-700"><code>dvips</code></a>: <a href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a></li>
+<li><a href="#index-Eijkhout_002c-Victor-1162">Eijkhout, Victor</a>: <a href="#Iteration">Iteration</a></li>
+<li><a href="#index-eject-in-multicolumns-379">eject in multicolumns</a>: <a href="#Multiple-columns">Multiple columns</a></li>
+<li><a href="#index-electronic-mail-addresses_002c-breaking-504">electronic mail addresses, breaking</a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-electronic-mail-addresses_002c-breaking-398">electronic mail addresses, breaking</a>: <a href="#Paths">Paths</a></li>
+<li><a href="#index-empty-argument_002c-checking-for-1195">empty argument, checking for</a>: <a href="#g_t_005cifempty">\ifempty</a></li>
+<li><a href="#index-empty-equation-labels-206">empty equation labels</a>: <a href="#Equation-references">Equation references</a></li>
+<li><a href="#index-empty-equation-labels_002c-referring-to-209">empty equation labels, referring to</a>: <a href="#Equation-references">Equation references</a></li>
+<li><a href="#index-empty-string_002c-checking-for-1194">empty string, checking for</a>: <a href="#g_t_005cifempty">\ifempty</a></li>
+<li><a href="#index-Encapsulated-PostScript-483">Encapsulated PostScript</a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-environments_002c-user_002ddefined-1222">environments, user-defined</a>: <a href="#User_002ddefined-environments">User-defined environments</a></li>
+<li><a href="#index-Eplain_002c-installing-13">Eplain, installing</a>: <a href="#Installation">Installation</a></li>
+<li><a href="#index-Eplain_002c-invoking-24">Eplain, invoking</a>: <a href="#Invoking-Eplain">Invoking Eplain</a></li>
+<li><a href="#index-Eplain_002c-purpose-of-1">Eplain, purpose of</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-Eplain_002c-upgrading-15">Eplain, upgrading</a>: <a href="#Installation">Installation</a></li>
+<li><a href="#index-eplain_002eaux-21"><code>eplain.aux</code></a>: <a href="#Installation">Installation</a></li>
+<li><a href="#index-eplain_002efmt-20"><code>eplain.fmt</code></a>: <a href="#Installation">Installation</a></li>
+<li><a href="#index-g_t_0040acronym_007bEPS_007d-484"><acronym>EPS</acronym></a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-epstopdf-489"><code>epstopdf</code></a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-epstopdf_002esty-482"><code>epstopdf.sty</code></a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-equation-labels_002c-characters-valid-in-214">equation labels, characters valid in</a>: <a href="#Equation-references">Equation references</a></li>
+<li><a href="#index-equation-numbers_002c-formatting-of-215">equation numbers, formatting of</a>: <a href="#Formatting-equation-references">Formatting equation references</a></li>
+<li><a href="#index-equations_002c-giving-numbers-to-all-208">equations, giving numbers to all</a>: <a href="#Equation-references">Equation references</a></li>
+<li><a href="#index-equations_002c-groups-of-218">equations, groups of</a>: <a href="#Subequation-references">Subequation references</a></li>
+<li><a href="#index-equations_002c-hyperlinks-604">equations, hyperlinks</a>: <a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></li>
+<li><a href="#index-equations_002c-numbering-203">equations, numbering</a>: <a href="#Equation-references">Equation references</a></li>
+<li><a href="#index-equations_002c-references-to-202">equations, references to</a>: <a href="#Equation-references">Equation references</a></li>
+<li><a href="#index-error-messages-45">error messages</a>: <a href="#Diagnostics">Diagnostics</a></li>
+<li><a href="#index-error-on-_0040code_007b_005cinput_007d-454">error on <code>\input</code></a>: <a href="#Environment-for-loading-packages">Environment for loading packages</a></li>
+<li><a href="#index-escape-character_002c-changing-verbatim-161">escape character, changing verbatim</a>: <a href="#Verbatim-listing">Verbatim listing</a></li>
+<li><a href="#index-exact-index-hyperlinks-631">exact index hyperlinks</a>: <a href="#Exact-destinations-for-index-terms">Exact destinations for index terms</a></li>
+<li><a href="#index-expansion_002c-one_002dlevel-1188">expansion, one-level</a>: <a href="#g_t_005cexpandonce">\expandonce</a></li>
+<li><a href="#index-explicit-hyperlinks-527">explicit hyperlinks</a>: <a href="#Explicit-hyperlinks">Explicit hyperlinks</a></li>
+<li><a href="#index-explicit-hyperlinks_002c-demo-1238">explicit hyperlinks, demo</a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-file_002c-hyperlink-to-849">file, hyperlink to</a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-file_002c-hyperlink-to-731">file, hyperlink to</a>: <a href="#Link-types-for-hypertex">Link types for hypertex</a></li>
+<li><a href="#index-g_t_0040samp_007bfile_003a_007d-links-547">`<samp><span class="samp">file:</span></samp>' links</a>: <a href="#General-hyperlinks">General hyperlinks</a></li>
+<li><a href="#index-filenames_002c-breaking-503">filenames, breaking</a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-filenames_002c-breaking-397">filenames, breaking</a>: <a href="#Paths">Paths</a></li>
+<li><a href="#index-files_002c-verbatim-listing-of-149">files, verbatim listing of</a>: <a href="#Verbatim-listing">Verbatim listing</a></li>
+<li><a href="#index-files_002c-verbatim-listing-of_002c-demo-1274">files, verbatim listing of, demo</a>: <a href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029">Highlighting TeX comments in listings (lscommnt.tex)</a></li>
+<li><a href="#index-filtering-index-entries-with-hyperlinks-635">filtering index entries with hyperlinks</a>: <a href="#Exact-destinations-for-index-terms">Exact destinations for index terms</a></li>
+<li><a href="#index-footnotes_002c-hyperlinks-658">footnotes, hyperlinks</a>: <a href="#Footnote-hyperlinks">Footnote hyperlinks</a></li>
+<li><a href="#index-footnotes_002c-numbered-386">footnotes, numbered</a>: <a href="#Footnotes">Footnotes</a></li>
+<li><a href="#index-for-loops-1155">for loops</a>: <a href="#Iteration">Iteration</a></li>
+<li><a href="#index-form-feed-character_002c-and-verbatim-listing-157">form feed character, and verbatim listing</a>: <a href="#Verbatim-listing">Verbatim listing</a></li>
+<li><a href="#index-format-file-19">format file</a>: <a href="#Installation">Installation</a></li>
+<li><a href="#index-formatting-index-entries-307">formatting index entries</a>: <a href="#Typesetting-an-index">Typesetting an index</a></li>
+<li><a href="#index-fractions-394">fractions</a>: <a href="#Fractions">Fractions</a></li>
+<li><a href="#index-g_t_0040r_007bGhostscript_007d-701"><span class="roman">Ghostscript</span></a>: <a href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a></li>
+<li><a href="#index-gobbling-arguments-1166">gobbling arguments</a>: <a href="#Macro-arguments">Macro arguments</a></li>
+<li><a href="#index-golden-mean-1082">golden mean</a>: <a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></li>
+<li><a href="#index-Graham_002c-Ronald-L_002e-71">Graham, Ronald L.</a>: <a href="#Citations">Citations</a></li>
+<li><a href="#index-graphics-collection_002c-_0040LaTeX_007b_007d-933">graphics collection, LaTeX</a>: <a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></li>
+<li><a href="#index-graphics-collection_002c-_0040LaTeX_007b_007d-464">graphics collection, LaTeX</a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-graphics-collection_002c-_0040LaTeX_007b_007d-441">graphics collection, LaTeX</a>: <a href="#Loading-LaTeX-packages">Loading LaTeX packages</a></li>
+<li><a href="#index-graphics-collection_002c-_0040LaTeX_007b_007d_002c-demo-1259">graphics collection, LaTeX, demo</a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-graphics_002c-omitting-typesetting-of-477">graphics, omitting typesetting of</a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-graphics_002c-problems-with-pdf_0040TeX_007b_007d-470">graphics, problems with pdfTeX</a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-graphics_002esty-462"><code>graphics.sty</code></a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-graphicx_002esty-1265"><code>graphicx.sty</code></a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-graphicx_002esty-463"><code>graphicx.sty</code></a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-grid-1085">grid</a>: <a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></li>
+<li><a href="#index-group-_0060_0027-_0028empty_0029-974">group `' (empty)</a>: <a href="#Setting-group-types">Setting group types</a></li>
+<li><a href="#index-group-_0060_002a_0027-981">group `*'</a>: <a href="#Setting-group-types">Setting group types</a></li>
+<li><a href="#index-group-_0060bib_0027-568">group `bib'</a>: <a href="#Citation-hyperlinks">Citation hyperlinks</a></li>
+<li><a href="#index-group-_0060cite_0027-563">group `cite'</a>: <a href="#Citation-hyperlinks">Citation hyperlinks</a></li>
+<li><a href="#index-group-_0060definexref_0027-579">group `definexref'</a>: <a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a></li>
+<li><a href="#index-group-_0060eq_0027-1002">group `eq'</a>: <a href="#Setting-group-options">Setting group options</a></li>
+<li><a href="#index-group-_0060eq_0027-606">group `eq'</a>: <a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></li>
+<li><a href="#index-group-_0060foot_0027-660">group `foot'</a>: <a href="#Footnote-hyperlinks">Footnote hyperlinks</a></li>
+<li><a href="#index-group-_0060footback_0027-661">group `footback'</a>: <a href="#Footnote-hyperlinks">Footnote hyperlinks</a></li>
+<li><a href="#index-group-_0060hrefext_0027-545">group `hrefext'</a>: <a href="#General-hyperlinks">General hyperlinks</a></li>
+<li><a href="#index-group-_0060hrefint_0027-541">group `hrefint'</a>: <a href="#General-hyperlinks">General hyperlinks</a></li>
+<li><a href="#index-group-_0060idx_0027-621">group `idx'</a>: <a href="#Index-hyperlinks">Index hyperlinks</a></li>
+<li><a href="#index-group-_0060li_0027-574">group `li'</a>: <a href="#List-hyperlinks">List hyperlinks</a></li>
+<li><a href="#index-group-_0060ref_0027-581">group `ref'</a>: <a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a></li>
+<li><a href="#index-group-_0060url_0027-551">group `url'</a>: <a href="#URL-hyperlinks">URL hyperlinks</a></li>
+<li><a href="#index-group-_0060xrdef_0027-593">group `xrdef'</a>: <a href="#Page-reference-hyperlinks">Page reference hyperlinks</a></li>
+<li><a href="#index-group-_0060xref_0027-598">group `xref'</a>: <a href="#Page-reference-hyperlinks">Page reference hyperlinks</a></li>
+<li><a href="#index-group-option-list-1005">group option list</a>: <a href="#Setting-group-options">Setting group options</a></li>
+<li><a href="#index-group-options_002c-hyperlink-984">group options, hyperlink</a>: <a href="#Setting-group-options">Setting group options</a></li>
+<li><a href="#index-group-options_002c-hyperlink-945">group options, hyperlink</a>: <a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></li>
+<li><a href="#index-group-options_002c-hyperlink_002c-demo-1244">group options, hyperlink, demo</a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-group-type_002c-hyperlink-968">group type, hyperlink</a>: <a href="#Setting-group-types">Setting group types</a></li>
+<li><a href="#index-group-type_002c-hyperlink-944">group type, hyperlink</a>: <a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></li>
+<li><a href="#index-group-type_002c-hyperlink_002c-demo-1250">group type, hyperlink, demo</a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-group_002c-destination-539">group, destination</a>: <a href="#Implicit-hyperlinks">Implicit hyperlinks</a></li>
+<li><a href="#index-group_002c-disabling-hyperlinks-1015">group, disabling hyperlinks</a>: <a href="#Turning-hyperlinks-on_002foff-for-a-group">Turning hyperlinks on/off for a group</a></li>
+<li><a href="#index-group_002c-link-536">group, link</a>: <a href="#Implicit-hyperlinks">Implicit hyperlinks</a></li>
+<li><a href="#index-group_002c-preserving-option-list-992">group, preserving option list</a>: <a href="#Setting-group-options">Setting group options</a></li>
+<li><a href="#index-groups_002c-specifying-all-982">groups, specifying all</a>: <a href="#Setting-group-types">Setting group types</a></li>
+<li><a href="#index-hanging-on-_0040code_007b_005cinput_007d-453">hanging on <code>\input</code></a>: <a href="#Environment-for-loading-packages">Environment for loading packages</a></li>
+<li><a href="#index-help-messages-44">help messages</a>: <a href="#Diagnostics">Diagnostics</a></li>
+<li><a href="#index-highlight-modes_002c-hyperlink-903">highlight modes, hyperlink</a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-highlighting-500">highlighting</a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-highlighting_002c-in-listings-1276">highlighting, in listings</a>: <a href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029">Highlighting TeX comments in listings (lscommnt.tex)</a></li>
+<li><a href="#index-H_0040_0022oppner_002c-Klaus-481">H&ouml;ppner, Klaus</a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-hooks-1178">hooks</a>: <a href="#Hooks">Hooks</a></li>
+<li><a href="#index-hyperlink-border-color-877">hyperlink border color</a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-hyperlink-color-964">hyperlink color</a>: <a href="#Setting-default-types-and-options">Setting default types and options</a></li>
+<li><a href="#index-hyperlink-color-693">hyperlink color</a>: <a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></li>
+<li><a href="#index-hyperlink-color-559">hyperlink color</a>: <a href="#URL-hyperlinks">URL hyperlinks</a></li>
+<li><a href="#index-hyperlink-destination_002c-dimensions-802">hyperlink destination, dimensions</a>: <a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></li>
+<li><a href="#index-hyperlink-destination_002c-magnification-797">hyperlink destination, magnification</a>: <a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></li>
+<li><a href="#index-hyperlink-destination_002c-named-838">hyperlink destination, named</a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-hyperlink-destination_002c-named-725">hyperlink destination, named</a>: <a href="#Link-types-for-hypertex">Link types for hypertex</a></li>
+<li><a href="#index-hyperlink-destination_002c-numbered-869">hyperlink destination, numbered</a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-hyperlink-destination_002c-page-846">hyperlink destination, page</a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-hyperlink-destination_002c-raising-679">hyperlink destination, raising</a>: <a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></li>
+<li><a href="#index-hyperlink-dimensions-909">hyperlink dimensions</a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-hyperlink-driver-_0040code_007bdvipdfm_007d-754">hyperlink driver <code>dvipdfm</code></a>: <a href="#Hyperlink-drivers-pdftex-and-dvipdfm">Hyperlink drivers pdftex and dvipdfm</a></li>
+<li><a href="#index-hyperlink-driver-_0040code_007bhypertex_007d-697">hyperlink driver <code>hypertex</code></a>: <a href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a></li>
+<li><a href="#index-hyperlink-driver-_0040code_007bnolinks_007d-920">hyperlink driver <code>nolinks</code></a>: <a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></li>
+<li><a href="#index-hyperlink-driver-_0040code_007bpdftex_007d-753">hyperlink driver <code>pdftex</code></a>: <a href="#Hyperlink-drivers-pdftex-and-dvipdfm">Hyperlink drivers pdftex and dvipdfm</a></li>
+<li><a href="#index-hyperlink-drivers-512">hyperlink drivers</a>: <a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></li>
+<li><a href="#index-hyperlink-group_002c-disabling-hyperlinks-1016">hyperlink group, disabling hyperlinks</a>: <a href="#Turning-hyperlinks-on_002foff-for-a-group">Turning hyperlinks on/off for a group</a></li>
+<li><a href="#index-hyperlink-group_002c-preserving-option-list-993">hyperlink group, preserving option list</a>: <a href="#Setting-group-options">Setting group options</a></li>
+<li><a href="#index-hyperlink-options_002c-common-674">hyperlink options, common</a>: <a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></li>
+<li><a href="#index-hyperlinks_002c-bibliography-567">hyperlinks, bibliography</a>: <a href="#Citation-hyperlinks">Citation hyperlinks</a></li>
+<li><a href="#index-hyperlinks_002c-border-style-882">hyperlinks, border style</a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-hyperlinks_002c-border-width-896">hyperlinks, border width</a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-hyperlinks_002c-citations-562">hyperlinks, citations</a>: <a href="#Citation-hyperlinks">Citation hyperlinks</a></li>
+<li><a href="#index-hyperlinks_002c-cross_002dreferences-578">hyperlinks, cross-references</a>: <a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a></li>
+<li><a href="#index-hyperlinks_002c-default-options-978">hyperlinks, default options</a>: <a href="#Setting-group-types">Setting group types</a></li>
+<li><a href="#index-hyperlinks_002c-default-options-939">hyperlinks, default options</a>: <a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></li>
+<li><a href="#index-hyperlinks_002c-default-type-977">hyperlinks, default type</a>: <a href="#Setting-group-types">Setting group types</a></li>
+<li><a href="#index-hyperlinks_002c-default-type-938">hyperlinks, default type</a>: <a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></li>
+<li><a href="#index-hyperlinks_002c-demo-1237">hyperlinks, demo</a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-hyperlinks_002c-disabling-1009">hyperlinks, disabling</a>: <a href="#Turning-hyperlinks-on_002foff">Turning hyperlinks on/off</a></li>
+<li><a href="#index-hyperlinks_002c-disabling-923">hyperlinks, disabling</a>: <a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></li>
+<li><a href="#index-hyperlinks_002c-equations-605">hyperlinks, equations</a>: <a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></li>
+<li><a href="#index-hyperlinks_002c-explicit-528">hyperlinks, explicit</a>: <a href="#Explicit-hyperlinks">Explicit hyperlinks</a></li>
+<li><a href="#index-hyperlinks_002c-explicit_002c-demo-1239">hyperlinks, explicit, demo</a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-hyperlinks_002c-filtering-index-entries-636">hyperlinks, filtering index entries</a>: <a href="#Exact-destinations-for-index-terms">Exact destinations for index terms</a></li>
+<li><a href="#index-hyperlinks_002c-footnotes-659">hyperlinks, footnotes</a>: <a href="#Footnote-hyperlinks">Footnote hyperlinks</a></li>
+<li><a href="#index-hyperlinks_002c-group-option-list-1006">hyperlinks, group option list</a>: <a href="#Setting-group-options">Setting group options</a></li>
+<li><a href="#index-hyperlinks_002c-group-options-985">hyperlinks, group options</a>: <a href="#Setting-group-options">Setting group options</a></li>
+<li><a href="#index-hyperlinks_002c-group-options-947">hyperlinks, group options</a>: <a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></li>
+<li><a href="#index-hyperlinks_002c-group-options_002c-demo-1245">hyperlinks, group options, demo</a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-hyperlinks_002c-group-type-969">hyperlinks, group type</a>: <a href="#Setting-group-types">Setting group types</a></li>
+<li><a href="#index-hyperlinks_002c-group-type-946">hyperlinks, group type</a>: <a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></li>
+<li><a href="#index-hyperlinks_002c-highlight-mode-902">hyperlinks, highlight mode</a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-hyperlinks_002c-implicit-533">hyperlinks, implicit</a>: <a href="#Implicit-hyperlinks">Implicit hyperlinks</a></li>
+<li><a href="#index-hyperlinks_002c-implicit_002c-demo-1241">hyperlinks, implicit, demo</a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-hyperlinks_002c-index-620">hyperlinks, index</a>: <a href="#Index-hyperlinks">Index hyperlinks</a></li>
+<li><a href="#index-hyperlinks_002c-index-destination-placement-647">hyperlinks, index destination placement</a>: <a href="#Choosing-destination-placement">Choosing destination placement</a></li>
+<li><a href="#index-hyperlinks_002c-index_002c-exact-633">hyperlinks, index, exact</a>: <a href="#Exact-destinations-for-index-terms">Exact destinations for index terms</a></li>
+<li><a href="#index-hyperlinks_002c-large-operators-999">hyperlinks, large operators</a>: <a href="#Setting-group-options">Setting group options</a></li>
+<li><a href="#index-hyperlinks_002c-large-operators-685">hyperlinks, large operators</a>: <a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></li>
+<li><a href="#index-hyperlinks_002c-lists-572">hyperlinks, lists</a>: <a href="#List-hyperlinks">List hyperlinks</a></li>
+<li><a href="#index-hyperlinks_002c-opening-in-a-new-window-905">hyperlinks, opening in a new window</a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-hyperlinks_002c-page-references-592">hyperlinks, page references</a>: <a href="#Page-reference-hyperlinks">Page reference hyperlinks</a></li>
+<li><a href="#index-hyperlinks_002c-preserving-page_002dbreaking-928">hyperlinks, preserving page-breaking</a>: <a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></li>
+<li><a href="#index-hyperlinks_002c-preserving-spacing-926">hyperlinks, preserving spacing</a>: <a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></li>
+<li><a href="#index-hyperlinks_002c-see-and-see-also-index-entries-652">hyperlinks, see and see also index entries</a>: <a href="#Hyperlinks-in-see-and-see-also-entries">Hyperlinks in see and see also entries</a></li>
+<li><a href="#index-hyperlinks_002c-table-of-contents-673">hyperlinks, table of contents</a>: <a href="#Contents-hyperlinks">Contents hyperlinks</a></li>
+<li><a href="#index-hyperlinks_002c-to-another-file-851">hyperlinks, to another file</a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-hyperlinks_002c-to-another-file-733">hyperlinks, to another file</a>: <a href="#Link-types-for-hypertex">Link types for hypertex</a></li>
+<li><a href="#index-hyperlinks_002c-_0040acronym_007bURL_007d-842">hyperlinks, <acronym>URL</acronym></a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-hyperlinks_002c-_0040acronym_007bURL_007d-729">hyperlinks, <acronym>URL</acronym></a>: <a href="#Link-types-for-hypertex">Link types for hypertex</a></li>
+<li><a href="#index-hyperlinks_002c-_0040acronym_007bURL_007d-550">hyperlinks, <acronym>URL</acronym></a>: <a href="#URL-hyperlinks">URL hyperlinks</a></li>
+<li><a href="#index-hyperlinks_002c-_0040acronym_007bURL_007d-544">hyperlinks, <acronym>URL</acronym></a>: <a href="#General-hyperlinks">General hyperlinks</a></li>
+<li><a href="#index-hyperref_002esty-507"><code>hyperref.sty</code></a>: <a href="#Packages-known-not-to-work">Packages known not to work</a></li>
+<li><a href="#index-g_t_0040code_007bhypertex_007d_002c-destination-options-717"><code>hypertex</code>, destination options</a>: <a href="#Destination-options-for-hypertex">Destination options for hypertex</a></li>
+<li><a href="#index-g_t_0040code_007bhypertex_007d_002c-destination-types-709"><code>hypertex</code>, destination types</a>: <a href="#Destination-types-for-hypertex">Destination types for hypertex</a></li>
+<li><a href="#index-g_t_0040code_007bhypertex_007d_002c-hyperlink-driver-695"><code>hypertex</code>, hyperlink driver</a>: <a href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a></li>
+<li><a href="#index-g_t_0040code_007bhypertex_007d_002c-link-options-743"><code>hypertex</code>, link options</a>: <a href="#Link-options-for-hypertex">Link options for hypertex</a></li>
+<li><a href="#index-g_t_0040code_007bhypertex_007d_002c-link-types-721"><code>hypertex</code>, link types</a>: <a href="#Link-types-for-hypertex">Link types for hypertex</a></li>
+<li><a href="#index-hypertext-links-511">hypertext links</a>: <a href="#Hyperlinks">Hyperlinks</a></li>
+<li><a href="#index-identifying-numbers-1201">identifying numbers</a>: <a href="#g_t_005cifinteger-and-_005cisinteger">\ifinteger and \isinteger</a></li>
+<li><a href="#index-idxuniq-634"><code>idxuniq</code></a>: <a href="#Exact-destinations-for-index-terms">Exact destinations for index terms</a></li>
+<li><a href="#index-ignoring-arguments-1165">ignoring arguments</a>: <a href="#Macro-arguments">Macro arguments</a></li>
+<li><a href="#index-implicit-hyperlinks-532">implicit hyperlinks</a>: <a href="#Implicit-hyperlinks">Implicit hyperlinks</a></li>
+<li><a href="#index-implicit-hyperlinks_002c-demo-1240">implicit hyperlinks, demo</a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-inaccessible-macros-1124">inaccessible macros</a>: <a href="#Category-codes">Category codes</a></li>
+<li><a href="#index-index-entries-and-ranges-258">index entries and ranges</a>: <a href="#Modifying-index-entries">Modifying index entries</a></li>
+<li><a href="#index-index-entries-containing-braces-271">index entries containing braces</a>: <a href="#Index-entries-with-special-characters">Index entries with special characters</a></li>
+<li><a href="#index-index-entries-containing-brackets-275">index entries containing brackets</a>: <a href="#Index-entries-with-special-characters">Index entries with special characters</a></li>
+<li><a href="#index-index-entries-with-special-characters-266">index entries with special characters</a>: <a href="#Index-entries-with-special-characters">Index entries with special characters</a></li>
+<li><a href="#index-index-entries_0027-page-numbers_002c-modifying-255">index entries' page numbers, modifying</a>: <a href="#Modifying-index-entries">Modifying index entries</a></li>
+<li><a href="#index-index-entries_002c-and-cross_002dreferencing-339">index entries, and cross-referencing</a>: <a href="#Customizing-indexing">Customizing indexing</a></li>
+<li><a href="#index-index-entries_002c-and-cross_002dreferencing-263">index entries, and cross-referencing</a>: <a href="#Modifying-index-entries">Modifying index entries</a></li>
+<li><a href="#index-index-entries_002c-proofing-277">index entries, proofing</a>: <a href="#Proofing-index-terms">Proofing index terms</a></li>
+<li><a href="#index-index-entries_002c-with-verbatim-text-267">index entries, with verbatim text</a>: <a href="#Index-entries-with-special-characters">Index entries with special characters</a></li>
+<li><a href="#index-index-entry-continuations-310">index entry continuations</a>: <a href="#Typesetting-an-index">Typesetting an index</a></li>
+<li><a href="#index-index-entry-formatting-306">index entry formatting</a>: <a href="#Typesetting-an-index">Typesetting an index</a></li>
+<li><a href="#index-index-entry-general-sorting-250">index entry general sorting</a>: <a href="#Indexing-commands">Indexing commands</a></li>
+<li><a href="#index-index-fonts-299">index fonts</a>: <a href="#Typesetting-an-index">Typesetting an index</a></li>
+<li><a href="#index-index-groupings-316">index groupings</a>: <a href="#Typesetting-an-index">Typesetting an index</a></li>
+<li><a href="#index-index-hyperlink-619">index hyperlink</a>: <a href="#Index-hyperlinks">Index hyperlinks</a></li>
+<li><a href="#index-index-typesetting-292">index typesetting</a>: <a href="#Typesetting-an-index">Typesetting an index</a></li>
+<li><a href="#index-index_002c-and-verbatim-text-268">index, and verbatim text</a>: <a href="#Index-entries-with-special-characters">Index entries with special characters</a></li>
+<li><a href="#index-index_002c-choosing-destination-placement-646">index, choosing destination placement</a>: <a href="#Choosing-destination-placement">Choosing destination placement</a></li>
+<li><a href="#index-index_002c-destination-placement-644">index, destination placement</a>: <a href="#Choosing-destination-placement">Choosing destination placement</a></li>
+<li><a href="#index-index_002c-exact-hyperlinks-632">index, exact hyperlinks</a>: <a href="#Exact-destinations-for-index-terms">Exact destinations for index terms</a></li>
+<li><a href="#index-index_002c-hyperlinks-in-see-and-see-also-entries-653">index, hyperlinks in see and see also entries</a>: <a href="#Hyperlinks-in-see-and-see-also-entries">Hyperlinks in see and see also entries</a></li>
+<li><a href="#index-index_002c-parsing-page-numbers-639">index, parsing page numbers</a>: <a href="#Page-destinations-for-index-terms">Page destinations for index terms</a></li>
+<li><a href="#index-index_002c-placement-of-destinations-643">index, placement of destinations</a>: <a href="#Choosing-destination-placement">Choosing destination placement</a></li>
+<li><a href="#index-index_002c-selecting-destination-placement-645">index, selecting destination placement</a>: <a href="#Choosing-destination-placement">Choosing destination placement</a></li>
+<li><a href="#index-index_002c-underlining-page-numbers-1232">index, underlining page numbers</a>: <a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a></li>
+<li><a href="#index-indexes_002c-multiple-232">indexes, multiple</a>: <a href="#Indexing">Indexing</a></li>
+<li><a href="#index-indexing-224">indexing</a>: <a href="#Indexing">Indexing</a></li>
+<li><a href="#index-indexing-and-trailing-spaces-239">indexing and trailing spaces</a>: <a href="#Indexing-terms">Indexing terms</a></li>
+<li><a href="#index-indexing-commands-240">indexing commands</a>: <a href="#Indexing-commands">Indexing commands</a></li>
+<li><a href="#index-indexing-terms-234">indexing terms</a>: <a href="#Indexing-terms">Indexing terms</a></li>
+<li><a href="#index-insertion-classes-385">insertion classes</a>: <a href="#Multiple-columns">Multiple columns</a></li>
+<li><a href="#index-inset-hyperlink-border-888">inset hyperlink border</a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-installation-14">installation</a>: <a href="#Installation">Installation</a></li>
+<li><a href="#index-integers_002c-detecting-1198">integers, detecting</a>: <a href="#g_t_005cifinteger-and-_005cisinteger">\ifinteger and \isinteger</a></li>
+<li><a href="#index-item-labels_002c-changing-145">item labels, changing</a>: <a href="#Formatting-lists">Formatting lists</a></li>
+<li><a href="#index-iteration-1153">iteration</a>: <a href="#Iteration">Iteration</a></li>
+<li><a href="#index-justification-346">justification</a>: <a href="#Justification">Justification</a></li>
+<li><a href="#index-Knuth_002c-Donald-Ervin-1116">Knuth, Donald Ervin</a>: <a href="#Category-codes">Category codes</a></li>
+<li><a href="#index-Knuth_002c-Donald-Ervin-70">Knuth, Donald Ervin</a>: <a href="#Citations">Citations</a></li>
+<li><a href="#index-labels-on-items_002c-changing-146">labels on items, changing</a>: <a href="#Formatting-lists">Formatting lists</a></li>
+<li><a href="#index-labels_002c-characters-valid-in-186">labels, characters valid in</a>: <a href="#Cross_002dreferences">Cross-references</a></li>
+<li><a href="#index-labels_002c-empty-equation-207">labels, empty equation</a>: <a href="#Equation-references">Equation references</a></li>
+<li><a href="#index-labels_002c-empty-equation_002c-referring-to-210">labels, empty equation, referring to</a>: <a href="#Equation-references">Equation references</a></li>
+<li><a href="#index-Lamport_002c-Leslie-4">Lamport, Leslie</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-LAMS_0040TeX_007b_007d-412">LAMSTeX</a>: <a href="#Logos">Logos</a></li>
+<li><a href="#index-Lang_002c-Serge-1093">Lang, Serge</a>: <a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></li>
+<li><a href="#index-Lang_002c-Serge-1070">Lang, Serge</a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-large-operators-and-hyperlinks-998">large operators and hyperlinks</a>: <a href="#Setting-group-options">Setting group options</a></li>
+<li><a href="#index-large-operators-and-hyperlinks-684">large operators and hyperlinks</a>: <a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></li>
+<li><a href="#index-g_t_0040LaTeX_007b_007d-1019">LaTeX</a>: <a href="#Slanted-lines-and-vectors">Slanted lines and vectors</a></li>
+<li><a href="#index-g_t_0040LaTeX_007b_007d-414">LaTeX</a>: <a href="#Logos">Logos</a></li>
+<li><a href="#index-g_t_0040LaTeX_007b_007d-57">LaTeX</a>: <a href="#Citations">Citations</a></li>
+<li><a href="#index-g_t_0040LaTeX_007b_007d-3">LaTeX</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-g_t_0040LaTeX_007b_007d-graphics-collection-934">LaTeX graphics collection</a>: <a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></li>
+<li><a href="#index-g_t_0040LaTeX_007b_007d-graphics-collection-465">LaTeX graphics collection</a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-g_t_0040LaTeX_007b_007d-graphics-collection-442">LaTeX graphics collection</a>: <a href="#Loading-LaTeX-packages">Loading LaTeX packages</a></li>
+<li><a href="#index-g_t_0040LaTeX_007b_007d-graphics-collection_002c-demo-1260">LaTeX graphics collection, demo</a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-g_t_0040LaTeX_007b_007d-packages-505">LaTeX packages</a>: <a href="#Packages-known-not-to-work">Packages known not to work</a></li>
+<li><a href="#index-g_t_0040LaTeX_007b_007d-packages-455">LaTeX packages</a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-g_t_0040LaTeX_007b_007d-packages-437">LaTeX packages</a>: <a href="#Loading-LaTeX-packages">Loading LaTeX packages</a></li>
+<li><a href="#index-g_t_0040LaTeX_007b_007d-packages_002c-restoring-_0040code_007b_005cinput_007d-450">LaTeX packages, restoring <code>\input</code></a>: <a href="#Environment-for-loading-packages">Environment for loading packages</a></li>
+<li><a href="#index-left_002djustification-344">left-justification</a>: <a href="#Justification">Justification</a></li>
+<li><a href="#index-left_002djustification-of-displays-96">left-justification of displays</a>: <a href="#Displays">Displays</a></li>
+<li><a href="#index-letterspacing-495">letterspacing</a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-linear-systems-theory-1081">linear systems theory</a>: <a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></li>
+<li><a href="#index-lines-1021">lines</a>: <a href="#Slanted-lines-and-vectors">Slanted lines and vectors</a></li>
+<li><a href="#index-link-group-534">link group</a>: <a href="#Implicit-hyperlinks">Implicit hyperlinks</a></li>
+<li><a href="#index-link-options-524">link options</a>: <a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></li>
+<li><a href="#index-link-options_002c-common-687">link options, common</a>: <a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></li>
+<li><a href="#index-link-options_002c-_0040code_007bdvipdfm_007d-871">link options, <code>dvipdfm</code></a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-link-options_002c-_0040code_007bhypertex_007d-741">link options, <code>hypertex</code></a>: <a href="#Link-options-for-hypertex">Link options for hypertex</a></li>
+<li><a href="#index-link-options_002c-_0040code_007bpdftex_007d-870">link options, <code>pdftex</code></a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-link-type-521">link type</a>: <a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></li>
+<li><a href="#index-link-types_002c-_0040code_007bdvipdfm_007d-830">link types, <code>dvipdfm</code></a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-link-types_002c-_0040code_007bhypertex_007d-719">link types, <code>hypertex</code></a>: <a href="#Link-types-for-hypertex">Link types for hypertex</a></li>
+<li><a href="#index-link-types_002c-_0040code_007bpdftex_007d-829">link types, <code>pdftex</code></a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-link_002c-group-options-986">link, group options</a>: <a href="#Setting-group-options">Setting group options</a></li>
+<li><a href="#index-link_002c-group-options-949">link, group options</a>: <a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></li>
+<li><a href="#index-link_002c-group-options_002c-demo-1246">link, group options, demo</a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-link_002c-group-type-970">link, group type</a>: <a href="#Setting-group-types">Setting group types</a></li>
+<li><a href="#index-link_002c-group-type-948">link, group type</a>: <a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></li>
+<li><a href="#index-linkgroup-535">linkgroup</a>: <a href="#Implicit-hyperlinks">Implicit hyperlinks</a></li>
+<li><a href="#index-linkgroup-_0060cite_0027-564">linkgroup `cite'</a>: <a href="#Citation-hyperlinks">Citation hyperlinks</a></li>
+<li><a href="#index-linkgroup-_0060eq_0027-1003">linkgroup `eq'</a>: <a href="#Setting-group-options">Setting group options</a></li>
+<li><a href="#index-linkgroup-_0060eq_0027-614">linkgroup `eq'</a>: <a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></li>
+<li><a href="#index-linkgroup-_0060foot_0027-662">linkgroup `foot'</a>: <a href="#Footnote-hyperlinks">Footnote hyperlinks</a></li>
+<li><a href="#index-linkgroup-_0060footback_0027-663">linkgroup `footback'</a>: <a href="#Footnote-hyperlinks">Footnote hyperlinks</a></li>
+<li><a href="#index-linkgroup-_0060hrefext_0027-546">linkgroup `hrefext'</a>: <a href="#General-hyperlinks">General hyperlinks</a></li>
+<li><a href="#index-linkgroup-_0060hrefint_0027-542">linkgroup `hrefint'</a>: <a href="#General-hyperlinks">General hyperlinks</a></li>
+<li><a href="#index-linkgroup-_0060idx_0027-622">linkgroup `idx'</a>: <a href="#Index-hyperlinks">Index hyperlinks</a></li>
+<li><a href="#index-linkgroup-_0060ref_0027-582">linkgroup `ref'</a>: <a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a></li>
+<li><a href="#index-linkgroup-_0060url_0027-552">linkgroup `url'</a>: <a href="#URL-hyperlinks">URL hyperlinks</a></li>
+<li><a href="#index-linkgroup-_0060xref_0027-599">linkgroup `xref'</a>: <a href="#Page-reference-hyperlinks">Page reference hyperlinks</a></li>
+<li><a href="#index-linkgroup-options-987">linkgroup options</a>: <a href="#Setting-group-options">Setting group options</a></li>
+<li><a href="#index-linkgroup-options-951">linkgroup options</a>: <a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></li>
+<li><a href="#index-linkgroup-options_002c-demo-1247">linkgroup options, demo</a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-linkgroup-type-971">linkgroup type</a>: <a href="#Setting-group-types">Setting group types</a></li>
+<li><a href="#index-linkgroup-type-950">linkgroup type</a>: <a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></li>
+<li><a href="#index-links_002c-hypertext-510">links, hypertext</a>: <a href="#Hyperlinks">Hyperlinks</a></li>
+<li><a href="#index-list-of-figures-181">list of figures</a>: <a href="#Alternative-contents-files">Alternative contents files</a></li>
+<li><a href="#index-list-of-tables-182">list of tables</a>: <a href="#Alternative-contents-files">Alternative contents files</a></li>
+<li><a href="#index-listing-files-148">listing files</a>: <a href="#Verbatim-listing">Verbatim listing</a></li>
+<li><a href="#index-listing-files_002c-demo-1273">listing files, demo</a>: <a href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029">Highlighting TeX comments in listings (lscommnt.tex)</a></li>
+<li><a href="#index-lists-113">lists</a>: <a href="#Lists">Lists</a></li>
+<li><a href="#index-lists_002c-formatting-125">lists, formatting</a>: <a href="#Formatting-lists">Formatting lists</a></li>
+<li><a href="#index-lists_002c-hyperlinks-571">lists, hyperlinks</a>: <a href="#List-hyperlinks">List hyperlinks</a></li>
+<li><a href="#index-logos-403">logos</a>: <a href="#Logos">Logos</a></li>
+<li><a href="#index-lookahead-without-spaces-1205">lookahead without spaces</a>: <a href="#g_t_005cfuturenonspacelet">\futurenonspacelet</a></li>
+<li><a href="#index-loops-1154">loops</a>: <a href="#Iteration">Iteration</a></li>
+<li><a href="#index-lscommnt_002etex-1271"><code>lscommnt.tex</code></a>: <a href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029">Highlighting TeX comments in listings (lscommnt.tex)</a></li>
+<li><a href="#index-magnification_002c-hyperlink-destination-798">magnification, hyperlink destination</a>: <a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></li>
+<li><a href="#index-makeindex-625"><code>makeindex</code></a>: <a href="#Index-hyperlinks">Index hyperlinks</a></li>
+<li><a href="#index-makeindex-227"><code>makeindex</code></a>: <a href="#Indexing">Indexing</a></li>
+<li><a href="#index-makeindex-34"><code>makeindex</code></a>: <a href="#Invoking-Eplain">Invoking Eplain</a></li>
+<li><a href="#index-margins_002c-changing-355">margins, changing</a>: <a href="#Margins">Margins</a></li>
+<li><a href="#index-margins_002c-index-terms-in-278">margins, index terms in</a>: <a href="#Proofing-index-terms">Proofing index terms</a></li>
+<li><a href="#index-mathematics-displays_002c-formatting-95">mathematics displays, formatting</a>: <a href="#Displays">Displays</a></li>
+<li><a href="#index-mathematics-displays_002c-hyperlinks-996">mathematics displays, hyperlinks</a>: <a href="#Setting-group-options">Setting group options</a></li>
+<li><a href="#index-mathematics-displays_002c-hyperlinks-682">mathematics displays, hyperlinks</a>: <a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></li>
+<li><a href="#index-Metafont-416">Metafont</a>: <a href="#Logos">Logos</a></li>
+<li><a href="#index-miniltx_002etex-443"><code>miniltx.tex</code></a>: <a href="#Loading-LaTeX-packages">Loading LaTeX packages</a></li>
+<li><a href="#index-minimal-realizations-1080">minimal realizations</a>: <a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></li>
+<li><a href="#index-modifying-index-entries_0027-page-numbers-254">modifying index entries' page numbers</a>: <a href="#Modifying-index-entries">Modifying index entries</a></li>
+<li><a href="#index-morphisms-1025">morphisms</a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-multiple-column-output-370">multiple column output</a>: <a href="#Multiple-columns">Multiple columns</a></li>
+<li><a href="#index-multiple-indexes-231">multiple indexes</a>: <a href="#Indexing">Indexing</a></li>
+<li><a href="#index-named-destination-836">named destination</a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-named-destination-723">named destination</a>: <a href="#Link-types-for-hypertex">Link types for hypertex</a></li>
+<li><a href="#index-names_002c-of-_0040TeX_007b_007d-variants-404">names, of TeX variants</a>: <a href="#Logos">Logos</a></li>
+<li><a href="#index-new-window_002c-opening-hyperlink-in-906">new window, opening hyperlink in</a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-newlinechar-46">newlinechar</a>: <a href="#Diagnostics">Diagnostics</a></li>
+<li><a href="#index-newlines_002c-obeying-1210">newlines, obeying</a>: <a href="#Obeying-spaces">Obeying spaces</a></li>
+<li><a href="#index-g_t_0040code_007bnolinks_007d_002c-hyperlink-driver-918"><code>nolinks</code>, hyperlink driver</a>: <a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></li>
+<li><a href="#index-numbered-destination-867">numbered destination</a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-numbered-lists-114">numbered lists</a>: <a href="#Lists">Lists</a></li>
+<li><a href="#index-numbered-references-72">numbered references</a>: <a href="#Citations">Citations</a></li>
+<li><a href="#index-numbers_002c-detecting-1199">numbers, detecting</a>: <a href="#g_t_005cifinteger-and-_005cisinteger">\ifinteger and \isinteger</a></li>
+<li><a href="#index-numbers_002c-written-form-of-1214">numbers, written form of</a>: <a href="#Writing-out-numbers">Writing out numbers</a></li>
+<li><a href="#index-Oberdiek_002c-Heiko-436">Oberdiek, Heiko</a>: <a href="#Checking-for-PDF-output">Checking for PDF output</a></li>
+<li><a href="#index-omitting-hyperlinks-1007">omitting hyperlinks</a>: <a href="#Turning-hyperlinks-on_002foff">Turning hyperlinks on/off</a></li>
+<li><a href="#index-omitting-hyperlinks-921">omitting hyperlinks</a>: <a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></li>
+<li><a href="#index-omitting-typesetting-of-graphics-476">omitting typesetting of graphics</a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-open-boxes-424">open boxes</a>: <a href="#Boxes">Boxes</a></li>
+<li><a href="#index-option-list_002c-group-1004">option list, group</a>: <a href="#Setting-group-options">Setting group options</a></li>
+<li><a href="#index-option-list_002c-preserving-for-group-994">option list, preserving for group</a>: <a href="#Setting-group-options">Setting group options</a></li>
+<li><a href="#index-options_002c-destination_002c-common-676">options, destination, common</a>: <a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></li>
+<li><a href="#index-options_002c-destination_002c-_0040code_007bdvipdfm_007d-791">options, destination, <code>dvipdfm</code></a>: <a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></li>
+<li><a href="#index-options_002c-destination_002c-_0040code_007bhypertex_007d-716">options, destination, <code>hypertex</code></a>: <a href="#Destination-options-for-hypertex">Destination options for hypertex</a></li>
+<li><a href="#index-options_002c-destination_002c-_0040code_007bpdftex_007d-790">options, destination, <code>pdftex</code></a>: <a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></li>
+<li><a href="#index-options_002c-link-and-destination-526">options, link and destination</a>: <a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></li>
+<li><a href="#index-options_002c-link_002c-common-688">options, link, common</a>: <a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></li>
+<li><a href="#index-options_002c-link_002c-_0040code_007bdvipdfm_007d-873">options, link, <code>dvipdfm</code></a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-options_002c-link_002c-_0040code_007bhypertex_007d-742">options, link, <code>hypertex</code></a>: <a href="#Link-options-for-hypertex">Link options for hypertex</a></li>
+<li><a href="#index-options_002c-link_002c-_0040code_007bpdftex_007d-872">options, link, <code>pdftex</code></a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-ordered-list-115">ordered list</a>: <a href="#Lists">Lists</a></li>
+<li><a href="#index-output-routine-and-index-proofing-290">output routine and index proofing</a>: <a href="#Proofing-index-terms">Proofing index terms</a></li>
+<li><a href="#index-overstriking-499">overstriking</a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-packages_002c-_0040LaTeX_007b_007d-506">packages, LaTeX</a>: <a href="#Packages-known-not-to-work">Packages known not to work</a></li>
+<li><a href="#index-packages_002c-_0040LaTeX_007b_007d-456">packages, LaTeX</a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-packages_002c-_0040LaTeX_007b_007d-438">packages, LaTeX</a>: <a href="#Loading-LaTeX-packages">Loading LaTeX packages</a></li>
+<li><a href="#index-page-destination-844">page destination</a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-page-list_002c-parsing-641">page list, parsing</a>: <a href="#Page-destinations-for-index-terms">Page destinations for index terms</a></li>
+<li><a href="#index-page-range_002c-parsing-640">page range, parsing</a>: <a href="#Page-destinations-for-index-terms">Page destinations for index terms</a></li>
+<li><a href="#index-page-reference-hyperlink-591">page reference hyperlink</a>: <a href="#Page-reference-hyperlinks">Page reference hyperlinks</a></li>
+<li><a href="#index-page_002dbreaking_002c-preserving-with-hyperlinks-927">page-breaking, preserving with hyperlinks</a>: <a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></li>
+<li><a href="#index-parsing-page-numbers-642">parsing page numbers</a>: <a href="#Page-destinations-for-index-terms">Page destinations for index terms</a></li>
+<li><a href="#index-Patashnik_002c-Oren-56">Patashnik, Oren</a>: <a href="#Citations">Citations</a></li>
+<li><a href="#index-pathnames_002c-breaking-502">pathnames, breaking</a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-pathnames_002c-breaking-396">pathnames, breaking</a>: <a href="#Paths">Paths</a></li>
+<li><a href="#index-g_t_0040acronym_007bPDF_007d-487"><acronym>PDF</acronym></a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-g_t_0040acronym_007bPDF_007d-output-430"><acronym>PDF</acronym> output</a>: <a href="#Checking-for-PDF-output">Checking for PDF output</a></li>
+<li><a href="#index-pdftex-517"><code>pdftex</code></a>: <a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></li>
+<li><a href="#index-pdftex-431"><code>pdftex</code></a>: <a href="#Checking-for-PDF-output">Checking for PDF output</a></li>
+<li><a href="#index-pdftex-35"><code>pdftex</code></a>: <a href="#Invoking-Eplain">Invoking Eplain</a></li>
+<li><a href="#index-g_t_0040code_007bpdftex_007d_002c-destination-options-792"><code>pdftex</code>, destination options</a>: <a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></li>
+<li><a href="#index-g_t_0040code_007bpdftex_007d_002c-destination-types-759"><code>pdftex</code>, destination types</a>: <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></li>
+<li><a href="#index-g_t_0040code_007bpdftex_007d_002c-hyperlink-driver-749"><code>pdftex</code>, hyperlink driver</a>: <a href="#Hyperlink-drivers-pdftex-and-dvipdfm">Hyperlink drivers pdftex and dvipdfm</a></li>
+<li><a href="#index-g_t_0040code_007bpdftex_007d_002c-link-options-874"><code>pdftex</code>, link options</a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-g_t_0040code_007bpdftex_007d_002c-link-types-833"><code>pdftex</code>, link types</a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-pdf_0040TeX_007b_007d_002c-problems-using-color-and-graphics-471">pdfTeX, problems using color and graphics</a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-pdf_0040TeX_007b_007d_002c-problems-with-_0040file_007bsupp_002dmis_002etex_007d-472">pdfTeX, problems with <samp><span class="file">supp-mis.tex</span></samp></a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-pict2e_002esty-508"><code>pict2e.sty</code></a>: <a href="#Packages-known-not-to-work">Packages known not to work</a></li>
+<li><a href="#index-picture-mode-1020">picture mode</a>: <a href="#Slanted-lines-and-vectors">Slanted lines and vectors</a></li>
+<li><a href="#index-picture-mode-458">picture mode</a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-Portable-Document-Format-486">Portable Document Format</a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-PostScript-point-898">PostScript point</a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-PostScript-point-812">PostScript point</a>: <a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></li>
+<li><a href="#index-PostScript-point-783">PostScript point</a>: <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></li>
+<li><a href="#index-proofing-index-terms-276">proofing index terms</a>: <a href="#Proofing-index-terms">Proofing index terms</a></li>
+<li><a href="#index-properties-1184">properties</a>: <a href="#Properties">Properties</a></li>
+<li><a href="#index-ps2pdf-702"><code>ps2pdf</code></a>: <a href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a></li>
+<li><a href="#index-psfrag_002esty-490"><code>psfrag.sty</code></a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-quadruple-column-output-369">quadruple column output</a>: <a href="#Multiple-columns">Multiple columns</a></li>
+<li><a href="#index-Rahtz_002c-Sebastian-445">Rahtz, Sebastian</a>: <a href="#Loading-LaTeX-packages">Loading LaTeX packages</a></li>
+<li><a href="#index-raising-hyperlink-destinations-1001">raising hyperlink destinations</a>: <a href="#Setting-group-options">Setting group options</a></li>
+<li><a href="#index-raising-hyperlink-destinations-678">raising hyperlink destinations</a>: <a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></li>
+<li><a href="#index-ranges-and-index-entry-259">ranges and index entry</a>: <a href="#Modifying-index-entries">Modifying index entries</a></li>
+<li><a href="#index-recognizing-numbers-1202">recognizing numbers</a>: <a href="#g_t_005cifinteger-and-_005cisinteger">\ifinteger and \isinteger</a></li>
+<li><a href="#index-rectangles-422">rectangles</a>: <a href="#Boxes">Boxes</a></li>
+<li><a href="#index-references_002c-alphanumeric-76">references, alphanumeric</a>: <a href="#Citations">Citations</a></li>
+<li><a href="#index-references_002c-defining-general-192">references, defining general</a>: <a href="#Using-generic-references">Using generic references</a></li>
+<li><a href="#index-references_002c-defining-general-188">references, defining general</a>: <a href="#Defining-generic-references">Defining generic references</a></li>
+<li><a href="#index-references_002c-numbered-73">references, numbered</a>: <a href="#Citations">Citations</a></li>
+<li><a href="#index-register-allocation-1136">register allocation</a>: <a href="#Allocation-macros">Allocation macros</a></li>
+<li><a href="#index-restoring-_0040code_007b_005cinput_007d_002c-_0040LaTeX_007b_007d-packages-451">restoring <code>\input</code>, LaTeX packages</a>: <a href="#Environment-for-loading-packages">Environment for loading packages</a></li>
+<li><a href="#index-return-character-1130">return character</a>: <a href="#Category-codes">Category codes</a></li>
+<li><a href="#index-right_002djustification-345">right-justification</a>: <a href="#Justification">Justification</a></li>
+<li><a href="#index-rms-7">rms</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-rotation-467">rotation</a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-rotation_002c-demo-1262">rotation, demo</a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-rule-thickness-47">rule thickness</a>: <a href="#Rules">Rules</a></li>
+<li><a href="#index-g_t_0040samp_007brun_003a_007d-links-548">`<samp><span class="samp">run:</span></samp>' links</a>: <a href="#General-hyperlinks">General hyperlinks</a></li>
+<li><a href="#index-scaling-468">scaling</a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-scaling_002c-demo-1263">scaling, demo</a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-sed-341"><code>sed</code></a>: <a href="#Customizing-indexing">Customizing indexing</a></li>
+<li><a href="#index-see-also-index-entries-and-hyperlinks-654">see also index entries and hyperlinks</a>: <a href="#Hyperlinks-in-see-and-see-also-entries">Hyperlinks in see and see also entries</a></li>
+<li><a href="#index-see-also-index-entries-and-sorting-330">see also index entries and sorting</a>: <a href="#Customizing-indexing">Customizing indexing</a></li>
+<li><a href="#index-see_002c-and-index-entries-337">see, and index entries</a>: <a href="#Customizing-indexing">Customizing indexing</a></li>
+<li><a href="#index-see_002c-and-index-entries-261">see, and index entries</a>: <a href="#Modifying-index-entries">Modifying index entries</a></li>
+<li><a href="#index-see_002c-and-index-entries_002c-hyperlinks-655">see, and index entries, hyperlinks</a>: <a href="#Hyperlinks-in-see-and-see-also-entries">Hyperlinks in see and see also entries</a></li>
+<li><a href="#index-silent-indexing-235">silent indexing</a>: <a href="#Indexing-terms">Indexing terms</a></li>
+<li><a href="#index-skipping-tokens-1196">skipping tokens</a>: <a href="#g_t_005cifempty">\ifempty</a></li>
+<li><a href="#index-skipping-tokens-1191">skipping tokens</a>: <a href="#g_t_005cifundefined">\ifundefined</a></li>
+<li><a href="#index-SLi_0040TeX_007b_007d-418">SLiTeX</a>: <a href="#Logos">Logos</a></li>
+<li><a href="#index-Snake-Lemma-1071">Snake Lemma</a>: <a href="#Arrows-and-morphisms">Arrows and morphisms</a></li>
+<li><a href="#index-solid-hyperlink-border-885">solid hyperlink border</a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-sorting-an-index-225">sorting an index</a>: <a href="#Indexing">Indexing</a></li>
+<li><a href="#index-sorting-of-index-entries-251">sorting of index entries</a>: <a href="#Indexing-commands">Indexing commands</a></li>
+<li><a href="#index-soul_002esty-494"><code>soul.sty</code></a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-space-above-index-entries-308">space above index entries</a>: <a href="#Typesetting-an-index">Typesetting an index</a></li>
+<li><a href="#index-spaces_002c-ignoring-1206">spaces, ignoring</a>: <a href="#g_t_005cfuturenonspacelet">\futurenonspacelet</a></li>
+<li><a href="#index-spaces_002c-obeying-1209">spaces, obeying</a>: <a href="#Obeying-spaces">Obeying spaces</a></li>
+<li><a href="#index-spaces_002c-trailing-and-indexing-commands-238">spaces, trailing and indexing commands</a>: <a href="#Indexing-terms">Indexing terms</a></li>
+<li><a href="#index-spacing-out-496">spacing out</a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-spacing_002c-preserving-with-hyperlinks-925">spacing, preserving with hyperlinks</a>: <a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></li>
+<li><a href="#index-special-characters_002c-in-index-entries-265">special characters, in index entries</a>: <a href="#Index-entries-with-special-characters">Index entries with special characters</a></li>
+<li><a href="#index-special-characters_002c-in-table-of-contents-172">special characters, in table of contents</a>: <a href="#Writing-the-_002etoc-file">Writing the .toc file</a></li>
+<li><a href="#index-Stallman_002c-Richard-6">Stallman, Richard</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-striking-out-498">striking out</a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-style_002c-hyperlink-border-891">style, hyperlink border</a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-subequations_002c-referring-to-219">subequations, referring to</a>: <a href="#Subequation-references">Subequation references</a></li>
+<li><a href="#index-subterm-in-indexing-236">subterm in indexing</a>: <a href="#Indexing-terms">Indexing terms</a></li>
+<li><a href="#index-supp_002dmis_002etex_0040r_007b_002c-problems-with-pdf_0040TeX_007b_007d_007d-474"><code>supp-mis.tex</code><span class="roman">, problems with pdfTeX</span></a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-supp_002dpdf_002etex-475"><code>supp-pdf.tex</code></a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-table-of-contents-162">table of contents</a>: <a href="#Contents">Contents</a></li>
+<li><a href="#index-table-of-contents_002c-and-verbatim-text-169">table of contents, and verbatim text</a>: <a href="#Writing-the-_002etoc-file">Writing the .toc file</a></li>
+<li><a href="#index-table-of-contents_002c-hyperlinks-671">table of contents, hyperlinks</a>: <a href="#Contents-hyperlinks">Contents hyperlinks</a></li>
+<li><a href="#index-table-of-contents_002c-short-1169">table of contents, short</a>: <a href="#Macro-arguments">Macro arguments</a></li>
+<li><a href="#index-table-of-contents_002c-short-175">table of contents, short</a>: <a href="#Reading-the-_002etoc-file">Reading the .toc file</a></li>
+<li><a href="#index-tables-351">tables</a>: <a href="#Tables">Tables</a></li>
+<li><a href="#index-tabs-1213">tabs</a>: <a href="#Obeying-spaces">Obeying spaces</a></li>
+<li><a href="#index-g_t_0040i_007b_0040TeX_007b_007d-by-Topic_007d-1163"><i>TeX by Topic</i></a>: <a href="#Iteration">Iteration</a></li>
+<li><a href="#index-g_t_0040TeX_007b_007d-Frequently-Asked-Question-1204">TeX Frequently Asked Question</a>: <a href="#g_t_005cifinteger-and-_005cisinteger">\ifinteger and \isinteger</a></li>
+<li><a href="#index-TEXFORMATS-23"><code>TEXFORMATS</code></a>: <a href="#Installation">Installation</a></li>
+<li><a href="#index-texi2dvi-230"><code>texi2dvi</code></a>: <a href="#Indexing">Indexing</a></li>
+<li><a href="#index-texi2dvi-74"><code>texi2dvi</code></a>: <a href="#Citations">Citations</a></li>
+<li><a href="#index-texi2dvi-32"><code>texi2dvi</code></a>: <a href="#Invoking-Eplain">Invoking Eplain</a></li>
+<li><a href="#index-Texinfo-5">Texinfo</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-TEXINPUTS-17"><code>TEXINPUTS</code></a>: <a href="#Installation">Installation</a></li>
+<li><a href="#index-time-of-day-106">time of day</a>: <a href="#Time-of-day">Time of day</a></li>
+<li><a href="#index-g_t_0040code_007btoc_007d-files_002c-writing-several-180"><code>toc</code> files, writing several</a>: <a href="#Changing-the-_002etoc-file_0027s-root-name">Changing the .toc file's root name</a></li>
+<li><a href="#index-tracing-37">tracing</a>: <a href="#Diagnostics">Diagnostics</a></li>
+<li><a href="#index-trailing-spaces-and-indexing-commands-237">trailing spaces and indexing commands</a>: <a href="#Indexing-terms">Indexing terms</a></li>
+<li><a href="#index-trimsee-342"><code>trimsee</code></a>: <a href="#Customizing-indexing">Customizing indexing</a></li>
+<li><a href="#index-triple-column-output-368">triple column output</a>: <a href="#Multiple-columns">Multiple columns</a></li>
+<li><a href="#index-Tu_002c-Loring-W_002e-1075">Tu, Loring W.</a>: <a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></li>
+<li><a href="#index-g_t_0040i_007bTUGboat_007d-12"><i>TUGboat</i></a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-type_002c-link-and-destination-523">type, link and destination</a>: <a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></li>
+<li><a href="#index-types_002c-destination_002c-_0040code_007bdvipdfm_007d-758">types, destination, <code>dvipdfm</code></a>: <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></li>
+<li><a href="#index-types_002c-destination_002c-_0040code_007bhypertex_007d-708">types, destination, <code>hypertex</code></a>: <a href="#Destination-types-for-hypertex">Destination types for hypertex</a></li>
+<li><a href="#index-types_002c-destination_002c-_0040code_007bpdftex_007d-757">types, destination, <code>pdftex</code></a>: <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></li>
+<li><a href="#index-types_002c-link_002c-_0040code_007bdvipdfm_007d-832">types, link, <code>dvipdfm</code></a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-types_002c-link_002c-_0040code_007bhypertex_007d-720">types, link, <code>hypertex</code></a>: <a href="#Link-types-for-hypertex">Link types for hypertex</a></li>
+<li><a href="#index-types_002c-link_002c-_0040code_007bpdftex_007d-831">types, link, <code>pdftex</code></a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-typesetting-an-index-291">typesetting an index</a>: <a href="#Typesetting-an-index">Typesetting an index</a></li>
+<li><a href="#index-undefined-control-sequence_002c-checking-for-1192">undefined control sequence, checking for</a>: <a href="#g_t_005cifundefined">\ifundefined</a></li>
+<li><a href="#index-undefined-labels_002c-warnings-about-22">undefined labels, warnings about</a>: <a href="#Installation">Installation</a></li>
+<li><a href="#index-underline-hyperlink-border-889">underline hyperlink border</a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-underlining-497">underlining</a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-underlining-page-numbers-in-index-1231">underlining page numbers in index</a>: <a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a></li>
+<li><a href="#index-universal-mapping-property-1078">universal mapping property</a>: <a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></li>
+<li><a href="#index-unordered-lists-116">unordered lists</a>: <a href="#Lists">Lists</a></li>
+<li><a href="#index-upgrading-16">upgrading</a>: <a href="#Installation">Installation</a></li>
+<li><a href="#index-g_t_0040acronym_007bURL_007d-for-_0040file_007bifpdf_002esty_007d-435"><acronym>URL</acronym> for <samp><span class="file">ifpdf.sty</span></samp></a>: <a href="#Checking-for-PDF-output">Checking for PDF output</a></li>
+<li><a href="#index-g_t_0040acronym_007bURL_007d-for-MakeIndex-226"><acronym>URL</acronym> for MakeIndex</a>: <a href="#Indexing">Indexing</a></li>
+<li><a href="#index-g_t_0040acronym_007bURL_007d-for-_0040file_007bpath_002esty_007d-402"><acronym>URL</acronym> for <samp><span class="file">path.sty</span></samp></a>: <a href="#Paths">Paths</a></li>
+<li><a href="#index-g_t_0040acronym_007bURL_007d-for-pdf_0040TeX_007b_007d-429"><acronym>URL</acronym> for pdfTeX</a>: <a href="#Checking-for-PDF-output">Checking for PDF output</a></li>
+<li><a href="#index-g_t_0040acronym_007bURL_007d-for-_0040file_007btexnames_002esty_007d-420"><acronym>URL</acronym> for <samp><span class="file">texnames.sty</span></samp></a>: <a href="#Logos">Logos</a></li>
+<li><a href="#index-g_t_0040acronym_007bURL_007d-hyperlink-840"><acronym>URL</acronym> hyperlink</a>: <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></li>
+<li><a href="#index-g_t_0040acronym_007bURL_007d-hyperlink-727"><acronym>URL</acronym> hyperlink</a>: <a href="#Link-types-for-hypertex">Link types for hypertex</a></li>
+<li><a href="#index-g_t_0040acronym_007bURL_007d-hyperlink-549"><acronym>URL</acronym> hyperlink</a>: <a href="#URL-hyperlinks">URL hyperlinks</a></li>
+<li><a href="#index-g_t_0040acronym_007bURL_007d-hyperlink-543"><acronym>URL</acronym> hyperlink</a>: <a href="#General-hyperlinks">General hyperlinks</a></li>
+<li><a href="#index-url_002esty-1266"><code>url.sty</code></a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-url_002esty-554"><code>url.sty</code></a>: <a href="#URL-hyperlinks">URL hyperlinks</a></li>
+<li><a href="#index-url_002esty-501"><code>url.sty</code></a>: <a href="#Packages-known-to-work">Packages known to work</a></li>
+<li><a href="#index-user_002dinaccessible-macros-1123">user-inaccessible macros</a>: <a href="#Category-codes">Category codes</a></li>
+<li><a href="#index-vectors-1022">vectors</a>: <a href="#Slanted-lines-and-vectors">Slanted lines and vectors</a></li>
+<li><a href="#index-verbatim-listing-147">verbatim listing</a>: <a href="#Verbatim-listing">Verbatim listing</a></li>
+<li><a href="#index-verbatim-listing_002c-demo-1272">verbatim listing, demo</a>: <a href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029">Highlighting TeX comments in listings (lscommnt.tex)</a></li>
+<li><a href="#index-verbatim-text_002c-in-index-269">verbatim text, in index</a>: <a href="#Index-entries-with-special-characters">Index entries with special characters</a></li>
+<li><a href="#index-verbatim-text_002c-in-table-of-contents-171">verbatim text, in table of contents</a>: <a href="#Writing-the-_002etoc-file">Writing the .toc file</a></li>
+<li><a href="#index-version-number-9">version number</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-Walden_002c-David-11">Walden, David</a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-Warner_002c-Frank-W_002e-1077">Warner, Frank W.</a>: <a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></li>
+<li><a href="#index-whatsits-made-by-hyperlinks-931">whatsits made by hyperlinks</a>: <a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></li>
+<li><a href="#index-whatsits-made-by-index-entries-253">whatsits made by index entries</a>: <a href="#Indexing-commands">Indexing commands</a></li>
+<li><a href="#index-while-loops-1156">while loops</a>: <a href="#Iteration">Iteration</a></li>
+<li><a href="#index-whitespace-1208">whitespace</a>: <a href="#Obeying-spaces">Obeying spaces</a></li>
+<li><a href="#index-width_002c-hyperlink-border-895">width, hyperlink border</a>: <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></li>
+<li><a href="#index-writing-several-_0040code_007btoc_007d-files-179">writing several <code>toc</code> files</a>: <a href="#Changing-the-_002etoc-file_0027s-root-name">Changing the .toc file's root name</a></li>
+<li><a href="#index-xcolor_002esty-509"><code>xcolor.sty</code></a>: <a href="#Packages-known-not-to-work">Packages known not to work</a></li>
+<li><a href="#index-xdvi-698"><code>xdvi</code></a>: <a href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a></li>
+<li><a href="#index-xeplain_002etex-2"><code>xeplain.tex</code></a>: <a href="#Introduction">Introduction</a></li>
+<li><a href="#index-xhyper_002etex-1236"><code>xhyper.tex</code></a>: <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></li>
+<li><a href="#index-Zassenhaus_002c-Hans-1092">Zassenhaus, Hans</a>: <a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></li>
+<li><a href="#index-zooming_002c-hyperlink-destination-799">zooming, hyperlink destination</a>: <a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></li>
+ </ul></body></html>
+