diff options
author | Karl Berry <karl@freefriends.org> | 2013-10-03 17:13:21 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-10-03 17:13:21 +0000 |
commit | e5eb637929530ade80eb06166f5c9bf94520cc8a (patch) | |
tree | ea5dc6c8b12191cd520b6abdd4d8539830ec154b /Master/texmf-dist/doc/eplain/eplain.html | |
parent | df52409da77deee3e0d970aed77312e628a0e5c0 (diff) |
eplain (1oct13)
git-svn-id: svn://tug.org/texlive/trunk@31819 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/eplain/eplain.html')
-rw-r--r-- | Master/texmf-dist/doc/eplain/eplain.html | 10829 |
1 files changed, 10829 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/eplain/eplain.html b/Master/texmf-dist/doc/eplain/eplain.html new file mode 100644 index 00000000000..ec3000f8cc1 --- /dev/null +++ b/Master/texmf-dist/doc/eplain/eplain.html @@ -0,0 +1,10829 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- This manual documents the Eplain macros, version 3.6, +September 2013. 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 originally 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 wrote +the section on LaTeX packages and the chapter on hyperlinks, and +updates throughout. --> +<!-- Created by Texinfo 5.2+dev, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Eplain: Expanded Plain TeX</title> + +<meta name="description" content="Eplain: Expanded Plain TeX"> +<meta name="keywords" content="Eplain: Expanded Plain TeX"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="texi2any"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<link href="#Top" rel="start" title="Top"> +<link href="#Macro-index" rel="index" title="Macro index"> +<link href="#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="dir.html#Top" rel="up" title="(dir)"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.indentedblock {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smallindentedblock {margin-left: 3.2em; font-size: smaller} +div.smalllisp {margin-left: 3.2em} +kbd {font-style:oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space:nowrap} +span.nolinebreak {white-space:nowrap} +span.roman {font-family:serif; font-weight:normal} +span.sansserif {font-family:sans-serif; font-weight:normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000"> +<h1 class="settitle" align="center">Eplain: Expanded Plain TeX</h1> + + + + + + + + +<a name="SEC_Overview"></a> +<h2 class="shortcontents-heading">Short Table of Contents</h2> + +<div class="shortcontents"> +<ul class="no-bullet"> +<li><a name="stoc-Introduction-1" href="#toc-Introduction-1">1 Introduction</a></li> +<li><a name="stoc-Installation-1" href="#toc-Installation-1">2 Installation</a></li> +<li><a name="stoc-Invoking-Eplain-1" href="#toc-Invoking-Eplain-1">3 Invoking Eplain</a></li> +<li><a name="stoc-User-definitions-1" href="#toc-User-definitions-1">4 User definitions</a></li> +<li><a name="stoc-Hyperlinks-1" href="#toc-Hyperlinks-1">5 Hyperlinks</a></li> +<li><a name="stoc-Arrow-theoretic-diagrams-1" href="#toc-Arrow-theoretic-diagrams-1">6 Arrow theoretic diagrams</a></li> +<li><a name="stoc-Programming-definitions-1" href="#toc-Programming-definitions-1">7 Programming definitions</a></li> +<li><a name="stoc-Demo-files-1" href="#toc-Demo-files-1">8 Demo files</a></li> +<li><a name="stoc-Macro-index-1" href="#toc-Macro-index-1">Macro index</a></li> +<li><a name="stoc-Concept-index-1" href="#toc-Concept-index-1">Concept index</a></li> +</ul> +</div> + +<a name="SEC_Contents"></a> +<h2 class="contents-heading">Table of Contents</h2> + +<div class="contents"> + +<ul class="no-bullet"> + <li><a name="toc-Introduction-1" href="#Introduction">1 Introduction</a></li> + <li><a name="toc-Installation-1" href="#Installation">2 Installation</a></li> + <li><a name="toc-Invoking-Eplain-1" href="#Invoking-Eplain">3 Invoking Eplain</a></li> + <li><a name="toc-User-definitions-1" href="#User-definitions">4 User definitions</a> + <ul class="no-bullet"> + <li><a name="toc-Diagnostics-1" href="#Diagnostics">4.1 Diagnostics</a></li> + <li><a name="toc-Rules-1" href="#Rules">4.2 Rules</a></li> + <li><a name="toc-Citations-1" href="#Citations">4.3 Citations</a> + <ul class="no-bullet"> + <li><a name="toc-Formatting-citations-1" href="#Formatting-citations">4.3.1 Formatting citations</a></li> + <li><a name="toc-Formatting-bibliographies-1" href="#Formatting-bibliographies">4.3.2 Formatting bibliographies</a></li> + <li><a name="toc-Commands-from-LaTeX-1" href="#Commands-from-LaTeX">4.3.3 Commands from LaTeX</a></li> + </ul></li> + <li><a name="toc-Displays-1" href="#Displays">4.4 Displays</a> + <ul class="no-bullet"> + <li><a name="toc-Formatting-displays-1" href="#Formatting-displays">4.4.1 Formatting displays</a></li> + </ul></li> + <li><a name="toc-Time-of-day-1" href="#Time-of-day">4.5 Time of day</a></li> + <li><a name="toc-Lists-1" href="#Lists">4.6 Lists</a> + <ul class="no-bullet"> + <li><a name="toc-Formatting-lists-1" href="#Formatting-lists">4.6.1 Formatting lists</a></li> + </ul></li> + <li><a name="toc-Verbatim-listing-1" href="#Verbatim-listing">4.7 Verbatim listing</a></li> + <li><a name="toc-Contents-1" href="#Contents">4.8 Contents</a> + <ul class="no-bullet"> + <li><a name="toc-Writing-the-_002etoc-file-1" href="#Writing-the-_002etoc-file">4.8.1 Writing the <tt>.toc</tt> file</a></li> + <li><a name="toc-Reading-the-_002etoc-file-1" href="#Reading-the-_002etoc-file">4.8.2 Reading the <tt>.toc</tt> file</a></li> + <li><a name="toc-Changing-the-_002etoc-file_0027s-root-name-1" href="#Changing-the-_002etoc-file_0027s-root-name">4.8.3 Changing the <tt>.toc</tt> file’s root name</a></li> + <li><a name="toc-Alternative-contents-files-1" href="#Alternative-contents-files">4.8.4 Alternative contents files</a></li> + </ul></li> + <li><a name="toc-Cross_002dreferences-1" href="#Cross_002dreferences">4.9 Cross-references</a> + <ul class="no-bullet"> + <li><a name="toc-Defining-generic-references-1" href="#Defining-generic-references">4.9.1 Defining generic references</a></li> + <li><a name="toc-Using-generic-references-1" href="#Using-generic-references">4.9.2 Using generic references</a></li> + </ul></li> + <li><a name="toc-Page-references-1" href="#Page-references">4.10 Page references</a></li> + <li><a name="toc-Equation-references-1" href="#Equation-references">4.11 Equation references</a> + <ul class="no-bullet"> + <li><a name="toc-Formatting-equation-references-1" href="#Formatting-equation-references">4.11.1 Formatting equation references</a></li> + <li><a name="toc-Subequation-references-1" href="#Subequation-references">4.11.2 Subequation references</a></li> + </ul></li> + <li><a name="toc-Indexing-1" href="#Indexing">4.12 Indexing</a> + <ul class="no-bullet"> + <li><a name="toc-Indexing-terms-1" href="#Indexing-terms">4.12.1 Indexing terms</a> + <ul class="no-bullet"> + <li><a name="toc-Indexing-commands-1" href="#Indexing-commands">4.12.1.1 Indexing commands</a></li> + <li><a name="toc-Modifying-index-entries-1" href="#Modifying-index-entries">4.12.1.2 Modifying index entries</a></li> + <li><a name="toc-Index-entries-with-special-characters-1" href="#Index-entries-with-special-characters">4.12.1.3 Index entries with special characters</a></li> + <li><a name="toc-Proofing-index-terms-1" href="#Proofing-index-terms">4.12.1.4 Proofing index terms</a></li> + </ul></li> + <li><a name="toc-Typesetting-an-index-1" href="#Typesetting-an-index">4.12.2 Typesetting an index</a></li> + <li><a name="toc-Customizing-indexing-1" href="#Customizing-indexing">4.12.3 Customizing indexing</a></li> + </ul></li> + <li><a name="toc-Justification-1" href="#Justification">4.13 Justification</a></li> + <li><a name="toc-Tables-1" href="#Tables">4.14 Tables</a></li> + <li><a name="toc-Margins-1" href="#Margins">4.15 Margins</a></li> + <li><a name="toc-Multiple-columns-1" href="#Multiple-columns">4.16 Multiple columns</a></li> + <li><a name="toc-Footnotes-1" href="#Footnotes">4.17 Footnotes</a></li> + <li><a name="toc-Fractions-1" href="#Fractions">4.18 Fractions</a></li> + <li><a name="toc-Paths-1" href="#Paths">4.19 Paths</a></li> + <li><a name="toc-Logos-1" href="#Logos">4.20 Logos</a></li> + <li><a name="toc-Boxes-1" href="#Boxes">4.21 Boxes</a></li> + <li><a name="toc-Checking-for-PDF-output-1" href="#Checking-for-PDF-output">4.22 Checking for PDF output</a></li> + <li><a name="toc-Loading-LaTeX-packages-1" href="#Loading-LaTeX-packages">4.23 Loading LaTeX packages</a> + <ul class="no-bullet"> + <li><a name="toc-The-_005cusepackage-command-1" href="#The-_005cusepackage-command">4.23.1 The <code>\usepackage</code> command</a></li> + <li><a name="toc-Environment-for-loading-packages-1" href="#Environment-for-loading-packages">4.23.2 Environment for loading packages</a></li> + <li><a name="toc-Packages-known-to-work-1" href="#Packages-known-to-work">4.23.3 Packages known to work</a></li> + <li><a name="toc-Packages-known-not-to-work-1" href="#Packages-known-not-to-work">4.23.4 Packages known not to work</a></li> + </ul></li> + </ul></li> + <li><a name="toc-Hyperlinks-1" href="#Hyperlinks">5 Hyperlinks</a> + <ul class="no-bullet"> + <li><a name="toc-Introduction-to-hyperlinks-1" href="#Introduction-to-hyperlinks">5.1 Introduction to hyperlinks</a></li> + <li><a name="toc-Explicit-hyperlinks-1" href="#Explicit-hyperlinks">5.2 Explicit hyperlinks</a></li> + <li><a name="toc-Implicit-hyperlinks-1" href="#Implicit-hyperlinks">5.3 Implicit hyperlinks</a> + <ul class="no-bullet"> + <li><a name="toc-General-hyperlinks_003a-hrefint_002c-hrefext" href="#General-hyperlinks">5.3.1 General hyperlinks: hrefint, hrefext</a></li> + <li><a name="toc-URL-hyperlinks_003a-url" href="#URL-hyperlinks">5.3.2 URL hyperlinks: url</a></li> + <li><a name="toc-Citation-hyperlinks_003a-cite_002c-bib" href="#Citation-hyperlinks">5.3.3 Citation hyperlinks: cite, bib</a></li> + <li><a name="toc-List-hyperlinks_003a-li" href="#List-hyperlinks">5.3.4 List hyperlinks: li</a></li> + <li><a name="toc-Cross_002dreference-hyperlinks_003a-definexref_002c-ref" href="#Cross_002dreference-hyperlinks">5.3.5 Cross-reference hyperlinks: definexref, ref</a></li> + <li><a name="toc-Page-reference-hyperlinks_003a-xrdef_002c-xref" href="#Page-reference-hyperlinks">5.3.6 Page reference hyperlinks: xrdef, xref</a></li> + <li><a name="toc-Equation-reference-hyperlinks_003a-eq" href="#Equation-reference-hyperlinks">5.3.7 Equation reference hyperlinks: eq</a></li> + <li><a name="toc-Index-hyperlinks_003a-idx" href="#Index-hyperlinks">5.3.8 Index hyperlinks: idx</a> + <ul class="no-bullet"> + <li><a name="toc-Exact-destinations-for-index-terms-1" href="#Exact-destinations-for-index-terms">5.3.8.1 Exact destinations for index terms</a></li> + <li><a name="toc-Page-destinations-for-index-terms-1" href="#Page-destinations-for-index-terms">5.3.8.2 Page destinations for index terms</a></li> + <li><a name="toc-Choosing-destination-placement-1" href="#Choosing-destination-placement">5.3.8.3 Choosing destination placement</a></li> + <li><a name="toc-Index-page-list-and-page-range-parsers-1" href="#Index-page-list-and-page-range-parsers">5.3.8.4 Index page list and page range parsers</a></li> + <li><a name="toc-Hyperlinks-in-see-and-see-also-entries-1" href="#Hyperlinks-in-see-and-see-also-entries">5.3.8.5 Hyperlinks in see and see also entries</a></li> + </ul></li> + <li><a name="toc-Footnote-hyperlinks_003a-foot_002c-footback" href="#Footnote-hyperlinks">5.3.9 Footnote hyperlinks: foot, footback</a></li> + <li><a name="toc-Contents-hyperlinks-1" href="#Contents-hyperlinks">5.3.10 Contents hyperlinks</a></li> + </ul></li> + <li><a name="toc-Hyperlink-drivers-1" href="#Hyperlink-drivers">5.4 Hyperlink drivers</a> + <ul class="no-bullet"> + <li><a name="toc-Options-supported-by-all-drivers-1" href="#Options-supported-by-all-drivers">5.4.1 Options supported by all drivers</a></li> + <li><a name="toc-Hyperlink-driver-hypertex-1" href="#Hyperlink-driver-hypertex">5.4.2 Hyperlink driver <code>hypertex</code></a> + <ul class="no-bullet"> + <li><a name="toc-Destination-types-for-hypertex-1" href="#Destination-types-for-hypertex">5.4.2.1 Destination types for <code>hypertex</code></a></li> + <li><a name="toc-Destination-options-for-hypertex-1" href="#Destination-options-for-hypertex">5.4.2.2 Destination options for <code>hypertex</code></a></li> + <li><a name="toc-Link-types-for-hypertex-1" href="#Link-types-for-hypertex">5.4.2.3 Link types for <code>hypertex</code></a></li> + <li><a name="toc-Link-options-for-hypertex-1" href="#Link-options-for-hypertex">5.4.2.4 Link options for <code>hypertex</code></a></li> + </ul></li> + <li><a name="toc-Hyperlink-drivers-pdftex-and-dvipdfm-1" href="#Hyperlink-drivers-pdftex-and-dvipdfm">5.4.3 Hyperlink drivers <code>pdftex</code> and <code>dvipdfm</code></a> + <ul class="no-bullet"> + <li><a name="toc-Destination-types-for-pdftex-and-dvipdfm-1" href="#Destination-types-for-pdftex-and-dvipdfm">5.4.3.1 Destination types for <code>pdftex</code> and <code>dvipdfm</code></a></li> + <li><a name="toc-Destination-options-for-pdftex-and-dvipdfm-1" href="#Destination-options-for-pdftex-and-dvipdfm">5.4.3.2 Destination options for <code>pdftex</code> and <code>dvipdfm</code></a></li> + <li><a name="toc-Link-types-for-pdftex-and-dvipdfm-1" href="#Link-types-for-pdftex-and-dvipdfm">5.4.3.3 Link types for <code>pdftex</code> and <code>dvipdfm</code></a></li> + <li><a name="toc-Link-options-for-pdftex-and-dvipdfm-1" 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> + <li><a name="toc-Hyperlink-driver-nolinks-1" href="#Hyperlink-driver-nolinks">5.4.4 Hyperlink driver <code>nolinks</code></a></li> + </ul></li> + <li><a name="toc-Setting-hyperlink-types-and-options-1" href="#Setting-hyperlink-types-and-options">5.5 Setting hyperlink types and options</a> + <ul class="no-bullet"> + <li><a name="toc-Setting-default-types-and-options-1" href="#Setting-default-types-and-options">5.5.1 Setting default types and options</a></li> + <li><a name="toc-Setting-group-types-1" href="#Setting-group-types">5.5.2 Setting group types</a></li> + <li><a name="toc-Setting-group-options-1" href="#Setting-group-options">5.5.3 Setting group options</a></li> + </ul></li> + <li><a name="toc-Turning-hyperlinks-on_002foff-1" href="#Turning-hyperlinks-on_002foff">5.6 Turning hyperlinks on/off</a> + <ul class="no-bullet"> + <li><a name="toc-Turning-low_002dlevel-commands-on_002foff-1" href="#Turning-low_002dlevel-commands-on_002foff">5.6.1 Turning low-level commands on/off</a></li> + <li><a name="toc-Turning-hyperlinks-on_002foff-for-a-group-1" href="#Turning-hyperlinks-on_002foff-for-a-group">5.6.2 Turning hyperlinks on/off for a group</a></li> + </ul></li> + </ul></li> + <li><a name="toc-Arrow-theoretic-diagrams-1" href="#Arrow-theoretic-diagrams">6 Arrow theoretic diagrams</a> + <ul class="no-bullet"> + <li><a name="toc-Slanted-lines-and-vectors-1" href="#Slanted-lines-and-vectors">6.1 Slanted lines and vectors</a></li> + <li><a name="toc-Commutative-diagrams-1" href="#Commutative-diagrams">6.2 Commutative diagrams</a> + <ul class="no-bullet"> + <li><a name="toc-Arrows-and-morphisms-1" href="#Arrows-and-morphisms">6.2.1 Arrows and morphisms</a></li> + <li><a name="toc-Construction-of-commutative-diagrams-1" href="#Construction-of-commutative-diagrams">6.2.2 Construction of commutative diagrams</a></li> + <li><a name="toc-Commutative-diagram-parameters-1" href="#Commutative-diagram-parameters">6.2.3 Commutative diagram parameters</a></li> + </ul></li> + </ul></li> + <li><a name="toc-Programming-definitions-1" href="#Programming-definitions">7 Programming definitions</a> + <ul class="no-bullet"> + <li><a name="toc-Category-codes-1" href="#Category-codes">7.1 Category codes</a></li> + <li><a name="toc-Allocation-macros-1" href="#Allocation-macros">7.2 Allocation macros</a></li> + <li><a name="toc-Iteration-1" href="#Iteration">7.3 Iteration</a></li> + <li><a name="toc-Macro-arguments-1" href="#Macro-arguments">7.4 Macro arguments</a></li> + <li><a name="toc-Converting-to-characters-1" href="#Converting-to-characters">7.5 Converting to characters</a></li> + <li><a name="toc-Expansion-1" href="#Expansion">7.6 Expansion</a> + <ul class="no-bullet"> + <li><a name="toc-_005ccsn-and-_005cece-1" href="#g_t_005ccsn-and-_005cece">7.6.1 <code>\csn</code> and <code>\ece</code></a></li> + <li><a name="toc-_005cedefappend-1" href="#g_t_005cedefappend">7.6.2 <code>\edefappend</code></a></li> + <li><a name="toc-Hooks-1" href="#Hooks">7.6.3 Hooks</a></li> + <li><a name="toc-Properties-1" href="#Properties">7.6.4 Properties</a></li> + <li><a name="toc-_005cexpandonce-1" href="#g_t_005cexpandonce">7.6.5 <code>\expandonce</code></a></li> + <li><a name="toc-_005cifundefined-1" href="#g_t_005cifundefined">7.6.6 <code>\ifundefined</code></a></li> + <li><a name="toc-_005cifempty-1" href="#g_t_005cifempty">7.6.7 <code>\ifempty</code></a></li> + <li><a name="toc-_005cifinteger-and-_005cisinteger-1" href="#g_t_005cifinteger-and-_005cisinteger">7.6.8 <code>\ifinteger</code> and <code>\isinteger</code></a></li> + <li><a name="toc-_005cfuturenonspacelet-1" href="#g_t_005cfuturenonspacelet">7.6.9 <code>\futurenonspacelet</code></a></li> + </ul></li> + <li><a name="toc-Obeying-spaces-1" href="#Obeying-spaces">7.7 Obeying spaces</a></li> + <li><a name="toc-Writing-out-numbers-1" href="#Writing-out-numbers">7.8 Writing out numbers</a></li> + <li><a name="toc-Mode_002dspecific-penalties-1" href="#Mode_002dspecific-penalties">7.9 Mode-specific penalties</a></li> + <li><a name="toc-Auxiliary-files-1" href="#Auxiliary-files">7.10 Auxiliary files</a></li> + <li><a name="toc-User_002ddefined-environments-1" href="#User_002ddefined-environments">7.11 User-defined environments</a></li> + <li><a name="toc-Page-list-and-page-range-parsers-1" href="#Page-list-and-page-range-parsers">7.12 Page list and page range parsers</a></li> + </ul></li> + <li><a name="toc-Demo-files-1" href="#Demo-files">8 Demo files</a> + <ul class="no-bullet"> + <li><a name="toc-Hyperlinks-_0028xhyper_002etex_0029-1" href="#Hyperlinks-_0028xhyper_002etex_0029">8.1 Hyperlinks (<code>xhyper.tex</code>)</a></li> + <li><a name="toc-Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029-1" href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029">8.2 Highlighting TeX comments in listings (<code>lscommnt.tex</code>)</a></li> + </ul></li> + <li><a name="toc-Macro-index-1" href="#Macro-index">Macro index</a></li> + <li><a name="toc-Concept-index-1" href="#Concept-index">Concept index</a></li> +</ul> +</div> + + +<a name="Top"></a> +<div class="header"> +<p> +Next: <a href="#Introduction" accesskey="n" rel="next">Introduction</a>, Up: <a href="dir.html#Top" accesskey="u" rel="up">(dir)</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Eplain"></a> +<h1 class="top">Eplain</h1> + +<p>This manual documents the Eplain macros, version 3.6, +September 2013. Eplain provides functionality for plain TeX that +is intended to be useful regardless of how your document is actually +formatted. +</p> +<p>Most of this manual is in the public domain, like most of the Eplain +code. It was originally 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 wrote +the section on LaTeX packages and the chapter on hyperlinks, and +updates throughout. +</p> + +<p>The Eplain home page is <a href="http://tug.org/eplain">http://tug.org/eplain</a>. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Introduction" accesskey="1">Introduction</a>:</td><td> </td><td align="left" valign="top">Eplain’s purpose and philosophy. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Installation" accesskey="2">Installation</a>:</td><td> </td><td align="left" valign="top">Installing Eplain. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Invoking-Eplain" accesskey="3">Invoking Eplain</a>:</td><td> </td><td align="left" valign="top">Using Eplain from a TeX file. +</td></tr> +<tr><td align="left" valign="top">• <a href="#User-definitions" accesskey="4">User definitions</a>:</td><td> </td><td align="left" valign="top">Macros to be used in a document. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Hyperlinks" accesskey="5">Hyperlinks</a>:</td><td> </td><td align="left" valign="top">Producing documents with hyperlinks. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Arrow-theoretic-diagrams" accesskey="6">Arrow theoretic diagrams</a>:</td><td> </td><td align="left" valign="top">Macros for commutative diagrams. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Programming-definitions" accesskey="7">Programming definitions</a>:</td><td> </td><td align="left" valign="top">Macros to be used in writing other macros. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Demo-files" accesskey="8">Demo files</a>:</td><td> </td><td align="left" valign="top">Sample documents demonstrating Eplain. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Macro-index" accesskey="9">Macro index</a>:</td><td> </td><td align="left" valign="top">Entries for TeX and Eplain control sequences. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Concept-index">Concept index</a>:</td><td> </td><td align="left" valign="top">General index. +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> +</pre></th></tr><tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> — The Detailed Node Listing — + +User definitions + +</pre></th></tr><tr><td align="left" valign="top">• <a href="#Diagnostics">Diagnostics</a>:</td><td> </td><td align="left" valign="top">Tracing information. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Rules">Rules</a>:</td><td> </td><td align="left" valign="top">Changing the default rule dimensions. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Citations">Citations</a>:</td><td> </td><td align="left" valign="top">Using BibTeX and Eplain to make bibliographies. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Displays">Displays</a>:</td><td> </td><td align="left" valign="top">Changing the formatting of math displays. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Time-of-day">Time of day</a>:</td><td> </td><td align="left" valign="top">Producing the time of day. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Lists">Lists</a>:</td><td> </td><td align="left" valign="top">Producing numbered and unordered lists. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Verbatim-listing">Verbatim listing</a>:</td><td> </td><td align="left" valign="top">Producing text just as it appears. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Contents">Contents</a>:</td><td> </td><td align="left" valign="top">Making a table of contents. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Cross_002dreferences">Cross-references</a>:</td><td> </td><td align="left" valign="top">Symbolically referring to pages or equations. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Page-references">Page references</a>:</td><td> </td><td align="left" valign="top">Symbolic references to page numbers. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Equation-references">Equation references</a>:</td><td> </td><td align="left" valign="top">Symbolic references to equation numbers. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Indexing">Indexing</a>:</td><td> </td><td align="left" valign="top">Creating and typesetting indexes. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Justification">Justification</a>:</td><td> </td><td align="left" valign="top">Left- or right-justification, or centering. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Tables">Tables</a>:</td><td> </td><td align="left" valign="top">Producing ordered tables. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Margins">Margins</a>:</td><td> </td><td align="left" valign="top">Changing the margins directly. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Multiple-columns">Multiple columns</a>:</td><td> </td><td align="left" valign="top">Getting output in two columns. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Footnotes">Footnotes</a>:</td><td> </td><td align="left" valign="top">Autonumbered footnotes; changing formatting. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Fractions">Fractions</a>:</td><td> </td><td align="left" valign="top">A better way to produce fractions in text. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Paths">Paths</a>:</td><td> </td><td align="left" valign="top">Allowing line breaks in pathnames. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Logos">Logos</a>:</td><td> </td><td align="left" valign="top">Various logos. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Boxes">Boxes</a>:</td><td> </td><td align="left" valign="top">Producing filled or open rectangles. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Checking-for-PDF-output">Checking for PDF output</a>:</td><td> </td><td align="left" valign="top">Checking for pdfTeX in PDF mode. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Loading-LaTeX-packages">Loading LaTeX packages</a>:</td><td> </td><td align="left" valign="top">Support for LaTeX packages under plain TeX. +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> +Citations + +</pre></th></tr><tr><td align="left" valign="top">• <a href="#Formatting-citations">Formatting citations</a>:</td><td> </td><td align="left" valign="top">Changing the way citations are printed. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Formatting-bibliographies">Formatting bibliographies</a>:</td><td> </td><td align="left" valign="top">Changing the way bibliographies are printed. +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> +Displays + +</pre></th></tr><tr><td align="left" valign="top">• <a href="#Formatting-displays">Formatting displays</a>:</td><td> </td><td align="left" valign="top">General formatting of displays. +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> +Lists + +</pre></th></tr><tr><td align="left" valign="top">• <a href="#Formatting-lists">Formatting lists</a>:</td><td> </td><td align="left" valign="top">Changing how the lists look. +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> +Contents + +</pre></th></tr><tr><td align="left" valign="top">• <a href="#Writing-the-_002etoc-file">Writing the .toc file</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Reading-the-_002etoc-file">Reading the .toc file</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Changing-the-_002etoc-file_0027s-root-name">Changing the .toc file's root name</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Alternative-contents-files">Alternative contents files</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> +Cross-references + +</pre></th></tr><tr><td align="left" valign="top">• <a href="#Defining-generic-references">Defining generic references</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Using-generic-references">Using generic references</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> +Equation references + +</pre></th></tr><tr><td align="left" valign="top">• <a href="#Formatting-equation-references">Formatting equation references</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Subequation-references">Subequation references</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> +Indexing + +</pre></th></tr><tr><td align="left" valign="top">• <a href="#Indexing-terms">Indexing terms</a>:</td><td> </td><td align="left" valign="top">Specifying what to index. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Typesetting-an-index">Typesetting an index</a>:</td><td> </td><td align="left" valign="top">Printing the sorted output. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Customizing-indexing">Customizing indexing</a>:</td><td> </td><td align="left" valign="top">Creating commands and specifying extra actions. +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> +Indexing terms + +</pre></th></tr><tr><td align="left" valign="top">• <a href="#Indexing-commands">Indexing commands</a>:</td><td> </td><td align="left" valign="top">Making index entries. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Modifying-index-entries">Modifying index entries</a>:</td><td> </td><td align="left" valign="top">Ranges, see/see also, page number typesetting. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Index-entries-with-special-characters">Index entries with special characters</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Proofing-index-terms">Proofing index terms</a>:</td><td> </td><td align="left" valign="top">Noting index entries in the margins. +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> +Loading LaTeX packages + +</pre></th></tr><tr><td align="left" valign="top">• <a href="#The-_005cusepackage-command">The \usepackage command</a>:</td><td> </td><td align="left" valign="top">Command to load packages. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Environment-for-loading-packages">Environment for loading packages</a>:</td><td> </td><td align="left" valign="top">Environment for the \usepackage commands. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Packages-known-to-work">Packages known to work</a>:</td><td> </td><td align="left" valign="top">Supported packages. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Packages-known-not-to-work">Packages known not to work</a>:</td><td> </td><td align="left" valign="top">Packages known not to work with Eplain. +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> +Hyperlinks + +</pre></th></tr><tr><td align="left" valign="top">• <a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Explicit-hyperlinks">Explicit hyperlinks</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Implicit-hyperlinks">Implicit hyperlinks</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Hyperlink-drivers">Hyperlink drivers</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Turning-hyperlinks-on_002foff">Turning hyperlinks on/off</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> +Implicit hyperlinks + +</pre></th></tr><tr><td align="left" valign="top">• <a href="#General-hyperlinks">General hyperlinks</a>:</td><td> </td><td align="left" valign="top">hrefint, hrefext +</td></tr> +<tr><td align="left" valign="top">• <a href="#URL-hyperlinks">URL hyperlinks</a>:</td><td> </td><td align="left" valign="top">url +</td></tr> +<tr><td align="left" valign="top">• <a href="#Citation-hyperlinks">Citation hyperlinks</a>:</td><td> </td><td align="left" valign="top">cite, bib +</td></tr> +<tr><td align="left" valign="top">• <a href="#List-hyperlinks">List hyperlinks</a>:</td><td> </td><td align="left" valign="top">li +</td></tr> +<tr><td align="left" valign="top">• <a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a>:</td><td> </td><td align="left" valign="top">definexref, ref +</td></tr> +<tr><td align="left" valign="top">• <a href="#Page-reference-hyperlinks">Page reference hyperlinks</a>:</td><td> </td><td align="left" valign="top">xrdef, xref +</td></tr> +<tr><td align="left" valign="top">• <a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a>:</td><td> </td><td align="left" valign="top">eq +</td></tr> +<tr><td align="left" valign="top">• <a href="#Index-hyperlinks">Index hyperlinks</a>:</td><td> </td><td align="left" valign="top">idx +</td></tr> +<tr><td align="left" valign="top">• <a href="#Footnote-hyperlinks">Footnote hyperlinks</a>:</td><td> </td><td align="left" valign="top">foot, footback +</td></tr> +<tr><td align="left" valign="top">• <a href="#Contents-hyperlinks">Contents hyperlinks</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> +Index hyperlinks + +</pre></th></tr><tr><td align="left" valign="top">• <a href="#Exact-destinations-for-index-terms">Exact destinations for index terms</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Page-destinations-for-index-terms">Page destinations for index terms</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Choosing-destination-placement">Choosing destination placement</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Index-page-list-and-page-range-parsers">Index page list and page range parsers</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Hyperlinks-in-see-and-see-also-entries">Hyperlinks in see and see also entries</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> +Hyperlink drivers + +</pre></th></tr><tr><td align="left" valign="top">• <a href="#Options-supported-by-all-drivers">Options supported by all drivers</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Hyperlink-drivers-pdftex-and-dvipdfm">Hyperlink drivers pdftex and dvipdfm</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> +Hyperlink driver hypertex:: + +</pre></th></tr><tr><td align="left" valign="top">• <a href="#Destination-types-for-hypertex">Destination types for hypertex</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Destination-options-for-hypertex">Destination options for hypertex</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Link-types-for-hypertex">Link types for hypertex</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Link-options-for-hypertex">Link options for hypertex</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> +Hyperlink drivers pdftex and dvipdfm:: + +</pre></th></tr><tr><td align="left" valign="top">• <a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> +Setting hyperlink types and options + +</pre></th></tr><tr><td align="left" valign="top">• <a href="#Setting-default-types-and-options">Setting default types and options</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Setting-group-types">Setting group types</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Setting-group-options">Setting group options</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> +Turning hyperlinks on/off + +</pre></th></tr><tr><td align="left" valign="top">• <a href="#Turning-low_002dlevel-commands-on_002foff">Turning low-level commands on/off</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Turning-hyperlinks-on_002foff-for-a-group">Turning hyperlinks on/off for a group</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> +Arrow theoretic diagrams + +</pre></th></tr><tr><td align="left" valign="top">• <a href="#Slanted-lines-and-vectors">Slanted lines and vectors</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Commutative-diagrams">Commutative diagrams</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> +Commutative diagrams + +</pre></th></tr><tr><td align="left" valign="top">• <a href="#Arrows-and-morphisms">Arrows and morphisms</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Commutative-diagram-parameters">Commutative diagram parameters</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> +Programming definitions + +</pre></th></tr><tr><td align="left" valign="top">• <a href="#Category-codes">Category codes</a>:</td><td> </td><td align="left" valign="top">Changing category codes. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Allocation-macros">Allocation macros</a>:</td><td> </td><td align="left" valign="top">Non-outer versions of \newcount et al. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Iteration">Iteration</a>:</td><td> </td><td align="left" valign="top">Doing ‘for’ and ‘while’ loops in TeX. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Macro-arguments">Macro arguments</a>:</td><td> </td><td align="left" valign="top">Reading and ignoring them. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Converting-to-characters">Converting to characters</a>:</td><td> </td><td align="left" valign="top">Normalizing control sequences and spaces. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Expansion">Expansion</a>:</td><td> </td><td align="left" valign="top">Controlling expansion. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Obeying-spaces">Obeying spaces</a>:</td><td> </td><td align="left" valign="top">Making whitespace count anywhere. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Writing-out-numbers">Writing out numbers</a>:</td><td> </td><td align="left" valign="top">Making ‘1’ into ‘one’. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Mode_002dspecific-penalties">Mode-specific penalties</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Auxiliary-files">Auxiliary files</a>:</td><td> </td><td align="left" valign="top">Testing for their existence. +</td></tr> +<tr><td align="left" valign="top">• <a href="#User_002ddefined-environments">User-defined environments</a>:</td><td> </td><td align="left" valign="top">User-defined environments. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> +Expansion + +</pre></th></tr><tr><td align="left" valign="top">• <a href="#g_t_005ccsn-and-_005cece">\csn and \ece</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_005cedefappend">\edefappend</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Hooks">Hooks</a>:</td><td> </td><td align="left" valign="top">Manipulating and executing named actions. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Properties">Properties</a>:</td><td> </td><td align="left" valign="top">Associating information with a csname. +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_005cexpandonce">\expandonce</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_005cifundefined">\ifundefined</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_005cifempty">\ifempty</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_005cifinteger-and-_005cisinteger">\ifinteger and \isinteger</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_005cfuturenonspacelet">\futurenonspacelet</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> +Demo files + +</pre></th></tr><tr><td align="left" valign="top">• <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029">Highlighting TeX comments in listings (lscommnt.tex)</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + + +<hr> +<a name="Introduction"></a> +<div class="header"> +<p> +Next: <a href="#Installation" accesskey="n" rel="next">Installation</a>, Previous: <a href="#Top" accesskey="p" rel="prev">Top</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Introduction-1"></a> +<h2 class="chapter">1 Introduction</h2> + +<a name="index-Eplain_002c-purpose-of"></a> + +<a name="index-xeplain_002etex"></a> +<p>The <em>Eplain</em> macro package expands on and extends the definitions in +plain TeX. Its home on the web is <a href="http://tug.org/eplain">http://tug.org/eplain</a>. +</p> +<p>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>xeplain.tex</samp>) +for that. +</p> +<p>Eplain is not intended to provide typesetting capabilities, as +does LaTeX (originally written by Leslie Lamport) +<a name="index-LaTeX"></a> +<a name="index-Lamport_002c-Leslie"></a> +and Texinfo +<a name="index-Texinfo"></a> +(Originally written by Richard Stallman). +<a name="index-Stallman_002c-Richard"></a> +<a name="index-rms"></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> +<p>For example, Eplain does not have a command <code>\section</code> to format +section headings in an “appropriate” 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 +“appropriate”. Such canned macros are fine—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 have to +put in extra work to override the defaults. +</p> +<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"></a> +is not aware of any generally available macro packages that (1) do +not force their typographic style on an author, and yet (2) provide +such capabilities. +</p> +<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> +<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> +<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"></a> +<a name="index-fmtversion"></a> +at the end of the source file <samp>eplain.tex</samp>. When corresponding, +please refer to it. +</p> +<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 +</p> +<div class="example"> +<pre class="example">subscribe <var>you@your.preferred.address</var> +</pre></div> + +<p>or visit <a href="http://lists.tug.org/tex-eplain">http://lists.tug.org/tex-eplain</a>. +</p> +<a name="index-Walden_002c-David"></a> +<p>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-TUGboat"></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>. +</p> +<hr> +<a name="Installation"></a> +<div class="header"> +<p> +Next: <a href="#Invoking-Eplain" accesskey="n" rel="next">Invoking Eplain</a>, Previous: <a href="#Introduction" accesskey="p" rel="prev">Introduction</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Installation-1"></a> +<h2 class="chapter">2 Installation</h2> + +<a name="index-Eplain_002c-installing"></a> +<a name="index-installation"></a> +<a name="index-Eplain_002c-upgrading"></a> +<a name="index-upgrading"></a> +<p>Your TeX installation should already contain a version of Eplain +(<samp>eplain.tex</samp>) in its main <samp>texmf</samp> tree (usually under +<samp>/usr/share/texmf/tex/eplain/</samp> on Unix systems). To install a +newer version of Eplain, put the new <samp>eplain.tex</samp> (included in +Eplain distributions) in the <samp>tex/eplain/</samp> subdirectory of your +local <samp>texmf</samp> tree. The newer version you install in the local +tree should override the older one in the main tree. +</p> +<p>The location of the local <samp>texmf</samp> tree obviously depends on your +operating system and TeX installation. On Unix systems the usual +location is <samp>/usr/local/share/texmf/</samp>. If you don’t have write +permissions for <samp>/usr/local/share/texmf/</samp>, many installations read +the <samp>texmf</samp> tree in the user’s home directory; <samp>eplain.tex</samp> +then should go under <samp>~/texmf/tex/eplain/</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"></a> +<p>If you prefer to install <samp>eplain.tex</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> +<p>If you want, you can also create a format (<samp>.fmt</samp>) +<a name="index-_002efmt-file"></a> +<a name="index-format-file"></a> +<a name="index-eplain_002efmt"></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: +</p> +<div class="example"> +<pre class="example">prompt$ touch eplain.aux +prompt$ initex +This is TeX, ... +**&plain eplain +(eplain.tex) +*\dump +... <var>messages</var> ... +</pre></div> + +<a name="index-eplain_002eaux"></a> +<a name="index-undefined-labels_002c-warnings-about"></a> +<p>You must make sure that <samp>eplain.aux</samp> exists <em>before</em> you +run <samp>initex</samp>; otherwise, warning messages about undefined labels +will never be issued. +</p> +<a name="index-TEXFORMATS"></a> +<p>You then have to install the resulting <samp>eplain.fmt</samp> in your local +<samp>texmf</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>/usr/local/share/texmf/web2c/</samp> or +<samp>/var/lib/texmf/web2c/</samp>; the environment variable is +<code>TEXFORMATS</code>. +</p> +<hr> +<a name="Invoking-Eplain"></a> +<div class="header"> +<p> +Next: <a href="#User-definitions" accesskey="n" rel="next">User definitions</a>, Previous: <a href="#Installation" accesskey="p" rel="prev">Installation</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Invoking-Eplain-1"></a> +<h2 class="chapter">3 Invoking Eplain</h2> + +<a name="index-Eplain_002c-invoking"></a> +<p>The simplest way to use Eplain is simply to put: +</p> +<div class="example"> +<pre class="example">\input eplain +</pre></div> + +<p>at the beginning of your input file. The macro file is small +enough that reading it does not take an unbearably long time—at least on +contemporary machines. +</p> +<p>In addition, if a format (<samp>.fmt</samp>) +<a name="index-_002efmt-file-1"></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>&eplain</code> to TeX’s ‘<samp>**</samp>’ prompt. For +example: +</p> +<div class="example"> +<pre class="example">initex +This is TeX, ... +**&eplain myfile +</pre></div> + +<p>Depending on the implementation of TeX which you are using, you might +also be able to invoke TeX as <samp>eplain</samp> and have the format file +automatically read. +</p> +<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"></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: +</p> +<div class="example"> +<pre class="example">\ifx\eplain\undefined \input eplain \fi +</pre></div> + +<p>where <code>\undefined</code> must never acquire a definition. +</p> +<p>Eplain consists of several source files: +</p><dl compact="compact"> +<dt><samp>xeplain.tex</samp></dt> +<dd><p>most of the macros; +</p> +</dd> +<dt><samp>arrow.tex</samp></dt> +<dd><p>commutative diagram macros (see <a href="#Arrow-theoretic-diagrams">Arrow theoretic diagrams</a>), written by +Steven Smith; +</p> +</dd> +<dt><samp>btxmac.tex</samp></dt> +<dd><p>bibliography-related macros (see <a href="#Citations">Citations</a>); +</p> +</dd> +<dt><samp>ifpdf.sty</samp></dt> +<dd><p>sets the switch <code>\ifpdf</code>, which can be used to detect pdfTeX +in PDF mode (see <a href="#Checking-for-PDF-output">Checking for PDF output</a>), written by Heiko +Oberdiek; +</p> +</dd> +<dt><samp>path.sty</samp></dt> +<dd><p>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; +</p> +</dd> +<dt><samp>texnames.sty</samp></dt> +<dd><p>abbreviations for various TeX-related names (see <a href="#Logos">Logos</a>), edited +by Nelson Beebe. +</p> +</dd> +</dl> + +<p>The file <samp>eplain.tex</samp> is all of these files merged +together, with comments removed. The original sources can be found in +Eplain source zip archive in your TeX distribution, on <acronym>CTAN</acronym> +or on Eplain’s home page at <a href="http://tug.org/eplain">http://tug.org/eplain</a>. +</p> +<p>All of these files except <samp>xeplain.tex</samp> can be input individually, +if all you want are the definitions in that file. +</p> +<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"></a> +is defined, then the bibliography definitions are skipped. You must set +<code>\nobibtex</code> before <samp>eplain.tex</samp> is read, naturally. For +example, you could start your input file like this: +</p> +<div class="example"> +<pre class="example">\let\nobibtex = t +\input eplain +</pre></div> + +<p>By default, <code>\nobibtex</code> is undefined, and so the +bibliography definitions <em>are</em> made. +</p> +<a name="index-noarrow"></a> +<p>Likewise, define <code>\noarrow</code> if you don’t want to include the +commutative diagram macros from <samp>arrow.tex</samp>, perhaps because you +already have conflicting ones. +</p> +<p>If you don’t want to read or write an <samp>aux</samp> file at all, for any +kind of cross-referencing, define <code>\noauxfile</code> +<a name="index-noauxfile"></a> +before reading <samp>eplain.tex</samp>. This also turns off all warnings +about undefined labels. +</p> +<a name="index-amsppt_002esty"></a> +<a name="index-AMSTeX-conflicts"></a> +<p>Eplain conflicts with AMSTeX (to be precise, with <samp>amsppt.sty</samp>): +the macros <code>\cite</code> and <code>\ref</code> are defined by both. +</p> +<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> +<p>If you have <samp>amsppt.sty</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"></a> +<a name="index-bibtex"></a> +<a name="index-makeindex"></a> +<p>Sometimes you may need to run TeX more then once on your +<samp>.tex</samp> file in order to produce and typeset indexes, resolve +undefined cross-references and/or citations. The shell script +<code>texi2dvi</code> 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 +<code>LATEX</code> environment variable to ‘<samp>tex</samp>’. For example, in a +Bourne-compatible shell, the following command will do all the work: +</p> +<div class="example"> +<pre class="example">prompt$ LATEX=tex texi2dvi file.tex +</pre></div> + +<a name="index-pdftex"></a> +<p>(Despite the name, <code>texi2dvi</code> can also produce +<samp>.pdf</samp> files; just set ‘<samp>LATEX=pdftex</samp>’.) See the output from +the command <code>texi2dvi --help</code> for invoking information and a +full list of options. +</p> +<hr> +<a name="User-definitions"></a> +<div class="header"> +<p> +Next: <a href="#Hyperlinks" accesskey="n" rel="next">Hyperlinks</a>, Previous: <a href="#Invoking-Eplain" accesskey="p" rel="prev">Invoking Eplain</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="User-definitions-1"></a> +<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. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Diagnostics" accesskey="1">Diagnostics</a>:</td><td> </td><td align="left" valign="top">Tracing information. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Rules" accesskey="2">Rules</a>:</td><td> </td><td align="left" valign="top">Changing the default rule dimensions. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Citations" accesskey="3">Citations</a>:</td><td> </td><td align="left" valign="top">Using BibTeX and Eplain to make bibliographies. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Displays" accesskey="4">Displays</a>:</td><td> </td><td align="left" valign="top">Changing the formatting of math displays. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Time-of-day" accesskey="5">Time of day</a>:</td><td> </td><td align="left" valign="top">Producing the time of day. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Lists" accesskey="6">Lists</a>:</td><td> </td><td align="left" valign="top">Producing numbered and unordered lists. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Verbatim-listing" accesskey="7">Verbatim listing</a>:</td><td> </td><td align="left" valign="top">Producing text just as it appears. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Contents" accesskey="8">Contents</a>:</td><td> </td><td align="left" valign="top">Making a table of contents. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Cross_002dreferences" accesskey="9">Cross-references</a>:</td><td> </td><td align="left" valign="top">Symbolic references to equations, figures, etc. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Page-references">Page references</a>:</td><td> </td><td align="left" valign="top">Symbolic references to page numbers. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Equation-references">Equation references</a>:</td><td> </td><td align="left" valign="top">Symbolic references to equation numbers. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Indexing">Indexing</a>:</td><td> </td><td align="left" valign="top">Creating and typesetting indexes. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Justification">Justification</a>:</td><td> </td><td align="left" valign="top">Ragged left, ragged right, centered. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Tables">Tables</a>:</td><td> </td><td align="left" valign="top">Producing ordered tables. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Margins">Margins</a>:</td><td> </td><td align="left" valign="top">Changing the margins directly. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Multiple-columns">Multiple columns</a>:</td><td> </td><td align="left" valign="top">Getting output in two columns. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Footnotes">Footnotes</a>:</td><td> </td><td align="left" valign="top">Autonumbered footnotes; changing formatting. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Fractions">Fractions</a>:</td><td> </td><td align="left" valign="top">A better way to produce fractions in text. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Paths">Paths</a>:</td><td> </td><td align="left" valign="top">Allowing line breaks in pathnames. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Logos">Logos</a>:</td><td> </td><td align="left" valign="top">Various logos. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Boxes">Boxes</a>:</td><td> </td><td align="left" valign="top">Producing filled or open rectangles. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Checking-for-PDF-output">Checking for PDF output</a>:</td><td> </td><td align="left" valign="top">Checking for pdfTeX in PDF mode. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Loading-LaTeX-packages">Loading LaTeX packages</a>:</td><td> </td><td align="left" valign="top">Support for LaTeX packages under plain TeX. +</td></tr> +</table> + + +<hr> +<a name="Diagnostics"></a> +<div class="header"> +<p> +Next: <a href="#Rules" accesskey="n" rel="next">Rules</a>, Up: <a href="#User-definitions" accesskey="u" rel="up">User definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Diagnostics-1"></a> +<h3 class="section">4.1 Diagnostics</h3> + +<a name="index-diagnostics"></a> +<a name="index-tracing"></a> +<p>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"></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"></a> +(For some reason, this command is available in Metafont, but not in +TeX.) +</p> +<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"></a> +are shown on the terminal.) +</p> +<p>You can turn off all tracing with <code>\tracingoff</code>. +<a name="index-tracingoff"></a> +</p> +<p>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"></a> +and <code>\gtracingall</code>. +<a name="index-gtracingall"></a> +</p> +<p>Finally, if you write your own help messages (see <code>\newhelp</code> +<a name="index-help-messages"></a> +<a name="index-error-messages"></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"></a> +however, plain TeX doesn’t set <code>\newlinechar</code>. Therefore, +Eplain defines it to be the character <code>^^J</code>. +</p> +<p>For example, one of Eplain’s own error messages is defined as follows: +</p> +<div class="example"> +<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> + + +<hr> +<a name="Rules"></a> +<div class="header"> +<p> +Next: <a href="#Citations" accesskey="n" rel="next">Citations</a>, Previous: <a href="#Diagnostics" accesskey="p" rel="prev">Diagnostics</a>, Up: <a href="#User-definitions" accesskey="u" rel="up">User definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Rules-1"></a> +<h3 class="section">4.2 Rules</h3> + +<p>The default dimensions of rules are defined in chapter 21 of the +<cite>The TeXbook</cite>. To sum up what is given there, the “thickness” +of rules is +<a name="index-rule-thickness"></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"></a> +<a name="index-hruledefaultdepth"></a> +and <code>\vruledefaultwidth</code>. By default, they are defined as +<a name="index-vruledefaultwidth"></a> +<cite>The TeXbook</cite> describes. +</p> +<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"></a> +and <code>\evrule</code>. +<a name="index-evrule"></a> +</p> + +<hr> +<a name="Citations"></a> +<div class="header"> +<p> +Next: <a href="#Displays" accesskey="n" rel="next">Displays</a>, Previous: <a href="#Rules" accesskey="p" rel="prev">Rules</a>, Up: <a href="#User-definitions" accesskey="u" rel="up">User definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Citations-1"></a> +<h3 class="section">4.3 Citations</h3> + +<a name="index-citations"></a> +<a name="index-bibliographies"></a> +<p>Bibliographies are part of almost every technical document. To handle +them conveniently, 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-BibTeX"></a> +<a name="index-Patashnik_002c-Oren"></a> +of the first item; the citation commands in LaTeX, written to be used +<a name="index-LaTeX-1"></a> +with BibTeX, take care of the second. Therefore, +Eplain adopts the use of BibTeX, and virtually the same interface as +LaTeX. +</p> +<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>.aux</samp>. +<a name="index-_002eaux-file"></a> +<a name="index-jobname"></a> +BibTeX reads this file. You should put the bibliography data in a +file or files with the extension <samp>.bib</samp>. BibTeX writes out a +file with the same root +<a name="index-_002ebib-file"></a> +name as your document and extension <samp>.bbl</samp>. Eplain reads this file +<a name="index-_002ebbl-file"></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>.bib</samp> +file, which means you have to run BibTeX again, which means you have +to run TeX again…) An annotated example of the whole process is +given below. +</p> +<p>If your document has more than one bibliography—for example, if it +is a collection of papers—you can tell Eplain to use a different root +name for the <samp>.bbl</samp> file by defining the control sequence +<code>\bblfilebasename</code>. +<a name="index-bblfilebasename"></a> +The default definition is simply <code>\jobname</code>. +</p> +<p>On the other hand, if your document’s bibliography is very simple, you +may prefer to create the <samp>.bbl</samp> file yourself, by hand, instead of +using BibTeX. An annotated example of this approach is also given +below. +</p> +<p>See the document <cite>BibTeXing</cite> (whose text is in the file +<samp>btxdoc.tex</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> +<p>The <code>\cite</code> +<a name="index-cite"></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"></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> +<p>Eplain can create hypertext links for citations pointing to the relevant +bibliography entries (see <a href="#Citation-hyperlinks">Citation hyperlinks</a>). +</p> +<p>Another command, <code>\nocite</code>, +<a name="index-nocite"></a> +puts the given reference(s) into the bibliography, but produces nothing +in the text. +</p> +<p>The <code>\bibliography</code> +<a name="index-bibliography"></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>.bib</samp>’). Again, +spaces in this list are significant. +</p> +<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"></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-_002ebst-files"></a> +See the document <cite>Designing BibTeX styles</cite> (whose text is in the +<samp>btxhak.tex</samp>) for information on how to write your own styles. +</p> +<p>Eplain automatically reads the citations from the <tt>.aux</tt> file when +your job starts. +</p> +<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"></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> +<p>Here is a TeX input file that illustrates the various commands. +</p> +<div class="example"> +<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></div> +<a name="index-Knuth_002c-Donald-Ervin"></a> +<a name="index-Graham_002c-Ronald-L_002e"></a> +<a name="index-numbered-references"></a> +<a name="index-references_002c-numbered"></a> + +<p>If we suppose that this file was named <samp>citex.tex</samp> and that the +bibliography data is in <samp>knuth.bib</samp> (as the above +<code>\bibliography</code> command says), the following commands do what’s +required. (‘<samp>$ </samp>’ represents the shell prompt.) +</p> +<div class="example"> +<pre class="example">$ tex citex <i>(produces undefined citation messages)</i> +$ bibtex citex <i>(read knuth.bib and citex.aux, write citex.bbl)</i> +$ tex citex <i>(read citex.bbl, still have undefined citations)</i> +$ tex citex <i>(one more time, to resolve the references)</i> +</pre></div> + +<a name="index-texi2dvi-1"></a> +<p>The <code>texi2dvi</code> program can help you automate this +process (see <a href="#Invoking-Eplain">Invoking Eplain</a>). +</p> +<p>For simple documents you might choose to write the <samp>.bbl</samp> file +yourself, instead of running BibTeX. For this scenario, the +following commands should suffice: +</p> +<div class="example"> +<pre class="example">$ tex citex <i>(read citex.bbl, produces undefined citation messages)</i> +$ tex citex <i>(one more time, to resolve the references)</i> +</pre></div> + +<p>The output looks something like (because we used the <tt>plain</tt> +bibliography style): +</p> +<blockquote> +<p>Two citations to Knuthian works: [2,1 note]. +</p> +<p><b>References</b> +</p> +<p>[1] Ronald L. Graham, Donald E. Knuth, and Oren Patashnik. <i>Concrete +Mathematics</i>. Addison-Wesley, Reading, Massachusetts, 1989. +</p> +<p>[2] Donald E. Knuth. <i>Surreal Numbers</i>. Addison-Wesley, Reading, +Massachusetts, 1974. +</p></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"></a> +<a name="index-references_002c-alphanumeric"></a> +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Formatting-citations" accesskey="1">Formatting citations</a>:</td><td> </td><td align="left" valign="top">Changing the way citations are printed. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Formatting-bibliographies" accesskey="2">Formatting bibliographies</a>:</td><td> </td><td align="left" valign="top">Changing the way bibliographies are printed. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Commands-from-LaTeX" accesskey="3">Commands from LaTeX</a>:</td><td> </td><td align="left" valign="top">LaTeX commands defined by <samp>btxmac</samp>. +</td></tr> +</table> + + +<hr> +<a name="Formatting-citations"></a> +<div class="header"> +<p> +Next: <a href="#Formatting-bibliographies" accesskey="n" rel="next">Formatting bibliographies</a>, Up: <a href="#Citations" accesskey="u" rel="up">Citations</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Formatting-citations-1"></a> +<h4 class="subsection">4.3.1 Formatting citations</h4> + +<a name="index-citations_002c-formatting"></a> + +<p>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. +</p> +<dl compact="compact"> +<dt><code>\printcitestart</code></dt> +<dt><code>\printcitefinish</code></dt> +<dd><a name="index-printcitestart"></a> +<a name="index-printcitefinish"></a> +<p>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>[</samp>’ and ‘<samp>]</samp>’, respectively. +</p> +</dd> +<dt><code>\printbetweencitations</code></dt> +<dd><a name="index-printbetweencitations"></a> +<p>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. +</p> +</dd> +<dt><code>\printcitenote</code></dt> +<dd><a name="index-printcitenote"></a> +<p>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. +</p></dd> +</dl> + + +<p>Here is an example, showing you could produce citations as +superscripted labels, with the optional notes in parentheses. +</p> +<div class="example"> +<pre class="example">\def\printcitestart{\unskip $^\bgroup} +\def\printbetweencitations{,} +\def\printcitefinish{\egroup$} +\def\printcitenote#1{\hbox{\sevenrm\space (#1)}} +</pre></div> + + +<hr> +<a name="Formatting-bibliographies"></a> +<div class="header"> +<p> +Next: <a href="#Commands-from-LaTeX" accesskey="n" rel="next">Commands from LaTeX</a>, Previous: <a href="#Formatting-citations" accesskey="p" rel="prev">Formatting citations</a>, Up: <a href="#Citations" accesskey="u" rel="up">Citations</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Formatting-bibliographies-1"></a> +<h4 class="subsection">4.3.2 Formatting bibliographies</h4> + +<a name="index-bibliography_002c-formatting-the"></a> + +<p>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: +</p> +<dl compact="compact"> +<dt><code>\biblabelwidth</code></dt> +<dd><a name="index-biblabelwidth"></a> +<p>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. +</p> +</dd> +<dt><code>\biblabelprint</code></dt> +<dd><a name="index-biblabelprint"></a> +<p>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. +</p> +</dd> +<dt><code>\biblabelcontents</code></dt> +<dd><a name="index-biblabelcontents"></a> +<p>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. +</p> +</dd> +<dt><code>\biblabelprecontents</code></dt> +<dt><code>\biblabelpostcontents</code></dt> +<dd><a name="index-biblabelprecontents"></a> +<a name="index-biblabelpostcontents"></a> +<p>Macros expanded before and after <code>\biblabelcontents</code>, +respectively. For example, to get left-justified numeric labels (they +are right-justified by default): +</p> +<div class="example"> +<pre class="example">\def\biblabelprecontents{\relax} +\def\biblabelpostcontents{\hss} +</pre></div> + +</dd> +<dt><code>\bblrm</code></dt> +<dd><a name="index-bblrm"></a> +<a name="index-bibliography-fonts"></a> +<p>The default font used for printing the bibliography. +</p> +</dd> +<dt><code>\bblem</code></dt> +<dd><a name="index-bblem"></a> +<p>The font used for printing the titles and other “emphasized” material. +</p> +</dd> +<dt><code>\bblemph</code></dt> +<dd><a name="index-bblemph"></a> +<a name="index-italic-correction"></a> +<p>Typesets its argument using <code>\bblem</code>, then inserts an italic correction. +</p> +</dd> +<dt><code>\bblsc</code></dt> +<dd><a name="index-bblsc"></a> +<p>In some styles, authors’ names are printed in a caps-and-small-caps +font. In those cases, this font is used. +</p> +</dd> +<dt><code>\bblnewblock</code></dt> +<dd><a name="index-bblnewblock"></a> +<p>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.) +</p> +</dd> +<dt><code>\biblabelextraspace</code></dt> +<dd><a name="index-biblabelextraspace"></a> +<p>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>. +</p> +</dd> +<dt><code>\bblhook</code></dt> +<dd><a name="index-bblhook"></a> +<a name="index-bibliography-items_002c-extra-space-between"></a> +<p>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>.) +</p> +</dd> +</dl> + +<p>If you are desperate, of course you can also hand-edit the <tt>.bbl</tt> +file that BibTeX produces to do anything you wish. +</p> + +<hr> +<a name="Commands-from-LaTeX"></a> +<div class="header"> +<p> +Previous: <a href="#Formatting-bibliographies" accesskey="p" rel="prev">Formatting bibliographies</a>, Up: <a href="#Citations" accesskey="u" rel="up">Citations</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Commands-from-LaTeX-1"></a> +<h4 class="subsection">4.3.3 Commands from LaTeX</h4> + +<a name="index-LaTeX-commands_002c-in-btxmac_002etex"></a> +<p>Because of the historical connection between BibTeX and LaTeX, +in practice many bibliography styles and bibliographies use LaTeX +commmands that are not part of bibliography handling, per se. +</p> +<p>To support this, <samp>btxmac.tex</samp> (and thus Eplain) define the +following. In all cases, an existing definition (e.g., from +<samp>miniltx.tex</samp>, see <a href="#Loading-LaTeX-packages">Loading LaTeX +packages</a>) will not be overwritten. Here is the list: +</p> +<dl compact="compact"> +<dt><code>\newcommand</code></dt> +<dt><code>\renewcommand</code></dt> +<dt><code>\providecommand</code></dt> +<dd><a name="index-newcommand"></a> +<a name="index-renewcommand"></a> +<a name="index-providecommand"></a> +<a name="index-_002a_002dform-of-LaTeX-commands"></a> +<p>Defining new commands in various ways. The Eplain versions do not +support the *-form of these; use <samp>miniltx</samp> for that. +</p> +</dd> +<dt><code>\em</code></dt> +<dt><code>\emph</code></dt> +<dt><code>\sc</code></dt> +<dt><code>\textbf</code></dt> +<dd><a name="index-em"></a> +<a name="index-emph"></a> +<a name="index-sc"></a> +<a name="index-textbf"></a> +<p>Selecting fonts. +</p> +</dd> +<dt><code>\mbox</code></dt> +<dd><a name="index-mbox"></a> +<p>A horizontal box. +</p> +</dd> +<dt><code>\newblock</code></dt> +<dd><a name="index-newblock"></a> +<p>Starts elements of a bibliography entry. +</p></dd> +</dl> + +<p>For full information about these, see the LaTeX manual and sources. +</p> + +<hr> +<a name="Displays"></a> +<div class="header"> +<p> +Next: <a href="#Time-of-day" accesskey="n" rel="next">Time of day</a>, Previous: <a href="#Citations" accesskey="p" rel="prev">Citations</a>, Up: <a href="#User-definitions" accesskey="u" rel="up">User definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Displays-1"></a> +<h3 class="section">4.4 Displays</h3> + +<a name="index-displays_002c-left_002djustifying"></a> +<a name="index-mathematics-displays_002c-formatting"></a> +<a name="index-left_002djustification-of-displays"></a> +<a name="index-equation-numbers_002c-left_002dalignment"></a> +<a name="index-left_002dalignment-of-equation-numbers"></a> + +<p>By default, TeX centers displayed material. (Displayed material is +just whatever you put between <code>$$</code>’s—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"></a> +which indents displayed material by <code>\parindent</code> plus +<code>\leftskip</code>, plus <code>\leftdisplayindent</code>. +<a name="index-leftdisplayindent"></a> +</p> +<p>You can go back to centering displays with <code>\centereddisplays</code>. +<a name="index-centereddisplays"></a> +(It is usually poor typography to have both centered and left-justified +displays in a single publication, though.) +</p> +<p><code>\leftdisplays</code> also changes the plain TeX commands that deal +with alignments inside math displays, +<code>\displaylines</code>, +<a name="index-displaylines"></a> +<code>\eqalignno</code>, +<a name="index-eqalignno"></a> +and <code>\leqalignno</code>, +<a name="index-leqalignno"></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>. +</p> +<a name="index-lefteqnumbers"></a> +<a name="index-righteqnumbers"></a> +<a name="index-eqnum"></a> +<a name="index-eqalignnum"></a> +<a name="index-eqno"></a> +<a name="index-leqno"></a> +<a name="index-eqalignno-1"></a> +<a name="index-leqalignno-1"></a> +<p>Eplain defines <code>\eqnum</code> and <code>\eqalignnum</code> which can be set +up to produce either left-aligned or right-aligned equation numbers. +<code>\lefteqnumbers</code> (<code>\righteqnumbers</code>) will define +<code>\eqnum</code> to expand to <code>\eqno</code> (<code>\leqno</code>), and +<code>\eqalignnum</code> to expand to <code>\eqalignno</code> +(<code>\leqalignno</code>). Default is <code>\righteqnumbers</code> +(right-aligned equation numbers). +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Formatting-displays" accesskey="1">Formatting displays</a>:</td><td> </td><td align="left" valign="top">General formatting of displays. +</td></tr> +</table> + + +<hr> +<a name="Formatting-displays"></a> +<div class="header"> +<p> +Up: <a href="#Displays" accesskey="u" rel="up">Displays</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Formatting-displays-1"></a> +<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"></a> +is called at the beginning of every display (presumably by invoking it +in TeX’s <code>\everydisplay</code> parameter). +</p> +<p><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"></a> +</p> + +<hr> +<a name="Time-of-day"></a> +<div class="header"> +<p> +Next: <a href="#Lists" accesskey="n" rel="next">Lists</a>, Previous: <a href="#Displays" accesskey="p" rel="prev">Displays</a>, Up: <a href="#User-definitions" accesskey="u" rel="up">User definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Time-of-day-1"></a> +<h3 class="section">4.5 Time of day</h3> + +<a name="index-time-of-day"></a> +<a name="index-date"></a> + +<p>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> +<p><code>\monthname</code> +<a name="index-monthname"></a> +produces the name of the current month, abbreviated to three letters. +</p> +<p><code>\fullmonthname</code> +<a name="index-fullmonthname"></a> +produces the name of the current month, unabbreviated (in English). +</p> +<p><code>\timestring</code> +<a name="index-timestring"></a> +produces the current time, as in ‘1:14 p.m.’ +</p> +<p><code>\timestamp</code> +<a name="index-timestamp"></a> +produces the current date and time, as in ‘23 Apr 64 1:14 p.m.’. +(Except the spacing is slightly different.) +</p> +<p><code>\today</code> +<a name="index-today"></a> +produces the current date, as in ‘23 April 1964’. +</p> + +<hr> +<a name="Lists"></a> +<div class="header"> +<p> +Next: <a href="#Verbatim-listing" accesskey="n" rel="next">Verbatim listing</a>, Previous: <a href="#Time-of-day" accesskey="p" rel="prev">Time of day</a>, Up: <a href="#User-definitions" accesskey="u" rel="up">User definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Lists-1"></a> +<h3 class="section">4.6 Lists</h3> + +<a name="index-lists"></a> +<a name="index-numbered-lists"></a> +<a name="index-ordered-list"></a> +<a name="index-unordered-lists"></a> + +<p>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: +</p> +<dl compact="compact"> +<dt><code>\numberedlist … \endnumberedlist</code></dt> +<dt><code>\orderedlist … \endorderedlist</code></dt> +<dd><a name="index-numberedlist"></a> +<a name="index-endnumberedlist"></a> +<a name="index-orderedlist"></a> +<a name="index-endorderedlist"></a> +<p>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>*</samp>’. +</p> +</dd> +<dt><code>\unorderedlist … \endunorderedlist</code></dt> +<dd><a name="index-unorderedlist"></a> +<a name="index-endunorderedlist"></a> +<p>This produces a list with the items labelled with small black boxes +(“square bullets”). A nested <code>\unorderedlist</code> labels items with +em-dashes. Doubly (and deeper) nested unordered lists label items with +‘*’s. +</p> +</dd> +</dl> + +<p>The two kinds of lists can be nested within each other, as well. +</p> +<p>In both kinds of lists, you begin an item with <code>\li</code>. +<a name="index-li"></a> +An item may continue for several paragraphs. Each item starts a +paragraph. +</p> +<p>You can give <code>\li</code> an optional argument, a cross-reference label. +It’s defined to be the “marker” 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> +<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> +<p>You can also say <code>\listcompact</code> +<a name="index-listcompact"></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> +<p>Here is an example: +</p> +<div class="example"> +<pre class="example">\numberedlist\listcompact +\li The first item. +\li The second item. + +The second paragraph of the second item. +\endnumberedlist +</pre></div> + +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Formatting-lists" accesskey="1">Formatting lists</a>:</td><td> </td><td align="left" valign="top">Changing how the lists look. +</td></tr> +</table> + + +<hr> +<a name="Formatting-lists"></a> +<div class="header"> +<p> +Up: <a href="#Lists" accesskey="u" rel="up">Lists</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Formatting-lists-1"></a> +<h4 class="subsection">4.6.1 Formatting lists</h4> + +<a name="index-lists_002c-formatting"></a> + +<p>Several registers define the spacing associated with lists. It is +likely that their default values won’t suit your particular layout. +</p> +<dl compact="compact"> +<dt><code>\abovelistskipamount, \belowlistskipamount</code></dt> +<dd><a name="index-abovelistskipamount"></a> +<a name="index-belowlistskipamount"></a> +<p>The vertical glue inserted before and after every list, respectively. +</p> +</dd> +<dt><code>\interitemskipamount</code></dt> +<dd><a name="index-interitemskipamount"></a> +<p>The vertical glue inserted before each item except the first. +<code>\listcompact</code> resets this to zero, as mentioned above. +</p> +</dd> +<dt><code>\listleftindent, \listrightindent</code></dt> +<dd><a name="index-listleftindent"></a> +<a name="index-listrightindent"></a> +<p><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) it is more useful to +make the list indentation depend on the paragraph indentation; +(b) footnotes aren’t formatted right if <code>\parindent</code> is reset +to zero. +</p> +</dd> +</dl> + +<p>The three vertical glues are inserted by macros, and preceded by +penalties: <code>\abovelistskip</code> +<a name="index-abovelistskip"></a> +does <code>\vpenalty\abovelistpenalty</code> +<a name="index-abovelistpenalty"></a> +and then <code>\vskip\abovelistskip</code>. <code>\belowlistskip</code> +<a name="index-belowlistskip"></a> +and <code>\interitemskip</code> +<a name="index-interitemskip"></a> +are analogous. +</p> +<p>In addition, the macro <code>\listmarkerspace</code> +<a name="index-listmarkerspace"></a> +is called to separate the item label from the item text. This is set to +<code>\enspace</code> by default. +</p> +<p>If you want to change the labels on the items, you can redefine these +macros: +<code>\numberedmarker</code> +<a name="index-numberedmarker"></a> +or <code>\unorderedmarker</code>. +<a name="index-unorderedmarker"></a> +The following registers might be useful if you do: +</p> +<dl compact="compact"> +<dt><code>\numberedlistdepth, \unorderedlistdepth</code></dt> +<dd><a name="index-numberedlistdepth"></a> +<a name="index-unorderedlistdepth"></a> +<p>These keep track of the depth of nesting of the two kinds of lists. +</p> +</dd> +<dt><code>\itemnumber, \itemletter</code></dt> +<dd><a name="index-itemnumber"></a> +<a name="index-itemletter"></a> +<p>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’. +</p> +</dd> +</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"></a> +is invoked to begin both kinds of lists; <code>\printitem</code> +<a name="index-printitem"></a> +is invoked to print the label (and space following the label) for each +item; and <code>\endlist</code> +<a name="index-endlist"></a> +is invoked to end both kinds of +lists. +<a name="index-item-labels_002c-changing"></a> +<a name="index-labels-on-items_002c-changing"></a> +</p> + +<hr> +<a name="Verbatim-listing"></a> +<div class="header"> +<p> +Next: <a href="#Contents" accesskey="n" rel="next">Contents</a>, Previous: <a href="#Lists" accesskey="p" rel="prev">Lists</a>, Up: <a href="#User-definitions" accesskey="u" rel="up">User definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Verbatim-listing-1"></a> +<h3 class="section">4.7 Verbatim listing</h3> + +<a name="index-verbatim-listing"></a> +<a name="index-listing-files"></a> +<a name="index-files_002c-verbatim-listing-of"></a> +<p>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"></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"></a> +is <code>\tt</code>. +</p> +<p>You can take arbitrary actions before reading the file by defining the macro +<code>\setuplistinghook</code>. +<a name="index-setuplistinghook"></a> +This is expanded just before the file is input. +</p> +<p>If you want to have line numbers on the output, you can say +<code>\let\setuplistinghook = \linenumberedlisting</code>. +<a name="index-linenumberedlisting"></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"></a> +to change how they are printed. +</p> +<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"></a> +This also works with line numbers (say +<code>\def\setuplistinghook{\linenumberedlisting \nolastlinelisting}</code>), +but only if <code>\printlistinglineno</code> +<a name="index-printlistinglineno-1"></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"></a> +<a name="index-CTRL_002dL_002c-and-verbatim-listing"></a> +<p>You can use the form feed control character (<acronym>ASCII</acronym> +code 12, typed as <kbd>CTRL-L</kbd>) in the file to force a page break +in the output. +</p> +<p>You can produce in-line verbatim text in your document with <code>\verbatim</code>. +<a name="index-verbatim"></a> +End the text with <code>|endverbatim</code>. If you need a ‘<samp>|</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> +<p>For example: +</p> +<div class="example"> +<pre class="example">\verbatim| ||\#%&!|endverbatim +</pre></div> + +<p>produces <code> |\#%&!</code>. +</p> +<p>Line breaks and spaces in the verbatim text are preserved. +</p> +<a name="index-verbatimescapechar"></a> +<a name="index-escape-character_002c-changing-verbatim"></a> +<p>You can change the verbatim escape character from the default ‘<samp>|</samp>’ +with <code>\verbatimescapechar <var>char</var></code>; for example, this changes +it to ‘<samp>@</samp>’. +</p> +<div class="example"> +<pre class="example">\verbatimescapechar \@ +</pre></div> + +<p>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 `<var>char</var></code>, so +the exact rules follow that for <code>\catcode</code>. +</p> +<a name="index-special-characters"></a> +<a name="index-characters_002c-special"></a> +<a name="index-uncatcodespecials"></a> +<a name="index-dospecials"></a> +<p>To reset the category code of all special characters to 12 +(“other”), <code>\verbatim</code> uses <code>\uncatcodespecials</code> +(see <a href="#Category-codes">Category codes</a>). If you make additional characters +“special”, you should extend <code>\dospecials</code> to include those +characters, lest they be given special treatment inside verbatim +environments. For example, +</p> +<div class="example"> +<pre class="example">\catcode`\A=\active +% Try commenting out the following line. +\expandafter\def\expandafter\dospecials\expandafter{\dospecials\do\A} +\verbatimA#$%_^|endverbatim +</pre></div> + +<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: +</p> +<div class="example"> +<pre class="example">\def\mymacro{\verbatim &#%|endverbatim}% Doesn't work! +</pre></div> + +<p>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>). +</p> + +<hr> +<a name="Contents"></a> +<div class="header"> +<p> +Next: <a href="#Cross_002dreferences" accesskey="n" rel="next">Cross-references</a>, Previous: <a href="#Verbatim-listing" accesskey="p" rel="prev">Verbatim listing</a>, Up: <a href="#User-definitions" accesskey="u" rel="up">User definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Contents-1"></a> +<h3 class="section">4.8 Contents</h3> + +<a name="index-table-of-contents"></a> +<a name="index-contents"></a> +<p>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>.toc</samp> +<a name="index-_002etoc-file"></a> +(and the same root name as your document) to save the information. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Writing-the-_002etoc-file" accesskey="1">Writing the .toc file</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Reading-the-_002etoc-file" accesskey="2">Reading the .toc file</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Changing-the-_002etoc-file_0027s-root-name" accesskey="3">Changing the .toc file's root name</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Alternative-contents-files" accesskey="4">Alternative contents files</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> +<a name="Writing-the-_002etoc-file"></a> +<div class="header"> +<p> +Next: <a href="#Reading-the-_002etoc-file" accesskey="n" rel="next">Reading the .toc file</a>, Up: <a href="#Contents" accesskey="u" rel="up">Contents</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Writing-the-_002etoc-file-1"></a> +<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{<var>part</var>}{<var>text</var>}</code>, +<a name="index-writetocentry"></a> +where <var>part</var> is the type of part this entry is, e.g., +‘<samp>chapter</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_2026entry"></a> +like <code>\toc<var>part</var>entry{<var>text</var>}{<var>page number</var>}</code> +(unless <var>part</var> is an integer, see below). The <var>text</var> is +written unexpanded. +</p> +<a name="index-writenumberedtocentry"></a> +<p>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—you must expand it yourself, before you +call <code>\writenumberedtocentry</code>. +</p> +<p>For example: +</p> +<div class="example"> +<pre class="example">\writenumberedtocentry{chapter}{A $\sin$ wave}{\the\chapno} +\writetocentry{section}{A section title} +</pre></div> + +<p>Supposing <code>\the\chapno</code> expanded to ‘<samp>3</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: +</p> +<div class="example"> +<pre class="example">\tocchapterentry{A $\sin$ wave}{3}{8} +\tocsectionentry{A section title}{9} +</pre></div> + +<a name="index-writenumberedtocline"></a> +<p>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<var>part</var>entry</code> +control sequences. To continue the previous example: +</p> +<div class="example"> +<pre class="example">\writenumberedtocline{chapter}{\the\chapno}{A $\sin$ wave} +</pre></div> + +<p>writes the following to the <tt>.toc</tt> file: +</p> +<div class="example"> +<pre class="example">\tocchapterentry{3}{A $\sin$ wave}{8} +</pre></div> + +<p>Such ordering of the parameters allows the +<code>\toc<var>part</var>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"></a> +<a name="index-contents_002c-and-verbatim-text"></a> +<a name="index-verbatim-text_002c-in-table-of-contents"></a> +<a name="index-special-characters_002c-in-table-of-contents"></a> +verbatim text (see <a href="#Verbatim-listing">Verbatim listing</a>). +</p> +<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_2026entry-1"></a> +<code>\tocentry{<var>part</var>}</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: +</p> +<div class="example"> +<pre class="example">\writenumberedtocentry{1}{A $\sin$ wave}{\the\chapno} +\writenumberedtocline{1}{\the\chapno}{A $\sin$ wave} +\writetocentry{2}{A section title} +</pre></div> + +<p>writes the following to the .toc file: +</p> +<div class="example"> +<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> + + +<hr> +<a name="Reading-the-_002etoc-file"></a> +<div class="header"> +<p> +Next: <a href="#Changing-the-_002etoc-file_0027s-root-name" accesskey="n" rel="next">Changing the .toc file's root name</a>, Previous: <a href="#Writing-the-_002etoc-file" accesskey="p" rel="prev">Writing the .toc file</a>, Up: <a href="#Contents" accesskey="u" rel="up">Contents</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Reading-the-_002etoc-file-1"></a> +<h4 class="subsection">4.8.2 Reading the <tt>.toc</tt> file</h4> + +<a name="index-readtocfile"></a> +<p>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> +<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"></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> +<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"></a> +<a name="index-rewritetocfile-_0028conditional_0029"></a> +</p> + +<hr> +<a name="Changing-the-_002etoc-file_0027s-root-name"></a> +<div class="header"> +<p> +Next: <a href="#Alternative-contents-files" accesskey="n" rel="next">Alternative contents files</a>, Previous: <a href="#Reading-the-_002etoc-file" accesskey="p" rel="prev">Reading the .toc file</a>, Up: <a href="#Contents" accesskey="u" rel="up">Contents</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Changing-the-_002etoc-file_0027s-root-name-1"></a> +<h4 class="subsection">4.8.3 Changing the <tt>.toc</tt> file’s root name</h4> + +<p>By default, the <samp>.toc</samp> file has the root <code>\jobname</code>. If your +document has more than one contents—for example, if it is a collection +of papers, some of which have their own contents—you can tell Eplain +to use a different root name by defining the control sequence +<code>\tocfilebasename</code>. +<a name="index-tocfilebasename"></a> +</p> +<a name="index-writing-several-toc-files"></a> +<a name="index-toc-files_002c-writing-several"></a> +<p>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>). +</p> + +<hr> +<a name="Alternative-contents-files"></a> +<div class="header"> +<p> +Previous: <a href="#Changing-the-_002etoc-file_0027s-root-name" accesskey="p" rel="prev">Changing the .toc file's root name</a>, Up: <a href="#Contents" accesskey="u" rel="up">Contents</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Alternative-contents-files-1"></a> +<h4 class="subsection">4.8.4 Alternative contents files</h4> + +<a name="index-list-of-figures"></a> +<a name="index-list-of-tables"></a> +<a name="index-definecontentsfile"></a> +<p>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{<var>abbrev</var>}</code>. All of the +above commands are actually a special case that Eplain predefines with +</p> +<div class="example"> +<pre class="example">\definecontentsfile{toc} +</pre></div> + +<p>The <var>abbrev</var> is used both for the file extension and in +the control sequence names. +</p> + + +<hr> +<a name="Cross_002dreferences"></a> +<div class="header"> +<p> +Next: <a href="#Page-references" accesskey="n" rel="next">Page references</a>, Previous: <a href="#Contents" accesskey="p" rel="prev">Contents</a>, Up: <a href="#User-definitions" accesskey="u" rel="up">User definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Cross_002dreferences-1"></a> +<h3 class="section">4.9 Cross-references</h3> + +<a name="index-cross_002dreferences"></a> +<p>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> +<p>Eplain therefore provides commands for symbolic cross-references. It +uses an auxiliary file with extension <tt>.aux</tt> +<a name="index-_002eaux-file-1"></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—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> +<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"></a> +<p>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>(a1 $&^_</samp>’ is a valid label (assuming the category +codes of plain TeX), but ‘<samp>%#\{</samp>’ has no valid characters. +</p> +<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> +<p>Eplain can create hypertext links for the cross-references +(see <a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a>). +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Defining-generic-references" accesskey="1">Defining generic references</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Using-generic-references" accesskey="2">Using generic references</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> +<a name="Defining-generic-references"></a> +<div class="header"> +<p> +Next: <a href="#Using-generic-references" accesskey="n" rel="next">Using generic references</a>, Up: <a href="#Cross_002dreferences" accesskey="u" rel="up">Cross-references</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Defining-generic-references-1"></a> +<h4 class="subsection">4.9.1 Defining generic references</h4> + +<a name="index-defining-general-references"></a> +<a name="index-references_002c-defining-general"></a> +<a name="index-cross_002dreferences_002c-defining-general"></a> + +<a name="index-definexref"></a> +<p>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 “class” of the reference—whether it’s a +section, or theorem, or what. For example: +</p> +<div class="example"> +<pre class="example">\definexref{sec-intro}{3.1}{section} +</pre></div> + +<p>Of course, the label value is usually generated by another +macro using TeX count registers or some such. +</p> +<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> +<p>The <var>class</var> argument is used by the <code>\ref</code> and <code>\refs</code> +commands. See the next section. +</p> + +<hr> +<a name="Using-generic-references"></a> +<div class="header"> +<p> +Previous: <a href="#Defining-generic-references" accesskey="p" rel="prev">Defining generic references</a>, Up: <a href="#Cross_002dreferences" accesskey="u" rel="up">Cross-references</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Using-generic-references-1"></a> +<h4 class="subsection">4.9.2 Using generic references</h4> + +<a name="index-defining-general-references-1"></a> +<a name="index-references_002c-defining-general-1"></a> +<a name="index-cross_002dreferences_002c-defining-general-1"></a> + +<p>To retrieve the value of the label defined via <code>\definexref</code> (see +the previous section), Eplain provides the following macros: +</p> +<dl compact="compact"> +<dd> +<a name="index-refn"></a> +</dd> +<dt><code>\refn{<var>label</var>}</code></dt> +<dd><a name="index-xrefn"></a> +</dd> +<dt><code>\xrefn{<var>label</var>}</code></dt> +<dd><p><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-conditional"></a> +</p> +<a name="index-ref"></a> +</dd> +<dt><code>\ref{<var>label</var>}</code></dt> +<dd><p>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>\<var>c</var> 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"></a> +</dd> +<dt><code>\refs{<var>label</var>}</code></dt> +<dd><p>Like <code>\ref</code>, but append the letter ‘<samp>s</samp>’ to the +<code>\…word</code>. +</p> +</dd> +</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> +<p>Here is an example: +</p> +<div class="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></div> + +<p>This produces ‘See Sections 3.1 and 3.2 …’ +</p> + +<hr> +<a name="Page-references"></a> +<div class="header"> +<p> +Next: <a href="#Equation-references" accesskey="n" rel="next">Equation references</a>, Previous: <a href="#Cross_002dreferences" accesskey="p" rel="prev">Cross-references</a>, Up: <a href="#User-definitions" accesskey="u" rel="up">User definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Page-references-1"></a> +<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. +</p> +<dl compact="compact"> +<dt><code>\xrdef{<var>label</var>}</code></dt> +<dd><a name="index-xrdef"></a> +<p>Define <var>label</var> to be the current page number. This produces no +printed output, and ignores following spaces. +</p> +</dd> +<dt><code>\xref{<var>label</var>}</code></dt> +<dd><a name="index-xref"></a> +<p>Produce the text ‘p. <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. ’ prefix is defined by <code>\xrefpageword</code>. +<a name="index-xrefpageword"></a> +Its default definition is <code>p.\thinspace</code>. +</p> +</dd> +</dl> + +<p>Eplain can create hypertext links for the page references (see <a href="#Page-reference-hyperlinks">Page reference hyperlinks</a>). +</p> + +<hr> +<a name="Equation-references"></a> +<div class="header"> +<p> +Next: <a href="#Indexing" accesskey="n" rel="next">Indexing</a>, Previous: <a href="#Page-references" accesskey="p" rel="prev">Page references</a>, Up: <a href="#User-definitions" accesskey="u" rel="up">User definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Equation-references-1"></a> +<h3 class="section">4.11 Equation references</h3> + +<a name="index-equations_002c-references-to"></a> +<a name="index-equations_002c-numbering"></a> +<p>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"></a> +for the current equation number, and increments it at each +numbered equation. +</p> +<p>Here are the commands to define equation labels and then refer to them: +</p> +<dl compact="compact"> +<dt><code>\eqdef{<var>label</var>}</code></dt> +<dd><a name="index-eqdef"></a> +<a name="index-eqnum-1"></a> +<p>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>\eqnum</code> +command (see <a href="#Displays">Displays</a>). (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"></a> +<a name="index-labels_002c-empty-equation"></a> +<a name="index-equations_002c-giving-numbers-to-all"></a> +<p>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"></a> +<a name="index-labels_002c-empty-equation_002c-referring-to"></a> +<p>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. +</p> +</dd> +<dt><code>\eqdefn{<var>label</var>}</code></dt> +<dd><a name="index-eqdefn"></a> +<a name="index-eqnum-2"></a> +<p>This is like <code>\eqdef</code>, except it always omits the <code>\eqnum</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. +</p> +</dd> +<dt><code>\eqref{<var>label</var>}</code></dt> +<dd><a name="index-eqref"></a> +<p>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>. +</p> +</dd> +<dt><code>\eqrefn{<var>label</var>}</code></dt> +<dd><a name="index-eqrefn"></a> +<p>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>. +</p> +</dd> +</dl> + +<a name="index-equation-labels_002c-characters-valid-in"></a> +<p>Equation labels can contain the same characters that are valid in +general cross-references. +</p> +<p>Eplain can create hypertext links for the equation references +(see <a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a>). +</p> + +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Formatting-equation-references" accesskey="1">Formatting equation references</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Subequation-references" accesskey="2">Subequation references</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> +<a name="Formatting-equation-references"></a> +<div class="header"> +<p> +Next: <a href="#Subequation-references" accesskey="n" rel="next">Subequation references</a>, Up: <a href="#Equation-references" accesskey="u" rel="up">Equation references</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Formatting-equation-references-1"></a> +<h4 class="subsection">4.11.1 Formatting equation references</h4> + +<a name="index-equation-numbers_002c-formatting-of"></a> +<p>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>(<var>number</var>)</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"></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.) +</p> +<div class="example"> +<pre class="example">\def\eqprint#1{{\it (#1)}} +</pre></div> + +<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"></a> +For example: +</p> +<div class="example"> +<pre class="example">\def\eqconstruct#1{\the\chapternumber.#1} +</pre></div> + +<p>(If you are keeping the chapter number in a count register named +<code>\chapternumber</code>, naturally.) +</p> +<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> +<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> +<p>Therefore, Eplain allows you to give an optional argument (i.e., +arbitrary text in square brackets) before the cross-reference label to +<code>\eqdef</code>. Then, when you refer to the equation, that text is +produced. Here’s how to get the example just mentioned: +</p> +<div class="example"> +<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></div> + +<p>We use <code>\eqrefn</code> in the cross-reference text, not +<code>\eqref</code>, so that <code>\eqprint</code> is called only once. +</p> +<p>As another example, consider the following requirement: we want to +include chapter number in all equation references, and additionally we +want to include the part number when referencing an equation from any +part other than the one where the equation appears. For example, +references to the third equation in chapter 2 of part 1 +should be typeset as ‘(2.3)’ throughout part 1, but as ‘(I.2.3)’ +in any other part. Let’s assume we have the current chapter and part +numbers in count registers <code>\chapnum</code> and <code>\partnum</code>, +respectively. +</p> +<p>The idea is to have <code>\eqconstruct</code> store the part number of the +equation (that is, the part number <em>at the time of definition</em>), +so that later <code>\eqprint</code> can compare the stored number with the +current part number (that is, the part number <em>at the time of +reference</em>). The complicating factor is that internally, the result +of <code>\eqconstruct</code> is both expanded and written out to the +<samp>.aux</samp> file, <em>and</em> used to typeset the equation number, so +the commands that store the part number should behave correctly in +both situations. This is difficult to achieve with expandable +commands; therefore, to avoid expansion problems, we are going to use +only TeX primitives, which are non-expandable: +</p> +<div class="example"> +<pre class="example">\newcount\eqpartnum + +\def\eqconstruct#1{% + \global\eqpartnum=\the\partnum\relax + \number\chapnum.#1% +} + +\def\eqprint#1{% + \setbox0=\hbox{#1}% + (\ifnum\partnum=\eqpartnum \else + \uppercase\expandafter{\romannumeral\eqpartnum}.% + \fi + \box0)% +}% +</pre></div> + +<p>In <code>\eqconstruct</code>, besides constructing the base equation number +(e.g., ‘1.2’), we also store the part number of the equation in the +count register <code>\eqpartnum</code> (<code>\the\partnum</code> is expanded when +the equation number is written to the <samp>.aux</samp> file, so the +equation label definition in the <samp>.aux</samp> file will contain the +actual part number). In <code>\eqprint</code>, we need to know the +equation’s part number before we typeset the base equation number, +therefore we first put the argument in a box, thus causing +<code>\eqpartnum</code> to be set. +</p> + +<hr> +<a name="Subequation-references"></a> +<div class="header"> +<p> +Previous: <a href="#Formatting-equation-references" accesskey="p" rel="prev">Formatting equation references</a>, Up: <a href="#Equation-references" accesskey="u" rel="up">Equation references</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Subequation-references-1"></a> +<h4 class="subsection">4.11.2 Subequation references</h4> + +<a name="index-equations_002c-groups-of"></a> +<a name="index-subequations_002c-referring-to"></a> +<p>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: +“… in the system of equations (2)…”. +</p> +<p>The commands to do this are <code>\eqsubdef</code> and +<a name="index-eqsubdef"></a> +<code>\eqsubdefn</code>. +<a name="index-eqsubdefn"></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"></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> +<p>You use <code>\eqref</code> to refer to subequations as well as main +equations. +</p> +<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"></a> +This macros takes two arguments, the “main” 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 +“sub” equation number (which is always just a number). Eplain’s +default definition just puts a period between them: +</p> +<div class="example"> +<pre class="example">\def\eqsubreftext#1#2{#1.#2}% +</pre></div> + +<p>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. +</p> +<div class="example"> +<pre class="example">\newcount\subref +\def\eqsubreftext#1#2{% + \subref = #2 % The space stops a <number>. + \advance\subref by 96 % `a' is character code 97. + #1\char\subref +} +</pre></div> + +<p>Sadly, we must define a new count register, <code>\subref</code>, +instead of using the scratch count register <code>\count255</code>, because +‘<samp>#1</samp>’ might include other macro calls which use <code>\count255</code>. +</p> + +<hr> +<a name="Indexing"></a> +<div class="header"> +<p> +Next: <a href="#Justification" accesskey="n" rel="next">Justification</a>, Previous: <a href="#Equation-references" accesskey="p" rel="prev">Equation references</a>, Up: <a href="#User-definitions" accesskey="u" rel="up">User definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Indexing-1"></a> +<h3 class="section">4.12 Indexing</h3> + +<a name="index-indexing"></a> +<a name="index-sorting-an-index"></a> + +<p>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> +<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-URL-for-MakeIndex"></a> +<a name="index-makeindex-1"></a> +<p>Eplain’s indexing commands were designed to work with the program +MakeIndex, available from CTAN hosts in +<samp>tex-archive/indexing/makeindex</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> +<p>The basic strategy for indexing works like this: +</p> +<ol> +<li> <a name="index-_002eidx-files"></a> +For a document <samp>foo.tex</samp>, Eplain’s indexing commands (e.g., +<code>\idx</code>; see the section ‘Indexing terms’ below) write the raw index +material to <samp>foo.idx</samp>. + +</li><li> <a name="index-_002eind-files"></a> +MakeIndex reads <samp>foo.idx</samp>, collects and sorts the index, and +writes the result to <samp>foo.ind</samp>. + +</li><li> Eplain reads and typesets <samp>foo.ind</samp> on a subsequent run of +TeX. See the section ‘Typesetting an index’ below. + +</li></ol> + +<a name="index-texi2dvi-2"></a> +<p>The <code>texi2dvi</code> program can help you automate this +process (see <a href="#Invoking-Eplain">Invoking Eplain</a>). +</p> +<a name="index-multiple-indexes"></a> +<a name="index-indexes_002c-multiple"></a> +<a name="index-defineindex"></a> +<p>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>i</samp>’ in +the filenames and in the indexing command names described below. For +example, +</p> +<div class="example"> +<pre class="example">\defineindex{m} +</pre></div> + +<p>defines the command <code>\mdx</code> to write to the file +<samp>foo.mdx</samp>. Eplain simply does <code>\defineindex{i}</code> to define +the default commands. +</p> +<p>Note that MakeIndex does not use the above naming scheme for multiple +indexes. Unless instructed otherwise, MakeIndex always writes its +output to a file with extension <samp>.ind</samp>. For example, if you +define an additional index with the command <code>\defineindex{j}</code>, +you’ll need to run MakeIndex like this: +</p> +<div class="example"> +<pre class="example">$ makeindex book.jdx -o book.jnd +</pre></div> + +<a name="index-indexes_002c-disabling"></a> +<a name="index-disabling-indexes"></a> +<a name="index-ifidx"></a> +<p>For each index defined with <code>\defineindex{<var>n</var>}</code>, Eplain +provides a switch <code>\if<var>n</var>dx</code> which controls whether indexing +commands write index entries to the corresponding index file. However, +even when index term writing is disabled, indexing commands still do +all other processing of their arguments, including typesetting of +proof index terms (see <a href="#Proofing-index-terms">Proofing index terms</a>. +</p> +<p>For example, if you write <code>\idxfalse</code> near the beginning of a +document <samp>foo.tex</samp> (before the first indexing command), Eplain +will not open the default index file (<samp>foo.idx</samp>) and the +corresponding indexing commands (<code>\idx</code>, <code>\sidx</code>, etc.) +will not write index entries there. This may be useful for draft +compilations of a manuscript, e.g., to avoid the overhead of index +file input/output. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Indexing-terms" accesskey="1">Indexing terms</a>:</td><td> </td><td align="left" valign="top">Specifying what to index. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Typesetting-an-index" accesskey="2">Typesetting an index</a>:</td><td> </td><td align="left" valign="top">Printing the sorted output. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Customizing-indexing" accesskey="3">Customizing indexing</a>:</td><td> </td><td align="left" valign="top">Creating commands and specifying extra actions. +</td></tr> +</table> + + +<hr> +<a name="Indexing-terms"></a> +<div class="header"> +<p> +Next: <a href="#Typesetting-an-index" accesskey="n" rel="next">Typesetting an index</a>, Up: <a href="#Indexing" accesskey="u" rel="up">Indexing</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Indexing-terms-1"></a> +<h4 class="subsection">4.12.1 Indexing terms</h4> + +<a name="index-indexing-terms"></a> +<a name="index-silent-indexing"></a> + +<p>Indexing commands in Eplain come in pairs: one command that only +writes the index entry to the ‘<samp>.idx</samp>’ file (see above section), and +one that also typesets the term being indexed. The former always starts +with ‘<samp>s</samp>’ (for “silent”). In either case, the name always includes +‘<samp><var>I</var>dx</samp>’, where <var>I</var> is the index letter, also described +above. Eplain defines the index ‘<samp>i</samp>’ itself, so that’s what we’ll +use in the names below. +</p> +<a name="index-subterm-in-indexing"></a> +<p>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 +</p> +<div class="display"> +<pre class="display">truth + definition of, 75 +</pre></div> + +<a name="index-trailing-spaces-and-indexing-commands"></a> +<a name="index-spaces_002c-trailing-and-indexing-commands"></a> +<a name="index-indexing-and-trailing-spaces"></a> +<p>Also, the silent commands ignore trailing spaces. The non-silent ones do not. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Indexing-commands" accesskey="1">Indexing commands</a>:</td><td> </td><td align="left" valign="top">Making index entries. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Modifying-index-entries" accesskey="2">Modifying index entries</a>:</td><td> </td><td align="left" valign="top">Ranges, see/see also, page number typesetting. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Index-entries-with-special-characters" accesskey="3">Index entries with special characters</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Proofing-index-terms" accesskey="4">Proofing index terms</a>:</td><td> </td><td align="left" valign="top">Noting index entries in the margins. +</td></tr> +</table> + + +<hr> +<a name="Indexing-commands"></a> +<div class="header"> +<p> +Next: <a href="#Modifying-index-entries" accesskey="n" rel="next">Modifying index entries</a>, Up: <a href="#Indexing-terms" accesskey="u" rel="up">Indexing terms</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Indexing-commands-1"></a> +<h4 class="subsubsection">4.12.1.1 Indexing commands</h4> + +<a name="index-indexing-commands"></a> +<p>Here are the commands. +</p> +<ul> +<li> <a name="index-sidx"></a> +<a name="index-idx"></a> +<code>\sidx{<var>term</var>}[<var>subterm</var>]</code> makes an index entry for +<var>term</var>, optionally with subterm <var>subterm</var>. +<code>\idx{<var>term</var>}</code> also produces <var>term</var> as output. Example: + +<div class="example"> +<pre class="example">\sidx{truth}[beauty of] +The beauty of truth is \idx{death}. +</pre></div> + +<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>!</samp>’. +</p> +</li><li> <a name="index-sidxname"></a> +<a name="index-idxnameseparator"></a> +<a name="index-idxname"></a> +<code>\sidxname{<var>First M.</var>}{<var>von Last</var>}[<var>subterm</var>]</code> +makes an index +entry for ‘<samp><var>von Last</var>, <var>First M.</var></samp>’. You can change the +‘<samp>, </samp>’ by redefining <code>\idxnameseparator</code>. +<code>\idxname{<var>First M.</var>}{<var>von Last</var>}</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: + +<div class="example"> +<pre class="example">\sidxname{Richard}{Stark} +\idxname{Donald}{Westlake} has written many kinds of novels, under +almost as many names. +</pre></div> + +</li><li> <a name="index-sidxmarked"></a> +<a name="index-idxmarked"></a> +<code>\sidxmarked\<var>cs</var>{<var>term</var>}[<var>subterm</var>]</code> makes an index +entry for <code><var>term</var>[<var>subterm</var>]</code>, but <var>term</var> will be put +in the index as <code>\<var>cs</var>{term}</code>, but still sorted as just +<var>term</var>. <code>\idxmarked\<var>cs</var>{<var>term</var>}</code> also typesets +<code>\<var>cs</var>{term}</code>. This provides for the usual ways of changing +the typesetting of index entries. Example: + +<div class="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></div> + +</li><li> <a name="index-idxsubmarked"></a> +<a name="index-sidxsubmarked"></a> +<code>\sidxsubmarked{<var>term</var>}\<var>cs</var>{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>\<var>cs</var>{term}</code>. +<code>\idxsubmarked{<var>term</var>}\<var>cs</var>{subterm}</code> also typesets +<code><var>term</var> \<var>cs</var>{subterm}</code>, in the unlikely event that your +syntax is convoluted enough to make this useful. Example: + +<div class="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></div> + +</li></ul> + +<a name="index-index-entry-general-sorting"></a> +<a name="index-sorting-of-index-entries"></a> +<p>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 <code><var>sort</var>@<var>typeset</var></code>. For +example: +</p> +<div class="example"> +<pre class="example">\sidx{Ap-weight@$A_\pi$-weight} +</pre></div> + +<p>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-hook"></a> +<a name="index-whatsits-made-by-index-entries"></a> +<p>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: +</p> +<div class="example"> +<pre class="example">\hookaction{afterindexterm}{\if@aftersctnhead \nobreak \fi} +</pre></div> + + +<hr> +<a name="Modifying-index-entries"></a> +<div class="header"> +<p> +Next: <a href="#Index-entries-with-special-characters" accesskey="n" rel="next">Index entries with special characters</a>, Previous: <a href="#Indexing-commands" accesskey="p" rel="prev">Indexing commands</a>, Up: <a href="#Indexing-terms" accesskey="u" rel="up">Indexing terms</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Modifying-index-entries-1"></a> +<h4 class="subsubsection">4.12.1.2 Modifying index entries</h4> + +<a name="index-modifying-index-entries_0027-page-numbers"></a> +<a name="index-index-entries_0027-page-numbers_002c-modifying"></a> + +<p>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=<var>cs</var></code> (separate them with +a comma without a following space, like this: +<code>[begin,pagemarkup=defn]</code>). +</p> +<p>These work via MakeIndex’s “encapsulation” 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> +<p>Here are the possibilities: +</p> +<dl compact="compact"> +<dt><code>begin</code></dt> +<dt><code>end</code></dt> +<dd><a name="index-begin-for-index-entries"></a> +<a name="index-end-for-index-entries"></a> +<a name="index-index-entries-and-ranges"></a> +<a name="index-ranges-and-index-entry"></a> +<p>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: +</p> +<div class="example"> +<pre class="example">\sidx[begin]{future}[Cohen, Leonard] +… +\sidx[end]{future}[Cohen, Leonard] +</pre></div> + +<p>will typeset as something like +</p> +<div class="display"> +<pre class="display">future, + Cohen, Leonard, 65–94 +</pre></div> + +</dd> +<dt><code>see</code></dt> +<dd><a name="index-see-for-index-entries"></a> +<a name="index-see_002c-and-index-entries"></a> +<a name="index-cross_002dreferencing-index-entries"></a> +<a name="index-index-entries_002c-and-cross_002dreferencing"></a> +<p>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: +</p> +<div class="example"> +<pre class="example">\sidx[see]{analysis}[archetypal]{archetypal criticism} +</pre></div> + +<p>becomes +</p> +<div class="display"> +<pre class="display">analysis, + archetypal, <i>see</i> archetypal criticism +</pre></div> + +</dd> +<dt><code>seealso</code></dt> +<dd><a name="index-seealso-for-index-entries"></a> +<p>Similar to <code>see</code> (the previous item), but also allows for normal +index entries of the referencing term. The normal index entries have +to be created separately—<code>seealso</code> does <em>not</em> contribute a +page number to the index entry. For example, if you have indexed a +term on pages 75, 97 and 114, and then add a <code>seealso</code> +entry for the term: +</p> +<div class="example"> +<pre class="example">\sidx[seealso]{archetypal criticism}[elements of]{dichotomies} +</pre></div> + +<p>the index will contain +</p> +<div class="display"> +<pre class="display">archetypal criticism, + elements of, 75, 97, 114, <i>see also</i> dichotomies +</pre></div> + +<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.) +</p> +</dd> +<dt><code>pagemarkup=<var>cs</var></code></dt> +<dd><p>This puts <code>\<var>cs</var></code> 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: +</p> +<div class="example"> +<pre class="example">\def\defn#1{{\sl #1}} +\sidx[pagemarkeup=defn]{indexing} +</pre></div> + +<p>becomes something like +</p> +<div class="example"> +<pre class="example">indexing, <code>\defn{75}</code> +</pre></div> + +</dd> +</dl> + + +<hr> +<a name="Index-entries-with-special-characters"></a> +<div class="header"> +<p> +Next: <a href="#Proofing-index-terms" accesskey="n" rel="next">Proofing index terms</a>, Previous: <a href="#Modifying-index-entries" accesskey="p" rel="prev">Modifying index entries</a>, Up: <a href="#Indexing-terms" accesskey="u" rel="up">Indexing terms</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Index-entries-with-special-characters-1"></a> +<h4 class="subsubsection">4.12.1.3 Index entries with special characters</h4> + +<a name="index-special-characters_002c-in-index-entries"></a> +<a name="index-index-entries-with-special-characters"></a> + +<p>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>!</samp>’ has no special meaning for TeX, +it is a subentry separator for MakeIndex, therefore you’d have to +escape occurrences of literal ‘<samp>!</samp>’ in index terms. Things get +even more interesting with characters which are special in both TeX +and MakeIndex. +</p> +<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>"</samp>’): +</p> +<div class="example"> +<pre class="example">\idx{"!} +</pre></div> + +<p>This would have to be rewritten using the silent command: +</p> +<div class="example"> +<pre class="example">!\sidx{"!} +</pre></div> + +<p>In general, it is a good idea to eschew the non-silent +commands whenever index term contains anything unusual. +</p> +<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>.idx</samp> file. The non-silent forms +then typeset the term by rescanning the verbatim copy, hence 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—their terms only need to become valid +TeX input <em>after</em> MakeIndex processes the <samp>.idx</samp> file and +writes the <samp>.ind</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"></a> +<a name="index-index_002c-and-verbatim-text"></a> +<a name="index-verbatim-text_002c-in-index"></a> +<p>Here’s an example showing that terms for the silent commands can +contain almost any character: +</p> +<div class="example"> +<pre class="example">\sidx[see]{comments}[with %@with \verbatim %"|endverbatim] + {commenting with \verbatim %"|endverbatim} +</pre></div> + +<p>We didn’t have to escape ‘<samp>%</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>|</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>.idx</samp> and <samp>.ind</samp> files resulting from +processing the above input. +</p> +<p>As was mentioned, index terms can embed “almost any character”, so +now we’ll describe the exceptions. +</p> +<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"></a> +<a name="index-index-entries-containing-braces"></a> +<p>You have to be careful with the begin- and end-group characters +(‘<samp>{</samp>’ and ‘<samp>}</samp>’ by default). If they are matched, you don’t +have to do anything special. For example: +</p> +<div class="example"> +<pre class="example">\sidx {braces {, }@braces + \verbatim {"|endverbatim, \verbatim }"|endverbatim} +</pre></div> + +<p>However, if they are not matched you have two problems on +hand. The first one is TeX—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"></a> +<code>\idxargopen</code> and/or +<a name="index-idxargclose"></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: +</p> +<div class="example"> +<pre class="example">\def\idxargopen{`\<} +\def\idxargclose{`\>} +\sidx <left brace "{@left brace \verbatim "{"|endverbatim> +</pre></div> + +<p>In this example we’ve also dealt with the second +problem—braces are MakeIndex’s grouping characters as well (by +default), so we have escaped unmatched braces with ‘<samp>"</samp>’. +</p> +<a name="index-brackets_002c-inside-index-entries"></a> +<a name="index-index-entries-containing-brackets"></a> +<p>And the final note: if you need a subentry containing brackets +(‘<samp>[</samp>’ and ‘<samp>]</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: +</p> +<div class="example"> +<pre class="example">\sidx{entry!subentry with a bracket [} +</pre></div> + + +<hr> +<a name="Proofing-index-terms"></a> +<div class="header"> +<p> +Previous: <a href="#Index-entries-with-special-characters" accesskey="p" rel="prev">Index entries with special characters</a>, Up: <a href="#Indexing-terms" accesskey="u" rel="up">Indexing terms</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Proofing-index-terms-1"></a> +<h4 class="subsubsection">4.12.1.4 Proofing index terms</h4> + +<a name="index-proofing-index-terms"></a> +<a name="index-index-entries_002c-proofing"></a> +<a name="index-margins_002c-index-terms-in"></a> + +<p>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-ifindexproofing"></a> +<a name="index-indexproofingtrue"></a> +<a name="index-indexproofingfalse"></a> +<a name="index-indexproofterm"></a> +<a name="index-indexprooffont"></a> +<a name="index-cmtt8"></a> +<p>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"></a> +<a name="index-insidemargin"></a> +<a name="index-hoffset"></a> +<a name="index-outsidemargin"></a> +<a name="index-indexsetmargins"></a> +<p>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-_0040indexproof-insertion-class"></a> +<a name="index-indexproofunbox"></a> +<a name="index-makeheadline"></a> +<a name="index-output-routine-and-index-proofing"></a> +<p>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. +</p> + +<hr> +<a name="Typesetting-an-index"></a> +<div class="header"> +<p> +Next: <a href="#Customizing-indexing" accesskey="n" rel="next">Customizing indexing</a>, Previous: <a href="#Indexing-terms" accesskey="p" rel="prev">Indexing terms</a>, Up: <a href="#Indexing" accesskey="u" rel="up">Indexing</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Typesetting-an-index-1"></a> +<h4 class="subsection">4.12.2 Typesetting an index</h4> + +<a name="index-typesetting-an-index"></a> +<a name="index-index-typesetting"></a> +<a name="index-readindexfile"></a> + +<p>The command <code>\readindexfile{i}</code> reads and typesets the +<samp>.ind</samp> file that MakeIndex outputs (from the <samp>.idx</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"></a> +<a name="index-jobname-1"></a> +<p>More precisely, <code>\readindexfile</code> reads +<code>\indexfilebasename.<var>index-letter</var>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_007btheindex_007d"></a> +<a name="index-end_007btheindex_007d"></a> +<p>MakeIndex was designed to work with LaTeX; therefore, by default the +<samp>.ind</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-in-indexes"></a> +<a name="index-index-fonts"></a> +<a name="index-indexfonts"></a> +<a name="index-double-columns-in-indexes"></a> +<p>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-hook"></a> +<p>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: +</p> +<div class="example"> +<pre class="example">\hookaction{beginindex}{\triplecolumns} +</pre></div> + +<a name="index-item-in-indexes"></a> +<a name="index-subitem-in-indexes"></a> +<a name="index-subsubitem-in-indexes"></a> +<a name="index-index-entry-formatting"></a> +<a name="index-formatting-index-entries"></a> +<a name="index-space-above-index-entries"></a> +<a name="index-continued-index-entries"></a> +<a name="index-index-entry-continuations"></a> +<p>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—Eplain has no provision for “continued” +index entries. +</p> +<p>All levels do the following: +</p> +<a name="index-hangindent-for-index-entries"></a> +<a name="index-raggedright-for-index-entries"></a> +<a name="index-hyphenpenalty-for-index-entries"></a> +<div class="example"> +<pre class="example">\hangindent = 1em +\raggedright +\hyphenpenalty = 10000 +</pre></div> + +<a name="index-indexitem-hook"></a> +<p>Each entry ends with <code>\hookrun{indexitem}</code>, so you can change any +of this. For example, to increase the allowable rag: +</p> +<div class="example"> +<pre class="example">\hookaction{indexitem}{\advance\rightskip by 2em} +</pre></div> + +<a name="index-indexspace"></a> +<a name="index-index-groupings"></a> +<p>Finally, MakeIndex outputs <code>\indexspace</code> between each group of +entries in the <samp>.ind</samp> file. Eplain makes this equivalent to +<code>\bigbreak</code>. +</p> + +<hr> +<a name="Customizing-indexing"></a> +<div class="header"> +<p> +Previous: <a href="#Typesetting-an-index" accesskey="p" rel="prev">Typesetting an index</a>, Up: <a href="#Indexing" accesskey="u" rel="up">Indexing</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Customizing-indexing-1"></a> +<h4 class="subsection">4.12.3 Customizing indexing</h4> + +<a name="index-customizing-indexing"></a> + +<a name="index-afterindexterm"></a> +<a name="index-commas-after-index-terms"></a> +<a name="index-after-index-terms"></a> +<p>By default, MakeIndex outputs ‘<samp>, </samp>’ after each term in the index. To +change this, you can add the following to your MakeIndex style +(<samp>.ist</samp>) file: +</p> +<div class="example"> +<pre class="example">delim_0 "\\afterindexterm " +delim_1 "\\afterindexterm " +delim_2 "\\afterindexterm " +</pre></div> + +<p>Eplain makes <code>\afterindexterm</code> equivalent to +<code>\quad</code>. +</p> +<p>You can also change the keywords Eplain recognizes (see <a href="#Modifying-index-entries">Modifying index entries</a>): +</p> +<dl compact="compact"> +<dt><code>\idxrangebeginword</code></dt> +<dd><a name="index-idxrangebeginword"></a> +<p>‘begin’ +</p> +</dd> +<dt><code>\idxrangeendword</code></dt> +<dd><a name="index-idxrangeendword"></a> +<p>‘end’ +</p> +</dd> +<dt><code>\idxseecmdword</code></dt> +<dd><a name="index-idxseecmdword"></a> +<p>‘see’ +</p> +</dd> +<dt><code>\idxseealsocmdword</code></dt> +<dd><a name="index-idxseealsocmdword"></a> +<p>‘seealso’ +</p> +</dd> +</dl> + +<p>You can also change the magic characters Eplain puts into the +<samp>.idx</samp> file, in case you’ve changed them in the <code>.ist</code> file: +</p> +<dl compact="compact"> +<dt><code>\idxsubentryseparator</code></dt> +<dd><a name="index-idxsubentryseparator"></a> +<p>‘<samp>!</samp>’ +</p> +</dd> +<dt><code>\idxencapoperator</code></dt> +<dd><a name="index-idxencapoperator"></a> +<p>‘<samp>|</samp>’ +</p> +</dd> +<dt><code>\idxbeginrangemark</code></dt> +<dd><a name="index-idxbeginrangemark"></a> +<p>‘<samp>(</samp>’ +</p> +</dd> +<dt><code>\idxendrangemark</code></dt> +<dd><a name="index-idxendrangemark"></a> +<p>‘<samp>)</samp>’ +</p> +</dd> +</dl> + +<p>There is no macro for the <code>actual</code> (‘<samp>@</samp>’ by default) +character, because it’s impossible to make it expand properly. +</p> +<a name="index-idxpagenum"></a> +<a name="index-see-also-index-entries-and-sorting"></a> +<p>You can change the (imaginary) page number that “see also” +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"></a> +<a name="index-indexseealsowords"></a> +<a name="index-seevariant"></a> +<a name="index-indexsee"></a> +<a name="index-indexseealso"></a> +<p>The words output by Eplain for “see” and “see also” 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 “see +…” 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-for-index-entries-1"></a> +<a name="index-see_002c-and-index-entries-1"></a> +<a name="index-cross_002dreferencing-index-entries-1"></a> +<a name="index-index-entries_002c-and-cross_002dreferencing-1"></a> +<a name="index-commas-in-cross_002dreferencing-index-entries"></a> +<p>Unfortunately, it is impossible to reliably control the commas +produced by MakeIndex in front of “see …” entries in the +<samp>.ind</samp> file, either at MakeIndex level or at Eplain level. +However, the +<a name="index-sed"></a> +<code>sed</code> script contained in <code>trimsee</code> +<a name="index-trimsee"></a> +distributed with Eplain in the <samp>util</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 “see …” entries: +</p> +<div class="display"> +<pre class="display">analysis, + archetypal (<i>see</i> archetypal criticism) +archetypal criticism, + elements of, 75, 97, 114 (<i>see also</i> dichotomies) +</pre></div> + +<p>You would need to redefine these macros in your TeX +file: +</p> +<div class="example"> +<pre class="example">\def\indexsee#1#2{({\seevariant \indexseeword\/ }#1)} +\def\indexseealso#1#2{({\seevariant \indexseealsowords\/ }#1)} +</pre></div> + +<p>and then filter out the commas in front of the “see …” +entries by running the following command to produce the <samp>.ind</samp> +file (assuming the name of the <samp>.idx</samp> file is <samp>myfile.idx</samp> +and the <samp>trimsee</samp> script is placed in the current directory): +</p> +<div class="example"> +<pre class="example">prompt$ cat myfile.idx | makeindex | ./trimsee > myfile.ind +</pre></div> + +<p>By default, <samp>trimsee</samp> uses default page list separators and +default “see …” 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>trimsee</samp> script through its command line options, which are the +following: +</p> +<dl compact="compact"> +<dt><samp>-i <var>is</var></samp></dt> +<dd><p>Use <var>is</var> as a regular expression matching separator before “see +…” commands in the input (default: ‘<samp>, \+</samp>’). +</p> +</dd> +<dt><samp>-o <var>os</var></samp></dt> +<dd><p>Use <var>os</var> as a separator to replace <var>is</var> before “see …” +commands (default: ‘<samp> </samp>’). +</p> +</dd> +<dt><samp>-s <var>see</var></samp></dt> +<dd><p>Use <var>see</var> as a regular expression matching “see …” +commands (default: ‘<samp>\\indexsee</samp>’). +</p> +</dd> +<dt><samp>-h</samp></dt> +<dt><samp>--help</samp></dt> +<dd><p>Print a usage message. +</p> +</dd> +<dt><samp>-v</samp></dt> +<dt><samp>--version</samp></dt> +<dd><p>Print version. +</p></dd> +</dl> + +<p><samp>trimsee</samp> reads input from the standard input, and directs its +output to the standard output. +</p> + +<hr> +<a name="Justification"></a> +<div class="header"> +<p> +Next: <a href="#Tables" accesskey="n" rel="next">Tables</a>, Previous: <a href="#Indexing" accesskey="p" rel="prev">Indexing</a>, Up: <a href="#User-definitions" accesskey="u" rel="up">User definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Justification-1"></a> +<h3 class="section">4.13 Justification</h3> + +<a name="index-centering"></a> +<a name="index-left_002djustification"></a> +<a name="index-right_002djustification"></a> +<a name="index-justification"></a> +<p>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"></a> +<a name="index-flushleft"></a> +<a name="index-center"></a> +</p> +<p>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> +<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> +<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-in-justified-text"></a> +this (vertical) glue is inserted after each blank line. +</p> +<p>Here is an example: +</p> +<div class="example"> +<pre class="example">{\center First line. + + Second line, with a blank line before. +} +</pre></div> + +<p>This produces: +</p> +<div align="center">First line. +</div><div align="center"><!-- /@w --> +</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: +</p> +<div class="example"> +<pre class="example">\def\title{\begingroup\titlefont\center} +\def\endtitle{\endgroup} +</pre></div> + + +<hr> +<a name="Tables"></a> +<div class="header"> +<p> +Next: <a href="#Margins" accesskey="n" rel="next">Margins</a>, Previous: <a href="#Justification" accesskey="p" rel="prev">Justification</a>, Up: <a href="#User-definitions" accesskey="u" rel="up">User definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Tables-1"></a> +<h3 class="section">4.14 Tables</h3> + +<a name="index-tables"></a> +<a name="index-alignments"></a> +<p>Eplain provides a single command, <code>\makecolumns</code>, +<a name="index-makecolumns"></a> +to make generating one particular kind of table easier. More +ambitious LaTeX styles and macro packages tackle more difficult +applications. The <code>autorows</code> feature of the Memoir package +provides similar functionality to this. +</p> +<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> +<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> +<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> +<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"></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> +<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> +<p>Here is an example: +</p> +<div class="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></div> + +<p>This produces ‘one’, ‘two’, and ‘three’ in the first column, and +‘four’, ‘five’, and ‘six’ in the second. +</p> + +<hr> +<a name="Margins"></a> +<div class="header"> +<p> +Next: <a href="#Multiple-columns" accesskey="n" rel="next">Multiple columns</a>, Previous: <a href="#Tables" accesskey="p" rel="prev">Tables</a>, Up: <a href="#User-definitions" accesskey="u" rel="up">User definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Margins-1"></a> +<h3 class="section">4.15 Margins</h3> + +<a name="index-margins_002c-changing"></a> +<p>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 <em>margins</em> 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. +</p> +<dl compact="compact"> +<dt><code>\topmargin = <var>dimen</var></code></dt> +<dt><code>\bottommargin = <var>dimen</var></code></dt> +<dt><code>\leftmargin = <var>dimen</var></code></dt> +<dt><code>\rightmargin = <var>dimen</var></code></dt> +<dd><a name="index-topmargin"></a> +<a name="index-bottommargin"></a> +<a name="index-leftmargin"></a> +<a name="index-rightmargin"></a> +<p>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. +</p> +</dd> +<dt><code>\advancetopmargin by <var>dimen</var></code></dt> +<dt><code>\advancebottommargin by <var>dimen</var></code></dt> +<dt><code>\advanceleftmargin by <var>dimen</var></code></dt> +<dt><code>\advancerightmargin by <var>dimen</var></code></dt> +<dd><a name="index-advancetopmargin"></a> +<a name="index-advancebottommargin"></a> +<a name="index-advanceleftmargin"></a> +<a name="index-advancerightmargin"></a> +<p>These commands change the specified margin by the <var>dimen</var> given. +</p></dd> +</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"></a> +will decrease by one inch. +</p> +<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: +</p> +<dl compact="compact"> +<dt><code>\paperheight</code></dt> +<dd><a name="index-paperheight"></a> +<p>The height of the output page; default is 11truein. +</p> +</dd> +<dt><code>\paperwidth</code></dt> +<dd><a name="index-paperwidth"></a> +<p>The width of the output page; default is 8.5truein. +</p></dd> +</dl> + +<p>If your output page has different dimensions than this, you must +reassign to these parameters, as in +</p> +<div class="example"> +<pre class="example">\paperheight = 11truein +\paperwidth = 17truein +</pre></div> + + +<hr> +<a name="Multiple-columns"></a> +<div class="header"> +<p> +Next: <a href="#Footnotes" accesskey="n" rel="next">Footnotes</a>, Previous: <a href="#Margins" accesskey="p" rel="prev">Margins</a>, Up: <a href="#User-definitions" accesskey="u" rel="up">User definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Multiple-columns-1"></a> +<h3 class="section">4.16 Multiple columns</h3> + +<a name="index-double-column-output"></a> +<a name="index-triple-column-output"></a> +<a name="index-quadruple-column-output"></a> +<a name="index-multiple-column-output"></a> +<p>Eplain provides for double, triple, and quadruple column output: say +<code>\doublecolumns</code>, +<a name="index-doublecolumns"></a> +<code>\triplecolumns</code>, +<a name="index-triplecolumns"></a> +or <code>\quadcolumns</code>, +<a name="index-quadcolumns"></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"></a> +</p> +<a name="index-column-balancing-with-_005csinglecolumn"></a> +<a name="index-balancing-of-columns-with-_005csinglecolumn"></a> +<p>You may need to invoke <code>\singlecolumn</code> to balance the columns +on the last page of output. +</p> +<a name="index-columnfill"></a> +<a name="index-column-eject"></a> +<a name="index-eject-in-multicolumns"></a> +<a name="index-pagetotal"></a> +<p>To do a “column eject”, 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 an unbreakable space of (essentially) size +<code>\@normalvsize</code> minus <code>\pagetotal</code> (where +<code>\@normalvsize</code> is 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 space (during the column splitting operation when the whole page +is output). Bugs are easily possible, unfortunately. +</p> +<a name="index-gutter"></a> +<p>The columns are separated by the value of the dimen parameter +<code>\gutter</code>. Default value is two picas. +<a name="index-gutterbox"></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 +</p> +<div class="example"> +<pre class="example">\def\gutterbox{\vbox to \dimen0{\vfil\hbox{\vrule height\dimen0}\vfil}}% +</pre></div> + +<p>The dimension counter +<code>\dimen0</code> +contains the height of the column. +</p> +<p>All the <code>\…columns</code> macros insert the value of the glue parameter +<code>\abovecolumnskip</code> +<a name="index-abovecolumnskip"></a> +before the multicolumn text, and the value of the glue parameter +<code>\belowcolumnskip</code> +<a name="index-belowcolumnskip"></a> +after it. The default value for both of these parameters is +<code>\bigskipamount</code>, i.e., one linespace in plain TeX. +</p> +<p>The macros take into account only the insertion classes +<a name="index-insertion-classes"></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> +<p>Also, Eplain makes insertions the full page width. There is no +provision for column-width insertions. +</p> + +<hr> +<a name="Footnotes"></a> +<div class="header"> +<p> +Next: <a href="#Fractions" accesskey="n" rel="next">Fractions</a>, Previous: <a href="#Multiple-columns" accesskey="p" rel="prev">Multiple columns</a>, Up: <a href="#User-definitions" accesskey="u" rel="up">User definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Footnotes-1"></a> +<h3 class="section">4.17 Footnotes</h3> + +<a name="index-footnotes_002c-numbered"></a> +<p>The most common reference mark for footnotes is a raised number, +incremented on each footnote. The <code>\numberedfootnote</code> +<a name="index-numberedfootnote"></a> +macro provides this. It takes one argument, the footnote text. +</p> +<p>If your document uses only numbered footnotes, you could make typing +<code>\numberedfootnote</code> more convenient with a command such as: +</p> +<div class="example"> +<pre class="example">\let\footnote = \numberedfootnote +</pre></div> + +<p>After doing this, you can type your footnotes as +<code>\footnote{<var>footnote text</var>}</code>, instead of as +<code>\numberedfootnote{<var>footnote text</var>}</code>. +</p> +<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> +<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"></a> +The default is still an en. +</p> +<p>You can produce a space between footenotes by setting the glue +register <code>\interfootnoteskip</code>. +<a name="index-interfootnoteskip"></a> +The default is zero. +</p> +<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> +<p>You can also control footnote formatting in a more general way: +Eplain expands the token register <code>\everyfootnote</code> +<a name="index-everyfootnote"></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: +</p> +<div class="example"> +<pre class="example">\everyfootnote = {\sevenrm \leftskip = 1in} +</pre></div> + +<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"></a> +and <code>\footnoteruleheight</code>. +<a name="index-footnoteruleheight"></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"></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> +<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> +<p>Eplain can create hypertext links for the footnote marks (see <a href="#Footnote-hyperlinks">Footnote hyperlinks</a>). +</p> + + +<hr> +<a name="Fractions"></a> +<div class="header"> +<p> +Next: <a href="#Paths" accesskey="n" rel="next">Paths</a>, Previous: <a href="#Footnotes" accesskey="p" rel="prev">Footnotes</a>, Up: <a href="#User-definitions" accesskey="u" rel="up">User definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Fractions-1"></a> +<h3 class="section">4.18 Fractions</h3> + +<a name="index-fractions"></a> +<p>Exercise 11.6 of <cite>The TeXbook</cite> describes a macro <code>\frac</code> +<a name="index-frac"></a> +for setting fractions, but <code>\frac</code> never made it into plain TeX. +So Eplain includes it. +</p> +<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 203 of <cite>The TeXbook</cite> for an explanation of +delimited macro arguments.) +</p> +<p>For example, <code>\frac 23/{64}</code> turns ‘23/64’ into +. +</p> + +<hr> +<a name="Paths"></a> +<div class="header"> +<p> +Next: <a href="#Logos" accesskey="n" rel="next">Logos</a>, Previous: <a href="#Fractions" accesskey="p" rel="prev">Fractions</a>, Up: <a href="#User-definitions" accesskey="u" rel="up">User definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Paths-1"></a> +<h3 class="section">4.19 Paths</h3> + +<a name="index-pathnames_002c-breaking"></a> +<a name="index-filenames_002c-breaking"></a> +<a name="index-electronic-mail-addresses_002c-breaking"></a> + +<p>When you typeset long pathnames, electronic mail addresses, or other +such “computer” 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>@</samp>’ or a ‘<samp>.</samp>’, rather than at the hyphenation points in +‘<samp>letters</samp>’ and ‘<samp>alpha</samp>’. +</p> +<a name="index-path"></a> +<p>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>\</samp>’ which does not appear in the +name itself. +‘<samp>|</samp>’ is often a good choice, as in: +</p> +<div class="example"> +<pre class="example">\path|letters@alpha.gnu.ai.mit.edu| +</pre></div> + +<a name="index-discretionaries"></a> +<p>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: +</p> +<div class="example"> +<pre class="example">\discretionaries |~!@$%^&*()_+`-=#{}[]:";'<>,.?\/| +</pre></div> + +<a name="index-specialpathdelimiters-_0028conditional_0029"></a> +<p>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-URL-for-path_002esty"></a> +<p>The <code>\path</code> macro comes from <samp>path.sty</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>. +</p> + +<hr> +<a name="Logos"></a> +<div class="header"> +<p> +Next: <a href="#Boxes" accesskey="n" rel="next">Boxes</a>, Previous: <a href="#Paths" accesskey="p" rel="prev">Paths</a>, Up: <a href="#User-definitions" accesskey="u" rel="up">User definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Logos-1"></a> +<h3 class="section">4.20 Logos</h3> + +<a name="index-logos"></a> +<a name="index-names_002c-of-TeX-variants"></a> + +<p>Eplain redefines the <code>\TeX</code> +<a name="index-TeX"></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 …TeX macros listed here do this, also. +</p> +<p>Eplain defines +<code>\AMSLaTeX</code>, +<a name="index-AMSLaTeX"></a> +<a name="index-AMSLaTeX-1"></a> +<code>\AMSTeX</code>, +<a name="index-AMSTeX"></a> +<a name="index-AMSTeX-1"></a> +<code>\BibTeX</code> +<a name="index-BibTeX-1"></a> +<a name="index-BibTeX-2"></a> +<code>\eTeX</code>, +<a name="index-eTeX"></a> +<a name="index-eTeX-1"></a> +<code>\ExTeX</code>, +<a name="index-ExTeX"></a> +<a name="index-ExTeX-1"></a> +<code>\LAMSTeX</code>, +<a name="index-LAMSTeX"></a> +<a name="index-LAMSTeX-1"></a> +<code>\LaTeX</code>, +<a name="index-LaTeX-2"></a> +<a name="index-LaTeX-4"></a> +<code>\MF</code>, +<a name="index-Metafont"></a> +<a name="index-MF"></a> +<code>\SLiTeX</code>, +<a name="index-SLiTeX"></a> +<a name="index-SLiTeX-1"></a> +<code>\XeLaTeX</code>, +<a name="index-XeLaTeX"></a> +<a name="index-XeLaTeX-1"></a> +and <code>\XeTeX</code> +<a name="index-XeTeX"></a> +<a name="index-XeTeX-1"></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-URL-for-texnames_002esty"></a> +<p>Most of these macros come from <samp>texnames.sty</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>. +</p> + +<hr> +<a name="Boxes"></a> +<div class="header"> +<p> +Next: <a href="#Checking-for-PDF-output" accesskey="n" rel="next">Checking for PDF output</a>, Previous: <a href="#Logos" accesskey="p" rel="prev">Logos</a>, Up: <a href="#User-definitions" accesskey="u" rel="up">User definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Boxes-1"></a> +<h3 class="section">4.21 Boxes</h3> + +<a name="index-black-boxes"></a> +<a name="index-rectangles"></a> +<p>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"></a> +</p> +<p>You can create black boxes of arbitrary size with <code>\hrule</code> or +<code>\vrule</code>. +</p> +<a name="index-open-boxes"></a> +<a name="index-boxes_002c-open"></a> +<p>You can also get unfilled rectangles with <code>\makeblankbox</code>. +<a name="index-makeblankbox"></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> +<p>Here is an example. This small raised open box is suitable for +putting next to numbers in, e.g., a table of contents. +</p> +<div class="example"> +<pre class="example">\def\openbox{% + \ht0 = 1.75pt \dp0 = 1.75pt \wd0 = 3.5pt + \raise 2.75pt \makeblankbox{.2pt}{.2pt} +} +</pre></div> + +<p>Finally, you can put a box around arbitrary text with <code>\boxit</code>. +<a name="index-boxit"></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"></a> +white space (3 points by default) on all four sides. For example: +</p> +<div class="example"> +<pre class="example">\boxit{\hbox{This text is boxed.}} +</pre></div> + +<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> +<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>. +</p> + +<hr> +<a name="Checking-for-PDF-output"></a> +<div class="header"> +<p> +Next: <a href="#Loading-LaTeX-packages" accesskey="n" rel="next">Loading LaTeX packages</a>, Previous: <a href="#Boxes" accesskey="p" rel="prev">Boxes</a>, Up: <a href="#User-definitions" accesskey="u" rel="up">User definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Checking-for-PDF-output-1"></a> +<h3 class="section">4.22 Checking for PDF output</h3> + +<a name="index-URL-for-pdfTeX"></a> +<a name="index-PDF-output"></a> +<a name="index-pdftex-1"></a> +<a name="index-_002epdf-files"></a> +<p>pdfTeX is a TeX variant that can output both <samp>.dvi</samp> and +<samp>.pdf</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>.pdf</samp> or +<samp>.dvi</samp>. The <code>\ifpdf</code> +<a name="index-ifpdf"></a> +switch can be used to detect pdfTeX in <acronym>PDF</acronym> mode: +</p> +<div class="example"> +<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></div> + +<p>Keep in mind that <code>\ifpdf</code> is set based on the value of the +<code>\pdfoutput</code> +<a name="index-pdfoutput"></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-URL-for-ifpdf_002esty"></a> +<a name="index-Oberdiek_002c-Heiko"></a> +<p>Eplain defines <code>\ifpdf</code> by incorporating Heiko Oberdiek’s +<samp>ifpdf.sty</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>. +</p> + +<hr> +<a name="Loading-LaTeX-packages"></a> +<div class="header"> +<p> +Previous: <a href="#Checking-for-PDF-output" accesskey="p" rel="prev">Checking for PDF output</a>, Up: <a href="#User-definitions" accesskey="u" rel="up">User definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Loading-LaTeX-packages-1"></a> +<h3 class="section">4.23 Loading LaTeX packages</h3> + +<a name="index-LaTeX-packages"></a> +<a name="index-packages_002c-LaTeX"></a> +<a name="index-_002esty-files"></a> +<a name="index-_002ecls-files"></a> + +<p>Eplain provides a limited support for loading LaTeX packages +(<samp>.sty</samp> files—not <samp>.cls</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-LaTeX"></a> +<a name="index-LaTeX-graphics-collection"></a> +<a name="index-miniltx_002etex"></a> +<a name="index-Carlisle_002c-David"></a> +<a name="index-Rahtz_002c-Sebastian"></a> +<p>To set up a pseudo-LaTeX environment for the packages, Eplain uses +<samp>miniltx.tex</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>miniltx.tex</samp> to provide some additional features, +e.g., support for package options. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#The-_005cusepackage-command" accesskey="1">The \usepackage command</a>:</td><td> </td><td align="left" valign="top">Command to load packages. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Environment-for-loading-packages" accesskey="2">Environment for loading packages</a>:</td><td> </td><td align="left" valign="top">Environment for the \usepackage commands. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Packages-known-to-work" accesskey="3">Packages known to work</a>:</td><td> </td><td align="left" valign="top">Packages supported with Eplain. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Packages-known-not-to-work" accesskey="4">Packages known not to work</a>:</td><td> </td><td align="left" valign="top">Packages known not to work with Eplain. +</td></tr> +</table> + +<hr> +<a name="The-_005cusepackage-command"></a> +<div class="header"> +<p> +Next: <a href="#Environment-for-loading-packages" accesskey="n" rel="next">Environment for loading packages</a>, Up: <a href="#Loading-LaTeX-packages" accesskey="u" rel="up">Loading LaTeX packages</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="The-_005cusepackage-command-1"></a> +<h4 class="subsection">4.23.1 The <code>\usepackage</code> command</h4> + +<a name="index-usepackage"></a> +<p><code>\usepackage</code> loads a LaTeX package. Its syntax is similar to +that of LaTeX’s <code>\usepackage</code> command: +</p> +<div class="example"> +<pre class="example">\usepackage[<var>options</var>]{<var>packages</var>}[<var>version</var>] +</pre></div> + +<p>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>.sty</samp> suffix), and <var>version</var> is a package +version number given as a date in the format ‘<samp>YYYY/MM/DD</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> +<p>For example: +</p> +<div class="example"> +<pre class="example">\usepackage[foo,bar]{pack1,pack2}[2005/08/29] +</pre></div> + +<p>will load packages ‘<samp>pack1</samp>’ and ‘<samp>pack2</samp>’, each with +the options ‘<samp>foo</samp>’ and ‘<samp>bar</samp>’, and will check that each of the +packages are dated 2005/08/29 or newer. +</p> + +<hr> +<a name="Environment-for-loading-packages"></a> +<div class="header"> +<p> +Next: <a href="#Packages-known-to-work" accesskey="n" rel="next">Packages known to work</a>, Previous: <a href="#The-_005cusepackage-command" accesskey="p" rel="prev">The \usepackage command</a>, Up: <a href="#Loading-LaTeX-packages" accesskey="u" rel="up">Loading LaTeX packages</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Environment-for-loading-packages-1"></a> +<h4 class="subsection">4.23.2 Environment for loading packages</h4> + +<a name="index-loading-packages_002c-environment-for"></a> + +<a name="index-beginpackages"></a> +<a name="index-endpackages"></a> +<p>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 +<em>preamble</em>. Neither plain TeX nor Eplain have a concept of +preamble; therefore, Eplain requires that all packages be loaded inside +a <code>\beginpackages...\endpackages</code> block. For example: +</p> +<div class="example"> +<pre class="example">\beginpackages + \usepackage[foo,bar]{pack1} + \usepackage{pack2} +\endpackages +</pre></div> + +<p>This requirement enables Eplain to execute the “delayed” +commands at the end of the <code>\beginpackages...\endpackages</code> block. +</p> +<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"></a> +<a name="index-eplaininput"></a> +<a name="index-LaTeX-packages_002c-restoring-_005cinput"></a> +<a name="index-restoring-_005cinput_002c-LaTeX-packages"></a> +<p>Both the <samp>miniltx.tex</samp> file used by Eplain and some LaTeX +packages redefine TeX’s primitive <code>\input</code> to be a macro. +Under plain TeX, users probably expect the primitive +<code>\input</code>. Therefore, at the beginning of the +<code>\beginpackages...\endpackages</code> block Eplain saves the meaning of +<code>\input</code> as <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-resetatcatcode"></a> +<a name="index-catcode-of-_0040"></a> +<p>Along the same lines, Eplain restores the catcode of ‘<samp>@</samp>’ at +<code>\endpackages</code> to whatever it was before (using +<code>\resetatcatcode</code>, as defined by <samp>miniltx.tex</samp>). This is +needed because <samp>miniltx.tex</samp>, read by <code>\beginpackages</code>, does +not restore the catcode of ‘<samp>@</samp>’, but leaves it as 11 (letter). +</p> +<a name="index-hanging-on-_005cinput"></a> +<a name="index-error-on-_005cinput"></a> +<p>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 cna be cured by restoring <code>\input</code> +to <code>\eplaininput</code> before loading each package. For example: +</p> +<div class="example"> +<pre class="example">\beginpackages + \usepackage{pack1} + \let\input\eplaininput + \usepackage{pack2} +\endpackages +</pre></div> + + +<hr> +<a name="Packages-known-to-work"></a> +<div class="header"> +<p> +Next: <a href="#Packages-known-not-to-work" accesskey="n" rel="next">Packages known not to work</a>, Previous: <a href="#Environment-for-loading-packages" accesskey="p" rel="prev">Environment for loading packages</a>, Up: <a href="#Loading-LaTeX-packages" accesskey="u" rel="up">Loading LaTeX packages</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Packages-known-to-work-1"></a> +<h4 class="subsection">4.23.3 Packages known to work</h4> + +<a name="index-LaTeX-packages-1"></a> +<a name="index-packages_002c-LaTeX-1"></a> +<p>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. +</p> +<dl compact="compact"> +<dt>autopict (‘<samp>2001/06/04 v1.1j Picture mode autoload file</samp>’)</dt> +<dd><a name="index-autopict_002esty"></a> +<p><a href="http://tug.org/eplain/misc/ltpictur.pdf">http://tug.org/eplain/misc/ltpictur.pdf</a> +</p> +<a name="index-picture-mode"></a> +<a name="index-begin_007bpicture_007d"></a> +<a name="index-end_007bpicture_007d"></a> +<p>This is the LaTeX “picture mode”, 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. +</p> +</dd> +<dt>color (‘<samp>1999/02/16 v1.0i Standard LaTeX Color (DPC)</samp>’)</dt> +<dd><a name="index-color_002esty"></a> +</dd> +<dt>graphics (‘<samp>2001/07/07 v1.0n Standard LaTeX Graphics (DPC,SPQR)</samp>’)</dt> +<dd><a name="index-graphics_002esty"></a> +</dd> +<dt>graphicx (‘<samp>1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)</samp>’)</dt> +<dd><a name="index-graphicx_002esty"></a> +<p><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-LaTeX-1"></a> +<a name="index-LaTeX-graphics-collection-1"></a> +<a name="index-color"></a> +<a name="index-rotation"></a> +<a name="index-scaling"></a> +<p>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-pdfTeX"></a> +<a name="index-graphics_002c-problems-with-pdfTeX"></a> +<a name="index-pdfTeX_002c-problems-using-color-and-graphics"></a> +<a name="index-pdfTeX_002c-problems-with-supp_002dmis_002etex"></a> +<a name="index-ConTeXt"></a> +<a name="index-supp_002dmis_002etex_002c-problems-with-pdfTeX"></a> +<a name="index-supp_002dpdf_002etex"></a> +<p><strong>Warning 1:</strong> If you encounter problems loading one of +these packages under pdfTeX (more specifically, when pdfTeX +reads <samp>supp-mis.tex</samp>), the cause may be an outdated +<samp>supp-mis.tex</samp> (part of ConTeXt, a typesetting system for +TeX) installed on your system. The problem was fixed in +<samp>supp-mis.tex</samp> version 2004.10.26. You can obtain +up-to-date versions of <samp>supp-mis.tex</samp> and the accompanying +<samp>supp-pdf.tex</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: +</p> +<ol> +<li> put the new files in the same directory with your document; + +</li><li> overwrite the outdated files installed by your TeX distribution; + +</li><li> install the new <samp>supp-mis.tex</samp> and <samp>supp-pdf.tex</samp> files in +the relevant subdirectory of your local <samp>texmf</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><li> upgrade your ConTeXt installation. +</li></ol> + +<p>Note that option 1 is the safest but provides the fix +only for your current document. Options 2 and 3 will +usually suffice for Eplain but may break ConTeXt. Option 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>texmf</samp> tree.<br> <strong>End of warning 1.</strong> +</p> +<p><strong>Warning 2:</strong> If you encounter problems using the +<code>\pagecolor</code> command from the <samp>color.sty</samp> package under +pdfTeX, the cause may be an outdated pdfTeX color and graphics +driver <samp>pdftex.def</samp>. The problem was fixed in <samp>pdftex.def</samp> +version 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 2.</strong> +</p> +<a name="index-omitting-typesetting-of-graphics"></a> +<a name="index-graphics_002c-omitting-typesetting-of"></a> +<p>The <samp>graphics</samp>/<samp>graphicx</samp> packages have the option +<a name="index-draft_002c-option-for-graphics_002esty"></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"></a> +<code>\ttfamily</code> to switch to the typewrite type. This command is not +defined by <samp>miniltx.tex</samp>, therefore Eplain defines it and makes it +equivalent to plain TeX’s +<a name="index-tt"></a> +<code>\tt</code>. +</p> +<p>See <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a>, for the demonstration of text rotation and +graphics inclusion using the <samp>graphicx</samp> package, and using the +<samp>color</samp> package to colorize hypertext links. +</p> +<a name="index-Hoppner_002c-Klaus"></a> +<p>Klaus Höppner has written a nice introduction to the LaTeX graphics +packages and different graphics formats. You can download it from +</p><div class="display"> +<pre class="display"><a href="http://www.tug.org/pracjourn/2005-3/hoeppner">http://www.tug.org/pracjourn/2005-3/hoeppner</a> +</pre></div> + +</dd> +<dt>epstopdf (‘<samp>2009/07/16 v2.2 Conversion with epstopdf on the fly (HO)</samp>’)</dt> +<dd><a name="index-epstopdf_002esty"></a> +<p><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"></a> +<a name="index-EPS"></a> +<a name="index-_002eeps-files"></a> +<a name="index-Portable-Document-Format"></a> +<a name="index-PDF"></a> +<a name="index-_002epdf-files-1"></a> +<a name="index-epstopdf"></a> +<p>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>graphics</samp>/<samp>graphicx</samp> packages, so that you do not have +to explicitly call the <samp>epstopdf</samp> script. +</p> +</dd> +<dt>psfrag (‘<samp>1998/04/11 v3.04 PSfrag (MCG)</samp>’)</dt> +<dd><a name="index-psfrag_002esty"></a> +<p><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-1"></a> +<a name="index-EPS-1"></a> +<a name="index-_002eeps-files-1"></a> +<p>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 “tag” in the graphics +file, as a “position marker” 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. +</p> +</dd> +<dt>soul (‘<samp>2003/11/17 v2.4 letterspacing/underlining (mf)</samp>’)</dt> +<dd><a name="index-soul_002esty"></a> +<p><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"></a> +<a name="index-spacing-out"></a> +<a name="index-underlining"></a> +<a name="index-striking-out"></a> +<a name="index-overstriking"></a> +<a name="index-highlighting"></a> +<p>This package provides hyphenatable letterspacing (spacing out), +underlining, and some derivatives. The package is optimized for +LaTeX, but works with plain TeX—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>soul</samp>, don’t forget to load the <samp>color</samp> package. +</p> +</dd> +<dt>url (‘<samp>2005/06/27 ver 3.2 Verb mode for urls, etc.</samp>’)</dt> +<dd><a name="index-url_002esty"></a> +<p><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-1"></a> +<a name="index-filenames_002c-breaking-1"></a> +<a name="index-electronic-mail-addresses_002c-breaking-1"></a> +<p>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> +<p>Eplain can create hypertext links with the <code>\url</code> command +(see <a href="#URL-hyperlinks">URL hyperlinks</a>). +</p> +<p>Be sure to get a version dated at least 2005/06/27, as older versions +have problems in plain TeX. +</p></dd> +</dl> + + +<hr> +<a name="Packages-known-not-to-work"></a> +<div class="header"> +<p> +Previous: <a href="#Packages-known-to-work" accesskey="p" rel="prev">Packages known to work</a>, Up: <a href="#Loading-LaTeX-packages" accesskey="u" rel="up">Loading LaTeX packages</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Packages-known-not-to-work-1"></a> +<h4 class="subsection">4.23.4 Packages known not to work</h4> + +<a name="index-LaTeX-packages-2"></a> +<a name="index-packages_002c-LaTeX-2"></a> +<p>The following packages are known not to work with Eplain: +</p> +<dl compact="compact"> +<dt>hyperref</dt> +<dd><a name="index-hyperref_002esty"></a> +<p><a href="http://www.ctan.org/tex-archive/macros/latex/contrib/hyperref">http://www.ctan.org/tex-archive/macros/latex/contrib/hyperref</a> +</p> +<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>. +</p> +</dd> +<dt>pict2e (‘<samp>2005/07/15 v0.2r Improved picture commands (HjG,RN)</samp>’)</dt> +<dd><a name="index-pict2e_002esty"></a> +<p><a href="http://www.ctan.org/tex-archive/macros/latex/contrib/pict2e">http://www.ctan.org/tex-archive/macros/latex/contrib/pict2e</a> +</p> +</dd> +<dt>xcolor (‘<samp>2005/06/06 v2.03 LaTeX color extensions (UK)</samp>’)</dt> +<dd><a name="index-xcolor_002esty"></a> +<p><a href="http://www.ctan.org/tex-archive/macros/latex/contrib/xcolor">http://www.ctan.org/tex-archive/macros/latex/contrib/xcolor</a> +</p></dd> +</dl> + +<hr> +<a name="Hyperlinks"></a> +<div class="header"> +<p> +Next: <a href="#Arrow-theoretic-diagrams" accesskey="n" rel="next">Arrow theoretic diagrams</a>, Previous: <a href="#User-definitions" accesskey="p" rel="prev">User definitions</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Hyperlinks-1"></a> +<h2 class="chapter">5 Hyperlinks</h2> + +<a name="index-links_002c-hypertext"></a> +<a name="index-hypertext-links"></a> +<p>This chapter describes the support which Eplain provides for hypertext +links (<em>hyperlinks</em> 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. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Introduction-to-hyperlinks" accesskey="1">Introduction to hyperlinks</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Explicit-hyperlinks" accesskey="2">Explicit hyperlinks</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Implicit-hyperlinks" accesskey="3">Implicit hyperlinks</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Hyperlink-drivers" accesskey="4">Hyperlink drivers</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Setting-hyperlink-types-and-options" accesskey="5">Setting hyperlink types and options</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Turning-hyperlinks-on_002foff" accesskey="6">Turning hyperlinks on/off</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> +<a name="Introduction-to-hyperlinks"></a> +<div class="header"> +<p> +Next: <a href="#Explicit-hyperlinks" accesskey="n" rel="next">Explicit hyperlinks</a>, Up: <a href="#Hyperlinks" accesskey="u" rel="up">Hyperlinks</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Introduction-to-hyperlinks-1"></a> +<h3 class="section">5.1 Introduction to hyperlinks</h3> + +<a name="index-hyperlink-drivers"></a> +<a name="index-drivers_002c-hyperlink"></a> +<p>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"></a> +<code>\special</code> primitive can be used to instruct TeX to write +special directives into its <samp>.dvi</samp> output file. These directives +are not interpreted by TeX in any way; they are intended for programs +which process the <samp>.dvi</samp> files produced by TeX, be it printing +or converting to other formats, such as +<a name="index-_002eps-files"></a> +<a name="index-_002epdf-files-2"></a> +<samp>.ps</samp> or <samp>.pdf</samp>. +</p> +<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>.pdf</samp> files directly from the TeX source, skipping the +<samp>.dvi</samp> generation and processing step. +</p> +<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 <em>hyperlink drivers</em> come +into play. +</p> +<p>In order for Eplain to generate proper commands, Eplain has to know +two things: which engine or <samp>.dvi</samp> processor you are using, and +the set of commands it understands. +</p> +<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-2"></a> +pdfTeX and +<a name="index-dvipdfm"></a> +dvipdfm). Therefore, Eplain can only produce HyperTeX commands and +hyperlink commands for one of these two programs—except that the +extended <code>dvipdfmx</code> program can be used as well as the original +<code>dvipdfm</code>, since they are compatible. +</p> +<p>To tell Eplain which <samp>.dvi</samp> processor or extended TeX engine you +are using, use the command +<a name="index-enablehyperlinks"></a> +<code>\enablehyperlinks</code>. +</p> +<p>For example: +</p> +<div class="example"> +<pre class="example">\enablehyperlinks +</pre></div> + +<p>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-1"></a> +<code>\ifpdf</code> switch (see <a href="#Checking-for-PDF-output">Checking for PDF output</a>). +</p> +<p>If necessary, you can explicitly specify the driver name: +</p> +<div class="example"> +<pre class="example">\enablehyperlinks[pdftex] +</pre></div> + +<p>will start producing hyperlinks under the assumption that +you are using pdfTeX. +</p> +<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. +</p> +<a name="Concepts-and-Terminology"></a> +<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 <em>hyperlink +label</em> 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> +<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 +<em>hyperlinks</em>. We will use the terms <em>links</em> and +<em>destinations</em> in cases when we need to refer specifically to +links or destinations. +</p> +<a name="index-link-type"></a> +<a name="index-destination-type"></a> +<a name="index-type_002c-link-and-destination"></a> +<p>Hyperlink drivers provide several kinds of links and destinations. We +will refer to them as <em>link types</em> and <em>destination types</em>. +</p> +<p>For example, one of the destination types that the <code>pdftex</code> +driver provides is the ‘<samp>xyz</samp>’ type; when the user follows a link +pointing to an ‘<samp>xyz</samp>’ destination, the exact location marked by +that destination is displayed. Another destination type provided by +the <code>pdftex</code> driver is the ‘<samp>fit</samp>’ type; when the user follows +a link pointing to a ‘<samp>fit</samp>’ destination, the page containing that +destination is zoomed to fit into the window in which the document is +displayed. +</p> +<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>name</samp>’. You can +also create a link pointing to another local document (by using the +‘<samp>filename</samp>’ link type) or to a <acronym>URL</acronym> (by using the +‘<samp>url</samp>’ link type). +</p> +<a name="index-link-options"></a> +<a name="index-destination-options"></a> +<a name="index-options_002c-link-and-destination"></a> +<p>In addition, each hyperlink driver supports a number of destination and +link <em>options</em>. 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> +<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. +</p> + +<hr> +<a name="Explicit-hyperlinks"></a> +<div class="header"> +<p> +Next: <a href="#Implicit-hyperlinks" accesskey="n" rel="next">Implicit hyperlinks</a>, Previous: <a href="#Introduction-to-hyperlinks" accesskey="p" rel="prev">Introduction to hyperlinks</a>, Up: <a href="#Hyperlinks" accesskey="u" rel="up">Hyperlinks</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Explicit-hyperlinks-1"></a> +<h3 class="section">5.2 Explicit hyperlinks</h3> + +<a name="index-explicit-hyperlinks"></a> +<a name="index-hyperlinks_002c-explicit"></a> +<a name="index-hldest"></a> +<p>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: +</p> +<div class="example"> +<pre class="example">\hldest{<var>type</var>}{<var>options</var>}{<var>label</var>} +</pre></div> + +<p>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 +</p> +<div class="example"> +<pre class="example">\hldest{xyz}{zoom=2000}{index} +</pre></div> + +<p>creates a destination of type ‘<samp>xyz</samp>’ (“the current +position”), 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"></a> +<a name="index-hlend"></a> +<p>Another command, <code>\hlstart</code>, paired with <code>\hlend</code>, turns all +intervening material into a link: +</p> +<div class="example"> +<pre class="example">\hlstart{<var>type</var>}{<var>options</var>}{<var>label</var>} … \hlend +</pre></div> + +<p>Here <var>type</var>, <var>options</var> and <var>label</var> have the same +meaning as for <code>\hldest</code>. Continuing the previous example, +</p> +<div class="example"> +<pre class="example">\hlstart{name}{bstyle=U,bwidth=2}{index} Index\hlend +</pre></div> + +<p>typesets the word ‘Index’ as a link with underline border of +width 2 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> +<p>The <var>label</var> argument of both <code>\hldest</code> and <code>\hlstart</code> +can contain special characters (such as ‘<samp>#</samp>’, ‘<samp>%</samp>’, ‘<samp>&</samp>’, +‘<samp>~</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> +<p>Both <code>\hldest</code> and <code>\hlstart</code> ignore following spaces. +</p> +<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: +</p> +<div class="example"> +<pre class="example">\def\linkopts{bstyle=U,bwidth=2} +\hlstart{name}{\linkopts}{index}Index\hlend +</pre></div> + +<p>is functionally equivalent to the previous example. +</p> +<p>See <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a>, for a demonstration of the usage of +explicit hyperlinks. +</p> + +<hr> +<a name="Implicit-hyperlinks"></a> +<div class="header"> +<p> +Next: <a href="#Hyperlink-drivers" accesskey="n" rel="next">Hyperlink drivers</a>, Previous: <a href="#Explicit-hyperlinks" accesskey="p" rel="prev">Explicit hyperlinks</a>, Up: <a href="#Hyperlinks" accesskey="u" rel="up">Hyperlinks</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Implicit-hyperlinks-1"></a> +<h3 class="section">5.3 Implicit hyperlinks</h3> + +<a name="index-implicit-hyperlinks"></a> +<a name="index-hyperlinks_002c-implicit"></a> +<p><em>Implicit hyperlinks</em> are hyperlinks created implicitly by various +Eplain macros, such as the macros for citations, cross-references, +indexing, etc. +</p> +<a name="index-link-group"></a> +<a name="index-linkgroup"></a> +<a name="index-group_002c-link"></a> +<a name="index-destination-group"></a> +<a name="index-destgroup"></a> +<a name="index-group_002c-destination"></a> +<p>All such macros are divided into <em>link groups</em> and +<em>destination groups</em> (or <em>linkgroups</em> and <em>destgroups</em> 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> +<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> +<p>Here is the list of the linkgroups: +</p> +<div class="display"> +<pre class="display">hrefint, hrefext, url, cite, ref, xref, eq, idx, foot, footback. +</pre></div> + +<p>And here are the destgroups: +</p> +<div class="display"> +<pre class="display">bib, li, definexref, xrdef, eq, idx, foot, footback. +</pre></div> + +<p>See <a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a>, for a demonstration of the usage of +implicit hyperlinks. +</p> +<p>The following subsections describe each of the linkgroups and destgroups +and the hyperlink support provided. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#General-hyperlinks" accesskey="1">General hyperlinks</a>:</td><td> </td><td align="left" valign="top">hrefint, hrefext +</td></tr> +<tr><td align="left" valign="top">• <a href="#URL-hyperlinks" accesskey="2">URL hyperlinks</a>:</td><td> </td><td align="left" valign="top">url +</td></tr> +<tr><td align="left" valign="top">• <a href="#Citation-hyperlinks" accesskey="3">Citation hyperlinks</a>:</td><td> </td><td align="left" valign="top">cite, bib +</td></tr> +<tr><td align="left" valign="top">• <a href="#List-hyperlinks" accesskey="4">List hyperlinks</a>:</td><td> </td><td align="left" valign="top">li +</td></tr> +<tr><td align="left" valign="top">• <a href="#Cross_002dreference-hyperlinks" accesskey="5">Cross-reference hyperlinks</a>:</td><td> </td><td align="left" valign="top">definexref, ref +</td></tr> +<tr><td align="left" valign="top">• <a href="#Page-reference-hyperlinks" accesskey="6">Page reference hyperlinks</a>:</td><td> </td><td align="left" valign="top">xrdef, xref +</td></tr> +<tr><td align="left" valign="top">• <a href="#Equation-reference-hyperlinks" accesskey="7">Equation reference hyperlinks</a>:</td><td> </td><td align="left" valign="top">eq +</td></tr> +<tr><td align="left" valign="top">• <a href="#Index-hyperlinks" accesskey="8">Index hyperlinks</a>:</td><td> </td><td align="left" valign="top">idx +</td></tr> +<tr><td align="left" valign="top">• <a href="#Footnote-hyperlinks" accesskey="9">Footnote hyperlinks</a>:</td><td> </td><td align="left" valign="top">foot, footback +</td></tr> +<tr><td align="left" valign="top">• <a href="#Contents-hyperlinks">Contents hyperlinks</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> +<a name="General-hyperlinks"></a> +<div class="header"> +<p> +Next: <a href="#URL-hyperlinks" accesskey="n" rel="next">URL hyperlinks</a>, Up: <a href="#Implicit-hyperlinks" accesskey="u" rel="up">Implicit hyperlinks</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="General-hyperlinks_003a-hrefint_002c-hrefext"></a> +<h4 class="subsection">5.3.1 General hyperlinks: hrefint, hrefext</h4> + +<a name="index-href"></a> +<p><code>\href{<var>url</var>}{<var>text</var>}</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> +<p>If <var>url</var> starts with ‘<samp>#</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"></a> +<a name="index-linkgroup-_0060hrefint_0027"></a> +‘hrefint’ linkgroup. For example: +</p> +<div class="example"> +<pre class="example">See \href{#intro}{Introduction} +</pre></div> + +<p>will make ‘Introduction’ into an internal link, which might +have been created, e.g., with <code>\xrdef{intro}</code>. +</p> +<a name="index-URL-hyperlink"></a> +<a name="index-hyperlinks_002c-URL"></a> +<p>If <var>url</var> does not start with ‘<samp>#</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"></a> +<a name="index-linkgroup-_0060hrefext_0027"></a> +‘hrefext’ linkgroup. The special characters (such as ‘<samp>#</samp>’ and +‘<samp>~</samp>’) in the <acronym>URL</acronym> don’t need to be escaped. For example: +</p> +<div class="example"> +<pre class="example">\href{http://tug.org/eplain/doc/eplain.html#Hyperlinks}{Hyperlinks + in Eplain} +\href{mailto:tex-eplain@tug.org}{Eplain mailing list} +</pre></div> + +<p>See <a href="#URL-hyperlinks">URL hyperlinks</a>, for another way to create +<acronym>URL</acronym> hyperlinks. +</p> +<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: +</p> +<div class="example"> +<pre class="example">\href{#WeirdChars}{The weird chars \verbatim #&%$~|endverbatim} +</pre></div> + +<p><code>\href</code> does not currently handle other link types, such as +<a name="index-file_003a-links"></a> +‘<samp>file:</samp>’ and +<a name="index-run_003a-links"></a> +‘<samp>run:</samp>’ links. +</p> + +<hr> +<a name="URL-hyperlinks"></a> +<div class="header"> +<p> +Next: <a href="#Citation-hyperlinks" accesskey="n" rel="next">Citation hyperlinks</a>, Previous: <a href="#General-hyperlinks" accesskey="p" rel="prev">General hyperlinks</a>, Up: <a href="#Implicit-hyperlinks" accesskey="u" rel="up">Implicit hyperlinks</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="URL-hyperlinks_003a-url"></a> +<h4 class="subsection">5.3.2 URL hyperlinks: url</h4> + +<a name="index-URL-hyperlink-1"></a> +<a name="index-hyperlinks_002c-URL-1"></a> +<a name="index-group-_0060url_0027"></a> +<a name="index-linkgroup-_0060url_0027"></a> +<p>The ‘url’ linkgroup covers the +<a name="index-url-_0028hyperlinks_0029"></a> +<code>\url</code> command from the LaTeX package +<a name="index-url_002esty-1"></a> +<samp>url</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>url</samp>’ by the drivers which support this link type. +‘<samp>url</samp>’ links use the parameter to the <code>\url</code> command as the +<acronym>URL</acronym> to point to. +</p> +<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"></a> +<a name="index-avoiding-boxed-links"></a> +<a name="index-color_002c-hyperlinks"></a> +<a name="index-colored-links"></a> +<a name="index-hyperlink-color"></a> +<p>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-1"></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>url.sty</samp>, older versions do not +work in plain TeX; see <a href="#Packages-known-to-work">Packages known to work</a>): +</p> +<div class="example"> +<pre class="example">\input eplain +\beginpackages + \usepackage{url} +\endpackages + +\enablehyperlinks + +\url{http://foo/bar} + +\url{mailto:foobar@example.org} + +\bye +</pre></div> + +<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: +</p> +<div class="example"> +<pre class="example">\input eplain +\beginpackages + \usepackage{url} + \usepackage{color} +\endpackages + +\enablehyperlinks +\hlopts{bwidth=0} + +\url{http://foo/bar} + +\url{mailto:foobar@example.org} + +\bye +</pre></div> + +<p>The command <code>\hlopts{bwidth=0}</code> sets border width to +zero as the default for all links, and loading the <samp>color</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>). +</p> + +<hr> +<a name="Citation-hyperlinks"></a> +<div class="header"> +<p> +Next: <a href="#List-hyperlinks" accesskey="n" rel="next">List hyperlinks</a>, Previous: <a href="#URL-hyperlinks" accesskey="p" rel="prev">URL hyperlinks</a>, Up: <a href="#Implicit-hyperlinks" accesskey="u" rel="up">Implicit hyperlinks</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Citation-hyperlinks_003a-cite_002c-bib"></a> +<h4 class="subsection">5.3.3 Citation hyperlinks: cite, bib</h4> + +<a name="index-citations_002c-hyperlinks"></a> +<a name="index-hyperlinks_002c-citations"></a> +<a name="index-group-_0060cite_0027"></a> +<a name="index-linkgroup-_0060cite_0027"></a> +<a name="index-cite-_0028hyperlinks_0029"></a> +<p>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"></a> +<a name="index-hyperlinks_002c-bibliography"></a> +<a name="index-group-_0060bib_0027"></a> +<a name="index-destgroup-_0060bib_0027"></a> +<a name="index-bibliography-_0028hyperlinks_0029"></a> +<p>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>.bbl</samp> file, which contains a list of bibliography +entries. For each of the entries, a destination is defined. +</p> +<p>Both commands use the citation label as the hyperlink label. +</p> + +<hr> +<a name="List-hyperlinks"></a> +<div class="header"> +<p> +Next: <a href="#Cross_002dreference-hyperlinks" accesskey="n" rel="next">Cross-reference hyperlinks</a>, Previous: <a href="#Citation-hyperlinks" accesskey="p" rel="prev">Citation hyperlinks</a>, Up: <a href="#Implicit-hyperlinks" accesskey="u" rel="up">Implicit hyperlinks</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="List-hyperlinks_003a-li"></a> +<h4 class="subsection">5.3.4 List hyperlinks: li</h4> + +<a name="index-lists_002c-hyperlinks"></a> +<a name="index-hyperlinks_002c-lists"></a> +<a name="index-li-_0028hyperlinks_0029"></a> +<a name="index-group-_0060li_0027"></a> +<a name="index-destgroup-_0060li_0027"></a> +<p>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. +</p> + +<hr> +<a name="Cross_002dreference-hyperlinks"></a> +<div class="header"> +<p> +Next: <a href="#Page-reference-hyperlinks" accesskey="n" rel="next">Page reference hyperlinks</a>, Previous: <a href="#List-hyperlinks" accesskey="p" rel="prev">List hyperlinks</a>, Up: <a href="#Implicit-hyperlinks" accesskey="u" rel="up">Implicit hyperlinks</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Cross_002dreference-hyperlinks_003a-definexref_002c-ref"></a> +<h4 class="subsection">5.3.5 Cross-reference hyperlinks: definexref, ref</h4> + +<a name="index-definexref-_0028hyperlinks_0029"></a> +<a name="index-cross_002dreferences_002c-hyperlinks"></a> +<a name="index-hyperlinks_002c-cross_002dreferences"></a> +<a name="index-group-_0060definexref_0027"></a> +<a name="index-destgroup-_0060definexref_0027"></a> +<p>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"></a> +<a name="index-linkgroup-_0060ref_0027"></a> +<p>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-_0028hyperlinks_0029"></a> +<a name="index-xrefn-_0028hyperlinks_0029"></a> +<p><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"></a> +<code>\reftie</code> to the reference and become part of the link. +</p> +<a name="index-ref-_0028hyperlinks_0029"></a> +<p><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 “class word”. +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-1"></a> +<code>\reftie</code> to the preceding word. The optional argument is +separated from the class word by +<a name="index-refspace"></a> +<code>\refspace</code>. +</p> +<a name="index-refs-_0028hyperlinks_0029"></a> +<p>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. +</p> + +<hr> +<a name="Page-reference-hyperlinks"></a> +<div class="header"> +<p> +Next: <a href="#Equation-reference-hyperlinks" accesskey="n" rel="next">Equation reference hyperlinks</a>, Previous: <a href="#Cross_002dreference-hyperlinks" accesskey="p" rel="prev">Cross-reference hyperlinks</a>, Up: <a href="#Implicit-hyperlinks" accesskey="u" rel="up">Implicit hyperlinks</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Page-reference-hyperlinks_003a-xrdef_002c-xref"></a> +<h4 class="subsection">5.3.6 Page reference hyperlinks: xrdef, xref</h4> + +<a name="index-xrdef-_0028hyperlinks_0029"></a> +<a name="index-page-reference-hyperlink"></a> +<a name="index-hyperlinks_002c-page-references"></a> +<a name="index-group-_0060xrdef_0027"></a> +<a name="index-destgroup-_0060xrdef_0027"></a> +<p>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-_0028hyperlinks_0029"></a> +<a name="index-refspace-1"></a> +<a name="index-xrefpageword-1"></a> +<a name="index-group-_0060xref_0027"></a> +<a name="index-linkgroup-_0060xref_0027"></a> +<p>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. +</p> + +<hr> +<a name="Equation-reference-hyperlinks"></a> +<div class="header"> +<p> +Next: <a href="#Index-hyperlinks" accesskey="n" rel="next">Index hyperlinks</a>, Previous: <a href="#Page-reference-hyperlinks" accesskey="p" rel="prev">Page reference hyperlinks</a>, Up: <a href="#Implicit-hyperlinks" accesskey="u" rel="up">Implicit hyperlinks</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Equation-reference-hyperlinks_003a-eq"></a> +<h4 class="subsection">5.3.7 Equation reference hyperlinks: eq</h4> + +<a name="index-eqdef-_0028hyperlinks_0029"></a> +<a name="index-eqdefn-_0028hyperlinks_0029"></a> +<a name="index-eqsubdef-_0028hyperlinks_0029"></a> +<a name="index-eqsubdefn-_0028hyperlinks_0029"></a> +<a name="index-equations_002c-hyperlinks"></a> +<a name="index-hyperlinks_002c-equations"></a> +<a name="index-group-_0060eq_0027"></a> +<a name="index-destgroup-_0060eq_0027"></a> +<p>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"></a> +<a name="index-phantomeqnumber"></a> +<p>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>PHEQ<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-1"></a> +<a name="index-eqrefn-1"></a> +<a name="index-reftie-2"></a> +<a name="index-group-_0060eq_0027-1"></a> +<a name="index-linkgroup-_0060eq_0027"></a> +<p>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. +</p> + +<hr> +<a name="Index-hyperlinks"></a> +<div class="header"> +<p> +Next: <a href="#Footnote-hyperlinks" accesskey="n" rel="next">Footnote hyperlinks</a>, Previous: <a href="#Equation-reference-hyperlinks" accesskey="p" rel="prev">Equation reference hyperlinks</a>, Up: <a href="#Implicit-hyperlinks" accesskey="u" rel="up">Implicit hyperlinks</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Index-hyperlinks_003a-idx"></a> +<h4 class="subsection">5.3.8 Index hyperlinks: idx</h4> + +<a name="index-idx-_0028hyperlinks_0029"></a> +<a name="index-idxname-_0028hyperlinks_0029"></a> +<a name="index-idxmarked-_0028hyperlinks_0029"></a> +<a name="index-idxsubmarked-_0028hyperlinks_0029"></a> +<a name="index-index-hyperlink"></a> +<a name="index-hyperlinks_002c-index"></a> +<a name="index-group-_0060idx_0027"></a> +<a name="index-linkgroup-_0060idx_0027"></a> +<a name="index-destgroup-_0060idx_0027"></a> +<p>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-_0028hyperlinks_0029"></a> +<code>\readindexfile{<var>index-letter</var>}</code> (see <a href="#Typesetting-an-index">Typesetting an index</a>). +</p> +<a name="index-makeindex-2"></a> +<p>To create the links in index entries, Eplain uses MakeIndex’s +“encapsulation” feature. When you use an indexing macro to mark an +index term, Eplain writes out a line to the +<a name="index-_002eidx-files-1"></a> +<samp>.idx</samp> file of the following general form: +</p> +<div class="example"> +<pre class="example">\indexentry{<var>entry</var>|<var>pagemarkup</var>}{<var>pageno</var>} +</pre></div> + +<p>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=<var>cs</var></code> 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>.idx</samp> file, MakeIndex makes the page number an +argument to the page markup command (“encapsulates” the page +number), so the page number in the +<a name="index-_002eind-files-1"></a> +<samp>.ind</samp> file appears as <code>\<var>cs</var>{<var>pageno</var>}</code>. Eplain +internally replaces the <var>cs</var> command name with its own command, +which, in addition to calling the original <code>\<var>cs</var></code> +encapsulator, turns the page number into a link. +</p> +<p>Eplain provides two approaches to linking page numbers in the index to +locations of index terms in the text. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Exact-destinations-for-index-terms" accesskey="1">Exact destinations for index terms</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Page-destinations-for-index-terms" accesskey="2">Page destinations for index terms</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Choosing-destination-placement" accesskey="3">Choosing destination placement</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Index-page-list-and-page-range-parsers" accesskey="4">Index page list and page range parsers</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Hyperlinks-in-see-and-see-also-entries" accesskey="5">Hyperlinks in see and see also entries</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> +<a name="Exact-destinations-for-index-terms"></a> +<div class="header"> +<p> +Next: <a href="#Page-destinations-for-index-terms" accesskey="n" rel="next">Page destinations for index terms</a>, Up: <a href="#Index-hyperlinks" accesskey="u" rel="up">Index hyperlinks</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Exact-destinations-for-index-terms-1"></a> +<h4 class="subsubsection">5.3.8.1 Exact destinations for index terms</h4> + +<p>In this approach, each command that marks an index term defines a unique +destination and passes its label on to the <samp>.idx</samp> file as part of +the <code>\indexentry</code> command. The <code>\indexentry</code> line that Eplain +writes to the <samp>.idx</samp> file becomes +</p> +<div class="example"> +<pre class="example">\indexentry{<var>entry</var>|hlidx{<var>label</var>}{<var>cs</var>}}{<var>pageno}</var> +</pre></div> + +<a name="index-hlidx"></a> +<p>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>.ind</samp> file that MakeIndex will generate, the page number +will now appear as +</p> +<div class="example"> +<pre class="example">\hlidx{<var>label</var>}{<var>cs</var>}{<var>pageno</var>} +</pre></div> + +<p>The result of this command is +<code>\<var>cs</var>{<var>pageno</var>}</code>, wrapped up into a link pointing to +<var>label</var> destination. +</p> +<p>The hyperlink labels for the index terms are generated by the +<a name="index-hlidxlabel"></a> +<code>\hlidxlabel</code> command, by default in the format +‘<samp>IDX<var>number</var></samp>’, where <var>number</var> is the value of the count +register +<a name="index-hlidxlabelnumber"></a> +<code>\hlidxlabelnumber</code>. This count register is incremented at each +index term. +</p> +<a name="index-exact-index-hyperlinks"></a> +<a name="index-index_002c-exact-hyperlinks"></a> +<a name="index-hyperlinks_002c-index_002c-exact"></a> +<p>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"></a> +<a name="index-filtering-index-entries-with-hyperlinks"></a> +<a name="index-hyperlinks_002c-filtering-index-entries"></a> +<samp>idxuniq</samp> distributed with Eplain in the <samp>util</samp> directory. +This script filters out <code>\indexentry</code> lines differing only in the +hyperlink label but identical otherwise. You should process the +<samp>.idx</samp> with this script before passing it on to MakeIndex. For +example: +</p> +<div class="example"> +<pre class="example">prompt$ ./idxuniq file.idx | makeindex > file.ind +</pre></div> + +<p>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>idxuniq</samp> will not filter out the second entry). +</p> + +<hr> +<a name="Page-destinations-for-index-terms"></a> +<div class="header"> +<p> +Next: <a href="#Choosing-destination-placement" accesskey="n" rel="next">Choosing destination placement</a>, Previous: <a href="#Exact-destinations-for-index-terms" accesskey="p" rel="prev">Exact destinations for index terms</a>, Up: <a href="#Index-hyperlinks" accesskey="u" rel="up">Index hyperlinks</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Page-destinations-for-index-terms-1"></a> +<h4 class="subsubsection">5.3.8.2 Page destinations for index terms</h4> + +<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"></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>IDXPG<var>number</var></samp>’. +</p> +<p>With this approach, the <code>\indexentry</code> line which Eplain writes to +the <code>.idx</code> file looks like this: +</p> +<div class="example"> +<pre class="example">\indexentry{<var>entry</var>|hlidxpage{<var>cs</var>}}{<var>pageno}</var> +</pre></div> + +<a name="index-hlidxpage"></a> +<p>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>.ind</samp> file that +MakeIndex will generate, the page number will appear as +</p> +<div class="example"> +<pre class="example">\hlidxpage{<var>cs</var>}{<var>pageno</var>} +</pre></div> + +<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"></a> +<a name="index-page-range_002c-parsing"></a> +<a name="index-page-list_002c-parsing"></a> +<a name="index-parsing-page-numbers"></a> +<p>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>1--4</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>1, 2</samp>’ for the <var>pageno</var>. In this last case, <code>\hlidxpage</code> +splits the two page numbers, applies <code>\<var>cs</var></code> 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>\<var>cs</var></code>). +</p> +<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>, </samp>’) and +two dashes (‘<samp>--</samp>’), respectively. If you customize MakeIndex to use +different delimiters, you must not forget to let Eplain know about them +with the commands +</p> +<div class="example"> +<pre class="example">\setidxpagelistdelimiter{<var>list-delim</var>} +\setidxpagerangedelimiter{<var>page-delim</var>} +</pre></div> + +<p>(see <a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a>). +</p> + +<hr> +<a name="Choosing-destination-placement"></a> +<div class="header"> +<p> +Next: <a href="#Index-page-list-and-page-range-parsers" accesskey="n" rel="next">Index page list and page range parsers</a>, Previous: <a href="#Page-destinations-for-index-terms" accesskey="p" rel="prev">Page destinations for index terms</a>, Up: <a href="#Index-hyperlinks" accesskey="u" rel="up">Index hyperlinks</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Choosing-destination-placement-1"></a> +<h4 class="subsubsection">5.3.8.3 Choosing destination placement</h4> + +<a name="index-index_002c-placement-of-destinations"></a> +<a name="index-index_002c-destination-placement"></a> +<a name="index-index_002c-selecting-destination-placement"></a> +<a name="index-index_002c-choosing-destination-placement"></a> +<a name="index-hyperlinks_002c-index-destination-placement"></a> +<p>The approach that Eplain should use for the index terms can be +selected in the +<a name="index-enablehyperlinks-1"></a> +<code>\enablehyperlinks</code> command. The optional argument it accepts is +a comma-separated list of options. The +<a name="index-idxexact"></a> +<code>idxexact</code> option selects the first approach, +<a name="index-idxpage"></a> +<code>idxpage</code> the second, and +<a name="index-idxnone"></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>.idx</samp> file. The default is <code>idxpage</code>. +</p> +<p>For example: +</p> +<div class="example"> +<pre class="example">\enablehyperlinks[idxexact] +</pre></div> + +<p>selects the first approach (“exact index links”). +</p> + +<hr> +<a name="Index-page-list-and-page-range-parsers"></a> +<div class="header"> +<p> +Next: <a href="#Hyperlinks-in-see-and-see-also-entries" accesskey="n" rel="next">Hyperlinks in see and see also entries</a>, Previous: <a href="#Choosing-destination-placement" accesskey="p" rel="prev">Choosing destination placement</a>, Up: <a href="#Index-hyperlinks" accesskey="u" rel="up">Index hyperlinks</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Index-page-list-and-page-range-parsers-1"></a> +<h4 class="subsubsection">5.3.8.4 Index page list and page range parsers</h4> + +<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. +</p> + +<hr> +<a name="Hyperlinks-in-see-and-see-also-entries"></a> +<div class="header"> +<p> +Previous: <a href="#Index-page-list-and-page-range-parsers" accesskey="p" rel="prev">Index page list and page range parsers</a>, Up: <a href="#Index-hyperlinks" accesskey="u" rel="up">Index hyperlinks</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Hyperlinks-in-see-and-see-also-entries-1"></a> +<h4 class="subsubsection">5.3.8.5 Hyperlinks in see and see also entries</h4> + +<a name="index-hyperlinks_002c-see-and-see-also-index-entries"></a> +<a name="index-index_002c-hyperlinks-in-see-and-see-also-entries"></a> +<a name="index-see-also-index-entries-and-hyperlinks"></a> +<a name="index-see_002c-and-index-entries_002c-hyperlinks"></a> +<p>There is no automatic support for hyperlinks with “see” and “see +also” index entries, as there is not enough information to trace the +parameters of +<a name="index-indexsee-1"></a> +<code>\indexsee</code> and +<a name="index-indexseealso-1"></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: +</p> +<div class="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> + + +<hr> +<a name="Footnote-hyperlinks"></a> +<div class="header"> +<p> +Next: <a href="#Contents-hyperlinks" accesskey="n" rel="next">Contents hyperlinks</a>, Previous: <a href="#Index-hyperlinks" accesskey="p" rel="prev">Index hyperlinks</a>, Up: <a href="#Implicit-hyperlinks" accesskey="u" rel="up">Implicit hyperlinks</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Footnote-hyperlinks_003a-foot_002c-footback"></a> +<h4 class="subsection">5.3.9 Footnote hyperlinks: foot, footback</h4> + +<a name="index-footnotes_002c-hyperlinks"></a> +<a name="index-hyperlinks_002c-footnotes"></a> +<a name="index-group-_0060foot_0027"></a> +<a name="index-group-_0060footback_0027"></a> +<a name="index-linkgroup-_0060foot_0027"></a> +<a name="index-linkgroup-_0060footback_0027"></a> +<a name="index-destgroup-_0060foot_0027"></a> +<a name="index-destgroup-_0060footback_0027"></a> +<p>The ‘foot’ link and destination groups include the +<a name="index-numberedfootnote-_0028hyperlinks_0029"></a> +<code>\numberedfootnote</code> and +<a name="index-footnote-_0028hyperlinks_0029"></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> +<p>The macros use hyperlink labels generated by +<a name="index-hlfootlabel"></a> +<code>\hlfootlabel</code> and +<a name="index-hlfootbacklabel"></a> +<code>\hlfootbacklabel</code>. The default formats for the labels are +‘<samp>FOOT<var>number</var></samp>’ and ‘<samp>FOOTB<var>number</var></samp>’, respectively, +where <var>number</var> is the value of the count register +<a name="index-hlfootlabelnumber"></a> +<code>\hlfootlabelnumber</code>. This register is incremented at every +footnote. +</p> +<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>): +</p> +<div class="example"> +<pre class="example">\hldeston[foot,footback] +\hlon[foot,footback] +</pre></div> + + +<hr> +<a name="Contents-hyperlinks"></a> +<div class="header"> +<p> +Previous: <a href="#Footnote-hyperlinks" accesskey="p" rel="prev">Footnote hyperlinks</a>, Up: <a href="#Implicit-hyperlinks" accesskey="u" rel="up">Implicit hyperlinks</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Contents-hyperlinks-1"></a> +<h4 class="subsection">5.3.10 Contents hyperlinks</h4> + +<a name="index-table-of-contents_002c-hyperlinks"></a> +<a name="index-contents_002c-hyperlinks"></a> +<a name="index-hyperlinks_002c-table-of-contents"></a> +<p>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. +</p> + +<hr> +<a name="Hyperlink-drivers"></a> +<div class="header"> +<p> +Next: <a href="#Setting-hyperlink-types-and-options" accesskey="n" rel="next">Setting hyperlink types and options</a>, Previous: <a href="#Implicit-hyperlinks" accesskey="p" rel="prev">Implicit hyperlinks</a>, Up: <a href="#Hyperlinks" accesskey="u" rel="up">Hyperlinks</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Hyperlink-drivers-1"></a> +<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> +<p>Some of the descriptions below come from <cite>Portable Document Format +Reference Manual Version 1.3</cite>, March 11, 1999. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Options-supported-by-all-drivers" accesskey="1">Options supported by all drivers</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Hyperlink-driver-hypertex" accesskey="2">Hyperlink driver hypertex</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Hyperlink-drivers-pdftex-and-dvipdfm" accesskey="3">Hyperlink drivers pdftex and dvipdfm</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Hyperlink-driver-nolinks" accesskey="4">Hyperlink driver nolinks</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> +<a name="Options-supported-by-all-drivers"></a> +<div class="header"> +<p> +Next: <a href="#Hyperlink-driver-hypertex" accesskey="n" rel="next">Hyperlink driver hypertex</a>, Up: <a href="#Hyperlink-drivers" accesskey="u" rel="up">Hyperlink drivers</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Options-supported-by-all-drivers-1"></a> +<h4 class="subsection">5.4.1 Options supported by all drivers</h4> + +<a name="index-hyperlink-options_002c-common"></a> +<p>This subsection describes the destination and link options which are +supported by all hyperlink drivers. +</p> + +<a name="Destination-options-supported-by-all-drivers"></a> +<h4 class="subsubheading">Destination options supported by all drivers</h4> + +<a name="index-destination-options_002c-common"></a> +<a name="index-options_002c-destination_002c-common"></a> +<dl compact="compact"> +<dt><code>raise</code></dt> +<dd><a name="index-raise-_0028hyperlink-option_0029"></a> +<a name="index-raising-hyperlink-destinations"></a> +<a name="index-hyperlink-destination_002c-raising"></a> +<a name="index-destinations_002c-raising"></a> +<p>Specifies how much to raise destinations above the baseline. When set +to zero or empty, destinations are placed at the baseline. +</p> +<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"></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> +<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"></a> +<a name="index-displayed-math-and-hyperlinks"></a> +<a name="index-large-operators-and-hyperlinks"></a> +<a name="index-hyperlinks_002c-large-operators"></a> +<a name="index-destinations_002c-large-operators"></a> +to accommodate the usual cases of large operators in displayed math. +</p> +<p>Example: <code>\hldestopts[eq]{raise=2.5\normalbaselineskip}</code> +</p></dd> +</dl> + + +<a name="Link-options-supported-by-all-drivers"></a> +<h4 class="subsubheading">Link options supported by all drivers</h4> +<a name="index-link-options_002c-common"></a> +<a name="index-options_002c-link_002c-common"></a> + +<dl compact="compact"> +<dt><code>colormodel</code></dt> +<dt><code>color</code></dt> +<dd><a name="index-colormodel-_0028hyperlink-option_0029"></a> +<a name="index-color-_0028hyperlink-option_0029"></a> +<a name="index-color_002c-hyperlinks-1"></a> +<a name="index-colored-links-1"></a> +<a name="index-hyperlink-color-1"></a> +<p>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[<var>colormodel</var>]{<var>color</var>}</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 <code><var>colormodel</var>=cmyk</code> and +<code><var>color</var>=0.28,1,1,0.35</code>. +</p> +<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> +<p>Examples: +</p> +<div class="example"> +<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></div> +</dd> +</dl> + + +<hr> +<a name="Hyperlink-driver-hypertex"></a> +<div class="header"> +<p> +Next: <a href="#Hyperlink-drivers-pdftex-and-dvipdfm" accesskey="n" rel="next">Hyperlink drivers pdftex and dvipdfm</a>, Previous: <a href="#Options-supported-by-all-drivers" accesskey="p" rel="prev">Options supported by all drivers</a>, Up: <a href="#Hyperlink-drivers" accesskey="u" rel="up">Hyperlink drivers</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Hyperlink-driver-hypertex-1"></a> +<h4 class="subsection">5.4.2 Hyperlink driver <code>hypertex</code></h4> + +<a name="index-hypertex-_0028hyperlink-driver_0029"></a> +<a name="index-hypertex_002c-hyperlink-driver"></a> +<a name="index-driver-hypertex"></a> +<a name="index-hyperlink-driver-hypertex"></a> +<p>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>.dvi</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"></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-1"></a> +<code>dvipdfmx</code> or +<a name="index-dvips"></a> +<code>dvips</code> with +<a name="index-Ghostscript"></a> +Ghostscript’s +<a name="index-ps2pdf"></a> +<code>ps2pdf</code> script). +</p> +<p>The downside to the standard is that it is by design “the common +factor” 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> +<p>For more information on programs which support the HyperTeX standard, +please see +</p> +<div class="display"> +<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></div> + +<p>For convenience, we list a few HyperTeX-enabled converters: +</p> +<dl compact="compact"> +<dd><a name="index-dvips-1"></a> +</dd> +<dt><code>dvips</code></dt> +<dd><p>Note that you need to pass the <samp>-z</samp> option to <code>dvips</code> to +tell it to preserve the information about the hyperlinks. To generate a +<samp>.pdf</samp> file with hyperlinks, you can use the +<a name="index-ps2pdf-1"></a> +<samp>ps2pdf</samp> script of +<a name="index-Ghostscript-1"></a> +Ghostscript. For example, if <samp>foo.tex</samp> is a TeX file using +HyperTeX commands, then +</p> +<div class="example"> +<pre class="example">prompt$ tex foo.tex +prompt$ dvips -z foo.dvi -o +prompt$ ps2pdf foo.ps +</pre></div> + +<p>will produce <samp>foo.pdf</samp> with hyperlinks. +</p> +</dd> +<dt><code>dvipdfm</code></dt> +<dt><code>dvipdfmx</code></dt> +<dd><a name="index-dvipdfm-2"></a> +<p>No special command line arguments are required, these programs +automatically detect the HyperTeX commands. +</p> +</dd> +</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 5.92b converts all +internal hyperlinks into page links pointing to a page containing the +destination, so that “exact” 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 0.13.2c and +dvipdfmx as of version 20040411 do not correctly parse links to +external local files, and produce a <acronym>URL</acronym> link instead of a +file link. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Destination-types-for-hypertex" accesskey="1">Destination types for hypertex</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Destination-options-for-hypertex" accesskey="2">Destination options for hypertex</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Link-types-for-hypertex" accesskey="3">Link types for hypertex</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Link-options-for-hypertex" accesskey="4">Link options for hypertex</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> +<a name="Destination-types-for-hypertex"></a> +<div class="header"> +<p> +Next: <a href="#Destination-options-for-hypertex" accesskey="n" rel="next">Destination options for hypertex</a>, Up: <a href="#Hyperlink-driver-hypertex" accesskey="u" rel="up">Hyperlink driver hypertex</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Destination-types-for-hypertex-1"></a> +<h4 class="subsubsection">5.4.2.1 Destination types for <code>hypertex</code></h4> + +<a name="index-destination-types_002c-hypertex"></a> +<a name="index-types_002c-destination_002c-hypertex"></a> +<a name="index-hypertex_002c-destination-types"></a> +<dl compact="compact"> +<dt><code>xyz</code></dt> +<dd><a name="index-xyz-_0028destination-type_0029"></a> +<p>“Current position”. This is the default type. +</p> +<p>Example: <code>\hldest{xyz}{}{dest123}</code> +</p> +</dd> +<dt><code>raw</code></dt> +<dd><a name="index-raw-_0028destination-type_0029"></a> +<p>The destination specification (in the form of a HyperTeX +<code>\special</code>) is taken from the command sequence <code>\<var>cs</var></code>, +where <var>cs</var> is the value of the +<a name="index-cmd-_0028destination-option_0029"></a> +<code>cmd</code> option. In the definition of <code>\<var>cs</var></code>, use +<a name="index-_0040hllabel"></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-1"></a> +<code>\hldest</code>—you can just call the raw command. +</p> +<p>Example: +</p> +<div class="example"> +<pre class="example">\makeatletter +\def\mydest{\special{html:<a name="\@hllabel">}% + \special{html:</a>}} +\resetatcatcode +\indent\hldest{raw}{cmd=mydest}{SpecialDest} + Special destination. +</pre></div> + +</dd> +</dl> + + +<hr> +<a name="Destination-options-for-hypertex"></a> +<div class="header"> +<p> +Next: <a href="#Link-types-for-hypertex" accesskey="n" rel="next">Link types for hypertex</a>, Previous: <a href="#Destination-types-for-hypertex" accesskey="p" rel="prev">Destination types for hypertex</a>, Up: <a href="#Hyperlink-driver-hypertex" accesskey="u" rel="up">Hyperlink driver hypertex</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Destination-options-for-hypertex-1"></a> +<h4 class="subsubsection">5.4.2.2 Destination options for <code>hypertex</code></h4> + +<a name="index-destination-options_002c-hypertex"></a> +<a name="index-options_002c-destination_002c-hypertex"></a> +<a name="index-hypertex_002c-destination-options"></a> +<dl compact="compact"> +<dt><code>cmd</code></dt> +<dd><a name="index-cmd-_0028destination-option_0029-1"></a> +<p>Name of the macro (without the leading ‘<samp>\</samp>’) containing a +HyperTeX <code>\special</code> for the <code>raw</code> destination. +</p> +<p>See <a href="#Destination-types-for-hypertex">Destination types for hypertex</a>, the description of the <code>raw</code> +destination, for an example. +</p></dd> +</dl> + + +<hr> +<a name="Link-types-for-hypertex"></a> +<div class="header"> +<p> +Next: <a href="#Link-options-for-hypertex" accesskey="n" rel="next">Link options for hypertex</a>, Previous: <a href="#Destination-options-for-hypertex" accesskey="p" rel="prev">Destination options for hypertex</a>, Up: <a href="#Hyperlink-driver-hypertex" accesskey="u" rel="up">Hyperlink driver hypertex</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Link-types-for-hypertex-1"></a> +<h4 class="subsubsection">5.4.2.3 Link types for <code>hypertex</code></h4> + +<a name="index-link-types_002c-hypertex"></a> +<a name="index-types_002c-link_002c-hypertex"></a> +<a name="index-hypertex_002c-link-types"></a> +<dl compact="compact"> +<dt><code>name</code></dt> +<dd><a name="index-name-_0028hyperlink-type_0029"></a> +<a name="index-named-destination"></a> +<a name="index-destinations_002c-named"></a> +<a name="index-hyperlink-destination_002c-named"></a> +<p>Go to a “named destination”. The label is the destination name. All +destinations in HyperTeX are named destinations. This is the default +type. +</p> +<p>Example: <code>\hlstart{name}{}{dest123}Link to dest123\hlend</code> +</p> +</dd> +<dt><code>url</code></dt> +<dd><a name="index-url-_0028hyperlink-type_0029"></a> +<a name="index-URL-hyperlink-2"></a> +<a name="index-destinations_002c-URL"></a> +<a name="index-hyperlinks_002c-URL-2"></a> +<p>Go to a <acronym>URL</acronym>. The label is the <acronym>URL</acronym>. +</p> +<p>Example: +</p> +<div class="example"> +<pre class="example"><code>\hlstart{url}{}{http://tug.org/eplain/}Eplain home\hlend</code> +</pre></div> + +</dd> +<dt><code>filename</code></dt> +<dd><a name="index-filename-_0028hyperlink-type_0029"></a> +<a name="index-file_002c-hyperlink-to"></a> +<a name="index-destinations_002c-in-another-file"></a> +<a name="index-hyperlinks_002c-to-another-file"></a> +<p>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-_0028hyperlink-option_0029"></a> +<code>file</code> option. The file name extension can be specified separately +by the +<a name="index-ext-_0028hyperlink-option_0029"></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—HyperTeX is not +restricted to any single output format, it can be <acronym>DVI</acronym>, +<acronym>PDF</acronym>, possibly other formats. +</p> +<p>Example: +</p> +<div class="example"> +<pre class="example">\hlopts{ext=.pdf} +\hlstart{filename}{file=book}{dest123} + Link to dest123 in file `book.pdf'\hlend +</pre></div> + +</dd> +<dt><code>raw</code></dt> +<dd><a name="index-raw-_0028hyperlink-type_0029"></a> +<p>The link specification (in the form of a HyperTeX <code>\special</code>) is +taken from the command sequence <code>\<var>cs</var></code>, where <var>cs</var> is the +value of the +<a name="index-cmd-_0028hyperlink-option_0029"></a> +<code>cmd</code> option. In the definition of <code>\<var>cs</var></code>, use +<a name="index-_0040hllabel-1"></a> +<code>\@hllabel</code> to refer to the hyperlink label. Use the predefined +command +<a name="index-hlhash"></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-1"></a> +<code>\hlstart</code>—you can just call the raw command. +</p> +<p>Example: +</p> +<div class="example"> +<pre class="example">\makeatletter +\def\mylink{\special{html:<a href="\hlhash\@hllabel">}} +\resetatcatcode +\hlstart{raw}{cmd=mylink}{SpecialDest} + Link to the special destination.\hlend +</pre></div> + +</dd> +</dl> + + +<hr> +<a name="Link-options-for-hypertex"></a> +<div class="header"> +<p> +Previous: <a href="#Link-types-for-hypertex" accesskey="p" rel="prev">Link types for hypertex</a>, Up: <a href="#Hyperlink-driver-hypertex" accesskey="u" rel="up">Hyperlink driver hypertex</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Link-options-for-hypertex-1"></a> +<h4 class="subsubsection">5.4.2.4 Link options for <code>hypertex</code></h4> + +<a name="index-link-options_002c-hypertex"></a> +<a name="index-options_002c-link_002c-hypertex"></a> +<a name="index-hypertex_002c-link-options"></a> +<dl compact="compact"> +<dt><code>cmd</code></dt> +<dd><a name="index-cmd-_0028hyperlink-option_0029-1"></a> +<p>Name of the macro (without the leading ‘<samp>\</samp>’) containing a +HyperTeX <code>\special</code> for the <code>raw</code> link. +</p> +<p>See <a href="#Link-types-for-hypertex">Link types for hypertex</a>, the description of the <code>raw</code> link, +for an example. +</p> +</dd> +<dt><code>file</code></dt> +<dd><a name="index-file-_0028hyperlink-option_0029-1"></a> +<p>File name for the <code>filename</code> link type. See also the <code>ext</code> +option. +</p> +<p>See <a href="#Link-types-for-hypertex">Link types for hypertex</a>, the description of the <code>filename</code> +link, for an example. +</p> +</dd> +<dt><code>ext</code></dt> +<dd><a name="index-ext-_0028hyperlink-option_0029-1"></a> +<p>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—HyperTeX is not restricted to any single output format, it can +be <acronym>DVI</acronym>, <acronym>PDF</acronym>, possibly other formats. +</p> +<p>See <a href="#Link-types-for-hypertex">Link types for hypertex</a>, the description of the <code>filename</code> +link, for an example. +</p></dd> +</dl> + + +<hr> +<a name="Hyperlink-drivers-pdftex-and-dvipdfm"></a> +<div class="header"> +<p> +Next: <a href="#Hyperlink-driver-nolinks" accesskey="n" rel="next">Hyperlink driver nolinks</a>, Previous: <a href="#Hyperlink-driver-hypertex" accesskey="p" rel="prev">Hyperlink driver hypertex</a>, Up: <a href="#Hyperlink-drivers" accesskey="u" rel="up">Hyperlink drivers</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Hyperlink-drivers-pdftex-and-dvipdfm-1"></a> +<h4 class="subsection">5.4.3 Hyperlink drivers <code>pdftex</code> and <code>dvipdfm</code></h4> + +<a name="index-pdftex-_0028hyperlink-driver_0029"></a> +<a name="index-dvipdfm-_0028hyperlink-driver_0029"></a> +<a name="index-pdftex_002c-hyperlink-driver"></a> +<a name="index-dvipdfm_002c-hyperlink-driver"></a> +<a name="index-driver-pdftex"></a> +<a name="index-driver-dvipdfm"></a> +<a name="index-hyperlink-driver-pdftex"></a> +<a name="index-hyperlink-driver-dvipdfm"></a> +<p>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. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Destination-types-for-pdftex-and-dvipdfm" accesskey="1">Destination types for pdftex and dvipdfm</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Destination-options-for-pdftex-and-dvipdfm" accesskey="2">Destination options for pdftex and dvipdfm</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Link-types-for-pdftex-and-dvipdfm" accesskey="3">Link types for pdftex and dvipdfm</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Link-options-for-pdftex-and-dvipdfm" accesskey="4">Link options for pdftex and dvipdfm</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> +<a name="Destination-types-for-pdftex-and-dvipdfm"></a> +<div class="header"> +<p> +Next: <a href="#Destination-options-for-pdftex-and-dvipdfm" accesskey="n" rel="next">Destination options for pdftex and dvipdfm</a>, Up: <a href="#Hyperlink-drivers-pdftex-and-dvipdfm" accesskey="u" rel="up">Hyperlink drivers pdftex and dvipdfm</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Destination-types-for-pdftex-and-dvipdfm-1"></a> +<h4 class="subsubsection">5.4.3.1 Destination types for <code>pdftex</code> and <code>dvipdfm</code></h4> + +<a name="index-destination-types_002c-pdftex"></a> +<a name="index-destination-types_002c-dvipdfm"></a> +<a name="index-types_002c-destination_002c-pdftex"></a> +<a name="index-types_002c-destination_002c-dvipdfm"></a> +<a name="index-pdftex_002c-destination-types"></a> +<a name="index-dvipdfm_002c-destination-types"></a> +<dl compact="compact"> +<dt><code>xyz</code></dt> +<dd><a name="index-xyz-_0028destination-type_0029-1"></a> +<p>“Current position”. The option +<a name="index-zoom-_0028destination-option_0029"></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> +<p>For <code>dvipdfm</code>: the options +<a name="index-left-_0028destination-option_0029"></a> +<code>left</code> and +<a name="index-top-_0028destination-option_0029"></a> +<code>top</code> specify position coordinates to use (empty options mean +current position coordinate, which is the default). +</p> +<p>Example: <code>\hldest{xyz}{zoom=2000}{dest123}</code> +</p> +</dd> +<dt><code>fit</code></dt> +<dd><a name="index-fit-_0028destination-type_0029"></a> +<p>Fit the page to the window. +</p> +<p>Example: <code>\hldest{fit}{}{dest123}</code> +</p> +</dd> +<dt><code>fith</code></dt> +<dd><a name="index-fith-_0028destination-type_0029"></a> +<p>Fit the width of the page to the window. +</p> +<p>For <code>dvipdfm</code>: the +<a name="index-top-_0028destination-option_0029-1"></a> +<code>top</code> option specifies vertical position (default is empty, meaning +current position). +</p> +<p>Example: <code>\hldest{fith}{}{dest123}</code> +</p> +</dd> +<dt><code>fitv</code></dt> +<dd><a name="index-fitv-_0028destination-type_0029"></a> +<p>Fit the height of the page to the window. +</p> +<p>For <code>dvipdfm</code>: The option +<a name="index-left-_0028destination-option_0029-1"></a> +<code>left</code> specifies horizontal position (default is empty, meaning +current position). +</p> +<p>Example: <code>\hldest{fitv}{}{dest123}</code> +</p> +</dd> +<dt><code>fitb</code></dt> +<dd><a name="index-fitb-_0028destination-type_0029"></a> +<p>Fit the page’s bounding box to the window. +</p> +<p>Example: <code>\hldest{fitb}{}{dest123}</code> +</p> +</dd> +<dt><code>fitbh</code></dt> +<dd><a name="index-fitbh-_0028destination-type_0029"></a> +<p>Fit the width of the page’s bounding box to the window. +</p> +<p>For <code>dvipdfm</code>: the option +<a name="index-top-_0028destination-option_0029-2"></a> +<code>top</code> specifies vertical position (default is empty, meaning +current position). +</p> +<p>Example: <code>\hldest{fitbh}{}{dest123}</code> +</p> +</dd> +<dt><code>fitbv</code></dt> +<dd><a name="index-fitbv-_0028destination-type_0029"></a> +<p>Fit the height of the page’s bounding box to the window. +</p> +<p>For <code>dvipdfm</code>: the option +<a name="index-left-_0028destination-option_0029-2"></a> +<code>left</code> specifies horizontal position (default is empty, meaning +current position). +</p> +<p>Example: <code>\hldest{fitbv}{}{dest123}</code> +</p> +</dd> +<dt><code>fitr</code></dt> +<dd><a name="index-fitr-_0028destination-type_0029"></a> +<p>For <code>pdftex</code>: fit the rectangle specified by the options +<a name="index-width-_0028destination-option_0029"></a> +<code>width</code>, +<a name="index-height-_0028destination-option_0029"></a> +<code>height</code> and +<a name="index-depth-_0028destination-option_0029"></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> +<p>For <code>dvipdfm</code>: fit the rectangle specified by the options +<a name="index-left-_0028destination-option_0029-3"></a> +<code>left</code>, +<a name="index-bottom-_0028destination-option_0029"></a> +<code>bottom</code>, +<a name="index-right-_0028destination-option_0029"></a> +<code>right</code> and +<a name="index-top-_0028destination-option_0029-3"></a> +<code>top</code> (in +<a name="index-PostScript-point"></a> +PostScript points, 72 points per inch) in the window. For +dimensions set to empty, current position coordinate is substituted +(these are the defaults). +</p> +<p>Example for <code>pdftex</code>: +</p> +<div class="example"> +<pre class="example">\hldest{fitr}{width=\hsize, + height=.5\vsize,depth=0pt}{dest123} +</pre></div> + +<p>Example for <code>dvipdfm</code>: +</p> +<div class="example"> +<pre class="example">\hldest{fitr}{left=72,bottom=72, + right=720,top=360}{dest123} +</pre></div> + +</dd> +<dt><code>raw</code></dt> +<dd><a name="index-raw-_0028destination-type_0029-1"></a> +<p>The destination specification (in the form of a pdfTeX command or a +dvipdfm <code>\special</code>) is taken from the command sequence +<code>\<var>cs</var></code>, where <var>cs</var> is the value of the +<a name="index-cmd-_0028destination-option_0029-2"></a> +<code>cmd</code> option. In the definition of <code>\<var>cs</var></code>, use +<a name="index-_0040hllabel-2"></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-2"></a> +<code>\hldest</code>—you can just call the raw command. +</p> +<p>Example for <code>pdftex</code>: +</p> +<div class="example"> +<pre class="example">\makeatletter +\def\mydest{\pdfdest name{\@hllabel} xyz} +\resetatcatcode +\hldesttype{raw} +\hldestopts{cmd=mydest} +</pre></div> + +<p>Example for <code>dvipdfm</code>: +</p> +<div class="example"> +<pre class="example">\makeatletter +\def\mydest{\special{pdf: dest (\@hllabel) + [@thispage /XYZ @xpos @ypos 0]}} +\resetatcatcode +\hldesttype{raw} +\hldestopts{cmd=mydest} +</pre></div> +</dd> +</dl> + + +<hr> +<a name="Destination-options-for-pdftex-and-dvipdfm"></a> +<div class="header"> +<p> +Next: <a href="#Link-types-for-pdftex-and-dvipdfm" accesskey="n" rel="next">Link types for pdftex and dvipdfm</a>, Previous: <a href="#Destination-types-for-pdftex-and-dvipdfm" accesskey="p" rel="prev">Destination types for pdftex and dvipdfm</a>, Up: <a href="#Hyperlink-drivers-pdftex-and-dvipdfm" accesskey="u" rel="up">Hyperlink drivers pdftex and dvipdfm</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Destination-options-for-pdftex-and-dvipdfm-1"></a> +<h4 class="subsubsection">5.4.3.2 Destination options for <code>pdftex</code> and <code>dvipdfm</code></h4> + +<a name="index-destination-options_002c-pdftex"></a> +<a name="index-destination-options_002c-dvipdfm"></a> +<a name="index-options_002c-destination_002c-pdftex"></a> +<a name="index-options_002c-destination_002c-dvipdfm"></a> +<a name="index-pdftex_002c-destination-options"></a> +<a name="index-dvipdfm_002c-destination-options"></a> +<p>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>). +</p> + +<a name="Common-destination-options"></a> +<h4 class="subsubheading">Common destination options</h4> + +<dl compact="compact"> +<dt><code>cmd</code></dt> +<dd><a name="index-cmd-_0028destination-option_0029-3"></a> +<p>Name of the macro (without the leading ‘<samp>\</samp>’) containing a +pdfTeX command or a dvipdfm <code>\special</code> for the <code>raw</code> +destination. +</p> +<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. +</p> +</dd> +<dt><code>zoom</code></dt> +<dd><a name="index-zoom-_0028destination-option_0029-1"></a> +<a name="index-destinations_002c-magnification"></a> +<a name="index-hyperlink-destination_002c-magnification"></a> +<a name="index-magnification_002c-hyperlink-destination"></a> +<a name="index-zooming_002c-hyperlink-destination"></a> +<p>Magnification ratio times 1000 (like TeX’s scale factor). +Zero or empty means leave magnification unchanged, which is the +default. +</p> +<p>Example: <code>\hldest{xyz}{zoom=2000}{dest123}</code> +</p></dd> +</dl> + + +<a name="pdftex_002dspecific-destination-options"></a> +<h4 class="subsubheading"><code>pdftex</code>-specific destination options</h4> + +<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). +</p> +<dl compact="compact"> +<dt><code>depth</code></dt> +<dd><a name="index-depth-_0028destination-option_0029-1"></a> +<a name="index-destinations_002c-dimensions"></a> +<a name="index-hyperlink-destination_002c-dimensions"></a> +<a name="index-dimensions_002c-hyperlink-destination"></a> +<p>Depth of the fit rectangle for the <code>fitr</code> destination. +</p> +</dd> +<dt><code>height</code></dt> +<dd><a name="index-height-_0028destination-option_0029-1"></a> +<a name="index-destinations_002c-dimensions-1"></a> +<a name="index-hyperlink-destination_002c-dimensions-1"></a> +<a name="index-dimensions_002c-hyperlink-destination-1"></a> +<p>Height of the fit rectangle for the <code>fitr</code> destination. +</p> +</dd> +<dt><code>width</code></dt> +<dd><a name="index-width-_0028destination-option_0029-1"></a> +<a name="index-destinations_002c-dimensions-2"></a> +<a name="index-hyperlink-destination_002c-dimensions-2"></a> +<a name="index-dimensions_002c-hyperlink-destination-2"></a> +<p>Width of the fit rectangle for the <code>fitr</code> destination. +</p> +<p>Example: +</p> +<div class="example"> +<pre class="example">\hldest{fitr}{width=\hsize, + height=.5\vsize,depth=0pt}{dest123} +</pre></div> +</dd> +</dl> + + +<a name="dvipdfm_002dspecific-destination-options"></a> +<h4 class="subsubheading"><code>dvipdfm</code>-specific destination options</h4> + +<p>The dimension options below must be specified in +<a name="index-PostScript-point-1"></a> +PostScript points (72 points per inch), as a number without the +‘<samp>bp</samp>’ unit name. When set to empty, the current position +coordinate is used (this is the default for all dimension options). +</p> +<dl compact="compact"> +<dt><code>bottom</code></dt> +<dd><a name="index-bottom-_0028destination-option_0029-1"></a> +<a name="index-destinations_002c-dimensions-3"></a> +<a name="index-hyperlink-destination_002c-dimensions-3"></a> +<a name="index-dimensions_002c-hyperlink-destination-3"></a> +<p>Bottom position coordinate of a box specification for the various +destination types. +</p> +</dd> +<dt><code>left</code></dt> +<dd><a name="index-left-_0028destination-option_0029-4"></a> +<a name="index-destinations_002c-dimensions-4"></a> +<a name="index-hyperlink-destination_002c-dimensions-4"></a> +<a name="index-dimensions_002c-hyperlink-destination-4"></a> +<p>Left position coordinate of a box specification for the various +destination types. +</p> +</dd> +<dt><code>right</code></dt> +<dd><a name="index-right-_0028destination-option_0029-1"></a> +<a name="index-destinations_002c-dimensions-5"></a> +<a name="index-hyperlink-destination_002c-dimensions-5"></a> +<a name="index-dimensions_002c-hyperlink-destination-5"></a> +<p>Right position coordinate of a box specification for the various +destination types. +</p> +</dd> +<dt><code>top</code></dt> +<dd><a name="index-top-_0028destination-option_0029-4"></a> +<a name="index-destinations_002c-dimensions-6"></a> +<a name="index-hyperlink-destination_002c-dimensions-6"></a> +<a name="index-dimensions_002c-hyperlink-destination-6"></a> +<p>Top position coordinate of a box specification for the various +destination types. +</p> +<p>Example: +</p> +<div class="example"> +<pre class="example">\hldest{fitr}{left=72,bottom=72, + right=720,top=360}{dest123} +</pre></div> +</dd> +</dl> + + +<hr> +<a name="Link-types-for-pdftex-and-dvipdfm"></a> +<div class="header"> +<p> +Next: <a href="#Link-options-for-pdftex-and-dvipdfm" accesskey="n" rel="next">Link options for pdftex and dvipdfm</a>, Previous: <a href="#Destination-options-for-pdftex-and-dvipdfm" accesskey="p" rel="prev">Destination options for pdftex and dvipdfm</a>, Up: <a href="#Hyperlink-drivers-pdftex-and-dvipdfm" accesskey="u" rel="up">Hyperlink drivers pdftex and dvipdfm</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Link-types-for-pdftex-and-dvipdfm-1"></a> +<h4 class="subsubsection">5.4.3.3 Link types for <code>pdftex</code> and <code>dvipdfm</code></h4> + +<a name="index-link-types_002c-pdftex"></a> +<a name="index-link-types_002c-dvipdfm"></a> +<a name="index-types_002c-link_002c-pdftex"></a> +<a name="index-types_002c-link_002c-dvipdfm"></a> +<a name="index-pdftex_002c-link-types"></a> +<a name="index-dvipdfm_002c-link-types"></a> +<p>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. +</p> + +<a name="Common-link-types"></a> +<h4 class="subsubheading">Common link types</h4> + +<dl compact="compact"> +<dt><code>name</code></dt> +<dd><a name="index-name-_0028hyperlink-type_0029-1"></a> +<a name="index-named-destination-1"></a> +<a name="index-destinations_002c-named-1"></a> +<a name="index-hyperlink-destination_002c-named-1"></a> +<p>Go to a “named destination”. 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> +<p>Example: <code>\hlstart{name}{}{dest123}Link to dest123\hlend</code> +</p> +</dd> +<dt><code>url</code></dt> +<dd><a name="index-url-_0028hyperlink-type_0029-1"></a> +<a name="index-URL-hyperlink-3"></a> +<a name="index-destinations_002c-URL-1"></a> +<a name="index-hyperlinks_002c-URL-3"></a> +<p>Go to a <acronym>URL</acronym>. The label is the <acronym>URL</acronym>. +</p> +<p>Example: <code>\hlstart{url}{}{http://tug.org/eplain/}Eplain home\hlend</code> +</p> +</dd> +<dt><code>page</code></dt> +<dd><a name="index-page-_0028hyperlink-type_0029"></a> +<a name="index-page-destination"></a> +<a name="index-destinations_002c-page"></a> +<a name="index-hyperlink-destination_002c-page"></a> +<p>Go to a page. The label is the page number (counting from 1). +Page fitting is specified by the +<a name="index-pagefit-_0028hyperlink-option_0029"></a> +<code>pagefit</code> option. +</p> +<p>Example: +</p> +<div class="example"> +<pre class="example">\hlstart{page}{pagefit=/FitH 600}{123} + Link to page~123\hlend +</pre></div> + +</dd> +<dt><code>filename</code></dt> +<dd><a name="index-filename-_0028hyperlink-type_0029-1"></a> +<a name="index-file_002c-hyperlink-to-1"></a> +<a name="index-destinations_002c-in-another-file-1"></a> +<a name="index-hyperlinks_002c-to-another-file-1"></a> +<p>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-_0028hyperlink-option_0029-2"></a> +<code>file</code> option. Page fitting is specified by the +<a name="index-pagefit-_0028hyperlink-option_0029-1"></a> +<code>pagefit</code> option. The +<a name="index-newwin-_0028hyperlink-option_0029"></a> +<code>newwin</code> option specifies whether the destination document is +opened in the same window or in a new window. +</p> +<p>Example: +</p> +<div class="example"> +<pre class="example">\hlstart{filename}{file=book.pdf,newwin=1}{dest123} + Link to dest123 in file `book.pdf'\hlend +</pre></div> + +</dd> +<dt><code>filepage</code></dt> +<dd><a name="index-filepage-_0028hyperlink-type_0029"></a> +<a name="index-file_002c-hyperlink-to-2"></a> +<a name="index-destinations_002c-in-another-file-2"></a> +<a name="index-hyperlinks_002c-to-another-file-2"></a> +<p>Go to a page in another file. The label is the page number (counting +from 1). The file name is specified by the +<a name="index-file-_0028hyperlink-option_0029-3"></a> +<code>file</code> option. Page fitting is specified by the +<a name="index-pagefit-_0028hyperlink-option_0029-2"></a> +<code>pagefit</code> option. The +<a name="index-newwin-_0028hyperlink-option_0029-1"></a> +<code>newwin</code> option specifies whether the destination document is +opened in the same window or in a new window. +</p> +<p>Example: +</p> +<div class="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></div> + +</dd> +<dt><code>raw</code></dt> +<dd><a name="index-raw-_0028hyperlink-type_0029-1"></a> +<p>The link specification (in the form of a pdfTeX command or a dvipdfm +<code>\special</code> primitive) is taken from the command sequence +<code>\<var>cs</var></code>, where <var>cs</var> is the value of the +<a name="index-cmd-_0028hyperlink-option_0029-2"></a> +<code>cmd</code> option. In the definition of <code>\<var>cs</var></code>, use +<a name="index-_0040hllabel-3"></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-2"></a> +<code>\hlstart</code>—you can just call the raw command. +</p> +<p>Example for <code>pdftex</code>: +</p> +<div class="example"> +<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></div> + +<p>Example for <code>dvipdfm</code>: +</p> +<div class="example"> +<pre class="example">% Redirect all \url links to the first page +\def\mycmd{\special{pdf: beginann <</Type/Annot /Subtype/Link + /Dest[0 /Fit]>>}} +\hltype[url]{raw} +\hlopts[url]{cmd=mycmd} +</pre></div> +</dd> +</dl> + +<a name="pdftex_002dspecific-link-types"></a> +<h4 class="subsubheading"><code>pdftex</code>-specific link types</h4> + +<dl compact="compact"> +<dt><code>num</code></dt> +<dd><a name="index-num-_0028hyperlink-type_0029"></a> +<a name="index-numbered-destination"></a> +<a name="index-destinations_002c-numbered"></a> +<a name="index-hyperlink-destination_002c-numbered"></a> +<p>Go to a “numbered destination”. The label is the destination +number. +</p> +<p>Example: <code>\hlstart{num}{}{123}Link to 123\hlend</code> +</p></dd> +</dl> + + +<hr> +<a name="Link-options-for-pdftex-and-dvipdfm"></a> +<div class="header"> +<p> +Previous: <a href="#Link-types-for-pdftex-and-dvipdfm" accesskey="p" rel="prev">Link types for pdftex and dvipdfm</a>, Up: <a href="#Hyperlink-drivers-pdftex-and-dvipdfm" accesskey="u" rel="up">Hyperlink drivers pdftex and dvipdfm</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Link-options-for-pdftex-and-dvipdfm-1"></a> +<h4 class="subsubsection">5.4.3.4 Link options for <code>pdftex</code> and <code>dvipdfm</code></h4> + +<a name="index-link-options_002c-pdftex"></a> +<a name="index-link-options_002c-dvipdfm"></a> +<a name="index-options_002c-link_002c-pdftex"></a> +<a name="index-options_002c-link_002c-dvipdfm"></a> +<a name="index-pdftex_002c-link-options"></a> +<a name="index-dvipdfm_002c-link-options"></a> +<p>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. +</p> + +<a name="Common-link-options"></a> +<h4 class="subsubheading">Common link options</h4> + +<dl compact="compact"> +<dt><code>bcolor</code></dt> +<dd><a name="index-bcolor-_0028hyperlink-option_0029"></a> +<a name="index-hyperlink-border-color"></a> +<a name="index-border-color_002c-hyperlink"></a> +<a name="index-color_002c-hyperlink-border"></a> +<p>Border color. An array of three numbers in the range 0 to 1, +representing a color in DeviceRGB. +</p> +<p>Example: <code>\hlstart{name}{bcolor=.1 .5 1}{dest123}Link\hlend</code> +</p> +</dd> +<dt><code>bdash</code></dt> +<dd><a name="index-bdash-_0028hyperlink-option_0029"></a> +<a name="index-dashed-hyperlink-border"></a> +<a name="index-hyperlinks_002c-border-style"></a> +<a name="index-border-style_002c-hyperlink"></a> +<p>Array of numbers representing on and off stroke lengths for drawing +dashes. +</p> +<p>Example: <code>\hlstart{name}{bstyle=D,bdash=2 4}{dest123}Link\hlend</code> +</p> +</dd> +<dt><code>bstyle</code></dt> +<dd><a name="index-bstyle-_0028hyperlink-option_0029"></a> +<a name="index-solid-hyperlink-border"></a> +<a name="index-dashed-hyperlink-border-1"></a> +<a name="index-beveled-hyperlink-border"></a> +<a name="index-inset-hyperlink-border"></a> +<a name="index-underline-hyperlink-border"></a> +<a name="index-hyperlinks_002c-border-style-1"></a> +<a name="index-style_002c-hyperlink-border"></a> +<a name="index-border-style_002c-hyperlink-1"></a> +<p>Link border style: +</p> +<dl compact="compact"> +<dt><code>S</code></dt> +<dd><p>The border is drawn as a solid line. +</p> +</dd> +<dt><code>D</code></dt> +<dd><p>The border is drawn with a dashed line (the dash pattern is specified +by the +<a name="index-bdash-_0028hyperlink-option_0029-1"></a> +<code>bdash</code> option). +</p> +</dd> +<dt><code>B</code></dt> +<dd><p>The border is drawn in a beveled style. +</p> +</dd> +<dt><code>I</code></dt> +<dd><p>The border is drawn in an inset style. +</p> +</dd> +<dt><code>U</code></dt> +<dd><p>The border is drawn as a line on the bottom of the link rectangle. +</p></dd> +</dl> + +<p>The default is ‘<samp>S</samp>’. +</p> +<p>Example: <code>\hlstart{name}{bstyle=D,bdash=2 4}{dest123}Link\hlend</code> +</p> +</dd> +<dt><code>bwidth</code></dt> +<dd><a name="index-bwidth-_0028hyperlink-option_0029"></a> +<a name="index-width_002c-hyperlink-border"></a> +<a name="index-hyperlinks_002c-border-width"></a> +<a name="index-border-width_002c-hyperlink"></a> +<p>Border width in +<a name="index-PostScript-point-2"></a> +PostScript points (72 points per inch). The default is 1. +</p> +<p>Example: <code>\hlstart{name}{bwidth=2}{dest123}Link\hlend</code> +</p> +</dd> +<dt><code>cmd</code></dt> +<dd><a name="index-cmd-_0028hyperlink-option_0029-3"></a> +<p>Name of the macro (without the leading ‘<samp>\</samp>’) containing a +pdfTeX command or a dvipdfm <code>\special</code> for the <code>raw</code> link. +</p> +<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. +</p> +</dd> +<dt><code>file</code></dt> +<dd><a name="index-file-_0028hyperlink-option_0029-4"></a> +<p>File name for the <code>filename</code> and <code>filepage</code> link types. +</p> +<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. +</p> +</dd> +<dt><code>hlight</code></dt> +<dd><a name="index-hlight-_0028hyperlink-option_0029"></a> +<a name="index-hyperlinks_002c-highlight-mode"></a> +<a name="index-highlight-modes_002c-hyperlink"></a> +<p>Link border highlight modes: +</p> +<dl compact="compact"> +<dt><code>I</code></dt> +<dd><p>The rectangle specified by the bounding box of the link is inverted. +</p> +</dd> +<dt><code>N</code></dt> +<dd><p>No highlighting is done. +</p> +</dd> +<dt><code>O</code></dt> +<dd><p>The border of the link is inverted. +</p> +</dd> +<dt><code>P</code></dt> +<dd><p>The region underneath the bounding box of the link is drawn inset into +the page. +</p></dd> +</dl> + +<p>The default is ‘<samp>I</samp>’. +</p> +<p>Example: <code>\hlstart{name}{bstyle=S,hlight=O}{dest123}Link\hlend</code> +</p> +</dd> +<dt><code>newwin</code></dt> +<dd><a name="index-newwin-_0028hyperlink-option_0029-2"></a> +<a name="index-hyperlinks_002c-opening-in-a-new-window"></a> +<a name="index-new-window_002c-opening-hyperlink-in"></a> +<p>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: +</p> +<dl compact="compact"> +<dt><code>0</code></dt> +<dd><p>Open in the same window. +</p></dd> +<dt><code><span class="roman">non-</span>0</code></dt> +<dd><p>Open in a new window. +</p></dd> +<dt><code><span class="roman">empty</span></code></dt> +<dd><p>Behavior according to the viewer settings. +</p></dd> +</dl> + +<p>The default is empty. +</p> +<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. +</p> +</dd> +<dt><code>pagefit</code></dt> +<dd><a name="index-pagefit-_0028hyperlink-option_0029-3"></a> +<p>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> +<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. +</p></dd> +</dl> + + +<a name="pdftex_002dspecific-link-options"></a> +<h4 class="subsubheading"><code>pdftex</code>-specific link options</h4> + +<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). +</p> +<dl compact="compact"> +<dt><code>depth</code></dt> +<dd><a name="index-depth-_0028hyperlink-option_0029"></a> +<a name="index-hyperlink-dimensions"></a> +<a name="index-dimensions_002c-hyperlink"></a> +<p>Depth of the link. +</p> +</dd> +<dt><code>height</code></dt> +<dd><a name="index-height-_0028hyperlink-option_0029"></a> +<a name="index-hyperlink-dimensions-1"></a> +<a name="index-dimensions_002c-hyperlink-1"></a> +<p>Height of the link. +</p> +</dd> +<dt><code>width</code></dt> +<dd><a name="index-width-_0028hyperlink-option_0029"></a> +<a name="index-hyperlink-dimensions-2"></a> +<a name="index-dimensions_002c-hyperlink-2"></a> +<p>Width of the link. +</p> +<p>Example: +</p> +<div class="example"> +<pre class="example">\hlstart{name}{width=5in,height=20pc,depth=0pt}{dest123} + Link\hlend +</pre></div> +</dd> +</dl> + + +<hr> +<a name="Hyperlink-driver-nolinks"></a> +<div class="header"> +<p> +Previous: <a href="#Hyperlink-drivers-pdftex-and-dvipdfm" accesskey="p" rel="prev">Hyperlink drivers pdftex and dvipdfm</a>, Up: <a href="#Hyperlink-drivers" accesskey="u" rel="up">Hyperlink drivers</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Hyperlink-driver-nolinks-1"></a> +<h4 class="subsection">5.4.4 Hyperlink driver <code>nolinks</code></h4> + +<a name="index-nolinks-_0028hyperlink-driver_0029"></a> +<a name="index-nolinks_002c-hyperlink-driver"></a> +<a name="index-driver-nolinks"></a> +<a name="index-hyperlink-driver-nolinks"></a> +<a name="index-omitting-hyperlinks"></a> +<a name="index-disabling-hyperlinks"></a> +<a name="index-hyperlinks_002c-disabling"></a> +<a name="index-destinations_002c-disabling"></a> +<a name="index-spacing_002c-preserving-with-hyperlinks"></a> +<a name="index-hyperlinks_002c-preserving-spacing"></a> +<a name="index-page_002dbreaking_002c-preserving-with-hyperlinks"></a> +<a name="index-hyperlinks_002c-preserving-page_002dbreaking"></a> +<p>Select this driver to suppress all hyperlinks in your document. +</p> +<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"></a> +<code>\hloff</code> and +<a name="index-hldestoff"></a> +<code>\hldestoff</code> (see <a href="#Turning-hyperlinks-on_002foff">Turning hyperlinks on/off</a>). +</p> +<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> +<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> +<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"></a> +<em>whatsit</em> (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> +<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-2"></a> +<a name="index-graphics-collection_002c-LaTeX-2"></a> +<a name="index-LaTeX-graphics-collection-2"></a> +LaTeX ‘color’ package.) +</p> +<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> +<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-2"></a> +<div class="example"> +<pre class="example">\ifpdf + \enablehyperlinks +\else + \enablehyperlinks[nolinks]% +\fi +</pre></div> + + +<hr> +<a name="Setting-hyperlink-types-and-options"></a> +<div class="header"> +<p> +Next: <a href="#Turning-hyperlinks-on_002foff" accesskey="n" rel="next">Turning hyperlinks on/off</a>, Previous: <a href="#Hyperlink-drivers" accesskey="p" rel="prev">Hyperlink drivers</a>, Up: <a href="#Hyperlinks" accesskey="u" rel="up">Hyperlinks</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Setting-hyperlink-types-and-options-1"></a> +<h3 class="section">5.5 Setting hyperlink types and options</h3> + +<a name="index-default-hyperlink-type"></a> +<a name="index-default-hyperlink-options"></a> +<a name="index-hyperlinks_002c-default-type"></a> +<a name="index-hyperlinks_002c-default-options"></a> +<a name="index-destinations_002c-default-type"></a> +<a name="index-destinations_002c-default-options"></a> +<p>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-3"></a> +<code>\hlstart</code> or +<a name="index-hldest-3"></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"></a> +<a name="index-group-options_002c-hyperlink"></a> +<a name="index-hyperlinks_002c-group-type"></a> +<a name="index-hyperlinks_002c-group-options"></a> +<a name="index-link_002c-group-type"></a> +<a name="index-link_002c-group-options"></a> +<a name="index-linkgroup-type"></a> +<a name="index-linkgroup-options"></a> +<a name="index-destinations_002c-group-type"></a> +<a name="index-destinations_002c-group-options"></a> +<a name="index-destgroup-type"></a> +<a name="index-destgroup-options"></a> +<p>The parameters for implicit links and destinations can be customized by +setting the “group” types and options. When not set, the defaults are +used. +</p> +<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. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Setting-default-types-and-options" accesskey="1">Setting default types and options</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Setting-group-types" accesskey="2">Setting group types</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Setting-group-options" accesskey="3">Setting group options</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> +<a name="Setting-default-types-and-options"></a> +<div class="header"> +<p> +Next: <a href="#Setting-group-types" accesskey="n" rel="next">Setting group types</a>, Up: <a href="#Setting-hyperlink-types-and-options" accesskey="u" rel="up">Setting hyperlink types and options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Setting-default-types-and-options-1"></a> +<h4 class="subsection">5.5.1 Setting default types and options</h4> + +<a name="index-hltype"></a> +<a name="index-hldesttype"></a> +<p>The default types for links and destinations can be set with the +following commands: +</p> +<div class="example"> +<pre class="example">\hltype{<var>type</var>} +\hldesttype{<var>type</var>} +</pre></div> + +<p>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"></a> +<a name="index-hldestopts"></a> +<p>Default values for the options can be set with the following commands: +</p> +<div class="example"> +<pre class="example">\hlopts{<var>options</var>} +\hldestopts{<var>options</var>} +</pre></div> + +<p>where <var>options</var> is a comma-separated list of option +assignments in the format ‘<samp><var>option</var>=<var>value</var></samp>’. Again, what options +are allowed depends on the selected hyperlink driver. +</p> +<a name="index-boxed-links_002c-avoiding-1"></a> +<a name="index-avoiding-boxed-links-1"></a> +<a name="index-color_002c-hyperlinks-2"></a> +<a name="index-colored-links-2"></a> +<a name="index-hyperlink-color-2"></a> +<p>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-3"></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>): +</p> +<div class="example"> +<pre class="example">\hlopts{bwidth=0} +</pre></div> + + +<hr> +<a name="Setting-group-types"></a> +<div class="header"> +<p> +Next: <a href="#Setting-group-options" accesskey="n" rel="next">Setting group options</a>, Previous: <a href="#Setting-default-types-and-options" accesskey="p" rel="prev">Setting default types and options</a>, Up: <a href="#Setting-hyperlink-types-and-options" accesskey="u" rel="up">Setting hyperlink types and options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Setting-group-types-1"></a> +<h4 class="subsection">5.5.2 Setting group types</h4> + +<a name="index-hltype-1"></a> +<a name="index-hldesttype-1"></a> +<a name="index-group-type_002c-hyperlink-1"></a> +<a name="index-hyperlinks_002c-group-type-1"></a> +<a name="index-link_002c-group-type-1"></a> +<a name="index-linkgroup-type-1"></a> +<a name="index-destinations_002c-group-type-1"></a> +<a name="index-destgroup-type-1"></a> +<p>When called with an optional argument, as in +</p> +<div class="example"> +<pre class="example">\hltype[<var>groups</var>]{<var>type</var>} +\hldesttype[<var>groups</var>]{<var>type</var>} +</pre></div> + +<p>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>url</samp>’ by the +drivers which support this link type). +</p> +<a name="index-group-_0060_0027-_0028empty_0029"></a> +<a name="index-default-hyperlink-type-1"></a> +<a name="index-default-hyperlink-options-1"></a> +<a name="index-hyperlinks_002c-default-type-1"></a> +<a name="index-hyperlinks_002c-default-options-1"></a> +<a name="index-destinations_002c-default-type-1"></a> +<a name="index-destinations_002c-default-options-1"></a> +<p>There are two special “groups” 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: +</p> +<div class="example"> +<pre class="example">\hltype[eq,]{<var>type</var>} +</pre></div> + +<p>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"></a> +<a name="index-groups_002c-specifying-all"></a> +<a name="index-all-groups_002c-specifying"></a> +<p>Another special group is a star (‘<samp>*</samp>’) group, which signifies all +defined groups. For example, the command +</p> +<div class="example"> +<pre class="example">\hldesttype[*,]{<var>type</var>} +</pre></div> + +<p>sets the destination type to <var>type</var> for each group, +as well as the default destination type. +</p> + +<hr> +<a name="Setting-group-options"></a> +<div class="header"> +<p> +Previous: <a href="#Setting-group-types" accesskey="p" rel="prev">Setting group types</a>, Up: <a href="#Setting-hyperlink-types-and-options" accesskey="u" rel="up">Setting hyperlink types and options</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Setting-group-options-1"></a> +<h4 class="subsection">5.5.3 Setting group options</h4> + +<a name="index-group-options_002c-hyperlink-1"></a> +<a name="index-hyperlinks_002c-group-options-1"></a> +<a name="index-link_002c-group-options-1"></a> +<a name="index-linkgroup-options-1"></a> +<a name="index-destinations_002c-group-options-1"></a> +<a name="index-destgroup-options-1"></a> +<p>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-1"></a> +<a name="index-hldestopts-1"></a> +<p>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: +</p> +<div class="example"> +<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></div> + +<p>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 “groups”, the empty group and the star (‘<samp>*</samp>’) +group, have the same meaning as for <code>\hltype</code> and +<code>\hldesttype</code>. +<a name="index-group_002c-preserving-option-list"></a> +<a name="index-hyperlink-group_002c-preserving-option-list"></a> +<a name="index-option-list_002c-preserving-for-group"></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> +<p>The “overriding” nature of the ‘<samp>!</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>!</samp>’. +</p> +<a name="index-raise-_0028hyperlink-option_0029-1"></a> +<a name="index-mathematics-displays_002c-hyperlinks-1"></a> +<a name="index-displayed-math-and-hyperlinks-1"></a> +<a name="index-large-operators-and-hyperlinks-1"></a> +<a name="index-hyperlinks_002c-large-operators-1"></a> +<a name="index-destinations_002c-large-operators-1"></a> +<a name="index-raising-hyperlink-destinations-1"></a> +<p>For example, with displayed mathematical formulas, you often need to +adjust the ‘<samp>raise</samp>’ option for the +<a name="index-group-_0060eq_0027-2"></a> +<a name="index-linkgroup-_0060eq_0027-1"></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>!</samp>’, for example: +</p> +<div class="example"> +<pre class="example">$$\hldestopts[eq]{raise=2.5\normalbaselineskip} +… +$$ +</pre></div> + +<p>The display commands (‘<samp>$$</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>raise</samp>’ option—it +will be restored after the closing ‘<samp>$$</samp>’. +</p> +<a name="index-option-list_002c-group"></a> +<a name="index-group-option-list"></a> +<a name="index-hyperlinks_002c-group-option-list"></a> +<p>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: +</p> +<div class="example"> +<pre class="example">raise=1.7\normalbaselineskip +</pre></div> + +<p>This setting usually accommodates the large operators, which often +appear in displayed math. +</p> + +<hr> +<a name="Turning-hyperlinks-on_002foff"></a> +<div class="header"> +<p> +Previous: <a href="#Setting-hyperlink-types-and-options" accesskey="p" rel="prev">Setting hyperlink types and options</a>, Up: <a href="#Hyperlinks" accesskey="u" rel="up">Hyperlinks</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Turning-hyperlinks-on_002foff-1"></a> +<h3 class="section">5.6 Turning hyperlinks on/off</h3> + +<a name="index-omitting-hyperlinks-1"></a> +<a name="index-disabling-hyperlinks-1"></a> +<a name="index-hyperlinks_002c-disabling-1"></a> +<a name="index-destinations_002c-disabling-1"></a> +<p>Links and/or destinations can be turned on or off globally by disabling +the low-level commands, or for each group individually. +</p> +<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. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Turning-low_002dlevel-commands-on_002foff" accesskey="1">Turning low-level commands on/off</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Turning-hyperlinks-on_002foff-for-a-group" accesskey="2">Turning hyperlinks on/off for a group</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> +<a name="Turning-low_002dlevel-commands-on_002foff"></a> +<div class="header"> +<p> +Next: <a href="#Turning-hyperlinks-on_002foff-for-a-group" accesskey="n" rel="next">Turning hyperlinks on/off for a group</a>, Up: <a href="#Turning-hyperlinks-on_002foff" accesskey="u" rel="up">Turning hyperlinks on/off</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Turning-low_002dlevel-commands-on_002foff-1"></a> +<h4 class="subsection">5.6.1 Turning low-level commands on/off</h4> + +<a name="index-hldeston"></a> +<a name="index-hldestoff-1"></a> +<a name="index-hlon"></a> +<a name="index-hloff-1"></a> +<p>The low-level commands <code>\hlstart</code>, <code>\hlend</code> and +<code>\hldest</code> can be turned on/off with the following commands: +</p> +<div class="example"> +<pre class="example">\hldeston +\hldestoff +\hlon +\hloff +</pre></div> + +<p>See <a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a>, for the implications of using +these commands to disable hyperlinks for the entire document. +</p> + +<hr> +<a name="Turning-hyperlinks-on_002foff-for-a-group"></a> +<div class="header"> +<p> +Previous: <a href="#Turning-low_002dlevel-commands-on_002foff" accesskey="p" rel="prev">Turning low-level commands on/off</a>, Up: <a href="#Turning-hyperlinks-on_002foff" accesskey="u" rel="up">Turning hyperlinks on/off</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Turning-hyperlinks-on_002foff-for-a-group-1"></a> +<h4 class="subsection">5.6.2 Turning hyperlinks on/off for a group</h4> + +<a name="index-group_002c-disabling-hyperlinks"></a> +<a name="index-hyperlink-group_002c-disabling-hyperlinks"></a> +<p>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: +</p> +<div class="example"> +<pre class="example">\hldeston[<var>groups</var>] +\hldestoff[<var>groups</var>] +\hlon[<var>groups</var>] +\hloff[<var>groups</var>] +</pre></div> + +<p>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>*</samp>’) group operates on all defined groups. +</p> +<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: +</p> +<div class="example"> +<pre class="example">\hloff +\hloff[eq] +\hlon +</pre></div> + +<p>all links are on except for the ‘eq’ linkgroup. +</p> + + + + +<hr> +<a name="Arrow-theoretic-diagrams"></a> +<div class="header"> +<p> +Next: <a href="#Programming-definitions" accesskey="n" rel="next">Programming definitions</a>, Previous: <a href="#Hyperlinks" accesskey="p" rel="prev">Hyperlinks</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Arrow-theoretic-diagrams-1"></a> +<h2 class="chapter">6 Arrow theoretic diagrams</h2> + +<p>This chapter describes definitions for producing commutative diagrams. +</p> +<p>Steven Smith wrote this documentation (and the macros). +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Slanted-lines-and-vectors" accesskey="1">Slanted lines and vectors</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Commutative-diagrams" accesskey="2">Commutative diagrams</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + +<hr> +<a name="Slanted-lines-and-vectors"></a> +<div class="header"> +<p> +Next: <a href="#Commutative-diagrams" accesskey="n" rel="next">Commutative diagrams</a>, Up: <a href="#Arrow-theoretic-diagrams" accesskey="u" rel="up">Arrow theoretic diagrams</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Slanted-lines-and-vectors-1"></a> +<h3 class="section">6.1 Slanted lines and vectors</h3> + +<p>The macros <code>\drawline</code> +<a name="index-drawline"></a> +and <code>\drawvector</code> +<a name="index-drawvector"></a> +provide the capability found in LaTeX’s +<a name="index-LaTeX-3"></a> +<a name="index-picture-mode-1"></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>\drawvector(-4,1){60pt}</samp>’ produces the +vector +<a name="index-lines"></a> +<a name="index-vectors"></a> +which lies in the 2d quadrant, has a slope of minus 1/4, and a width of +60 pt. +</p> +<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> +<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> +<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. +</p> + +<hr> +<a name="Commutative-diagrams"></a> +<div class="header"> +<p> +Previous: <a href="#Slanted-lines-and-vectors" accesskey="p" rel="prev">Slanted lines and vectors</a>, Up: <a href="#Arrow-theoretic-diagrams" accesskey="u" rel="up">Arrow theoretic diagrams</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Commutative-diagrams-1"></a> +<h3 class="section">6.2 Commutative diagrams</h3> + +<a name="index-commutative-diagrams"></a> + +<p>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. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Arrows-and-morphisms" accesskey="1">Arrows and morphisms</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Construction-of-commutative-diagrams" accesskey="2">Construction of commutative diagrams</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Commutative-diagram-parameters" accesskey="3">Commutative diagram parameters</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + +<hr> +<a name="Arrows-and-morphisms"></a> +<div class="header"> +<p> +Next: <a href="#Construction-of-commutative-diagrams" accesskey="n" rel="next">Construction of commutative diagrams</a>, Up: <a href="#Commutative-diagrams" accesskey="u" rel="up">Commutative diagrams</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Arrows-and-morphisms-1"></a> +<h4 class="subsection">6.2.1 Arrows and morphisms</h4> +<a name="index-arrows"></a> +<a name="index-morphisms"></a> + +<p>The macros <code>\mapright</code> and <code>\mapleft</code> produce right and left +<a name="index-mapright"></a> +<a name="index-mapleft"></a> +pointing arrows, respectively. Use superscript (<code>^</code>) to place a +morphism above the arrow, e.g., ‘<samp>\mapright^\alpha</samp>’; use subscript +(<code>_</code>) to place a morphism below the arrow, e.g., +‘<samp>\mapright_{\tilde l}</samp>’. Superscripts and subscripts may be used +simulataneously, e.g., ‘<samp>\mapright^\pi_{\rm epimor.}</samp>’. +</p> +<p>Similarly, the macros <code>\mapup</code> and <code>\mapdown</code> produce up and +<a name="index-mapup"></a> +<a name="index-mapdown"></a> +down pointing arrows, respectively. Use <code>\rt</code> +<a name="index-rt"></a> +to place a morphism to the right of the arrow, e.g., ‘<samp>\mapup\rt{\rm +id}</samp>’; use <code>\lft</code> +<a name="index-lft"></a> +to place a morphism to the left of the arrow, e.g., ‘<samp>\mapup\lft\omega</samp>’. +<code>\lft</code> and <code>\rt</code> may be used simultaneously, e.g., +‘<samp>\mapdown\lft\pi\rt{\rm monomor.}</samp>’. +</p> +<p>Slanted arrows are produced by the macro <code>\arrow</code>, which takes +<a name="index-arrow"></a> +a direction argument (e.g., ‘<samp>\arrow(3,-4)</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"></a> +whose syntax is identical to that of <code>\arrow</code>. +</p> +<p>The length of these macros is predefined by the default TeX +dimensions <code>\harrowlength</code>, +<a name="index-harrowlength"></a> +for horizontal arrows (or lines), +<code>\varrowlength</code>, +<a name="index-varrowlength"></a> +for vertical arrows (or lines), and +<code>\sarrowlength</code>, +<a name="index-sarrowlength"></a> +for slanted arrows (or lines). To change any of these dimensions, say, +e.g., ‘<samp>\harrowlength=40pt</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"></a> +<code>\vmorphposn</code>, +<a name="index-vmorphposn"></a> +and <code>\morphdist</code>. +<a name="index-morphdist"></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"></a> +<code>\hmorphposndn</code>, +<a name="index-hmorphposndn"></a> +<code>\vmorphposnup</code>, +<a name="index-vmorphposnup"></a> +<code>\vmorphposndn</code>, +<a name="index-vmorphposndn"></a> +<code>\hmorphposnrt</code>, +<a name="index-hmorphposnrt"></a> +<code>\hmorphposnlft</code>, +<a name="index-hmorphposnlft"></a> +<code>\vmorphposnrt</code>, +<a name="index-vmorphposnrt"></a> +and <code>\vmorphposnlft</code>. +<a name="index-vmorphposnlft"></a> +The default values of all these dimensions are provided in the section +on parameters that follows below. +</p> +<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>: +</p> +<dl compact="compact"> +<dt><code>\mapright</code></dt> +<dd><a name="index-mapright-1"></a> +<p><code>$X\mapright Y$</code> += (a right arrow). +</p> +</dd> +<dt><code>\mapleft</code></dt> +<dd><a name="index-mapleft-1"></a> +<p><code>$X\mapleft Y$</code> +</p> +</dd> +<dt><code>\hline</code></dt> +<dd><a name="index-hline"></a> +<p><code>$X\hline Y$</code> +</p> + +</dd> +<dt><code>\bimapright</code></dt> +<dd><a name="index-bimapright"></a> +<p><code>$X\bimapright Y$</code> +</p> +</dd> +<dt><code>\bimapleft</code></dt> +<dd><a name="index-bimapleft"></a> +<p><code>$X\bimapleft Y$</code> +</p> +</dd> +<dt><code>\adjmapright</code></dt> +<dd><a name="index-adjmapright"></a> +<p><code>$X\adjmapright Y$</code> +</p> +</dd> +<dt><code>\adjmapleft</code></dt> +<dd><a name="index-adjmapleft"></a> +<p><code>$X\adjmapleft Y$</code> +</p> +</dd> +<dt><code>\bihline</code></dt> +<dd><a name="index-bihline"></a> +<p><code>$X\bihline Y$</code> +</p></dd> +</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>: +</p> +<dl compact="compact"> +<dt><code>\mapdown</code></dt> +<dd><a name="index-mapdown-1"></a> +<p>(a down arrow) +</p> +</dd> +<dt><code>\mapup</code></dt> +<dd><a name="index-mapup-1"></a> +<p>(an up arrow) +</p> +</dd> +<dt><code>\vline</code></dt> +<dd><a name="index-vline"></a> +<p>(vertical line) +</p> + +</dd> +<dt><code>\bimapdown</code></dt> +<dd><a name="index-bimapdown"></a> +<p>(two down arrows) +</p> +</dd> +<dt><code>\bimapup</code></dt> +<dd><a name="index-bimapup"></a> +<p>(two up arrows) +</p> +</dd> +<dt><code>\adjmapdown</code></dt> +<dd><a name="index-adjmapdown"></a> +<p>(two adjoint arrows; down then up) +</p> +</dd> +<dt><code>\adjmapup</code></dt> +<dd><a name="index-adjmapup"></a> +<p>(two adjoint arrows; up then down) +</p> +</dd> +<dt><code>\bivline</code></dt> +<dd><a name="index-bivline"></a> +<p>(two vertical lines) +</p></dd> +</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>: +</p> +<dl compact="compact"> +<dt><code>\arrow</code></dt> +<dd><a name="index-arrow-1"></a> +<p>(a slanted arrow) +</p> +</dd> +<dt><code>\sline</code></dt> +<dd><a name="index-sline-1"></a> +<p>(a slanted line) +</p> +</dd> +<dt><code>\biarrow</code></dt> +<dd><a name="index-biarrow"></a> +<p>(two straight arrows) +</p> +</dd> +<dt><code>\adjarrow</code></dt> +<dd><a name="index-adjarrow"></a> +<p>(two adjoint arrows) +</p> +</dd> +<dt><code>\bisline</code></dt> +<dd><a name="index-bisline"></a> +<p>(two straight lines) +</p> +</dd> +</dl> + +<p>The width between double arrows is controlled by the parameter +<code>\channelwidth</code>. +<a name="index-channelwidth"></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> +<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"></a> +</p> +<p>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"></a> +</p> + +<hr> +<a name="Construction-of-commutative-diagrams"></a> +<div class="header"> +<p> +Next: <a href="#Commutative-diagram-parameters" accesskey="n" rel="next">Commutative diagram parameters</a>, Previous: <a href="#Arrows-and-morphisms" accesskey="p" rel="prev">Arrows and morphisms</a>, Up: <a href="#Commutative-diagrams" accesskey="u" rel="up">Commutative diagrams</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Construction-of-commutative-diagrams-1"></a> +<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"></a> +which is an altered version of the Plain TeX macro <code>\matrix</code>. +<a name="index-matrix"></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"></a> +<a name="index-Tu_002c-Loring-W_002e"></a> +<a name="index-covering-homotopy-property"></a> +is produced with the code +</p> +<div class="example"> +<pre class="example">$$\commdiag{Y&\mapright^f&E\cr \mapdown&\arrow(3,2)\lft{f_t}&\mapdown\cr +Y\times I&\mapright^{\bar f_t}&X}$$ +</pre></div> + +<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"></a> +<a name="index-universal-mapping-property"></a> +is produced with the code +</p> +<div class="example"> +<pre class="example">$$\varrowlength=20pt +\commdiag{V\otimes W\cr \mapup\lft\phi&\arrow(3,-1)\rt{\tilde l}\cr +V\times W&\mapright^l&U\cr}$$ +</pre></div> + +<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"></a> +<a name="index-minimal-realizations"></a> +<a name="index-linear-systems-theory"></a> +which is produced with the code +</p> +<div class="smallexample"> +<pre class="smallexample">$$\sarrowlength=.42\harrowlength +\commdiag{&R^m\cr &\arrow(-1,-1)\lft{\bf B}\quad \arrow(1,-1)\rt{\bf G}\cr +R^n&\mapright^{\bf P}&R^n\cr +\mapdown\lft{e^{{\bf A}t}}&&\mapdown\rt{e^{{\bf F}t}}\cr +R^n&\mapright^{\bf P}&R^n\cr +&\arrow(1,-1)\lft{\bf C}\quad \arrow(-1,-1)\rt{\bf H}\cr +&R^q\cr}$$ +</pre></div> + +<p>Other commutative diagram examples appear in the file +<code>commdiags.tex</code>, which is distributed with this package. +</p> +<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"></a> +<a name="index-golden-mean-1"></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"></a> +(cf. Exercise 18.46 of <cite>The TeXbook</cite> and the section on +parameters below.) +</p> +<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>$$\commdiag{\noalign{\vskip6pt}X&\mapright^\int&Y\cr ...}</samp>’. +</p> +<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"></a> +<a name="index-Borceux_002c-Francis"></a> +<a name="index-Diagram_002c-macros-for-LaTeX"></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"></a> +to implement your design as a TeX alignment. For example, the cubic +diagram +<a name="index-cube"></a> +that appears in Francis Borceux’s documentation can be implemented on +a 7 by 7 grid, and is achieved with the code +</p> +<div class="example"> +<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{&&B&&\mapright^b&&D\cr +&\arrow(1,1)\lft a&&&&\arrow(1,1)\lft d\cr +A&&\cross{\hmorphposn=12pt\mapright^c}{\vmorphposn=-12pt\mapdown\lft f} +&&C&&\mapdown\rt h\cr\cr +\mapdown\lft e&&F&&\cross{\hmorphposn=-12pt\mapright_j} +{\vmorphposn=12pt\mapdown\rt g}&&H\cr +&\arrow(1,1)\lft i&&&&\arrow(1,1)\rt l\cr +E&&\mapright_k&&G\cr}$$ +</pre></div> + +<p>The dimensions <code>\hgrid</code> and <code>\vgrid</code> +<a name="index-hgrid"></a> +<a name="index-vgrid"></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> +<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"></a> +<a name="index-Lang_002c-Serge-1"></a> +<a name="index-Butterfly-Lemma"></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 +</p> +<div class="example"> +<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{&&U&&&&V\cr &&\bullet&&&&\bullet\cr +&&\sarrowlength=16pt\sline(0,1)&&&&\sarrowlength=16pt\sline(0,1)\cr +&&\l{u(U\cap V)}\bullet&&&&\bullet\r{(U\cap V)v}\cr +&&&\sline(2,-1)&&\sline(2,1)\cr +&&\cross{=}{\sline(0,1)}&&\bullet&&\cross{=}{\sline(0,1)}\cr\cr +&&\l{^{\textstyle u(U\cap v)}}\bullet&&\cross{=}{\sline(0,1)}&& + \bullet\r{^{\textstyle(u\cap V)v}}\cr +&\sline(2,1)&&\sline(2,-1)&&\sline(2,1)&&\sline(2,-1)\cr +\l{u}\bullet&&&&\bullet&&&&\bullet\r{v}\cr +&\sline(2,-1)&&\sline(2,1)&&\sline(2,-1)&&\sline(2,1)\cr +&&\bullet&&&&\bullet\cr &&u\cap V&&&&U\cap v\cr}$$ +</pre></div> + +<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. +</p> +<hr> +<a name="Commutative-diagram-parameters"></a> +<div class="header"> +<p> +Previous: <a href="#Construction-of-commutative-diagrams" accesskey="p" rel="prev">Construction of commutative diagrams</a>, Up: <a href="#Commutative-diagrams" accesskey="u" rel="up">Commutative diagrams</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Commutative-diagram-parameters-1"></a> +<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. +</p> +<dl compact="compact"> +<dt><code>\harrowlength</code></dt> +<dd><a name="index-harrowlength-1"></a> +<p>(Default: 60 pt) The length of right or left arrows. +</p> +</dd> +<dt><code>\varrowlength</code></dt> +<dd><a name="index-varrowlength-1"></a> +<p>(Default: 0.618<code>\harrowlength</code>) The length of up or down +arrows. +</p> +</dd> +<dt><code>\sarrowlength</code></dt> +<dd><a name="index-sarrowlength-1"></a> +<p>(Default: 60 pt) The horizontal length of slanted arrows. +</p> +</dd> +<dt><code>\hmorphposn</code></dt> +<dd><a name="index-hmorphposn-1"></a> +<p>(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-1"></a> +<code>\hmorphposndn</code>, +<a name="index-hmorphposndn-1"></a> +<code>\hmorphposnrt</code>, +<a name="index-hmorphposnrt-1"></a> +and <code>\hmorphposnlft</code> +<a name="index-hmorphposnlft-1"></a> +for <code>^</code>/<code>_</code> or <code>\lft</code>/<code>\rt</code> constructions. +</p> +</dd> +<dt><code>\vmorphposn</code></dt> +<dd><a name="index-vmorphposn-1"></a> +<p>(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-1"></a> +<code>\vmorphposndn</code>, +<a name="index-vmorphposndn-1"></a> +<code>\vmorphposnrt</code>, +<a name="index-vmorphposnrt-1"></a> +and <code>\vmorphposnlft</code> +<a name="index-vmorphposnlft-1"></a> +for <code>^</code>/<code>_</code> or <code>\lft</code>/<code>\rt</code> constructions. +</p> +</dd> +<dt><code>\morphdist</code></dt> +<dd><a name="index-morphdist-1"></a> +<p>(Default: 4 pt) The distance of morphisms from slanted lines +or arrows. +</p> +</dd> +<dt><code>\channelwidth</code></dt> +<dd><a name="index-channelwidth-1"></a> +<p>(Default: 3 pt) The distance between double lines or arrows. +</p> +</dd> +<dt><code>\hchannel, \vchannel</code></dt> +<dd><a name="index-hchannel"></a> +<a name="index-vchannel"></a> +<p>(Defaults: 0 pt) Overrides <code>\channelwidth</code>. The +horizontal and vertical shifts between double lines or arrows. +</p> +</dd> +<dt><code>\commdiagbaselines</code></dt> +<dd><a name="index-commdiagbaselines-1"></a> +<p>(Default: <code>\baselineskip=15pt +\lineskip=3pt +\lineskiplimit=3pt </code>) +The parameters used by <code>\commdiag</code> for setting interline glue. +</p> +</dd> +<dt><code>\hgrid</code></dt> +<dd><a name="index-hgrid-1"></a> +<p>(Default: 15 pt) The horizontal spacing of the grid used by +<code>\gridcommdiag</code>. +</p> +</dd> +<dt><code>\vgrid</code></dt> +<dd><a name="index-vgrid-1"></a> +<p>(Default: 15 pt) The vertical spacing of the grid used by +<code>\gridcommdiag</code>. +</p> +</dd> +</dl> + + +<hr> +<a name="Programming-definitions"></a> +<div class="header"> +<p> +Next: <a href="#Demo-files" accesskey="n" rel="next">Demo files</a>, Previous: <a href="#Arrow-theoretic-diagrams" accesskey="p" rel="prev">Arrow theoretic diagrams</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Programming-definitions-1"></a> +<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. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Category-codes" accesskey="1">Category codes</a>:</td><td> </td><td align="left" valign="top">Changing category codes. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Allocation-macros" accesskey="2">Allocation macros</a>:</td><td> </td><td align="left" valign="top">Non-outer versions of \newcount et al. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Iteration" accesskey="3">Iteration</a>:</td><td> </td><td align="left" valign="top">Doing ‘for’ and ‘while’ loops in TeX. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Macro-arguments" accesskey="4">Macro arguments</a>:</td><td> </td><td align="left" valign="top">Reading and ignoring them. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Converting-to-characters" accesskey="5">Converting to characters</a>:</td><td> </td><td align="left" valign="top">Normalizing control sequences and spaces. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Expansion" accesskey="6">Expansion</a>:</td><td> </td><td align="left" valign="top">Controlling expansion. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Obeying-spaces" accesskey="7">Obeying spaces</a>:</td><td> </td><td align="left" valign="top">Making whitespace count anywhere. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Writing-out-numbers" accesskey="8">Writing out numbers</a>:</td><td> </td><td align="left" valign="top">Making ‘1’ into ‘one’. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Mode_002dspecific-penalties" accesskey="9">Mode-specific penalties</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Auxiliary-files">Auxiliary files</a>:</td><td> </td><td align="left" valign="top">Testing for their existence. +</td></tr> +<tr><td align="left" valign="top">• <a href="#User_002ddefined-environments">User-defined environments</a>:</td><td> </td><td align="left" valign="top">User-defined environments. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> +<a name="Category-codes"></a> +<div class="header"> +<p> +Next: <a href="#Allocation-macros" accesskey="n" rel="next">Allocation macros</a>, Up: <a href="#Programming-definitions" accesskey="u" rel="up">Programming definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Category-codes-1"></a> +<h3 class="section">7.1 Category codes</h3> + +<a name="index-category-codes"></a> + +<p>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-1"></a> +has “intentionally kept the category codes numeric”, 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"></a> +<a name="index-other"></a> +</p> +<p>Sometimes it is cleaner to make a character active without actually +<a name="index-active-characters"></a> +writing a <code>\catcode</code> command. The <code>\makeactive</code> command takes +<a name="index-catcode"></a> +<a name="index-makeactive"></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"></a> +</p> +<div class="example"> +<pre class="example">\makeactive\\ \makeactive92 +</pre></div> + +<a name="index-user_002dinaccessible-macros"></a> +<a name="index-inaccessible-macros"></a> +<p>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"></a> +command. It sets the category code of ‘@’ to <code>\letter</code> (11) and +defines +<code>\resetatcatcode</code> +<a name="index-resetatcatcode-1"></a> +to restore the category code to whatever it was before the call to +<code>\makeatletter</code>. For example: +</p> +<div class="example"> +<pre class="example">\makeatletter +\def\@hidden@macro{This macro cannot normally be + called / redefined by the user} +\resetatcatcode +</pre></div> + +<p>There is also <code>\makeatother</code> +<a name="index-makeatother"></a> +which works similarly but sets the category code of ‘@’ to +<code>\other</code> (12). +</p> +<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"></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"></a> +<a name="index-return-character"></a> +character to be the argument. For example: +</p> +<div class="example"> +<pre class="example">\def\mymacro{… \letreturn\myreturn … } +\mymacro hello +there +</pre></div> + +<p>The end-of-line between ‘<samp>hello</samp>’ and ‘<samp>there</samp>’ causes +<code>\myreturn</code> to be expanded. +</p> +<p><cite>The TeXbook</cite> describes <code>\uncatcodespecials</code>, +<a name="index-uncatcodespecials-1"></a> +which makes all characters which are normally “special” into “other” +characters, but the definition never made it into plain TeX. +Eplain therefore defines it. For notes on the usage, see <a href="#Verbatim-listing">Verbatim listing</a>. +</p> +<p>Finally, <code>\percentchar</code> +<a name="index-percentchar"></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"></a> +and <code>\rbracechar</code> +<a name="index-rbracechar"></a> +expand similarly. +</p> + +<hr> +<a name="Allocation-macros"></a> +<div class="header"> +<p> +Next: <a href="#Iteration" accesskey="n" rel="next">Iteration</a>, Previous: <a href="#Category-codes" accesskey="p" rel="prev">Category codes</a>, Up: <a href="#Programming-definitions" accesskey="u" rel="up">Programming definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Allocation-macros-1"></a> +<h3 class="section">7.2 Allocation macros</h3> + +<a name="index-allocation-macros"></a> +<a name="index-register-allocation"></a> + +<p>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>new</samp>’, +<a name="index-new_2026"></a> +e.g., <code>\newcount</code> allocates a new “count” +(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"></a> +to help find errors. (The error this helps to find is a missing right +brace in some macro definition.) +</p> +<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 “inner” versions of all the allocation macros, named with the +prefix ‘<samp>inner</samp>’: +<code>\innernewbox</code>, +<a name="index-innernewbox"></a> +<code>\innernewcount</code>, +<a name="index-innernewcount"></a> +<code>\innernewdimen</code>, +<a name="index-innernewdimen"></a> +<code>\innernewfam</code>, +<a name="index-innernewfam"></a> +<code>\innernewhelp</code>, +<a name="index-innernewhelp"></a> +<code>\innernewif</code>, +<a name="index-innernewif"></a> +<code>\innernewinsert</code>, +<a name="index-innernewinsert"></a> +<code>\innernewlanguage</code>, +<a name="index-innernewlanguage"></a> +<code>\innernewread</code>,<br> +<a name="index-innernewread"></a> +<code>\innernewskip</code>, +<a name="index-innernewskip"></a> +<code>\innernewtoks</code>, +<a name="index-innernewtoks"></a> +<code>\innernewwrite</code>. +<a name="index-innernewwrite"></a> +</p> +<p>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"></a> +</p> +<div class="example"> +<pre class="example">\innerdef <var>\innername</var> {<var>outername</var>} +</pre></div> + +<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> +<p>If the outer control sequence is named <var>\cs</var>, and you want to +define <code>inner<var>cs</var></code> as the inner one, you can use +<code>\innerinnerdef</code>, +<a name="index-innerinnerdef"></a> +which is just an abbreviation for a call to <code>\innerdef</code>. For +example, these two calls are equivalent: +</p> +<div class="example"> +<pre class="example">\innerdef\innerproclaim{proclaim} +\innerinnerdef{proclaim} +</pre></div> + + +<hr> +<a name="Iteration"></a> +<div class="header"> +<p> +Next: <a href="#Macro-arguments" accesskey="n" rel="next">Macro arguments</a>, Previous: <a href="#Allocation-macros" accesskey="p" rel="prev">Allocation macros</a>, Up: <a href="#Programming-definitions" accesskey="u" rel="up">Programming definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Iteration-1"></a> +<h3 class="section">7.3 Iteration</h3> + +<a name="index-iteration"></a> +<a name="index-loops"></a> +<a name="index-for-loops"></a> +<a name="index-while-loops"></a> +<a name="index-do_2026while-loops"></a> + +<p>You can iterate through a comma-separated list of items with +<code>\for</code>. +<a name="index-for"></a> +Here is an example: +</p> +<div class="example"> +<pre class="example">\for\name:=karl,kathy\do{% + \message{\name}% +}% +</pre></div> + +<p>This writes ‘<samp>karl</samp>’ and ‘<samp>kathy</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"></a> +</p> +<div class="example"> +<pre class="example">\For\name:= + karl, + kathy\do{% + \message{\name}% + }% +</pre></div> + +<p>Note that trailing spaces are still <em>not</em> ignored. +</p> +<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: +</p> +<div class="example"> +<pre class="example">\def\namelist{karl,kathy}% +\for\name:=\namelist\do … +</pre></div> + +<p>However, this won’t work, either with <code>\for</code> or with +<code>\For</code>: +</p> +<div class="example"> +<pre class="example">\def\namelist{karl,kathy}% +\For\name:= \namelist\do … +</pre></div> + +<p>because <code>\for</code> and <code>\For</code> expand the first +token after <code>:=</code> which is space, not <code>\namelist</code>. +</p> +<p>Eplain provides another kind of loops, which is an extension of plain +TeX’s +<a name="index-loop"></a> +<code>\loop</code>. If you say: +</p> +<a name="index-repeat"></a> +<div class="example"> +<pre class="example">\loop + <var>loop-text</var> +\if <var>condition</var> + <var>if-text</var> +\repeat +</pre></div> + +<p>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: +</p> +<div class="example"> +<pre class="example">\loop + <var>loop-text</var> +\if <var>condition</var> + <var>if-text</var> +\else + <var>else-text</var> +\repeat +</pre></div> + +<p>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"></a> +Victor Eijkhout’s +<a name="index-TeX-by-Topic"></a> +<i>TeX by Topic</i> (page 104). +</p> + +<hr> +<a name="Macro-arguments"></a> +<div class="header"> +<p> +Next: <a href="#Converting-to-characters" accesskey="n" rel="next">Converting to characters</a>, Previous: <a href="#Iteration" accesskey="p" rel="prev">Iteration</a>, Up: <a href="#Programming-definitions" accesskey="u" rel="up">Programming definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Macro-arguments-1"></a> +<h3 class="section">7.4 Macro arguments</h3> + +<a name="index-arguments_002c-ignoring"></a> +<a name="index-ignoring-arguments"></a> +<a name="index-gobbling-arguments"></a> +<p>It is occasionally useful to redefine a macro that takes arguments to +do nothing. Eplain defines <code>\gobble</code>, +<a name="index-gobble"></a> +<code>\gobbletwo</code>, +<a name="index-gobbletwo"></a> +and <code>\gobblethree</code> to swallow one, two, and three arguments, +respectively. +</p> +<p>For example, if you want to produce a “short” table of +<a name="index-table-of-contents_002c-short-1"></a> +contents—one that includes only chapters, say—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: +</p> +<div class="example"> +<pre class="example">\let\tocchapterentry = \shorttocchapter +\let\tocsectionentry = \gobbletwo +\let\tocsubsectionentry = \gobbletwo +\readtocfile +</pre></div> + +<p>(Of course, this assumes you only have chapters, sections, and +subsections in your document.) +</p> +<p>In addition, Eplain defines <code>\eattoken</code> +<a name="index-eattoken"></a> +to swallow the single following token, using <code>\let</code>. Thus, +<code>\gobble</code> followed by ‘<samp>{…}</samp>’ ignores the entire +brace-enclosed text. <code>\eattoken</code> followed by the same ignores only +the opening left brace. +</p> +<p>Eplain defines a macro <code>\identity</code> +<a name="index-identity"></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> +<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 and after optional arguments, via <code>\futurenonspacelet</code>. +</p> +<p>You test for an optional argument by using <code>\@getoptionalarg</code>. +<a name="index-_0040getoptionalarg"></a> +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: +</p> +<div class="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></div> + +<p>It’s possible to define macros that appear to accept optional +arguments intermixed with mandatory arguments in any imaginable way. +For example: +</p> +<div class="example"> +<pre class="example">\makeatletter +% \mo{m}[o] +\def\mo#1{\def\mo@arg{#1}\@getoptionalarg\fin@mo} +\def\fin@mo{\vskip1pc + ARG: \mo@arg \par + OPTARG: \@optionalarg \par +} +% \mom{m}[o]{m} +\def\mom#1{\def\mom@arg{#1}\@getoptionalarg\fin@mom} +\def\fin@mom#1{\vskip1pc + ARG1: \mom@arg \par + OPTARG: \@optionalarg \par + ARG2: #1\par +} +% \omo[o]{m}[o] +\def\omo{\@getoptionalarg\fin@omo} +\def\fin@omo#1{\let\omo@optarg\@optionalarg + \def\omo@arg{#1}\@getoptionalarg\@fin@omo} +\def\@fin@omo{\vskip1pc + OPTARG1: \omo@optarg \par + ARG: \omo@arg \par + OPTARG2: \@optionalarg \par +} +\makeatother +</pre></div> + +<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. +</p> + +<hr> +<a name="Converting-to-characters"></a> +<div class="header"> +<p> +Next: <a href="#Expansion" accesskey="n" rel="next">Expansion</a>, Previous: <a href="#Macro-arguments" accesskey="p" rel="prev">Macro arguments</a>, Up: <a href="#Programming-definitions" accesskey="u" rel="up">Programming definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Converting-to-characters-1"></a> +<h3 class="section">7.5 Converting to characters</h3> + +<a name="index-characters_002c-converting-to"></a> +<p>Eplain defines <code>\xrlabel</code> +<a name="index-xrlabel"></a> +to produce control sequence names for cross-reference labels, et al. +This macro expands to its argument with an ‘<samp>_</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> +<p>Because <code>\xrlabel</code> is fully expandable, to make a control +sequence name out of the result you need only do +</p> +<div class="example"> +<pre class="example"><code>\csname \xrlabel{<var>label</var>}\endcsname</code> +</pre></div> + +<p>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>\</samp>’, +‘<samp>{</samp>’, ‘<samp>}</samp>’, and ‘<samp>#</samp>’, all of which are used in macro +definitions themselves. +</p> +<a name="index-sanitize"></a> +<p><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. +</p> +<div class="example"> +<pre class="example">… +\def\temp{#2}% +… + \write\tocfile{% + … + \sanitize\temp + … + }% +</pre></div> + + +<hr> +<a name="Expansion"></a> +<div class="header"> +<p> +Next: <a href="#Obeying-spaces" accesskey="n" rel="next">Obeying spaces</a>, Previous: <a href="#Converting-to-characters" accesskey="p" rel="prev">Converting to characters</a>, Up: <a href="#Programming-definitions" accesskey="u" rel="up">Programming definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Expansion-1"></a> +<h3 class="section">7.6 Expansion</h3> + +<p>This section describes some miscellanous macros for expansion, etc. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#g_t_005ccsn-and-_005cece" accesskey="1">\csn and \ece</a>:</td><td> </td><td align="left" valign="top">Abbreviations for \csname expansions. +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_005cedefappend" accesskey="2">\edefappend</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Hooks" accesskey="3">Hooks</a>:</td><td> </td><td align="left" valign="top">Manipulating and executing named actions. +</td></tr> +<tr><td align="left" valign="top">• <a href="#Properties" accesskey="4">Properties</a>:</td><td> </td><td align="left" valign="top">Associating information with a csname. +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_005cexpandonce" accesskey="5">\expandonce</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_005cifundefined" accesskey="6">\ifundefined</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_005cifempty" accesskey="7">\ifempty</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_005cifinteger-and-_005cisinteger" accesskey="8">\ifinteger and \isinteger</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#g_t_005cfuturenonspacelet" accesskey="9">\futurenonspacelet</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> +<a name="g_t_005ccsn-and-_005cece"></a> +<div class="header"> +<p> +Next: <a href="#g_t_005cedefappend" accesskey="n" rel="next">\edefappend</a>, Up: <a href="#Expansion" accesskey="u" rel="up">Expansion</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_005ccsn-and-_005cece-1"></a> +<h4 class="subsection">7.6.1 <code>\csn</code> and <code>\ece</code></h4> + +<a name="index-csn"></a> +<p><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"></a> +<p><code>\ece</code>{<var>token</var>}{<var>name</var>} abbreviates +</p> +<div class="example"> +<pre class="example">\expandafter <var>token</var> \csname <var>name</var> \endcsname +</pre></div> + +<p>For example, +</p> +<div class="example"> +<pre class="example">\def\fontabbrevdef#1#2{\ece\def{@#1font}{#2}} +\fontabbrevdef{normal}{ptmr} +</pre></div> + +<p>defines a control sequence <code>\@normalfont</code> to expand to +<code>ptmr</code>. +</p> + +<hr> +<a name="g_t_005cedefappend"></a> +<div class="header"> +<p> +Next: <a href="#Hooks" accesskey="n" rel="next">Hooks</a>, Previous: <a href="#g_t_005ccsn-and-_005cece" accesskey="p" rel="prev">\csn and \ece</a>, Up: <a href="#Expansion" accesskey="u" rel="up">Expansion</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_005cedefappend-1"></a> +<h4 class="subsection">7.6.2 <code>\edefappend</code></h4> + +<a name="index-edefappend"></a> +<p><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> +<p>For example: +</p> +<div class="example"> +<pre class="example">\def\foo{abc} +\def\bar{xyz} +\edefappend\foo{\bar karl} +</pre></div> + +<p>results in <code>\foo</code> being defined as ‘<samp>abcxyzkarl</samp>’. +</p> + +<hr> +<a name="Hooks"></a> +<div class="header"> +<p> +Next: <a href="#Properties" accesskey="n" rel="next">Properties</a>, Previous: <a href="#g_t_005cedefappend" accesskey="p" rel="prev">\edefappend</a>, Up: <a href="#Expansion" accesskey="u" rel="up">Expansion</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Hooks-1"></a> +<h4 class="subsection">7.6.3 Hooks</h4> + +<a name="index-hooks"></a> +<p>A <em>hook</em> is simply a name for a group of actions which is executed +in certain places—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> +<p>Eplain provides several macros for adding actions to hooks. They all +take two arguments: the name of the hook and the new actions. +</p> +<dl compact="compact"> +<dd> +<a name="index-hookaction"></a> +</dd> +<dt><code>hookaction <var>name</var> <var>actions</var></code></dt> +<dd><a name="index-hookappend"></a> +</dd> +<dt><code>hookappend <var>name</var> <var>actions</var></code></dt> +<dd><a name="index-hookprepend"></a> +</dd> +<dt><code>hookprepend <var>name</var> <var>actions</var></code></dt> +<dd><p>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"></a> +</dd> +<dt><code>hookactiononce <var>name</var> <code>\<var>cs</var></code></code></dt> +<dd><p><code>\hookactiononce</code> adds <var>cs</var> to <var>name</var>, like the macros +above, but first it adds +</p> +<div class="example"> +<pre class="example">\global\let <var>\cs</var> \relax +</pre></div> + +<p>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> +<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. +</p></dd> +</dl> + +<a name="index-hookrun"></a> +<p>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> +<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). +</p> +<div class="example"> +<pre class="example">\def\begin#1{ … \hookrun{begin} … } +\def\end#1{ … \hookrun{end} … } +\hookprepend{begin}\start_underline +\hookappend{end}\finish_underline +</pre></div> + + +<hr> +<a name="Properties"></a> +<div class="header"> +<p> +Next: <a href="#g_t_005cexpandonce" accesskey="n" rel="next">\expandonce</a>, Previous: <a href="#Hooks" accesskey="p" rel="prev">Hooks</a>, Up: <a href="#Expansion" accesskey="u" rel="up">Expansion</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Properties-1"></a> +<h4 class="subsection">7.6.4 Properties</h4> + +<a name="index-properties"></a> +<a name="index-atom"></a> +<p>A <em>property</em> is a name/value pair associated with another symbol, +traditionally called an <em>atom</em>. Both atom and property names are +control sequence names. +</p> +<p>Eplain provides two macros for dealing with property lists: +<code>\setproperty</code> and <code>\getproperty</code>. +</p> +<dl compact="compact"> +<dd> +<a name="index-setproperty"></a> +</dd> +<dt><code>\setproperty <var>atom</var> <var>propname</var> <var>value</var></code></dt> +<dd><p><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"></a> +</dd> +<dt><code>\getproperty <var>atom</var> <var>propname</var></code></dt> +<dd><p><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>). +</p> +</dd> +</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> +<p>The following example typesets ‘<samp>xyz</samp>’. +</p> +<div class="example"> +<pre class="example">\setproperty{a}{pr}{xyz} +\getproperty{a}{pr} +</pre></div> + + +<hr> +<a name="g_t_005cexpandonce"></a> +<div class="header"> +<p> +Next: <a href="#g_t_005cifundefined" accesskey="n" rel="next">\ifundefined</a>, Previous: <a href="#Properties" accesskey="p" rel="prev">Properties</a>, Up: <a href="#Expansion" accesskey="u" rel="up">Expansion</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_005cexpandonce-1"></a> +<h4 class="subsection">7.6.5 <code>\expandonce</code></h4> + +<a name="index-expansion_002c-one_002dlevel"></a> +<a name="index-expandonce"></a> +<p><code>\expandonce</code> is defined as <code>\expandafter\noexpand</code>. Thus, +<code>\expandonce <var>token</var></code> expands <var>token</var> once, instead of to +TeX primitives. This is most useful in an <code>\edef</code>. +</p> +<p>For example, the following defines <code>\temp</code> to be <code>\foo</code>, not +‘<samp>abc</samp>’. +</p> +<div class="example"> +<pre class="example">\def\foo{abc} +\def\bar{\foo} +\edef\temp{\expandonce\bar} +</pre></div> + + +<hr> +<a name="g_t_005cifundefined"></a> +<div class="header"> +<p> +Next: <a href="#g_t_005cifempty" accesskey="n" rel="next">\ifempty</a>, Previous: <a href="#g_t_005cexpandonce" accesskey="p" rel="prev">\expandonce</a>, Up: <a href="#Expansion" accesskey="u" rel="up">Expansion</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_005cifundefined-1"></a> +<h4 class="subsection">7.6.6 <code>\ifundefined</code></h4> + +<a name="index-ifundefined"></a> +<p><code>\ifundefined{<var>cs</var>} <var>t</var> \else <var>f</var> \fi</code> expands the +<var>t</var> text if the control sequence <code>\<var>cs</var></code> 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"></a> +<a name="index-undefined-control-sequence_002c-checking-for"></a> +<p>Since <code>\ifundefined</code> is not a primitive conditional, it cannot be +used in places where TeX might skip tokens “at high speed”, e.g., +within another conditional—TeX can’t match up the <code>\if</code>’s and +<code>\fi</code>’s. +</p> +<p>This macro was taken directly from <cite>The TeXbook</cite>, page 308. +</p> + +<hr> +<a name="g_t_005cifempty"></a> +<div class="header"> +<p> +Next: <a href="#g_t_005cifinteger-and-_005cisinteger" accesskey="n" rel="next">\ifinteger and \isinteger</a>, Previous: <a href="#g_t_005cifundefined" accesskey="p" rel="prev">\ifundefined</a>, Up: <a href="#Expansion" accesskey="u" rel="up">Expansion</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_005cifempty-1"></a> +<h4 class="subsection">7.6.7 <code>\ifempty</code></h4> + +<a name="index-ifempty"></a> +<a name="index-empty-string_002c-checking-for"></a> +<a name="index-empty-argument_002c-checking-for"></a> +<p><code>\ifempty{<var>arg</var>} <var>t</var> \else <var>f</var> \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: +</p> +<div class="example"> +<pre class="example">\def\foo#1{\ifempty{#1} <var>t</var> \else <var>f</var> \fi} +</pre></div> + +<a name="index-skipping-tokens-1"></a> +<p>Since <code>\ifempty</code> is not a primitive conditional, it cannot be +used in places where TeX might skip tokens “at high speed”, e.g., +within another conditional—TeX can’t match up the <code>\if</code>’s and +<code>\fi</code>’s. +</p> +<p>Note that the following code +</p> +<div class="example"> +<pre class="example">\def\empty{} +\ifempty\empty\message{empty}\else\message{not empty}\fi +</pre></div> + +<p>will produce the message ‘<samp>not empty</samp>’. +</p> + +<hr> +<a name="g_t_005cifinteger-and-_005cisinteger"></a> +<div class="header"> +<p> +Next: <a href="#g_t_005cfuturenonspacelet" accesskey="n" rel="next">\futurenonspacelet</a>, Previous: <a href="#g_t_005cifempty" accesskey="p" rel="prev">\ifempty</a>, Up: <a href="#Expansion" accesskey="u" rel="up">Expansion</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_005cifinteger-and-_005cisinteger-1"></a> +<h4 class="subsection">7.6.8 <code>\ifinteger</code> and <code>\isinteger</code></h4> + +<a name="index-ifinteger"></a> +<a name="index-integers_002c-detecting"></a> +<a name="index-numbers_002c-detecting"></a> +<a name="index-detecting-numbers"></a> +<a name="index-identifying-numbers"></a> +<a name="index-recognizing-numbers"></a> +<p><code>\ifinteger{<var>arg</var>} <var>t</var> \else <var>f</var> \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> +<p>Since <code>\ifinteger</code> is not a primitive conditional, it cannot be +used in places where TeX might skip tokens “at high speed”, e.g., +within another conditional—TeX can’t match up the <code>\if</code>’s +and <code>\fi</code>’s. For such situations Eplain provides +<a name="index-isinteger"></a> +<code>\isinteger</code>, which can be used as follows: +</p> +<div class="example"> +<pre class="example">\if\isinteger{<var>arg</var>} <var>t</var> \else <var>f</var> \fi +</pre></div> + +<p>Although <code>\ifinteger</code> and <code>\isinteger</code> work well +with regular input, they are not bullet-proof. For example, the +following code +</p> +<div class="example"> +<pre class="example">\ifinteger{12_ab}integer\else not integer\fi +</pre></div> + +<p>will expand to ‘<samp>ab_integer</samp>’ (and thus would not +even compile outside math mode). +</p> +<a name="index-TeX-Frequently-Asked-Question"></a> +<p>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>). +</p> + +<hr> +<a name="g_t_005cfuturenonspacelet"></a> +<div class="header"> +<p> +Previous: <a href="#g_t_005cifinteger-and-_005cisinteger" accesskey="p" rel="prev">\ifinteger and \isinteger</a>, Up: <a href="#Expansion" accesskey="u" rel="up">Expansion</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="g_t_005cfuturenonspacelet-1"></a> +<h4 class="subsection">7.6.9 <code>\futurenonspacelet</code></h4> + +<a name="index-lookahead-without-spaces"></a> +<a name="index-spaces_002c-ignoring"></a> +<a name="index-futurenonspacelet"></a> +<p>The <code>\futurelet</code> primitive allows you to look at the next token +from the input. Sometimes, though, you want to look ahead while +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: +</p> +<div class="example"> +<pre class="example">\futurenonspacelet\temp\finishup +\def\finishup{\ifx\temp …} +</pre></div> + + +<hr> +<a name="Obeying-spaces"></a> +<div class="header"> +<p> +Next: <a href="#Writing-out-numbers" accesskey="n" rel="next">Writing out numbers</a>, Previous: <a href="#Expansion" accesskey="p" rel="prev">Expansion</a>, Up: <a href="#Programming-definitions" accesskey="u" rel="up">Programming definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Obeying-spaces-1"></a> +<h3 class="section">7.7 Obeying spaces</h3> + +<a name="index-whitespace"></a> +<a name="index-spaces_002c-obeying"></a> +<a name="index-newlines_002c-obeying"></a> +<a name="index-obeywhitespace"></a> + +<p><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> +<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> +<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-in-obeyed-text"></a> +if you set this negative, the space produced by a blank line will be +smaller; if positive, larger. +</p> +<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 “right thing” with tabs, don’t. Use a utility +program like <i>expand</i> instead.) +<a name="index-tabs"></a> +</p> + +<hr> +<a name="Writing-out-numbers"></a> +<div class="header"> +<p> +Next: <a href="#Mode_002dspecific-penalties" accesskey="n" rel="next">Mode-specific penalties</a>, Previous: <a href="#Obeying-spaces" accesskey="p" rel="prev">Obeying spaces</a>, Up: <a href="#Programming-definitions" accesskey="u" rel="up">Programming definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Writing-out-numbers-1"></a> +<h3 class="section">7.8 Writing out numbers</h3> + +<a name="index-numbers_002c-written-form-of"></a> +<p><code>\numbername</code> +<a name="index-numbername"></a> +produces the written-out form of its argument, i.e., ‘zero’ through +‘ten’ for the numbers 0–10, and numerals for all others. +</p> + +<hr> +<a name="Mode_002dspecific-penalties"></a> +<div class="header"> +<p> +Next: <a href="#Auxiliary-files" accesskey="n" rel="next">Auxiliary files</a>, Previous: <a href="#Writing-out-numbers" accesskey="p" rel="prev">Writing out numbers</a>, Up: <a href="#Programming-definitions" accesskey="u" rel="up">Programming definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Mode_002dspecific-penalties-1"></a> +<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 “vertical” penalty, however, i.e., +appended to a vertical list. Therefore, Eplain provides +<code>\vpenalty</code> +<a name="index-vpenalty"></a> +and <code>\hpenalty</code> +which first leave the other mode and then do <code>\penalty</code>. +</p> +<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.) +</p> + +<hr> +<a name="Auxiliary-files"></a> +<div class="header"> +<p> +Next: <a href="#User_002ddefined-environments" accesskey="n" rel="next">User-defined environments</a>, Previous: <a href="#Mode_002dspecific-penalties" accesskey="p" rel="prev">Mode-specific penalties</a>, Up: <a href="#Programming-definitions" accesskey="u" rel="up">Programming definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Auxiliary-files-1"></a> +<h3 class="section">7.10 Auxiliary files</h3> + +<a name="index-axuiliary-files_002c-existence-of"></a> +<p>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"></a> +is given an argument which is appended to <code>\jobname</code>, +<a name="index-jobname-2"></a> +and sets the conditional <code>\iffileexists</code> +<a name="index-iffileexists"></a> +<a name="index-fileexists-_0028conditional_0029"></a> +appropriately. For example: +</p> +<div class="example"> +<pre class="example">\testfileexistence{toc}% +\iffileexists + \input \jobname.toc +\fi +</pre></div> + +<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>answers.aux</samp>, you can do this with the following: +</p> +<div class="example"> +<pre class="example">\testfileexistence[answers]{aux}% +\iffileexists + \input answers.aux +\fi +</pre></div> + + +<hr> +<a name="User_002ddefined-environments"></a> +<div class="header"> +<p> +Next: <a href="#Page-list-and-page-range-parsers" accesskey="n" rel="next">Page list and page range parsers</a>, Previous: <a href="#Auxiliary-files" accesskey="p" rel="prev">Auxiliary files</a>, Up: <a href="#Programming-definitions" accesskey="u" rel="up">Programming definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="User_002ddefined-environments-1"></a> +<h3 class="section">7.11 User-defined environments</h3> + +<a name="index-environments_002c-user_002ddefined"></a> +<p>Plain TeX does not provide “named” 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> +<p>For example: +</p> +<div class="example"> +<pre class="example">\def\itpar{ + \environment{@italicpar} + \it\par +} +\def\enditpar{ + \par + \endenvironment{@italicpar}% +} +</pre></div> + +<p>which could then be used to set italicized paragraphs: +</p> +<div class="example"> +<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></div> + +<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. +</p> + +<hr> +<a name="Page-list-and-page-range-parsers"></a> +<div class="header"> +<p> +Previous: <a href="#User_002ddefined-environments" accesskey="p" rel="prev">User-defined environments</a>, Up: <a href="#Programming-definitions" accesskey="u" rel="up">Programming definitions</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Page-list-and-page-range-parsers-1"></a> +<h3 class="section">7.12 Page list and page range parsers</h3> + +<a name="index-idxparselist"></a> +<a name="index-idxparserange"></a> +<a name="index-idxpagei"></a> +<a name="index-idxpageii"></a> +<p>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"></a> +<a name="index-setidxpagerangedelimiter"></a> +<p>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>, </samp>’) and +two dashes (‘<samp>--</samp>’), respectively. If you customize MakeIndex to use +different delimiters, you must not forget to let Eplain know about them +with the commands +</p> +<div class="example"> +<pre class="example">\setidxpagelistdelimiter{<var>list-delim</var>} +\setidxpagerangedelimiter{<var>page-delim</var>} +</pre></div> + +<p>These commands save the <var>list-delim</var> and +<var>page-delim</var> delimiters in +<a name="index-idxpagelistdelimiter"></a> +<a name="index-idxpagerangedelimiter"></a> +<code>\idxpagelistdelimiter</code> and <code>\idxpagerangedelimiter</code>, +respectively. +</p> +<a name="index-underlining-page-numbers-in-index"></a> +<a name="index-index_002c-underlining-page-numbers"></a> +<a name="index-ituline"></a> +<p>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-1"></a> +<div class="example"> +<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></div> + +<p>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>. +</p> +<hr> +<a name="Demo-files"></a> +<div class="header"> +<p> +Next: <a href="#Macro-index" accesskey="n" rel="next">Macro index</a>, Previous: <a href="#Programming-definitions" accesskey="p" rel="prev">Programming definitions</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Demo-files-1"></a> +<h2 class="chapter">8 Demo files</h2> + +<a name="index-demo-files"></a> +<p>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 <code>demo</code> 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>. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="#Hyperlinks-_0028xhyper_002etex_0029" accesskey="1">Hyperlinks (xhyper.tex)</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">• <a href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029" accesskey="2">Highlighting TeX comments in listings (lscommnt.tex)</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> +<a name="Hyperlinks-_0028xhyper_002etex_0029"></a> +<div class="header"> +<p> +Next: <a href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029" accesskey="n" rel="next">Highlighting TeX comments in listings (lscommnt.tex)</a>, Up: <a href="#Demo-files" accesskey="u" rel="up">Demo files</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Hyperlinks-_0028xhyper_002etex_0029-1"></a> +<h3 class="section">8.1 Hyperlinks (<code>xhyper.tex</code>)</h3> + +<img src="xhyper.jpg" alt="xhyper"> + +<a name="index-xhyper_002etex"></a> + +<a name="index-hyperlinks_002c-demo"></a> +<a name="index-explicit-hyperlinks_002c-demo"></a> +<a name="index-hyperlinks_002c-explicit_002c-demo"></a> +<a name="index-implicit-hyperlinks_002c-demo"></a> +<a name="index-hyperlinks_002c-implicit_002c-demo"></a> + +<a name="index-hlstart-4"></a> +<a name="index-hlend-1"></a> + +<a name="index-group-options_002c-hyperlink_002c-demo"></a> +<a name="index-hyperlinks_002c-group-options_002c-demo"></a> +<a name="index-link_002c-group-options_002c-demo"></a> +<a name="index-linkgroup-options_002c-demo"></a> +<a name="index-destinations_002c-group-options_002c-demo"></a> +<a name="index-destgroup-options_002c-demo"></a> + +<a name="index-group-type_002c-hyperlink_002c-demo"></a> +<a name="index-destinations_002c-group-type_002c-demo"></a> +<a name="index-destgroup-type_002c-demo"></a> + +<a name="index-hlopts-2"></a> +<a name="index-hldesttype-2"></a> +<a name="index-hldestopts-2"></a> + +<a name="index-cross_002dreferences_002c-demo"></a> +<a name="index-definexref-1"></a> +<a name="index-ref-1"></a> + +<a name="index-graphics-collection_002c-LaTeX_002c-demo"></a> +<a name="index-LaTeX-graphics-collection_002c-demo"></a> +<a name="index-color_002c-demo"></a> +<a name="index-rotation_002c-demo"></a> +<a name="index-scaling_002c-demo"></a> +<a name="index-color_002esty-4"></a> +<a name="index-graphicx_002esty-1"></a> +<a name="index-url_002esty-2"></a> + +<a name="index-includegraphics"></a> +<a name="index-rotatebox"></a> +<a name="index-definecolor"></a> +<a name="index-url"></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> + +<hr> +<a name="Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029"></a> +<div class="header"> +<p> +Previous: <a href="#Hyperlinks-_0028xhyper_002etex_0029" accesskey="p" rel="prev">Hyperlinks (xhyper.tex)</a>, Up: <a href="#Demo-files" accesskey="u" rel="up">Demo files</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029-1"></a> +<h3 class="section">8.2 Highlighting TeX comments in listings (<code>lscommnt.tex</code>)</h3> + +<img src="lscommnt.jpg" alt="lscommnt"> + + +<a name="index-lscommnt_002etex"></a> + +<a name="index-verbatim-listing_002c-demo"></a> +<a name="index-listing-files_002c-demo"></a> +<a name="index-files_002c-verbatim-listing-of_002c-demo"></a> +<a name="index-comments_002c-highlighting-in-listings"></a> +<a name="index-highlighting_002c-in-listings"></a> + +<a name="index-listing-1"></a> +<a name="index-setuplistinghook-1"></a> +<a name="index-linenumberedlisting-1"></a> +<a name="index-nolastlinelisting-1"></a> +<a name="index-hlightcommentslisting"></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> +<hr> +<a name="Macro-index"></a> +<div class="header"> +<p> +Next: <a href="#Concept-index" accesskey="n" rel="next">Concept index</a>, Previous: <a href="#Demo-files" accesskey="p" rel="prev">Demo files</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Macro-index-1"></a> +<h2 class="unnumbered">Macro index</h2> + +<table><tr><th valign="top">Jump to: </th><td><a class="summary-letter" href="#Macro-index_fn_symbol-1"><b>@</b></a> + +<br> +<a class="summary-letter" href="#Macro-index_fn_letter-A"><b>A</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-B"><b>B</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-C"><b>C</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-D"><b>D</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-E"><b>E</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-F"><b>F</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-G"><b>G</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-H"><b>H</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-I"><b>I</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-J"><b>J</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-L"><b>L</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-M"><b>M</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-N"><b>N</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-O"><b>O</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-P"><b>P</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-Q"><b>Q</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-R"><b>R</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-S"><b>S</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-T"><b>T</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-U"><b>U</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-V"><b>V</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-W"><b>W</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-X"><b>X</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-Z"><b>Z</b></a> + +</td></tr></table> +<table class="index-fn" border="0"> +<tr><td></td><th align="left">Index Entry</th><td> </td><th align="left"> Section</th></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Macro-index_fn_symbol-1">@</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_0040getoptionalarg"><code>@getoptionalarg</code></a>:</td><td> </td><td valign="top"><a href="#Macro-arguments">Macro arguments</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_0040hllabel"><code>@hllabel</code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-hypertex">Destination types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_0040hllabel-1"><code>@hllabel</code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-hypertex">Link types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_0040hllabel-2"><code>@hllabel</code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_0040hllabel-3"><code>@hllabel</code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_0040indexproof-insertion-class"><code>@indexproof <span class="roman">insertion class</span></code></a>:</td><td> </td><td valign="top"><a href="#Proofing-index-terms">Proofing index terms</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Macro-index_fn_letter-A">A</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-abovecolumnskip"><code>abovecolumnskip</code></a>:</td><td> </td><td valign="top"><a href="#Multiple-columns">Multiple columns</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-abovecolumnspenalty"><code>abovecolumnspenalty</code></a>:</td><td> </td><td valign="top"><a href="#Tables">Tables</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-abovelistpenalty"><code>abovelistpenalty</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-lists">Formatting lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-abovelistskip"><code>abovelistskip</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-lists">Formatting lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-abovelistskipamount"><code>abovelistskipamount</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-lists">Formatting lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-adjarrow"><code>adjarrow</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-adjmapdown"><code>adjmapdown</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-adjmapleft"><code>adjmapleft</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-adjmapright"><code>adjmapright</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-adjmapup"><code>adjmapup</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-advancebottommargin"><code>advancebottommargin</code></a>:</td><td> </td><td valign="top"><a href="#Margins">Margins</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-advanceleftmargin"><code>advanceleftmargin</code></a>:</td><td> </td><td valign="top"><a href="#Margins">Margins</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-advancerightmargin"><code>advancerightmargin</code></a>:</td><td> </td><td valign="top"><a href="#Margins">Margins</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-advancetopmargin"><code>advancetopmargin</code></a>:</td><td> </td><td valign="top"><a href="#Margins">Margins</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-afterindexterm"><code>afterindexterm</code></a>:</td><td> </td><td valign="top"><a href="#Customizing-indexing">Customizing indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-afterindexterm-hook"><code>afterindexterm <span class="roman">hook</span></code></a>:</td><td> </td><td valign="top"><a href="#Indexing-commands">Indexing commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-AMSLaTeX-1"><code>AMSLaTeX</code></a>:</td><td> </td><td valign="top"><a href="#Logos">Logos</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-AMSTeX-1"><code>AMSTeX</code></a>:</td><td> </td><td valign="top"><a href="#Logos">Logos</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-arrow"><code>arrow</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-arrow-1"><code>arrow</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Macro-index_fn_letter-B">B</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-bblem"><code>bblem</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-bibliographies">Formatting bibliographies</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bblemph"><code>bblemph</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-bibliographies">Formatting bibliographies</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bblfilebasename"><code>bblfilebasename</code></a>:</td><td> </td><td valign="top"><a href="#Citations">Citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bblhook"><code>bblhook</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-bibliographies">Formatting bibliographies</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bblnewblock"><code>bblnewblock</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-bibliographies">Formatting bibliographies</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bblrm"><code>bblrm</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-bibliographies">Formatting bibliographies</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bblsc"><code>bblsc</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-bibliographies">Formatting bibliographies</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bcolor-_0028hyperlink-option_0029"><code>bcolor <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bdash-_0028hyperlink-option_0029"><code>bdash <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bdash-_0028hyperlink-option_0029-1"><code>bdash <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-begin-for-index-entries"><code>begin <span class="roman">for index entries</span></code></a>:</td><td> </td><td valign="top"><a href="#Modifying-index-entries">Modifying index entries</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-beginindex-hook"><code>beginindex <span class="roman">hook</span></code></a>:</td><td> </td><td valign="top"><a href="#Typesetting-an-index">Typesetting an index</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-beginlist"><code>beginlist</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-lists">Formatting lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-beginpackages"><code>beginpackages</code></a>:</td><td> </td><td valign="top"><a href="#Environment-for-loading-packages">Environment for loading packages</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-begin_007bpicture_007d"><code>begin{picture}</code></a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-begin_007btheindex_007d"><code>begin{theindex}</code></a>:</td><td> </td><td valign="top"><a href="#Typesetting-an-index">Typesetting an index</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-belowcolumnskip"><code>belowcolumnskip</code></a>:</td><td> </td><td valign="top"><a href="#Multiple-columns">Multiple columns</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-belowfootnoterulespace"><code>belowfootnoterulespace</code></a>:</td><td> </td><td valign="top"><a href="#Footnotes">Footnotes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-belowlistskip"><code>belowlistskip</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-lists">Formatting lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-belowlistskipamount"><code>belowlistskipamount</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-lists">Formatting lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-biarrow"><code>biarrow</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-biblabelcontents"><code>biblabelcontents</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-bibliographies">Formatting bibliographies</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-biblabelextraspace"><code>biblabelextraspace</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-bibliographies">Formatting bibliographies</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-biblabelpostcontents"><code>biblabelpostcontents</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-bibliographies">Formatting bibliographies</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-biblabelprecontents"><code>biblabelprecontents</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-bibliographies">Formatting bibliographies</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-biblabelprint"><code>biblabelprint</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-bibliographies">Formatting bibliographies</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-biblabelwidth"><code>biblabelwidth</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-bibliographies">Formatting bibliographies</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bibliography"><code>bibliography</code></a>:</td><td> </td><td valign="top"><a href="#Citations">Citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bibliography-_0028hyperlinks_0029"><code>bibliography <span class="roman">(hyperlinks)</span></code></a>:</td><td> </td><td valign="top"><a href="#Citation-hyperlinks">Citation hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bibliographystyle"><code>bibliographystyle</code></a>:</td><td> </td><td valign="top"><a href="#Citations">Citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-BibTeX-2"><code>BibTeX</code></a>:</td><td> </td><td valign="top"><a href="#Logos">Logos</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bihline"><code>bihline</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bimapdown"><code>bimapdown</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bimapleft"><code>bimapleft</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bimapright"><code>bimapright</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bimapup"><code>bimapup</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bisline"><code>bisline</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bivline"><code>bivline</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-blackbox"><code>blackbox</code></a>:</td><td> </td><td valign="top"><a href="#Boxes">Boxes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-blanklineskipamount-in-justified-text"><code>blanklineskipamount <span class="roman">in justified text</span></code></a>:</td><td> </td><td valign="top"><a href="#Justification">Justification</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-blanklineskipamount-in-obeyed-text"><code>blanklineskipamount <span class="roman">in obeyed text</span></code></a>:</td><td> </td><td valign="top"><a href="#Obeying-spaces">Obeying spaces</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bottom-_0028destination-option_0029"><code>bottom <span class="roman">(destination option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bottom-_0028destination-option_0029-1"><code>bottom <span class="roman">(destination option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bottommargin"><code>bottommargin</code></a>:</td><td> </td><td valign="top"><a href="#Margins">Margins</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-boxit"><code>boxit</code></a>:</td><td> </td><td valign="top"><a href="#Boxes">Boxes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-boxitspace"><code>boxitspace</code></a>:</td><td> </td><td valign="top"><a href="#Boxes">Boxes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bstyle-_0028hyperlink-option_0029"><code>bstyle <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bwidth-_0028hyperlink-option_0029"><code>bwidth <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Macro-index_fn_letter-C">C</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-catcode"><code>catcode</code></a>:</td><td> </td><td valign="top"><a href="#Category-codes">Category codes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-center"><code>center</code></a>:</td><td> </td><td valign="top"><a href="#Justification">Justification</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-centereddisplays"><code>centereddisplays</code></a>:</td><td> </td><td valign="top"><a href="#Displays">Displays</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-channelwidth"><code>channelwidth</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-channelwidth-1"><code>channelwidth</code></a>:</td><td> </td><td valign="top"><a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cite"><code>cite</code></a>:</td><td> </td><td valign="top"><a href="#Citations">Citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cite-_0028hyperlinks_0029"><code>cite <span class="roman">(hyperlinks)</span></code></a>:</td><td> </td><td valign="top"><a href="#Citation-hyperlinks">Citation hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cmd-_0028destination-option_0029"><code>cmd <span class="roman">(destination option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-hypertex">Destination types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cmd-_0028destination-option_0029-1"><code>cmd <span class="roman">(destination option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-hypertex">Destination options for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cmd-_0028destination-option_0029-2"><code>cmd <span class="roman">(destination option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cmd-_0028destination-option_0029-3"><code>cmd <span class="roman">(destination option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cmd-_0028hyperlink-option_0029"><code>cmd <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-hypertex">Link types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cmd-_0028hyperlink-option_0029-1"><code>cmd <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-options-for-hypertex">Link options for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cmd-_0028hyperlink-option_0029-2"><code>cmd <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cmd-_0028hyperlink-option_0029-3"><code>cmd <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-color-_0028hyperlink-option_0029"><code>color <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-colormodel-_0028hyperlink-option_0029"><code>colormodel <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-columnfill"><code>columnfill</code></a>:</td><td> </td><td valign="top"><a href="#Multiple-columns">Multiple columns</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-commdiag"><code>commdiag</code></a>:</td><td> </td><td valign="top"><a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-commdiagbaselines"><code>commdiagbaselines</code></a>:</td><td> </td><td valign="top"><a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-commdiagbaselines-1"><code>commdiagbaselines</code></a>:</td><td> </td><td valign="top"><a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-csn"><code>csn</code></a>:</td><td> </td><td valign="top"><a href="#g_t_005ccsn-and-_005cece">\csn and \ece</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Macro-index_fn_letter-D">D</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-definecolor"><code>definecolor</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-definecontentsfile"><code>definecontentsfile</code></a>:</td><td> </td><td valign="top"><a href="#Alternative-contents-files">Alternative contents files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-defineindex"><code>defineindex</code></a>:</td><td> </td><td valign="top"><a href="#Indexing">Indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-definexref"><code>definexref</code></a>:</td><td> </td><td valign="top"><a href="#Defining-generic-references">Defining generic references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-definexref-1"><code>definexref</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-definexref-_0028hyperlinks_0029"><code>definexref <span class="roman">(hyperlinks)</span></code></a>:</td><td> </td><td valign="top"><a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-depth-_0028destination-option_0029"><code>depth <span class="roman">(destination option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-depth-_0028destination-option_0029-1"><code>depth <span class="roman">(destination option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-depth-_0028hyperlink-option_0029"><code>depth <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-discretionaries"><code>discretionaries</code></a>:</td><td> </td><td valign="top"><a href="#Paths">Paths</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-displaylines"><code>displaylines</code></a>:</td><td> </td><td valign="top"><a href="#Displays">Displays</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dospecials"><code>dospecials</code></a>:</td><td> </td><td valign="top"><a href="#Verbatim-listing">Verbatim listing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-doublecolumns"><code>doublecolumns</code></a>:</td><td> </td><td valign="top"><a href="#Multiple-columns">Multiple columns</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-drawline"><code>drawline</code></a>:</td><td> </td><td valign="top"><a href="#Slanted-lines-and-vectors">Slanted lines and vectors</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-drawvector"><code>drawvector</code></a>:</td><td> </td><td valign="top"><a href="#Slanted-lines-and-vectors">Slanted lines and vectors</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dvipdfm-_0028hyperlink-driver_0029"><code>dvipdfm <span class="roman">(hyperlink driver)</span></code></a>:</td><td> </td><td valign="top"><a href="#Hyperlink-drivers-pdftex-and-dvipdfm">Hyperlink drivers pdftex and dvipdfm</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Macro-index_fn_letter-E">E</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-eattoken"><code>eattoken</code></a>:</td><td> </td><td valign="top"><a href="#Macro-arguments">Macro arguments</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ece"><code>ece</code></a>:</td><td> </td><td valign="top"><a href="#g_t_005ccsn-and-_005cece">\csn and \ece</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-edefappend"><code>edefappend</code></a>:</td><td> </td><td valign="top"><a href="#g_t_005cedefappend">\edefappend</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ehrule"><code>ehrule</code></a>:</td><td> </td><td valign="top"><a href="#Rules">Rules</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-em"><code>em</code></a>:</td><td> </td><td valign="top"><a href="#Commands-from-LaTeX">Commands from LaTeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-emph"><code>emph</code></a>:</td><td> </td><td valign="top"><a href="#Commands-from-LaTeX">Commands from LaTeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-enablehyperlinks"><code>enablehyperlinks</code></a>:</td><td> </td><td valign="top"><a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-enablehyperlinks-1"><code>enablehyperlinks</code></a>:</td><td> </td><td valign="top"><a href="#Choosing-destination-placement">Choosing destination placement</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-enablehyperlinks-2"><code>enablehyperlinks</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-end-for-index-entries"><code>end <span class="roman">for index entries</span></code></a>:</td><td> </td><td valign="top"><a href="#Modifying-index-entries">Modifying index entries</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-endlist"><code>endlist</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-lists">Formatting lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-endnumberedlist"><code>endnumberedlist</code></a>:</td><td> </td><td valign="top"><a href="#Lists">Lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-endorderedlist"><code>endorderedlist</code></a>:</td><td> </td><td valign="top"><a href="#Lists">Lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-endpackages"><code>endpackages</code></a>:</td><td> </td><td valign="top"><a href="#Environment-for-loading-packages">Environment for loading packages</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-endunorderedlist"><code>endunorderedlist</code></a>:</td><td> </td><td valign="top"><a href="#Lists">Lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-end_007bpicture_007d"><code>end{picture}</code></a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-end_007btheindex_007d"><code>end{theindex}</code></a>:</td><td> </td><td valign="top"><a href="#Typesetting-an-index">Typesetting an index</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eplain"><code>eplain</code></a>:</td><td> </td><td valign="top"><a href="#Invoking-Eplain">Invoking Eplain</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eplaininput"><code>eplaininput</code></a>:</td><td> </td><td valign="top"><a href="#Environment-for-loading-packages">Environment for loading packages</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eqalignno"><code>eqalignno</code></a>:</td><td> </td><td valign="top"><a href="#Displays">Displays</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eqalignno-1"><code>eqalignno</code></a>:</td><td> </td><td valign="top"><a href="#Displays">Displays</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eqalignnum"><code>eqalignnum</code></a>:</td><td> </td><td valign="top"><a href="#Displays">Displays</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eqconstruct"><code>eqconstruct</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-equation-references">Formatting equation references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eqdef"><code>eqdef</code></a>:</td><td> </td><td valign="top"><a href="#Equation-references">Equation references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eqdef-_0028hyperlinks_0029"><code>eqdef <span class="roman">(hyperlinks)</span></code></a>:</td><td> </td><td valign="top"><a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eqdefn"><code>eqdefn</code></a>:</td><td> </td><td valign="top"><a href="#Equation-references">Equation references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eqdefn-_0028hyperlinks_0029"><code>eqdefn <span class="roman">(hyperlinks)</span></code></a>:</td><td> </td><td valign="top"><a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eqno"><code>eqno</code></a>:</td><td> </td><td valign="top"><a href="#Displays">Displays</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eqnum"><code>eqnum</code></a>:</td><td> </td><td valign="top"><a href="#Displays">Displays</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eqnum-1"><code>eqnum</code></a>:</td><td> </td><td valign="top"><a href="#Equation-references">Equation references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eqnum-2"><code>eqnum</code></a>:</td><td> </td><td valign="top"><a href="#Equation-references">Equation references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eqnumber"><code>eqnumber</code></a>:</td><td> </td><td valign="top"><a href="#Equation-references">Equation references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eqprint"><code>eqprint</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-equation-references">Formatting equation references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eqref"><code>eqref</code></a>:</td><td> </td><td valign="top"><a href="#Equation-references">Equation references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eqref-1"><code>eqref</code></a>:</td><td> </td><td valign="top"><a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eqrefn"><code>eqrefn</code></a>:</td><td> </td><td valign="top"><a href="#Equation-references">Equation references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eqrefn-1"><code>eqrefn</code></a>:</td><td> </td><td valign="top"><a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eqsubdef"><code>eqsubdef</code></a>:</td><td> </td><td valign="top"><a href="#Subequation-references">Subequation references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eqsubdef-_0028hyperlinks_0029"><code>eqsubdef <span class="roman">(hyperlinks)</span></code></a>:</td><td> </td><td valign="top"><a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eqsubdefn"><code>eqsubdefn</code></a>:</td><td> </td><td valign="top"><a href="#Subequation-references">Subequation references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eqsubdefn-_0028hyperlinks_0029"><code>eqsubdefn <span class="roman">(hyperlinks)</span></code></a>:</td><td> </td><td valign="top"><a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eqsubreftext"><code>eqsubreftext</code></a>:</td><td> </td><td valign="top"><a href="#Subequation-references">Subequation references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eTeX-1"><code>eTeX</code></a>:</td><td> </td><td valign="top"><a href="#Logos">Logos</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-everyfootnote"><code>everyfootnote</code></a>:</td><td> </td><td valign="top"><a href="#Footnotes">Footnotes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-evrule"><code>evrule</code></a>:</td><td> </td><td valign="top"><a href="#Rules">Rules</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-expandonce"><code>expandonce</code></a>:</td><td> </td><td valign="top"><a href="#g_t_005cexpandonce">\expandonce</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ext-_0028hyperlink-option_0029"><code>ext <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-hypertex">Link types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ext-_0028hyperlink-option_0029-1"><code>ext <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-options-for-hypertex">Link options for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ExTeX-1"><code>ExTeX</code></a>:</td><td> </td><td valign="top"><a href="#Logos">Logos</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Macro-index_fn_letter-F">F</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-file-_0028hyperlink-option_0029"><code>file <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-hypertex">Link types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-file-_0028hyperlink-option_0029-1"><code>file <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-options-for-hypertex">Link options for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-file-_0028hyperlink-option_0029-2"><code>file <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-file-_0028hyperlink-option_0029-3"><code>file <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-file-_0028hyperlink-option_0029-4"><code>file <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fileexists-_0028conditional_0029"><code>fileexists <span class="roman">(conditional)</span></code></a>:</td><td> </td><td valign="top"><a href="#Auxiliary-files">Auxiliary files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-filename-_0028hyperlink-type_0029"><code>filename <span class="roman">(hyperlink type)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-hypertex">Link types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-filename-_0028hyperlink-type_0029-1"><code>filename <span class="roman">(hyperlink type)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-filepage-_0028hyperlink-type_0029"><code>filepage <span class="roman">(hyperlink type)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fit-_0028destination-type_0029"><code>fit <span class="roman">(destination type)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fitb-_0028destination-type_0029"><code>fitb <span class="roman">(destination type)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fitbh-_0028destination-type_0029"><code>fitbh <span class="roman">(destination type)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fitbv-_0028destination-type_0029"><code>fitbv <span class="roman">(destination type)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fith-_0028destination-type_0029"><code>fith <span class="roman">(destination type)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fitr-_0028destination-type_0029"><code>fitr <span class="roman">(destination type)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fitv-_0028destination-type_0029"><code>fitv <span class="roman">(destination type)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-flushleft"><code>flushleft</code></a>:</td><td> </td><td valign="top"><a href="#Justification">Justification</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-flushright"><code>flushright</code></a>:</td><td> </td><td valign="top"><a href="#Justification">Justification</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fmtversion"><code>fmtversion</code></a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-footnote-_0028hyperlinks_0029"><code>footnote <span class="roman">(hyperlinks)</span></code></a>:</td><td> </td><td valign="top"><a href="#Footnote-hyperlinks">Footnote hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-footnotemarkseparation"><code>footnotemarkseparation</code></a>:</td><td> </td><td valign="top"><a href="#Footnotes">Footnotes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-footnoteruleheight"><code>footnoteruleheight</code></a>:</td><td> </td><td valign="top"><a href="#Footnotes">Footnotes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-footnoterulewidth"><code>footnoterulewidth</code></a>:</td><td> </td><td valign="top"><a href="#Footnotes">Footnotes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-for"><code>for</code></a>:</td><td> </td><td valign="top"><a href="#Iteration">Iteration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-For"><code>For</code></a>:</td><td> </td><td valign="top"><a href="#Iteration">Iteration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-frac"><code>frac</code></a>:</td><td> </td><td valign="top"><a href="#Fractions">Fractions</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fullmonthname"><code>fullmonthname</code></a>:</td><td> </td><td valign="top"><a href="#Time-of-day">Time of day</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-futurenonspacelet"><code>futurenonspacelet</code></a>:</td><td> </td><td valign="top"><a href="#g_t_005cfuturenonspacelet">\futurenonspacelet</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Macro-index_fn_letter-G">G</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-getproperty"><code>getproperty</code></a>:</td><td> </td><td valign="top"><a href="#Properties">Properties</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-gloggingall"><code>gloggingall</code></a>:</td><td> </td><td valign="top"><a href="#Diagnostics">Diagnostics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-gobble"><code>gobble</code></a>:</td><td> </td><td valign="top"><a href="#Macro-arguments">Macro arguments</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-gobbletwo"><code>gobbletwo</code></a>:</td><td> </td><td valign="top"><a href="#Macro-arguments">Macro arguments</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-gridcommdiag"><code>gridcommdiag</code></a>:</td><td> </td><td valign="top"><a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-gtracingall"><code>gtracingall</code></a>:</td><td> </td><td valign="top"><a href="#Diagnostics">Diagnostics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-gutter"><code>gutter</code></a>:</td><td> </td><td valign="top"><a href="#Multiple-columns">Multiple columns</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-gutterbox"><code>gutterbox</code></a>:</td><td> </td><td valign="top"><a href="#Multiple-columns">Multiple columns</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Macro-index_fn_letter-H">H</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-hangindent-for-index-entries"><code>hangindent <span class="roman">for index entries</span></code></a>:</td><td> </td><td valign="top"><a href="#Typesetting-an-index">Typesetting an index</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-harrowlength"><code>harrowlength</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-harrowlength-1"><code>harrowlength</code></a>:</td><td> </td><td valign="top"><a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hchannel"><code>hchannel</code></a>:</td><td> </td><td valign="top"><a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-height-_0028destination-option_0029"><code>height <span class="roman">(destination option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-height-_0028destination-option_0029-1"><code>height <span class="roman">(destination option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-height-_0028hyperlink-option_0029"><code>height <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hgrid"><code>hgrid</code></a>:</td><td> </td><td valign="top"><a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hgrid-1"><code>hgrid</code></a>:</td><td> </td><td valign="top"><a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hldest"><code>hldest</code></a>:</td><td> </td><td valign="top"><a href="#Explicit-hyperlinks">Explicit hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hldest-1"><code>hldest</code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-hypertex">Destination types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hldest-2"><code>hldest</code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hldest-3"><code>hldest</code></a>:</td><td> </td><td valign="top"><a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hldestoff"><code>hldestoff</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hldestoff-1"><code>hldestoff</code></a>:</td><td> </td><td valign="top"><a href="#Turning-low_002dlevel-commands-on_002foff">Turning low-level commands on/off</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hldeston"><code>hldeston</code></a>:</td><td> </td><td valign="top"><a href="#Turning-low_002dlevel-commands-on_002foff">Turning low-level commands on/off</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hldestopts"><code>hldestopts</code></a>:</td><td> </td><td valign="top"><a href="#Setting-default-types-and-options">Setting default types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hldestopts-1"><code>hldestopts</code></a>:</td><td> </td><td valign="top"><a href="#Setting-group-options">Setting group options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hldestopts-2"><code>hldestopts</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hldesttype"><code>hldesttype</code></a>:</td><td> </td><td valign="top"><a href="#Setting-default-types-and-options">Setting default types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hldesttype-1"><code>hldesttype</code></a>:</td><td> </td><td valign="top"><a href="#Setting-group-types">Setting group types</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hldesttype-2"><code>hldesttype</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hlend"><code>hlend</code></a>:</td><td> </td><td valign="top"><a href="#Explicit-hyperlinks">Explicit hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hlend-1"><code>hlend</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hlfootbacklabel"><code>hlfootbacklabel</code></a>:</td><td> </td><td valign="top"><a href="#Footnote-hyperlinks">Footnote hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hlfootlabel"><code>hlfootlabel</code></a>:</td><td> </td><td valign="top"><a href="#Footnote-hyperlinks">Footnote hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hlfootlabelnumber"><code>hlfootlabelnumber</code></a>:</td><td> </td><td valign="top"><a href="#Footnote-hyperlinks">Footnote hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hlhash"><code>hlhash</code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-hypertex">Link types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hlidx"><code>hlidx</code></a>:</td><td> </td><td valign="top"><a href="#Exact-destinations-for-index-terms">Exact destinations for index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hlidxlabel"><code>hlidxlabel</code></a>:</td><td> </td><td valign="top"><a href="#Exact-destinations-for-index-terms">Exact destinations for index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hlidxlabelnumber"><code>hlidxlabelnumber</code></a>:</td><td> </td><td valign="top"><a href="#Exact-destinations-for-index-terms">Exact destinations for index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hlidxpage"><code>hlidxpage</code></a>:</td><td> </td><td valign="top"><a href="#Page-destinations-for-index-terms">Page destinations for index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hlidxpagelabel"><code>hlidxpagelabel</code></a>:</td><td> </td><td valign="top"><a href="#Page-destinations-for-index-terms">Page destinations for index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hlight-_0028hyperlink-option_0029"><code>hlight <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hlightcommentslisting"><code>hlightcommentslisting</code></a>:</td><td> </td><td valign="top"><a href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029">Highlighting TeX comments in listings (lscommnt.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hline"><code>hline</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hloff"><code>hloff</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hloff-1"><code>hloff</code></a>:</td><td> </td><td valign="top"><a href="#Turning-low_002dlevel-commands-on_002foff">Turning low-level commands on/off</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hlon"><code>hlon</code></a>:</td><td> </td><td valign="top"><a href="#Turning-low_002dlevel-commands-on_002foff">Turning low-level commands on/off</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hlopts"><code>hlopts</code></a>:</td><td> </td><td valign="top"><a href="#Setting-default-types-and-options">Setting default types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hlopts-1"><code>hlopts</code></a>:</td><td> </td><td valign="top"><a href="#Setting-group-options">Setting group options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hlopts-2"><code>hlopts</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hlstart"><code>hlstart</code></a>:</td><td> </td><td valign="top"><a href="#Explicit-hyperlinks">Explicit hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hlstart-1"><code>hlstart</code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-hypertex">Link types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hlstart-2"><code>hlstart</code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hlstart-3"><code>hlstart</code></a>:</td><td> </td><td valign="top"><a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hlstart-4"><code>hlstart</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hltype"><code>hltype</code></a>:</td><td> </td><td valign="top"><a href="#Setting-default-types-and-options">Setting default types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hltype-1"><code>hltype</code></a>:</td><td> </td><td valign="top"><a href="#Setting-group-types">Setting group types</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hmorphposn"><code>hmorphposn</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hmorphposn-1"><code>hmorphposn</code></a>:</td><td> </td><td valign="top"><a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hmorphposndn"><code>hmorphposndn</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hmorphposndn-1"><code>hmorphposndn</code></a>:</td><td> </td><td valign="top"><a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hmorphposnlft"><code>hmorphposnlft</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hmorphposnlft-1"><code>hmorphposnlft</code></a>:</td><td> </td><td valign="top"><a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hmorphposnrt"><code>hmorphposnrt</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hmorphposnrt-1"><code>hmorphposnrt</code></a>:</td><td> </td><td valign="top"><a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hmorphposnup"><code>hmorphposnup</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hmorphposnup-1"><code>hmorphposnup</code></a>:</td><td> </td><td valign="top"><a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hoffset"><code>hoffset</code></a>:</td><td> </td><td valign="top"><a href="#Proofing-index-terms">Proofing index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hookaction"><code>hookaction</code></a>:</td><td> </td><td valign="top"><a href="#Hooks">Hooks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hookactiononce"><code>hookactiononce</code></a>:</td><td> </td><td valign="top"><a href="#Hooks">Hooks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hookappend"><code>hookappend</code></a>:</td><td> </td><td valign="top"><a href="#Hooks">Hooks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hookprepend"><code>hookprepend</code></a>:</td><td> </td><td valign="top"><a href="#Hooks">Hooks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hookrun"><code>hookrun</code></a>:</td><td> </td><td valign="top"><a href="#Hooks">Hooks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-href"><code>href</code></a>:</td><td> </td><td valign="top"><a href="#General-hyperlinks">General hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hruledefaultdepth"><code>hruledefaultdepth</code></a>:</td><td> </td><td valign="top"><a href="#Rules">Rules</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hruledefaultheight"><code>hruledefaultheight</code></a>:</td><td> </td><td valign="top"><a href="#Rules">Rules</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hsize"><code>hsize</code></a>:</td><td> </td><td valign="top"><a href="#Margins">Margins</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hypertex-_0028hyperlink-driver_0029"><code>hypertex <span class="roman">(hyperlink driver)</span></code></a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyphenpenalty-for-index-entries"><code>hyphenpenalty <span class="roman">for index entries</span></code></a>:</td><td> </td><td valign="top"><a href="#Typesetting-an-index">Typesetting an index</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Macro-index_fn_letter-I">I</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-identity"><code>identity</code></a>:</td><td> </td><td valign="top"><a href="#Macro-arguments">Macro arguments</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idx"><code>idx</code></a>:</td><td> </td><td valign="top"><a href="#Indexing-commands">Indexing commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idx-_0028hyperlinks_0029"><code>idx <span class="roman">(hyperlinks)</span></code></a>:</td><td> </td><td valign="top"><a href="#Index-hyperlinks">Index hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxargclose"><code>idxargclose</code></a>:</td><td> </td><td valign="top"><a href="#Index-entries-with-special-characters">Index entries with special characters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxargopen"><code>idxargopen</code></a>:</td><td> </td><td valign="top"><a href="#Index-entries-with-special-characters">Index entries with special characters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxbeginrangemark"><code>idxbeginrangemark</code></a>:</td><td> </td><td valign="top"><a href="#Customizing-indexing">Customizing indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxencapoperator"><code>idxencapoperator</code></a>:</td><td> </td><td valign="top"><a href="#Customizing-indexing">Customizing indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxendrangemark"><code>idxendrangemark</code></a>:</td><td> </td><td valign="top"><a href="#Customizing-indexing">Customizing indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxexact"><code>idxexact</code></a>:</td><td> </td><td valign="top"><a href="#Choosing-destination-placement">Choosing destination placement</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxmarked"><code>idxmarked</code></a>:</td><td> </td><td valign="top"><a href="#Indexing-commands">Indexing commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxmarked-_0028hyperlinks_0029"><code>idxmarked <span class="roman">(hyperlinks)</span></code></a>:</td><td> </td><td valign="top"><a href="#Index-hyperlinks">Index hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxname"><code>idxname</code></a>:</td><td> </td><td valign="top"><a href="#Indexing-commands">Indexing commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxname-_0028hyperlinks_0029"><code>idxname <span class="roman">(hyperlinks)</span></code></a>:</td><td> </td><td valign="top"><a href="#Index-hyperlinks">Index hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxnameseparator"><code>idxnameseparator</code></a>:</td><td> </td><td valign="top"><a href="#Indexing-commands">Indexing commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxnone"><code>idxnone</code></a>:</td><td> </td><td valign="top"><a href="#Choosing-destination-placement">Choosing destination placement</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxpage"><code>idxpage</code></a>:</td><td> </td><td valign="top"><a href="#Choosing-destination-placement">Choosing destination placement</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxpagei"><code>idxpagei</code></a>:</td><td> </td><td valign="top"><a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxpageii"><code>idxpageii</code></a>:</td><td> </td><td valign="top"><a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxpagelistdelimiter"><code>idxpagelistdelimiter</code></a>:</td><td> </td><td valign="top"><a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxpagenum"><code>idxpagenum</code></a>:</td><td> </td><td valign="top"><a href="#Customizing-indexing">Customizing indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxpagerangedelimiter"><code>idxpagerangedelimiter</code></a>:</td><td> </td><td valign="top"><a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxpagerangedelimiter-1"><code>idxpagerangedelimiter</code></a>:</td><td> </td><td valign="top"><a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxparselist"><code>idxparselist</code></a>:</td><td> </td><td valign="top"><a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxparserange"><code>idxparserange</code></a>:</td><td> </td><td valign="top"><a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxrangebeginword"><code>idxrangebeginword</code></a>:</td><td> </td><td valign="top"><a href="#Customizing-indexing">Customizing indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxrangeendword"><code>idxrangeendword</code></a>:</td><td> </td><td valign="top"><a href="#Customizing-indexing">Customizing indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxseealsocmdword"><code>idxseealsocmdword</code></a>:</td><td> </td><td valign="top"><a href="#Customizing-indexing">Customizing indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxseecmdword"><code>idxseecmdword</code></a>:</td><td> </td><td valign="top"><a href="#Customizing-indexing">Customizing indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxsubentryseparator"><code>idxsubentryseparator</code></a>:</td><td> </td><td valign="top"><a href="#Customizing-indexing">Customizing indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxsubmarked"><code>idxsubmarked</code></a>:</td><td> </td><td valign="top"><a href="#Indexing-commands">Indexing commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxsubmarked-_0028hyperlinks_0029"><code>idxsubmarked <span class="roman">(hyperlinks)</span></code></a>:</td><td> </td><td valign="top"><a href="#Index-hyperlinks">Index hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ifempty"><code>ifempty</code></a>:</td><td> </td><td valign="top"><a href="#g_t_005cifempty">\ifempty</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-iffileexists"><code>iffileexists</code></a>:</td><td> </td><td valign="top"><a href="#Auxiliary-files">Auxiliary files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ifidx"><code>ifidx</code></a>:</td><td> </td><td valign="top"><a href="#Indexing">Indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ifindexproofing"><code>ifindexproofing</code></a>:</td><td> </td><td valign="top"><a href="#Proofing-index-terms">Proofing index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ifinteger"><code>ifinteger</code></a>:</td><td> </td><td valign="top"><a href="#g_t_005cifinteger-and-_005cisinteger">\ifinteger and \isinteger</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ifpdf"><code>ifpdf</code></a>:</td><td> </td><td valign="top"><a href="#Checking-for-PDF-output">Checking for PDF output</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ifpdf-1"><code>ifpdf</code></a>:</td><td> </td><td valign="top"><a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ifrewritetocfile"><code>ifrewritetocfile</code></a>:</td><td> </td><td valign="top"><a href="#Reading-the-_002etoc-file">Reading the .toc file</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ifundefined"><code>ifundefined</code></a>:</td><td> </td><td valign="top"><a href="#g_t_005cifundefined">\ifundefined</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-includegraphics"><code>includegraphics</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-indexfilebasename"><code>indexfilebasename</code></a>:</td><td> </td><td valign="top"><a href="#Typesetting-an-index">Typesetting an index</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-indexfonts"><code>indexfonts</code></a>:</td><td> </td><td valign="top"><a href="#Typesetting-an-index">Typesetting an index</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-indexitem-hook"><code>indexitem <span class="roman">hook</span></code></a>:</td><td> </td><td valign="top"><a href="#Typesetting-an-index">Typesetting an index</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-indexprooffont"><code>indexprooffont</code></a>:</td><td> </td><td valign="top"><a href="#Proofing-index-terms">Proofing index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-indexproofingfalse"><code>indexproofingfalse</code></a>:</td><td> </td><td valign="top"><a href="#Proofing-index-terms">Proofing index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-indexproofingtrue"><code>indexproofingtrue</code></a>:</td><td> </td><td valign="top"><a href="#Proofing-index-terms">Proofing index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-indexproofterm"><code>indexproofterm</code></a>:</td><td> </td><td valign="top"><a href="#Proofing-index-terms">Proofing index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-indexproofunbox"><code>indexproofunbox</code></a>:</td><td> </td><td valign="top"><a href="#Proofing-index-terms">Proofing index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-indexsee"><code>indexsee</code></a>:</td><td> </td><td valign="top"><a href="#Customizing-indexing">Customizing indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-indexsee-1"><code>indexsee</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-in-see-and-see-also-entries">Hyperlinks in see and see also entries</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-indexseealso"><code>indexseealso</code></a>:</td><td> </td><td valign="top"><a href="#Customizing-indexing">Customizing indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-indexseealso-1"><code>indexseealso</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-in-see-and-see-also-entries">Hyperlinks in see and see also entries</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-indexseealsowords"><code>indexseealsowords</code></a>:</td><td> </td><td valign="top"><a href="#Customizing-indexing">Customizing indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-indexseeword"><code>indexseeword</code></a>:</td><td> </td><td valign="top"><a href="#Customizing-indexing">Customizing indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-indexsetmargins"><code>indexsetmargins</code></a>:</td><td> </td><td valign="top"><a href="#Proofing-index-terms">Proofing index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-indexspace"><code>indexspace</code></a>:</td><td> </td><td valign="top"><a href="#Typesetting-an-index">Typesetting an index</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-innerdef"><code>innerdef</code></a>:</td><td> </td><td valign="top"><a href="#Allocation-macros">Allocation macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-innerinnerdef"><code>innerinnerdef</code></a>:</td><td> </td><td valign="top"><a href="#Allocation-macros">Allocation macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-innernewbox"><code>innernewbox</code></a>:</td><td> </td><td valign="top"><a href="#Allocation-macros">Allocation macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-innernewcount"><code>innernewcount</code></a>:</td><td> </td><td valign="top"><a href="#Allocation-macros">Allocation macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-innernewdimen"><code>innernewdimen</code></a>:</td><td> </td><td valign="top"><a href="#Allocation-macros">Allocation macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-innernewfam"><code>innernewfam</code></a>:</td><td> </td><td valign="top"><a href="#Allocation-macros">Allocation macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-innernewhelp"><code>innernewhelp</code></a>:</td><td> </td><td valign="top"><a href="#Allocation-macros">Allocation macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-innernewif"><code>innernewif</code></a>:</td><td> </td><td valign="top"><a href="#Allocation-macros">Allocation macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-innernewinsert"><code>innernewinsert</code></a>:</td><td> </td><td valign="top"><a href="#Allocation-macros">Allocation macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-innernewlanguage"><code>innernewlanguage</code></a>:</td><td> </td><td valign="top"><a href="#Allocation-macros">Allocation macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-innernewread"><code>innernewread</code></a>:</td><td> </td><td valign="top"><a href="#Allocation-macros">Allocation macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-innernewskip"><code>innernewskip</code></a>:</td><td> </td><td valign="top"><a href="#Allocation-macros">Allocation macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-innernewtoks"><code>innernewtoks</code></a>:</td><td> </td><td valign="top"><a href="#Allocation-macros">Allocation macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-innernewwrite"><code>innernewwrite</code></a>:</td><td> </td><td valign="top"><a href="#Allocation-macros">Allocation macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-input"><code>input</code></a>:</td><td> </td><td valign="top"><a href="#Environment-for-loading-packages">Environment for loading packages</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-insidemargin"><code>insidemargin</code></a>:</td><td> </td><td valign="top"><a href="#Proofing-index-terms">Proofing index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-interfootnoteskip"><code>interfootnoteskip</code></a>:</td><td> </td><td valign="top"><a href="#Footnotes">Footnotes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-interitemskip"><code>interitemskip</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-lists">Formatting lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-interitemskipamount"><code>interitemskipamount</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-lists">Formatting lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-isinteger"><code>isinteger</code></a>:</td><td> </td><td valign="top"><a href="#g_t_005cifinteger-and-_005cisinteger">\ifinteger and \isinteger</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-item-in-indexes"><code>item <span class="roman">in indexes</span></code></a>:</td><td> </td><td valign="top"><a href="#Typesetting-an-index">Typesetting an index</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-itemletter"><code>itemletter</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-lists">Formatting lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-itemnumber"><code>itemnumber</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-lists">Formatting lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ituline"><code>ituline</code></a>:</td><td> </td><td valign="top"><a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Macro-index_fn_letter-J">J</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-jobname"><code>jobname</code></a>:</td><td> </td><td valign="top"><a href="#Citations">Citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-jobname-1"><code>jobname</code></a>:</td><td> </td><td valign="top"><a href="#Typesetting-an-index">Typesetting an index</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-jobname-2"><code>jobname</code></a>:</td><td> </td><td valign="top"><a href="#Auxiliary-files">Auxiliary files</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Macro-index_fn_letter-L">L</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-LAMSTeX-1"><code>LAMSTeX</code></a>:</td><td> </td><td valign="top"><a href="#Logos">Logos</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-LaTeX-4"><code>LaTeX</code></a>:</td><td> </td><td valign="top"><a href="#Logos">Logos</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-lbracechar"><code>lbracechar</code></a>:</td><td> </td><td valign="top"><a href="#Category-codes">Category codes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-left-_0028destination-option_0029"><code>left <span class="roman">(destination option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-left-_0028destination-option_0029-1"><code>left <span class="roman">(destination option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-left-_0028destination-option_0029-2"><code>left <span class="roman">(destination option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-left-_0028destination-option_0029-3"><code>left <span class="roman">(destination option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-left-_0028destination-option_0029-4"><code>left <span class="roman">(destination option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-leftdisplayindent"><code>leftdisplayindent</code></a>:</td><td> </td><td valign="top"><a href="#Displays">Displays</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-leftdisplays"><code>leftdisplays</code></a>:</td><td> </td><td valign="top"><a href="#Displays">Displays</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-leftdisplaysetup"><code>leftdisplaysetup</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-displays">Formatting displays</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-lefteqnumbers"><code>lefteqnumbers</code></a>:</td><td> </td><td valign="top"><a href="#Displays">Displays</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-leftmargin"><code>leftmargin</code></a>:</td><td> </td><td valign="top"><a href="#Margins">Margins</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-leqalignno"><code>leqalignno</code></a>:</td><td> </td><td valign="top"><a href="#Displays">Displays</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-leqalignno-1"><code>leqalignno</code></a>:</td><td> </td><td valign="top"><a href="#Displays">Displays</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-leqno"><code>leqno</code></a>:</td><td> </td><td valign="top"><a href="#Displays">Displays</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-letreturn"><code>letreturn</code></a>:</td><td> </td><td valign="top"><a href="#Category-codes">Category codes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-letter"><code>letter</code></a>:</td><td> </td><td valign="top"><a href="#Category-codes">Category codes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-lft"><code>lft</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-li"><code>li</code></a>:</td><td> </td><td valign="top"><a href="#Lists">Lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-li-_0028hyperlinks_0029"><code>li <span class="roman">(hyperlinks)</span></code></a>:</td><td> </td><td valign="top"><a href="#List-hyperlinks">List hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-linenumberedlisting"><code>linenumberedlisting</code></a>:</td><td> </td><td valign="top"><a href="#Verbatim-listing">Verbatim listing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-linenumberedlisting-1"><code>linenumberedlisting</code></a>:</td><td> </td><td valign="top"><a href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029">Highlighting TeX comments in listings (lscommnt.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-listcompact"><code>listcompact</code></a>:</td><td> </td><td valign="top"><a href="#Lists">Lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-listing"><code>listing</code></a>:</td><td> </td><td valign="top"><a href="#Verbatim-listing">Verbatim listing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-listing-1"><code>listing</code></a>:</td><td> </td><td valign="top"><a href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029">Highlighting TeX comments in listings (lscommnt.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-listingfont"><code>listingfont</code></a>:</td><td> </td><td valign="top"><a href="#Verbatim-listing">Verbatim listing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-listleftindent"><code>listleftindent</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-lists">Formatting lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-listmarkerspace"><code>listmarkerspace</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-lists">Formatting lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-listrightindent"><code>listrightindent</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-lists">Formatting lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-loggingall"><code>loggingall</code></a>:</td><td> </td><td valign="top"><a href="#Diagnostics">Diagnostics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-loop"><code>loop</code></a>:</td><td> </td><td valign="top"><a href="#Iteration">Iteration</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Macro-index_fn_letter-M">M</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-makeactive"><code>makeactive</code></a>:</td><td> </td><td valign="top"><a href="#Category-codes">Category codes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-makeatletter"><code>makeatletter</code></a>:</td><td> </td><td valign="top"><a href="#Category-codes">Category codes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-makeatother"><code>makeatother</code></a>:</td><td> </td><td valign="top"><a href="#Category-codes">Category codes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-makeblankbox"><code>makeblankbox</code></a>:</td><td> </td><td valign="top"><a href="#Boxes">Boxes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-makecolumns"><code>makecolumns</code></a>:</td><td> </td><td valign="top"><a href="#Tables">Tables</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-makeheadline"><code>makeheadline</code></a>:</td><td> </td><td valign="top"><a href="#Proofing-index-terms">Proofing index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mapdown"><code>mapdown</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mapdown-1"><code>mapdown</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mapleft"><code>mapleft</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mapleft-1"><code>mapleft</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mapright"><code>mapright</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mapright-1"><code>mapright</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mapup"><code>mapup</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mapup-1"><code>mapup</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-matrix"><code>matrix</code></a>:</td><td> </td><td valign="top"><a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mbox"><code>mbox</code></a>:</td><td> </td><td valign="top"><a href="#Commands-from-LaTeX">Commands from LaTeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-MF"><code>MF</code></a>:</td><td> </td><td valign="top"><a href="#Logos">Logos</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-monthname"><code>monthname</code></a>:</td><td> </td><td valign="top"><a href="#Time-of-day">Time of day</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-morphdist"><code>morphdist</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-morphdist-1"><code>morphdist</code></a>:</td><td> </td><td valign="top"><a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Macro-index_fn_letter-N">N</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-name-_0028hyperlink-type_0029"><code>name <span class="roman">(hyperlink type)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-hypertex">Link types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-name-_0028hyperlink-type_0029-1"><code>name <span class="roman">(hyperlink type)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-new_2026"><code>new…</code></a>:</td><td> </td><td valign="top"><a href="#Allocation-macros">Allocation macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-newblock"><code>newblock</code></a>:</td><td> </td><td valign="top"><a href="#Commands-from-LaTeX">Commands from LaTeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-newcommand"><code>newcommand</code></a>:</td><td> </td><td valign="top"><a href="#Commands-from-LaTeX">Commands from LaTeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-newwin-_0028hyperlink-option_0029"><code>newwin <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-newwin-_0028hyperlink-option_0029-1"><code>newwin <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-newwin-_0028hyperlink-option_0029-2"><code>newwin <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-noarrow"><code>noarrow</code></a>:</td><td> </td><td valign="top"><a href="#Invoking-Eplain">Invoking Eplain</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-noauxfile"><code>noauxfile</code></a>:</td><td> </td><td valign="top"><a href="#Invoking-Eplain">Invoking Eplain</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-nobibtex"><code>nobibtex</code></a>:</td><td> </td><td valign="top"><a href="#Invoking-Eplain">Invoking Eplain</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-nocite"><code>nocite</code></a>:</td><td> </td><td valign="top"><a href="#Citations">Citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-nolastlinelisting"><code>nolastlinelisting</code></a>:</td><td> </td><td valign="top"><a href="#Verbatim-listing">Verbatim listing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-nolastlinelisting-1"><code>nolastlinelisting</code></a>:</td><td> </td><td valign="top"><a href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029">Highlighting TeX comments in listings (lscommnt.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-nolinks-_0028hyperlink-driver_0029"><code>nolinks <span class="roman">(hyperlink driver)</span></code></a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-normalbaselineskip"><code>normalbaselineskip</code></a>:</td><td> </td><td valign="top"><a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-num-_0028hyperlink-type_0029"><code>num <span class="roman">(hyperlink type)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-numberedfootnote"><code>numberedfootnote</code></a>:</td><td> </td><td valign="top"><a href="#Footnotes">Footnotes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-numberedfootnote-_0028hyperlinks_0029"><code>numberedfootnote <span class="roman">(hyperlinks)</span></code></a>:</td><td> </td><td valign="top"><a href="#Footnote-hyperlinks">Footnote hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-numberedlist"><code>numberedlist</code></a>:</td><td> </td><td valign="top"><a href="#Lists">Lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-numberedlistdepth"><code>numberedlistdepth</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-lists">Formatting lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-numberedmarker"><code>numberedmarker</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-lists">Formatting lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-numbername"><code>numbername</code></a>:</td><td> </td><td valign="top"><a href="#Writing-out-numbers">Writing out numbers</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Macro-index_fn_letter-O">O</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-obeywhitespace"><code>obeywhitespace</code></a>:</td><td> </td><td valign="top"><a href="#Obeying-spaces">Obeying spaces</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-orderedlist"><code>orderedlist</code></a>:</td><td> </td><td valign="top"><a href="#Lists">Lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-other"><code>other</code></a>:</td><td> </td><td valign="top"><a href="#Category-codes">Category codes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-outer"><code>outer</code></a>:</td><td> </td><td valign="top"><a href="#Allocation-macros">Allocation macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-outsidemargin"><code>outsidemargin</code></a>:</td><td> </td><td valign="top"><a href="#Proofing-index-terms">Proofing index terms</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Macro-index_fn_letter-P">P</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-page-_0028hyperlink-type_0029"><code>page <span class="roman">(hyperlink type)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pagefit-_0028hyperlink-option_0029"><code>pagefit <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pagefit-_0028hyperlink-option_0029-1"><code>pagefit <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pagefit-_0028hyperlink-option_0029-2"><code>pagefit <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pagefit-_0028hyperlink-option_0029-3"><code>pagefit <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pageno"><code>pageno</code></a>:</td><td> </td><td valign="top"><a href="#Proofing-index-terms">Proofing index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pagetotal"><code>pagetotal</code></a>:</td><td> </td><td valign="top"><a href="#Multiple-columns">Multiple columns</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-paperheight"><code>paperheight</code></a>:</td><td> </td><td valign="top"><a href="#Margins">Margins</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-paperwidth"><code>paperwidth</code></a>:</td><td> </td><td valign="top"><a href="#Margins">Margins</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-parindent-in-indexes"><code>parindent <span class="roman">in indexes</span></code></a>:</td><td> </td><td valign="top"><a href="#Typesetting-an-index">Typesetting an index</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-path"><code>path</code></a>:</td><td> </td><td valign="top"><a href="#Paths">Paths</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pdfoutput"><code>pdfoutput</code></a>:</td><td> </td><td valign="top"><a href="#Checking-for-PDF-output">Checking for PDF output</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pdftex-_0028hyperlink-driver_0029"><code>pdftex <span class="roman">(hyperlink driver)</span></code></a>:</td><td> </td><td valign="top"><a href="#Hyperlink-drivers-pdftex-and-dvipdfm">Hyperlink drivers pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-percentchar"><code>percentchar</code></a>:</td><td> </td><td valign="top"><a href="#Category-codes">Category codes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-phantomeqlabel"><code>phantomeqlabel</code></a>:</td><td> </td><td valign="top"><a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-phantomeqnumber"><code>phantomeqnumber</code></a>:</td><td> </td><td valign="top"><a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-previouseverydisplay"><code>previouseverydisplay</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-displays">Formatting displays</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-printbetweencitations"><code>printbetweencitations</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-citations">Formatting citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-printcitefinish"><code>printcitefinish</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-citations">Formatting citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-printcitenote"><code>printcitenote</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-citations">Formatting citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-printcitestart"><code>printcitestart</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-citations">Formatting citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-printitem"><code>printitem</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-lists">Formatting lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-printlistinglineno"><code>printlistinglineno</code></a>:</td><td> </td><td valign="top"><a href="#Verbatim-listing">Verbatim listing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-printlistinglineno-1"><code>printlistinglineno</code></a>:</td><td> </td><td valign="top"><a href="#Verbatim-listing">Verbatim listing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-providecommand"><code>providecommand</code></a>:</td><td> </td><td valign="top"><a href="#Commands-from-LaTeX">Commands from LaTeX</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Macro-index_fn_letter-Q">Q</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-quadcolumns"><code>quadcolumns</code></a>:</td><td> </td><td valign="top"><a href="#Multiple-columns">Multiple columns</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Macro-index_fn_letter-R">R</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-raggedright-for-index-entries"><code>raggedright <span class="roman">for index entries</span></code></a>:</td><td> </td><td valign="top"><a href="#Typesetting-an-index">Typesetting an index</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-raise-_0028hyperlink-option_0029"><code>raise <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-raise-_0028hyperlink-option_0029-1"><code>raise <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Setting-group-options">Setting group options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-raw-_0028destination-type_0029"><code>raw <span class="roman">(destination type)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-hypertex">Destination types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-raw-_0028destination-type_0029-1"><code>raw <span class="roman">(destination type)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-raw-_0028hyperlink-type_0029"><code>raw <span class="roman">(hyperlink type)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-hypertex">Link types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-raw-_0028hyperlink-type_0029-1"><code>raw <span class="roman">(hyperlink type)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-rbracechar"><code>rbracechar</code></a>:</td><td> </td><td valign="top"><a href="#Category-codes">Category codes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-readindexfile"><code>readindexfile</code></a>:</td><td> </td><td valign="top"><a href="#Typesetting-an-index">Typesetting an index</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-readindexfile-_0028hyperlinks_0029"><code>readindexfile <span class="roman">(hyperlinks)</span></code></a>:</td><td> </td><td valign="top"><a href="#Index-hyperlinks">Index hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-readtocfile"><code>readtocfile</code></a>:</td><td> </td><td valign="top"><a href="#Reading-the-_002etoc-file">Reading the .toc file</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ref"><code>ref</code></a>:</td><td> </td><td valign="top"><a href="#Using-generic-references">Using generic references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ref-1"><code>ref</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ref-_0028hyperlinks_0029"><code>ref <span class="roman">(hyperlinks)</span></code></a>:</td><td> </td><td valign="top"><a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-refn"><code>refn</code></a>:</td><td> </td><td valign="top"><a href="#Using-generic-references">Using generic references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-refn-_0028hyperlinks_0029"><code>refn <span class="roman">(hyperlinks)</span></code></a>:</td><td> </td><td valign="top"><a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-refs"><code>refs</code></a>:</td><td> </td><td valign="top"><a href="#Using-generic-references">Using generic references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-refs-_0028hyperlinks_0029"><code>refs <span class="roman">(hyperlinks)</span></code></a>:</td><td> </td><td valign="top"><a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-refspace"><code>refspace</code></a>:</td><td> </td><td valign="top"><a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-refspace-1"><code>refspace</code></a>:</td><td> </td><td valign="top"><a href="#Page-reference-hyperlinks">Page reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-reftie"><code>reftie</code></a>:</td><td> </td><td valign="top"><a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-reftie-1"><code>reftie</code></a>:</td><td> </td><td valign="top"><a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-reftie-2"><code>reftie</code></a>:</td><td> </td><td valign="top"><a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-renewcommand"><code>renewcommand</code></a>:</td><td> </td><td valign="top"><a href="#Commands-from-LaTeX">Commands from LaTeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-repeat"><code>repeat</code></a>:</td><td> </td><td valign="top"><a href="#Iteration">Iteration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-resetatcatcode"><code>resetatcatcode</code></a>:</td><td> </td><td valign="top"><a href="#Environment-for-loading-packages">Environment for loading packages</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-resetatcatcode-1"><code>resetatcatcode</code></a>:</td><td> </td><td valign="top"><a href="#Category-codes">Category codes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-rewritetocfile-_0028conditional_0029"><code>rewritetocfile <span class="roman">(conditional)</span></code></a>:</td><td> </td><td valign="top"><a href="#Reading-the-_002etoc-file">Reading the .toc file</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-right-_0028destination-option_0029"><code>right <span class="roman">(destination option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-right-_0028destination-option_0029-1"><code>right <span class="roman">(destination option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-righteqnumbers"><code>righteqnumbers</code></a>:</td><td> </td><td valign="top"><a href="#Displays">Displays</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-rightmargin"><code>rightmargin</code></a>:</td><td> </td><td valign="top"><a href="#Margins">Margins</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-rotatebox"><code>rotatebox</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-rt"><code>rt</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Macro-index_fn_letter-S">S</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-sanitize"><code>sanitize</code></a>:</td><td> </td><td valign="top"><a href="#Converting-to-characters">Converting to characters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-sarrowlength"><code>sarrowlength</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-sarrowlength-1"><code>sarrowlength</code></a>:</td><td> </td><td valign="top"><a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-sc"><code>sc</code></a>:</td><td> </td><td valign="top"><a href="#Commands-from-LaTeX">Commands from LaTeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-see-for-index-entries"><code>see <span class="roman">for index entries</span></code></a>:</td><td> </td><td valign="top"><a href="#Modifying-index-entries">Modifying index entries</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-see-for-index-entries-1"><code>see <span class="roman">for index entries</span></code></a>:</td><td> </td><td valign="top"><a href="#Customizing-indexing">Customizing indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-seealso-for-index-entries"><code>seealso <span class="roman">for index entries</span></code></a>:</td><td> </td><td valign="top"><a href="#Modifying-index-entries">Modifying index entries</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-seevariant"><code>seevariant</code></a>:</td><td> </td><td valign="top"><a href="#Customizing-indexing">Customizing indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-setidxpagelistdelimiter"><code>setidxpagelistdelimiter</code></a>:</td><td> </td><td valign="top"><a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-setidxpagerangedelimiter"><code>setidxpagerangedelimiter</code></a>:</td><td> </td><td valign="top"><a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-setproperty"><code>setproperty</code></a>:</td><td> </td><td valign="top"><a href="#Properties">Properties</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-setuplistinghook"><code>setuplistinghook</code></a>:</td><td> </td><td valign="top"><a href="#Verbatim-listing">Verbatim listing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-setuplistinghook-1"><code>setuplistinghook</code></a>:</td><td> </td><td valign="top"><a href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029">Highlighting TeX comments in listings (lscommnt.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-sidx"><code>sidx</code></a>:</td><td> </td><td valign="top"><a href="#Indexing-commands">Indexing commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-sidxmarked"><code>sidxmarked</code></a>:</td><td> </td><td valign="top"><a href="#Indexing-commands">Indexing commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-sidxname"><code>sidxname</code></a>:</td><td> </td><td valign="top"><a href="#Indexing-commands">Indexing commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-sidxsubmarked"><code>sidxsubmarked</code></a>:</td><td> </td><td valign="top"><a href="#Indexing-commands">Indexing commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-singlecolumn"><code>singlecolumn</code></a>:</td><td> </td><td valign="top"><a href="#Multiple-columns">Multiple columns</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-sline"><code>sline</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-sline-1"><code>sline</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-SLiTeX-1"><code>SLiTeX</code></a>:</td><td> </td><td valign="top"><a href="#Logos">Logos</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-special"><code>special</code></a>:</td><td> </td><td valign="top"><a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-specialpathdelimiters-_0028conditional_0029"><code>specialpathdelimiters <span class="roman">(conditional)</span></code></a>:</td><td> </td><td valign="top"><a href="#Paths">Paths</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-subeqnumber"><code>subeqnumber</code></a>:</td><td> </td><td valign="top"><a href="#Subequation-references">Subequation references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-subitem-in-indexes"><code>subitem <span class="roman">in indexes</span></code></a>:</td><td> </td><td valign="top"><a href="#Typesetting-an-index">Typesetting an index</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-subsubitem-in-indexes"><code>subsubitem <span class="roman">in indexes</span></code></a>:</td><td> </td><td valign="top"><a href="#Typesetting-an-index">Typesetting an index</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Macro-index_fn_letter-T">T</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-testfileexistence"><code>testfileexistence</code></a>:</td><td> </td><td valign="top"><a href="#Auxiliary-files">Auxiliary files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TeX"><code>TeX</code></a>:</td><td> </td><td valign="top"><a href="#Logos">Logos</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-textbf"><code>textbf</code></a>:</td><td> </td><td valign="top"><a href="#Commands-from-LaTeX">Commands from LaTeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-timestamp"><code>timestamp</code></a>:</td><td> </td><td valign="top"><a href="#Time-of-day">Time of day</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-timestring"><code>timestring</code></a>:</td><td> </td><td valign="top"><a href="#Time-of-day">Time of day</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-toc_2026entry"><code>toc…entry</code></a>:</td><td> </td><td valign="top"><a href="#Writing-the-_002etoc-file">Writing the .toc file</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-toc_2026entry-1"><code>toc…entry</code></a>:</td><td> </td><td valign="top"><a href="#Writing-the-_002etoc-file">Writing the .toc file</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tocfilebasename"><code>tocfilebasename</code></a>:</td><td> </td><td valign="top"><a href="#Changing-the-_002etoc-file_0027s-root-name">Changing the .toc file's root name</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-today"><code>today</code></a>:</td><td> </td><td valign="top"><a href="#Time-of-day">Time of day</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-top-_0028destination-option_0029"><code>top <span class="roman">(destination option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-top-_0028destination-option_0029-1"><code>top <span class="roman">(destination option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-top-_0028destination-option_0029-2"><code>top <span class="roman">(destination option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-top-_0028destination-option_0029-3"><code>top <span class="roman">(destination option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-top-_0028destination-option_0029-4"><code>top <span class="roman">(destination option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-topmargin"><code>topmargin</code></a>:</td><td> </td><td valign="top"><a href="#Margins">Margins</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tracingall"><code>tracingall</code></a>:</td><td> </td><td valign="top"><a href="#Diagnostics">Diagnostics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tracingboxes"><code>tracingboxes</code></a>:</td><td> </td><td valign="top"><a href="#Diagnostics">Diagnostics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tracingoff"><code>tracingoff</code></a>:</td><td> </td><td valign="top"><a href="#Diagnostics">Diagnostics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-triplecolumns"><code>triplecolumns</code></a>:</td><td> </td><td valign="top"><a href="#Multiple-columns">Multiple columns</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tt"><code>tt</code></a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ttfamily"><code>ttfamily</code></a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Macro-index_fn_letter-U">U</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-uncatcodespecials"><code>uncatcodespecials</code></a>:</td><td> </td><td valign="top"><a href="#Verbatim-listing">Verbatim listing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-uncatcodespecials-1"><code>uncatcodespecials</code></a>:</td><td> </td><td valign="top"><a href="#Category-codes">Category codes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-unorderedlist"><code>unorderedlist</code></a>:</td><td> </td><td valign="top"><a href="#Lists">Lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-unorderedlistdepth"><code>unorderedlistdepth</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-lists">Formatting lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-unorderedmarker"><code>unorderedmarker</code></a>:</td><td> </td><td valign="top"><a href="#Formatting-lists">Formatting lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-url"><code>url</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-url-_0028hyperlink-type_0029"><code>url <span class="roman">(hyperlink type)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-hypertex">Link types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-url-_0028hyperlink-type_0029-1"><code>url <span class="roman">(hyperlink type)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-url-_0028hyperlinks_0029"><code>url <span class="roman">(hyperlinks)</span></code></a>:</td><td> </td><td valign="top"><a href="#URL-hyperlinks">URL hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-usepackage"><code>usepackage</code></a>:</td><td> </td><td valign="top"><a href="#The-_005cusepackage-command">The \usepackage command</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Macro-index_fn_letter-V">V</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-varrowlength"><code>varrowlength</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-varrowlength-1"><code>varrowlength</code></a>:</td><td> </td><td valign="top"><a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-vchannel"><code>vchannel</code></a>:</td><td> </td><td valign="top"><a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-verbatim"><code>verbatim</code></a>:</td><td> </td><td valign="top"><a href="#Verbatim-listing">Verbatim listing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-verbatimescapechar"><code>verbatimescapechar</code></a>:</td><td> </td><td valign="top"><a href="#Verbatim-listing">Verbatim listing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-vgrid"><code>vgrid</code></a>:</td><td> </td><td valign="top"><a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-vgrid-1"><code>vgrid</code></a>:</td><td> </td><td valign="top"><a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-vline"><code>vline</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-vmorphposn"><code>vmorphposn</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-vmorphposn-1"><code>vmorphposn</code></a>:</td><td> </td><td valign="top"><a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-vmorphposndn"><code>vmorphposndn</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-vmorphposndn-1"><code>vmorphposndn</code></a>:</td><td> </td><td valign="top"><a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-vmorphposnlft"><code>vmorphposnlft</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-vmorphposnlft-1"><code>vmorphposnlft</code></a>:</td><td> </td><td valign="top"><a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-vmorphposnrt"><code>vmorphposnrt</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-vmorphposnrt-1"><code>vmorphposnrt</code></a>:</td><td> </td><td valign="top"><a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-vmorphposnup"><code>vmorphposnup</code></a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-vmorphposnup-1"><code>vmorphposnup</code></a>:</td><td> </td><td valign="top"><a href="#Commutative-diagram-parameters">Commutative diagram parameters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-vpenalty"><code>vpenalty</code></a>:</td><td> </td><td valign="top"><a href="#Mode_002dspecific-penalties">Mode-specific penalties</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-vruledefaultwidth"><code>vruledefaultwidth</code></a>:</td><td> </td><td valign="top"><a href="#Rules">Rules</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Macro-index_fn_letter-W">W</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-width-_0028destination-option_0029"><code>width <span class="roman">(destination option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-width-_0028destination-option_0029-1"><code>width <span class="roman">(destination option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-width-_0028hyperlink-option_0029"><code>width <span class="roman">(hyperlink option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-writenumberedtocentry"><code>writenumberedtocentry</code></a>:</td><td> </td><td valign="top"><a href="#Writing-the-_002etoc-file">Writing the .toc file</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-writenumberedtocline"><code>writenumberedtocline</code></a>:</td><td> </td><td valign="top"><a href="#Writing-the-_002etoc-file">Writing the .toc file</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-writetocentry"><code>writetocentry</code></a>:</td><td> </td><td valign="top"><a href="#Writing-the-_002etoc-file">Writing the .toc file</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Macro-index_fn_letter-X">X</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-XeLaTeX-1"><code>XeLaTeX</code></a>:</td><td> </td><td valign="top"><a href="#Logos">Logos</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-XeTeX-1"><code>XeTeX</code></a>:</td><td> </td><td valign="top"><a href="#Logos">Logos</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xrdef"><code>xrdef</code></a>:</td><td> </td><td valign="top"><a href="#Page-references">Page references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xrdef-_0028hyperlinks_0029"><code>xrdef <span class="roman">(hyperlinks)</span></code></a>:</td><td> </td><td valign="top"><a href="#Page-reference-hyperlinks">Page reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xref"><code>xref</code></a>:</td><td> </td><td valign="top"><a href="#Page-references">Page references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xref-_0028hyperlinks_0029"><code>xref <span class="roman">(hyperlinks)</span></code></a>:</td><td> </td><td valign="top"><a href="#Page-reference-hyperlinks">Page reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xrefn"><code>xrefn</code></a>:</td><td> </td><td valign="top"><a href="#Using-generic-references">Using generic references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xrefn-_0028hyperlinks_0029"><code>xrefn <span class="roman">(hyperlinks)</span></code></a>:</td><td> </td><td valign="top"><a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xrefpageword"><code>xrefpageword</code></a>:</td><td> </td><td valign="top"><a href="#Page-references">Page references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xrefpageword-1"><code>xrefpageword</code></a>:</td><td> </td><td valign="top"><a href="#Page-reference-hyperlinks">Page reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xrefwarning-conditional"><code>xrefwarning <span class="roman">conditional</span></code></a>:</td><td> </td><td valign="top"><a href="#Using-generic-references">Using generic references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xrefwarningfalse"><code>xrefwarningfalse</code></a>:</td><td> </td><td valign="top"><a href="#Citations">Citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xrlabel"><code>xrlabel</code></a>:</td><td> </td><td valign="top"><a href="#Converting-to-characters">Converting to characters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xyz-_0028destination-type_0029"><code>xyz <span class="roman">(destination type)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-hypertex">Destination types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xyz-_0028destination-type_0029-1"><code>xyz <span class="roman">(destination type)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Macro-index_fn_letter-Z">Z</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-zoom-_0028destination-option_0029"><code>zoom <span class="roman">(destination option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-zoom-_0028destination-option_0029-1"><code>zoom <span class="roman">(destination option)</span></code></a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +</table> +<table><tr><th valign="top">Jump to: </th><td><a class="summary-letter" href="#Macro-index_fn_symbol-1"><b>@</b></a> + +<br> +<a class="summary-letter" href="#Macro-index_fn_letter-A"><b>A</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-B"><b>B</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-C"><b>C</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-D"><b>D</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-E"><b>E</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-F"><b>F</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-G"><b>G</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-H"><b>H</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-I"><b>I</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-J"><b>J</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-L"><b>L</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-M"><b>M</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-N"><b>N</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-O"><b>O</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-P"><b>P</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-Q"><b>Q</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-R"><b>R</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-S"><b>S</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-T"><b>T</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-U"><b>U</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-V"><b>V</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-W"><b>W</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-X"><b>X</b></a> + +<a class="summary-letter" href="#Macro-index_fn_letter-Z"><b>Z</b></a> + +</td></tr></table> + +<hr> +<a name="Concept-index"></a> +<div class="header"> +<p> +Previous: <a href="#Macro-index" accesskey="p" rel="prev">Macro index</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Macro-index" title="Index" rel="index">Index</a>]</p> +</div> +<a name="Concept-index-1"></a> +<h2 class="unnumbered">Concept index</h2> + +<table><tr><th valign="top">Jump to: </th><td><a class="summary-letter" href="#Concept-index_cp_symbol-1"><b>*</b></a> + +<a class="summary-letter" href="#Concept-index_cp_symbol-2"><b>.</b></a> + +<br> +<a class="summary-letter" href="#Concept-index_cp_letter-A"><b>A</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-B"><b>B</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-C"><b>C</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-D"><b>D</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-E"><b>E</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-F"><b>F</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-G"><b>G</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-H"><b>H</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-I"><b>I</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-J"><b>J</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-K"><b>K</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-L"><b>L</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-M"><b>M</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-N"><b>N</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-O"><b>O</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-P"><b>P</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-Q"><b>Q</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-R"><b>R</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-S"><b>S</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-T"><b>T</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-U"><b>U</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-V"><b>V</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-W"><b>W</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-X"><b>X</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-Z"><b>Z</b></a> + +</td></tr></table> +<table class="index-cp" border="0"> +<tr><td></td><th align="left">Index Entry</th><td> </td><th align="left"> Section</th></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Concept-index_cp_symbol-1">*</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002a_002dform-of-LaTeX-commands">*-form of LaTeX commands</a>:</td><td> </td><td valign="top"><a href="#Commands-from-LaTeX">Commands from LaTeX</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Concept-index_cp_symbol-2">.</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002eaux-file"><code>.aux <span class="roman">file</span></code></a>:</td><td> </td><td valign="top"><a href="#Citations">Citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002eaux-file-1"><code>.aux <span class="roman">file</span></code></a>:</td><td> </td><td valign="top"><a href="#Cross_002dreferences">Cross-references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002ebbl-file"><code>.bbl <span class="roman">file</span></code></a>:</td><td> </td><td valign="top"><a href="#Citations">Citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002ebib-file"><code>.bib <span class="roman">file</span></code></a>:</td><td> </td><td valign="top"><a href="#Citations">Citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002ebst-files"><code>.bst <span class="roman">files</span></code></a>:</td><td> </td><td valign="top"><a href="#Citations">Citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002ecls-files"><code>.cls <span class="roman">files</span></code></a>:</td><td> </td><td valign="top"><a href="#Loading-LaTeX-packages">Loading LaTeX packages</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002eeps-files"><code>.eps <span class="roman">files</span></code></a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002eeps-files-1"><code>.eps <span class="roman">files</span></code></a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002efmt-file"><code>.fmt <span class="roman">file</span></code></a>:</td><td> </td><td valign="top"><a href="#Installation">Installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002efmt-file-1"><code>.fmt <span class="roman">file</span></code></a>:</td><td> </td><td valign="top"><a href="#Invoking-Eplain">Invoking Eplain</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002eidx-files"><code>.idx <span class="roman">files</span></code></a>:</td><td> </td><td valign="top"><a href="#Indexing">Indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002eidx-files-1"><code>.idx <span class="roman">files</span></code></a>:</td><td> </td><td valign="top"><a href="#Index-hyperlinks">Index hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002eind-files"><code>.ind <span class="roman">files</span></code></a>:</td><td> </td><td valign="top"><a href="#Indexing">Indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002eind-files-1"><code>.ind <span class="roman">files</span></code></a>:</td><td> </td><td valign="top"><a href="#Index-hyperlinks">Index hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002epdf-files"><code>.pdf <span class="roman">files</span></code></a>:</td><td> </td><td valign="top"><a href="#Checking-for-PDF-output">Checking for PDF output</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002epdf-files-1"><code>.pdf <span class="roman">files</span></code></a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002epdf-files-2"><code>.pdf <span class="roman">files</span></code></a>:</td><td> </td><td valign="top"><a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002eps-files"><code>.ps <span class="roman">files</span></code></a>:</td><td> </td><td valign="top"><a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002esty-files"><code>.sty <span class="roman">files</span></code></a>:</td><td> </td><td valign="top"><a href="#Loading-LaTeX-packages">Loading LaTeX packages</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-_002etoc-file"><code>.toc <span class="roman">file</span></code></a>:</td><td> </td><td valign="top"><a href="#Contents">Contents</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Concept-index_cp_letter-A">A</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-active-characters">active characters</a>:</td><td> </td><td valign="top"><a href="#Category-codes">Category codes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-after-index-terms">after index terms</a>:</td><td> </td><td valign="top"><a href="#Customizing-indexing">Customizing indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-alignments">alignments</a>:</td><td> </td><td valign="top"><a href="#Tables">Tables</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-all-groups_002c-specifying">all groups, specifying</a>:</td><td> </td><td valign="top"><a href="#Setting-group-types">Setting group types</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-allocation-macros">allocation macros</a>:</td><td> </td><td valign="top"><a href="#Allocation-macros">Allocation macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-alphanumeric-references">alphanumeric references</a>:</td><td> </td><td valign="top"><a href="#Citations">Citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-AMSLaTeX">AMSLaTeX</a>:</td><td> </td><td valign="top"><a href="#Logos">Logos</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-amsppt_002esty"><code>amsppt.sty</code></a>:</td><td> </td><td valign="top"><a href="#Invoking-Eplain">Invoking Eplain</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-AMSTeX">AMSTeX</a>:</td><td> </td><td valign="top"><a href="#Logos">Logos</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-AMSTeX-conflicts">AMSTeX conflicts</a>:</td><td> </td><td valign="top"><a href="#Invoking-Eplain">Invoking Eplain</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-arguments_002c-ignoring">arguments, ignoring</a>:</td><td> </td><td valign="top"><a href="#Macro-arguments">Macro arguments</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-arrows">arrows</a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-atom">atom</a>:</td><td> </td><td valign="top"><a href="#Properties">Properties</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-autopict_002esty"><code>autopict.sty</code></a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-avoiding-boxed-links">avoiding boxed links</a>:</td><td> </td><td valign="top"><a href="#URL-hyperlinks">URL hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-avoiding-boxed-links-1">avoiding boxed links</a>:</td><td> </td><td valign="top"><a href="#Setting-default-types-and-options">Setting default types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-axuiliary-files_002c-existence-of">axuiliary files, existence of</a>:</td><td> </td><td valign="top"><a href="#Auxiliary-files">Auxiliary files</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Concept-index_cp_letter-B">B</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-backslash-character">backslash character</a>:</td><td> </td><td valign="top"><a href="#Category-codes">Category codes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-balancing-of-columns-with-_005csinglecolumn">balancing of columns with <code>\singlecolumn</code></a>:</td><td> </td><td valign="top"><a href="#Multiple-columns">Multiple columns</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Berry_002c-Karl">Berry, Karl</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-beveled-hyperlink-border">beveled hyperlink border</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bibliographies">bibliographies</a>:</td><td> </td><td valign="top"><a href="#Citations">Citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bibliography-fonts">bibliography fonts</a>:</td><td> </td><td valign="top"><a href="#Formatting-bibliographies">Formatting bibliographies</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bibliography-items_002c-extra-space-between">bibliography items, extra space between</a>:</td><td> </td><td valign="top"><a href="#Formatting-bibliographies">Formatting bibliographies</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bibliography_002c-formatting-the">bibliography, formatting the</a>:</td><td> </td><td valign="top"><a href="#Formatting-bibliographies">Formatting bibliographies</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bibliography_002c-hyperlinks">bibliography, hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Citation-hyperlinks">Citation hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-bibtex"><code>bibtex</code></a>:</td><td> </td><td valign="top"><a href="#Invoking-Eplain">Invoking Eplain</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-BibTeX">BibTeX</a>:</td><td> </td><td valign="top"><a href="#Citations">Citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-BibTeX-1">BibTeX</a>:</td><td> </td><td valign="top"><a href="#Logos">Logos</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-black-boxes">black boxes</a>:</td><td> </td><td valign="top"><a href="#Boxes">Boxes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Borceux_002c-Francis">Borceux, Francis</a>:</td><td> </td><td valign="top"><a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-border-color_002c-hyperlink">border color, hyperlink</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-border-style_002c-hyperlink">border style, hyperlink</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-border-style_002c-hyperlink-1">border style, hyperlink</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-border-width_002c-hyperlink">border width, hyperlink</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Bott_002c-Raoul">Bott, Raoul</a>:</td><td> </td><td valign="top"><a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-boxed-links_002c-avoiding">boxed links, avoiding</a>:</td><td> </td><td valign="top"><a href="#URL-hyperlinks">URL hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-boxed-links_002c-avoiding-1">boxed links, avoiding</a>:</td><td> </td><td valign="top"><a href="#Setting-default-types-and-options">Setting default types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-boxes_002c-open">boxes, open</a>:</td><td> </td><td valign="top"><a href="#Boxes">Boxes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-braces_002c-inside-index-entries">braces, inside index entries</a>:</td><td> </td><td valign="top"><a href="#Index-entries-with-special-characters">Index entries with special characters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-brackets_002c-inside-index-entries">brackets, inside index entries</a>:</td><td> </td><td valign="top"><a href="#Index-entries-with-special-characters">Index entries with special characters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Brockett_002c-Roger-W_002e">Brockett, Roger W.</a>:</td><td> </td><td valign="top"><a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Butterfly-Lemma">Butterfly Lemma</a>:</td><td> </td><td valign="top"><a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Concept-index_cp_letter-C">C</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-Carlisle_002c-David">Carlisle, David</a>:</td><td> </td><td valign="top"><a href="#Loading-LaTeX-packages">Loading LaTeX packages</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-catcode-of-_0040">catcode of ‘<samp>@</samp>’</a>:</td><td> </td><td valign="top"><a href="#Environment-for-loading-packages">Environment for loading packages</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-category-codes">category codes</a>:</td><td> </td><td valign="top"><a href="#Category-codes">Category codes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-centering">centering</a>:</td><td> </td><td valign="top"><a href="#Justification">Justification</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-characters_002c-converting-to">characters, converting to</a>:</td><td> </td><td valign="top"><a href="#Converting-to-characters">Converting to characters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-characters_002c-special">characters, special</a>:</td><td> </td><td valign="top"><a href="#Verbatim-listing">Verbatim listing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-citations">citations</a>:</td><td> </td><td valign="top"><a href="#Citations">Citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-citations_002c-formatting">citations, formatting</a>:</td><td> </td><td valign="top"><a href="#Formatting-citations">Formatting citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-citations_002c-hyperlinks">citations, hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Citation-hyperlinks">Citation hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-citations_002c-undefined">citations, undefined</a>:</td><td> </td><td valign="top"><a href="#Citations">Citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cmtt8"><code>cmtt8</code></a>:</td><td> </td><td valign="top"><a href="#Proofing-index-terms">Proofing index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-color">color</a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-color_002c-demo">color, demo</a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-color_002c-hyperlink-border">color, hyperlink border</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-color_002c-hyperlinks">color, hyperlinks</a>:</td><td> </td><td valign="top"><a href="#URL-hyperlinks">URL hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-color_002c-hyperlinks-1">color, hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-color_002c-hyperlinks-2">color, hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Setting-default-types-and-options">Setting default types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-color_002c-problems-with-pdfTeX">color, problems with pdfTeX</a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-color_002esty"><code>color.sty</code></a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-color_002esty-1"><code>color.sty</code></a>:</td><td> </td><td valign="top"><a href="#URL-hyperlinks">URL hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-color_002esty-2"><code>color.sty</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-color_002esty-3"><code>color.sty</code></a>:</td><td> </td><td valign="top"><a href="#Setting-default-types-and-options">Setting default types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-color_002esty-4"><code>color.sty</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-colored-links">colored links</a>:</td><td> </td><td valign="top"><a href="#URL-hyperlinks">URL hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-colored-links-1">colored links</a>:</td><td> </td><td valign="top"><a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-colored-links-2">colored links</a>:</td><td> </td><td valign="top"><a href="#Setting-default-types-and-options">Setting default types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-column-balancing-with-_005csinglecolumn">column balancing with <code>\singlecolumn</code></a>:</td><td> </td><td valign="top"><a href="#Multiple-columns">Multiple columns</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-column-eject">column eject</a>:</td><td> </td><td valign="top"><a href="#Multiple-columns">Multiple columns</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-commas-after-index-terms">commas after index terms</a>:</td><td> </td><td valign="top"><a href="#Customizing-indexing">Customizing indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-commas-in-cross_002dreferencing-index-entries">commas in cross-referencing index entries</a>:</td><td> </td><td valign="top"><a href="#Customizing-indexing">Customizing indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-comments_002c-highlighting-in-listings">comments, highlighting in listings</a>:</td><td> </td><td valign="top"><a href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029">Highlighting TeX comments in listings (lscommnt.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-commutative-diagrams">commutative diagrams</a>:</td><td> </td><td valign="top"><a href="#Commutative-diagrams">Commutative diagrams</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-contents">contents</a>:</td><td> </td><td valign="top"><a href="#Contents">Contents</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-contents_002c-and-verbatim-text">contents, and verbatim text</a>:</td><td> </td><td valign="top"><a href="#Writing-the-_002etoc-file">Writing the .toc file</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-contents_002c-hyperlinks">contents, hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Contents-hyperlinks">Contents hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ConTeXt">ConTeXt</a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-continued-index-entries">continued index entries</a>:</td><td> </td><td valign="top"><a href="#Typesetting-an-index">Typesetting an index</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-covering-homotopy-property">covering homotopy property</a>:</td><td> </td><td valign="top"><a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cross_002dreferences">cross-references</a>:</td><td> </td><td valign="top"><a href="#Cross_002dreferences">Cross-references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cross_002dreferences_002c-defining-general">cross-references, defining general</a>:</td><td> </td><td valign="top"><a href="#Defining-generic-references">Defining generic references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cross_002dreferences_002c-defining-general-1">cross-references, defining general</a>:</td><td> </td><td valign="top"><a href="#Using-generic-references">Using generic references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cross_002dreferences_002c-demo">cross-references, demo</a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cross_002dreferences_002c-hyperlinks">cross-references, hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cross_002dreferencing-index-entries">cross-referencing index entries</a>:</td><td> </td><td valign="top"><a href="#Modifying-index-entries">Modifying index entries</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cross_002dreferencing-index-entries-1">cross-referencing index entries</a>:</td><td> </td><td valign="top"><a href="#Customizing-indexing">Customizing indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-CTRL_002dL_002c-and-verbatim-listing"><kbd>CTRL-L</kbd>, and verbatim listing</a>:</td><td> </td><td valign="top"><a href="#Verbatim-listing">Verbatim listing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-cube">cube</a>:</td><td> </td><td valign="top"><a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-customizing-indexing">customizing indexing</a>:</td><td> </td><td valign="top"><a href="#Customizing-indexing">Customizing indexing</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Concept-index_cp_letter-D">D</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-dashed-hyperlink-border">dashed hyperlink border</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dashed-hyperlink-border-1">dashed hyperlink border</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-date">date</a>:</td><td> </td><td valign="top"><a href="#Time-of-day">Time of day</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-default-hyperlink-options">default hyperlink options</a>:</td><td> </td><td valign="top"><a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-default-hyperlink-options-1">default hyperlink options</a>:</td><td> </td><td valign="top"><a href="#Setting-group-types">Setting group types</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-default-hyperlink-type">default hyperlink type</a>:</td><td> </td><td valign="top"><a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-default-hyperlink-type-1">default hyperlink type</a>:</td><td> </td><td valign="top"><a href="#Setting-group-types">Setting group types</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-defining-general-references">defining general references</a>:</td><td> </td><td valign="top"><a href="#Defining-generic-references">Defining generic references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-defining-general-references-1">defining general references</a>:</td><td> </td><td valign="top"><a href="#Using-generic-references">Using generic references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-definitions_002c-global">definitions, global</a>:</td><td> </td><td valign="top"><a href="#Category-codes">Category codes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-demo-files">demo files</a>:</td><td> </td><td valign="top"><a href="#Demo-files">Demo files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destgroup">destgroup</a>:</td><td> </td><td valign="top"><a href="#Implicit-hyperlinks">Implicit hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destgroup-options">destgroup options</a>:</td><td> </td><td valign="top"><a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destgroup-options-1">destgroup options</a>:</td><td> </td><td valign="top"><a href="#Setting-group-options">Setting group options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destgroup-options_002c-demo">destgroup options, demo</a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destgroup-type">destgroup type</a>:</td><td> </td><td valign="top"><a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destgroup-type-1">destgroup type</a>:</td><td> </td><td valign="top"><a href="#Setting-group-types">Setting group types</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destgroup-type_002c-demo">destgroup type, demo</a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destgroup-_0060bib_0027">destgroup ‘bib’</a>:</td><td> </td><td valign="top"><a href="#Citation-hyperlinks">Citation hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destgroup-_0060definexref_0027">destgroup ‘definexref’</a>:</td><td> </td><td valign="top"><a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destgroup-_0060eq_0027">destgroup ‘eq’</a>:</td><td> </td><td valign="top"><a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destgroup-_0060foot_0027">destgroup ‘foot’</a>:</td><td> </td><td valign="top"><a href="#Footnote-hyperlinks">Footnote hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destgroup-_0060footback_0027">destgroup ‘footback’</a>:</td><td> </td><td valign="top"><a href="#Footnote-hyperlinks">Footnote hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destgroup-_0060idx_0027">destgroup ‘idx’</a>:</td><td> </td><td valign="top"><a href="#Index-hyperlinks">Index hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destgroup-_0060li_0027">destgroup ‘li’</a>:</td><td> </td><td valign="top"><a href="#List-hyperlinks">List hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destgroup-_0060xrdef_0027">destgroup ‘xrdef’</a>:</td><td> </td><td valign="top"><a href="#Page-reference-hyperlinks">Page reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destination-group">destination group</a>:</td><td> </td><td valign="top"><a href="#Implicit-hyperlinks">Implicit hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destination-options">destination options</a>:</td><td> </td><td valign="top"><a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destination-options_002c-common">destination options, common</a>:</td><td> </td><td valign="top"><a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destination-options_002c-dvipdfm">destination options, <code>dvipdfm</code></a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destination-options_002c-hypertex">destination options, <code>hypertex</code></a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-hypertex">Destination options for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destination-options_002c-pdftex">destination options, <code>pdftex</code></a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destination-type">destination type</a>:</td><td> </td><td valign="top"><a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destination-types_002c-dvipdfm">destination types, <code>dvipdfm</code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destination-types_002c-hypertex">destination types, <code>hypertex</code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-hypertex">Destination types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destination-types_002c-pdftex">destination types, <code>pdftex</code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-default-options">destinations, default options</a>:</td><td> </td><td valign="top"><a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-default-options-1">destinations, default options</a>:</td><td> </td><td valign="top"><a href="#Setting-group-types">Setting group types</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-default-type">destinations, default type</a>:</td><td> </td><td valign="top"><a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-default-type-1">destinations, default type</a>:</td><td> </td><td valign="top"><a href="#Setting-group-types">Setting group types</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-dimensions">destinations, dimensions</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-dimensions-1">destinations, dimensions</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-dimensions-2">destinations, dimensions</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-dimensions-3">destinations, dimensions</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-dimensions-4">destinations, dimensions</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-dimensions-5">destinations, dimensions</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-dimensions-6">destinations, dimensions</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-disabling">destinations, disabling</a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-disabling-1">destinations, disabling</a>:</td><td> </td><td valign="top"><a href="#Turning-hyperlinks-on_002foff">Turning hyperlinks on/off</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-group-options">destinations, group options</a>:</td><td> </td><td valign="top"><a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-group-options-1">destinations, group options</a>:</td><td> </td><td valign="top"><a href="#Setting-group-options">Setting group options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-group-options_002c-demo">destinations, group options, demo</a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-group-type">destinations, group type</a>:</td><td> </td><td valign="top"><a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-group-type-1">destinations, group type</a>:</td><td> </td><td valign="top"><a href="#Setting-group-types">Setting group types</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-group-type_002c-demo">destinations, group type, demo</a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-in-another-file">destinations, in another file</a>:</td><td> </td><td valign="top"><a href="#Link-types-for-hypertex">Link types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-in-another-file-1">destinations, in another file</a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-in-another-file-2">destinations, in another file</a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-large-operators">destinations, large operators</a>:</td><td> </td><td valign="top"><a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-large-operators-1">destinations, large operators</a>:</td><td> </td><td valign="top"><a href="#Setting-group-options">Setting group options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-magnification">destinations, magnification</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-named">destinations, named</a>:</td><td> </td><td valign="top"><a href="#Link-types-for-hypertex">Link types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-named-1">destinations, named</a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-numbered">destinations, numbered</a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-page">destinations, page</a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-raising">destinations, raising</a>:</td><td> </td><td valign="top"><a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-URL">destinations, <acronym>URL</acronym></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-hypertex">Link types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-destinations_002c-URL-1">destinations, <acronym>URL</acronym></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-detecting-numbers">detecting numbers</a>:</td><td> </td><td valign="top"><a href="#g_t_005cifinteger-and-_005cisinteger">\ifinteger and \isinteger</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-diagnostics">diagnostics</a>:</td><td> </td><td valign="top"><a href="#Diagnostics">Diagnostics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Diagram_002c-macros-for-LaTeX">Diagram, macros for LaTeX</a>:</td><td> </td><td valign="top"><a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dimensions_002c-hyperlink">dimensions, hyperlink</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dimensions_002c-hyperlink-1">dimensions, hyperlink</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dimensions_002c-hyperlink-2">dimensions, hyperlink</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dimensions_002c-hyperlink-destination">dimensions, hyperlink destination</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dimensions_002c-hyperlink-destination-1">dimensions, hyperlink destination</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dimensions_002c-hyperlink-destination-2">dimensions, hyperlink destination</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dimensions_002c-hyperlink-destination-3">dimensions, hyperlink destination</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dimensions_002c-hyperlink-destination-4">dimensions, hyperlink destination</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dimensions_002c-hyperlink-destination-5">dimensions, hyperlink destination</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dimensions_002c-hyperlink-destination-6">dimensions, hyperlink destination</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-disabling-hyperlinks">disabling hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-disabling-hyperlinks-1">disabling hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Turning-hyperlinks-on_002foff">Turning hyperlinks on/off</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-disabling-indexes">disabling indexes</a>:</td><td> </td><td valign="top"><a href="#Indexing">Indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-displayed-math-and-hyperlinks">displayed math and hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-displayed-math-and-hyperlinks-1">displayed math and hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Setting-group-options">Setting group options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-displays_002c-left_002djustifying">displays, left-justifying</a>:</td><td> </td><td valign="top"><a href="#Displays">Displays</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-do_2026while-loops">do…while loops</a>:</td><td> </td><td valign="top"><a href="#Iteration">Iteration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-double-column-output">double column output</a>:</td><td> </td><td valign="top"><a href="#Multiple-columns">Multiple columns</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-double-columns-in-indexes">double columns in indexes</a>:</td><td> </td><td valign="top"><a href="#Typesetting-an-index">Typesetting an index</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-draft_002c-option-for-graphics_002esty"><code>draft</code>, option for <samp>graphics.sty</samp></a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-driver-dvipdfm">driver <code>dvipdfm</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlink-drivers-pdftex-and-dvipdfm">Hyperlink drivers pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-driver-hypertex">driver <code>hypertex</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-driver-nolinks">driver <code>nolinks</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-driver-pdftex">driver <code>pdftex</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlink-drivers-pdftex-and-dvipdfm">Hyperlink drivers pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-drivers_002c-hyperlink">drivers, hyperlink</a>:</td><td> </td><td valign="top"><a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dvipdfm"><code>dvipdfm</code></a>:</td><td> </td><td valign="top"><a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dvipdfm-1"><code>dvipdfm</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dvipdfm-2"><code>dvipdfm</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dvipdfm_002c-destination-options"><code>dvipdfm</code>, destination options</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dvipdfm_002c-destination-types"><code>dvipdfm</code>, destination types</a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dvipdfm_002c-hyperlink-driver"><code>dvipdfm</code>, hyperlink driver</a>:</td><td> </td><td valign="top"><a href="#Hyperlink-drivers-pdftex-and-dvipdfm">Hyperlink drivers pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dvipdfm_002c-link-options"><code>dvipdfm</code>, link options</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dvipdfm_002c-link-types"><code>dvipdfm</code>, link types</a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dvips"><code>dvips</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-dvips-1"><code>dvips</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Concept-index_cp_letter-E">E</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-Eijkhout_002c-Victor">Eijkhout, Victor</a>:</td><td> </td><td valign="top"><a href="#Iteration">Iteration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eject-in-multicolumns">eject in multicolumns</a>:</td><td> </td><td valign="top"><a href="#Multiple-columns">Multiple columns</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-electronic-mail-addresses_002c-breaking">electronic mail addresses, breaking</a>:</td><td> </td><td valign="top"><a href="#Paths">Paths</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-electronic-mail-addresses_002c-breaking-1">electronic mail addresses, breaking</a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-empty-argument_002c-checking-for">empty argument, checking for</a>:</td><td> </td><td valign="top"><a href="#g_t_005cifempty">\ifempty</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-empty-equation-labels">empty equation labels</a>:</td><td> </td><td valign="top"><a href="#Equation-references">Equation references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-empty-equation-labels_002c-referring-to">empty equation labels, referring to</a>:</td><td> </td><td valign="top"><a href="#Equation-references">Equation references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-empty-string_002c-checking-for">empty string, checking for</a>:</td><td> </td><td valign="top"><a href="#g_t_005cifempty">\ifempty</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Encapsulated-PostScript">Encapsulated PostScript</a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Encapsulated-PostScript-1">Encapsulated PostScript</a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-environments_002c-user_002ddefined">environments, user-defined</a>:</td><td> </td><td valign="top"><a href="#User_002ddefined-environments">User-defined environments</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Eplain_002c-installing">Eplain, installing</a>:</td><td> </td><td valign="top"><a href="#Installation">Installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Eplain_002c-invoking">Eplain, invoking</a>:</td><td> </td><td valign="top"><a href="#Invoking-Eplain">Invoking Eplain</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Eplain_002c-purpose-of">Eplain, purpose of</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Eplain_002c-upgrading">Eplain, upgrading</a>:</td><td> </td><td valign="top"><a href="#Installation">Installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eplain_002eaux"><code>eplain.aux</code></a>:</td><td> </td><td valign="top"><a href="#Installation">Installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eplain_002efmt"><code>eplain.fmt</code></a>:</td><td> </td><td valign="top"><a href="#Installation">Installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-EPS"><acronym>EPS</acronym></a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-EPS-1"><acronym>EPS</acronym></a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-epstopdf"><code>epstopdf</code></a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-epstopdf_002esty"><code>epstopdf.sty</code></a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-equation-labels_002c-characters-valid-in">equation labels, characters valid in</a>:</td><td> </td><td valign="top"><a href="#Equation-references">Equation references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-equation-numbers_002c-formatting-of">equation numbers, formatting of</a>:</td><td> </td><td valign="top"><a href="#Formatting-equation-references">Formatting equation references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-equation-numbers_002c-left_002dalignment">equation numbers, left-alignment</a>:</td><td> </td><td valign="top"><a href="#Displays">Displays</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-equations_002c-giving-numbers-to-all">equations, giving numbers to all</a>:</td><td> </td><td valign="top"><a href="#Equation-references">Equation references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-equations_002c-groups-of">equations, groups of</a>:</td><td> </td><td valign="top"><a href="#Subequation-references">Subequation references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-equations_002c-hyperlinks">equations, hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-equations_002c-numbering">equations, numbering</a>:</td><td> </td><td valign="top"><a href="#Equation-references">Equation references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-equations_002c-references-to">equations, references to</a>:</td><td> </td><td valign="top"><a href="#Equation-references">Equation references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-error-messages">error messages</a>:</td><td> </td><td valign="top"><a href="#Diagnostics">Diagnostics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-error-on-_005cinput">error on <code>\input</code></a>:</td><td> </td><td valign="top"><a href="#Environment-for-loading-packages">Environment for loading packages</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-escape-character_002c-changing-verbatim">escape character, changing verbatim</a>:</td><td> </td><td valign="top"><a href="#Verbatim-listing">Verbatim listing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-eTeX">eTeX</a>:</td><td> </td><td valign="top"><a href="#Logos">Logos</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-exact-index-hyperlinks">exact index hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Exact-destinations-for-index-terms">Exact destinations for index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-expansion_002c-one_002dlevel">expansion, one-level</a>:</td><td> </td><td valign="top"><a href="#g_t_005cexpandonce">\expandonce</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-explicit-hyperlinks">explicit hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Explicit-hyperlinks">Explicit hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-explicit-hyperlinks_002c-demo">explicit hyperlinks, demo</a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ExTeX">ExTeX</a>:</td><td> </td><td valign="top"><a href="#Logos">Logos</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Concept-index_cp_letter-F">F</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-file_002c-hyperlink-to">file, hyperlink to</a>:</td><td> </td><td valign="top"><a href="#Link-types-for-hypertex">Link types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-file_002c-hyperlink-to-1">file, hyperlink to</a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-file_002c-hyperlink-to-2">file, hyperlink to</a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-file_003a-links">‘<samp>file:</samp>’ links</a>:</td><td> </td><td valign="top"><a href="#General-hyperlinks">General hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-filenames_002c-breaking">filenames, breaking</a>:</td><td> </td><td valign="top"><a href="#Paths">Paths</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-filenames_002c-breaking-1">filenames, breaking</a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-files_002c-verbatim-listing-of">files, verbatim listing of</a>:</td><td> </td><td valign="top"><a href="#Verbatim-listing">Verbatim listing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-files_002c-verbatim-listing-of_002c-demo">files, verbatim listing of, demo</a>:</td><td> </td><td valign="top"><a href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029">Highlighting TeX comments in listings (lscommnt.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-filtering-index-entries-with-hyperlinks">filtering index entries with hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Exact-destinations-for-index-terms">Exact destinations for index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-footnotes_002c-hyperlinks">footnotes, hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Footnote-hyperlinks">Footnote hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-footnotes_002c-numbered">footnotes, numbered</a>:</td><td> </td><td valign="top"><a href="#Footnotes">Footnotes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-for-loops">for loops</a>:</td><td> </td><td valign="top"><a href="#Iteration">Iteration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-form-feed-character_002c-and-verbatim-listing">form feed character, and verbatim listing</a>:</td><td> </td><td valign="top"><a href="#Verbatim-listing">Verbatim listing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-format-file">format file</a>:</td><td> </td><td valign="top"><a href="#Installation">Installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-formatting-index-entries">formatting index entries</a>:</td><td> </td><td valign="top"><a href="#Typesetting-an-index">Typesetting an index</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-fractions">fractions</a>:</td><td> </td><td valign="top"><a href="#Fractions">Fractions</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Concept-index_cp_letter-G">G</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-Ghostscript"><code><span class="roman">Ghostscript</span></code></a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Ghostscript-1"><code><span class="roman">Ghostscript</span></code></a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-gobbling-arguments">gobbling arguments</a>:</td><td> </td><td valign="top"><a href="#Macro-arguments">Macro arguments</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-golden-mean">golden mean</a>:</td><td> </td><td valign="top"><a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-golden-mean-1">golden mean</a>:</td><td> </td><td valign="top"><a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Graham_002c-Ronald-L_002e">Graham, Ronald L.</a>:</td><td> </td><td valign="top"><a href="#Citations">Citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-graphics-collection_002c-LaTeX">graphics collection, LaTeX</a>:</td><td> </td><td valign="top"><a href="#Loading-LaTeX-packages">Loading LaTeX packages</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-graphics-collection_002c-LaTeX-1">graphics collection, LaTeX</a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-graphics-collection_002c-LaTeX-2">graphics collection, LaTeX</a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-graphics-collection_002c-LaTeX_002c-demo">graphics collection, LaTeX, demo</a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-graphics_002c-omitting-typesetting-of">graphics, omitting typesetting of</a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-graphics_002c-problems-with-pdfTeX">graphics, problems with pdfTeX</a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-graphics_002esty"><code>graphics.sty</code></a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-graphicx_002esty"><code>graphicx.sty</code></a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-graphicx_002esty-1"><code>graphicx.sty</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-grid">grid</a>:</td><td> </td><td valign="top"><a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group-option-list">group option list</a>:</td><td> </td><td valign="top"><a href="#Setting-group-options">Setting group options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group-options_002c-hyperlink">group options, hyperlink</a>:</td><td> </td><td valign="top"><a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group-options_002c-hyperlink-1">group options, hyperlink</a>:</td><td> </td><td valign="top"><a href="#Setting-group-options">Setting group options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group-options_002c-hyperlink_002c-demo">group options, hyperlink, demo</a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group-type_002c-hyperlink">group type, hyperlink</a>:</td><td> </td><td valign="top"><a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group-type_002c-hyperlink-1">group type, hyperlink</a>:</td><td> </td><td valign="top"><a href="#Setting-group-types">Setting group types</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group-type_002c-hyperlink_002c-demo">group type, hyperlink, demo</a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group-_0060_0027-_0028empty_0029">group ‘’ (empty)</a>:</td><td> </td><td valign="top"><a href="#Setting-group-types">Setting group types</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group-_0060_002a_0027">group ‘*’</a>:</td><td> </td><td valign="top"><a href="#Setting-group-types">Setting group types</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group-_0060bib_0027">group ‘bib’</a>:</td><td> </td><td valign="top"><a href="#Citation-hyperlinks">Citation hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group-_0060cite_0027">group ‘cite’</a>:</td><td> </td><td valign="top"><a href="#Citation-hyperlinks">Citation hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group-_0060definexref_0027">group ‘definexref’</a>:</td><td> </td><td valign="top"><a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group-_0060eq_0027">group ‘eq’</a>:</td><td> </td><td valign="top"><a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group-_0060eq_0027-1">group ‘eq’</a>:</td><td> </td><td valign="top"><a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group-_0060eq_0027-2">group ‘eq’</a>:</td><td> </td><td valign="top"><a href="#Setting-group-options">Setting group options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group-_0060foot_0027">group ‘foot’</a>:</td><td> </td><td valign="top"><a href="#Footnote-hyperlinks">Footnote hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group-_0060footback_0027">group ‘footback’</a>:</td><td> </td><td valign="top"><a href="#Footnote-hyperlinks">Footnote hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group-_0060hrefext_0027">group ‘hrefext’</a>:</td><td> </td><td valign="top"><a href="#General-hyperlinks">General hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group-_0060hrefint_0027">group ‘hrefint’</a>:</td><td> </td><td valign="top"><a href="#General-hyperlinks">General hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group-_0060idx_0027">group ‘idx’</a>:</td><td> </td><td valign="top"><a href="#Index-hyperlinks">Index hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group-_0060li_0027">group ‘li’</a>:</td><td> </td><td valign="top"><a href="#List-hyperlinks">List hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group-_0060ref_0027">group ‘ref’</a>:</td><td> </td><td valign="top"><a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group-_0060url_0027">group ‘url’</a>:</td><td> </td><td valign="top"><a href="#URL-hyperlinks">URL hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group-_0060xrdef_0027">group ‘xrdef’</a>:</td><td> </td><td valign="top"><a href="#Page-reference-hyperlinks">Page reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group-_0060xref_0027">group ‘xref’</a>:</td><td> </td><td valign="top"><a href="#Page-reference-hyperlinks">Page reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group_002c-destination">group, destination</a>:</td><td> </td><td valign="top"><a href="#Implicit-hyperlinks">Implicit hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group_002c-disabling-hyperlinks">group, disabling hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Turning-hyperlinks-on_002foff-for-a-group">Turning hyperlinks on/off for a group</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group_002c-link">group, link</a>:</td><td> </td><td valign="top"><a href="#Implicit-hyperlinks">Implicit hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-group_002c-preserving-option-list">group, preserving option list</a>:</td><td> </td><td valign="top"><a href="#Setting-group-options">Setting group options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-groups_002c-specifying-all">groups, specifying all</a>:</td><td> </td><td valign="top"><a href="#Setting-group-types">Setting group types</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Concept-index_cp_letter-H">H</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-hanging-on-_005cinput">hanging on <code>\input</code></a>:</td><td> </td><td valign="top"><a href="#Environment-for-loading-packages">Environment for loading packages</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-help-messages">help messages</a>:</td><td> </td><td valign="top"><a href="#Diagnostics">Diagnostics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-highlight-modes_002c-hyperlink">highlight modes, hyperlink</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-highlighting">highlighting</a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-highlighting_002c-in-listings">highlighting, in listings</a>:</td><td> </td><td valign="top"><a href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029">Highlighting TeX comments in listings (lscommnt.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Hoppner_002c-Klaus">Höppner, Klaus</a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hooks">hooks</a>:</td><td> </td><td valign="top"><a href="#Hooks">Hooks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlink-border-color">hyperlink border color</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlink-color">hyperlink color</a>:</td><td> </td><td valign="top"><a href="#URL-hyperlinks">URL hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlink-color-1">hyperlink color</a>:</td><td> </td><td valign="top"><a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlink-color-2">hyperlink color</a>:</td><td> </td><td valign="top"><a href="#Setting-default-types-and-options">Setting default types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlink-destination_002c-dimensions">hyperlink destination, dimensions</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlink-destination_002c-dimensions-1">hyperlink destination, dimensions</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlink-destination_002c-dimensions-2">hyperlink destination, dimensions</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlink-destination_002c-dimensions-3">hyperlink destination, dimensions</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlink-destination_002c-dimensions-4">hyperlink destination, dimensions</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlink-destination_002c-dimensions-5">hyperlink destination, dimensions</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlink-destination_002c-dimensions-6">hyperlink destination, dimensions</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlink-destination_002c-magnification">hyperlink destination, magnification</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlink-destination_002c-named">hyperlink destination, named</a>:</td><td> </td><td valign="top"><a href="#Link-types-for-hypertex">Link types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlink-destination_002c-named-1">hyperlink destination, named</a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlink-destination_002c-numbered">hyperlink destination, numbered</a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlink-destination_002c-page">hyperlink destination, page</a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlink-destination_002c-raising">hyperlink destination, raising</a>:</td><td> </td><td valign="top"><a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlink-dimensions">hyperlink dimensions</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlink-dimensions-1">hyperlink dimensions</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlink-dimensions-2">hyperlink dimensions</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlink-driver-dvipdfm">hyperlink driver <code>dvipdfm</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlink-drivers-pdftex-and-dvipdfm">Hyperlink drivers pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlink-driver-hypertex">hyperlink driver <code>hypertex</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlink-driver-nolinks">hyperlink driver <code>nolinks</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlink-driver-pdftex">hyperlink driver <code>pdftex</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlink-drivers-pdftex-and-dvipdfm">Hyperlink drivers pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlink-drivers">hyperlink drivers</a>:</td><td> </td><td valign="top"><a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlink-group_002c-disabling-hyperlinks">hyperlink group, disabling hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Turning-hyperlinks-on_002foff-for-a-group">Turning hyperlinks on/off for a group</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlink-group_002c-preserving-option-list">hyperlink group, preserving option list</a>:</td><td> </td><td valign="top"><a href="#Setting-group-options">Setting group options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlink-options_002c-common">hyperlink options, common</a>:</td><td> </td><td valign="top"><a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-bibliography">hyperlinks, bibliography</a>:</td><td> </td><td valign="top"><a href="#Citation-hyperlinks">Citation hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-border-style">hyperlinks, border style</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-border-style-1">hyperlinks, border style</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-border-width">hyperlinks, border width</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-citations">hyperlinks, citations</a>:</td><td> </td><td valign="top"><a href="#Citation-hyperlinks">Citation hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-cross_002dreferences">hyperlinks, cross-references</a>:</td><td> </td><td valign="top"><a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-default-options">hyperlinks, default options</a>:</td><td> </td><td valign="top"><a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-default-options-1">hyperlinks, default options</a>:</td><td> </td><td valign="top"><a href="#Setting-group-types">Setting group types</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-default-type">hyperlinks, default type</a>:</td><td> </td><td valign="top"><a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-default-type-1">hyperlinks, default type</a>:</td><td> </td><td valign="top"><a href="#Setting-group-types">Setting group types</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-demo">hyperlinks, demo</a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-disabling">hyperlinks, disabling</a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-disabling-1">hyperlinks, disabling</a>:</td><td> </td><td valign="top"><a href="#Turning-hyperlinks-on_002foff">Turning hyperlinks on/off</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-equations">hyperlinks, equations</a>:</td><td> </td><td valign="top"><a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-explicit">hyperlinks, explicit</a>:</td><td> </td><td valign="top"><a href="#Explicit-hyperlinks">Explicit hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-explicit_002c-demo">hyperlinks, explicit, demo</a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-filtering-index-entries">hyperlinks, filtering index entries</a>:</td><td> </td><td valign="top"><a href="#Exact-destinations-for-index-terms">Exact destinations for index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-footnotes">hyperlinks, footnotes</a>:</td><td> </td><td valign="top"><a href="#Footnote-hyperlinks">Footnote hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-group-option-list">hyperlinks, group option list</a>:</td><td> </td><td valign="top"><a href="#Setting-group-options">Setting group options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-group-options">hyperlinks, group options</a>:</td><td> </td><td valign="top"><a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-group-options-1">hyperlinks, group options</a>:</td><td> </td><td valign="top"><a href="#Setting-group-options">Setting group options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-group-options_002c-demo">hyperlinks, group options, demo</a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-group-type">hyperlinks, group type</a>:</td><td> </td><td valign="top"><a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-group-type-1">hyperlinks, group type</a>:</td><td> </td><td valign="top"><a href="#Setting-group-types">Setting group types</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-highlight-mode">hyperlinks, highlight mode</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-implicit">hyperlinks, implicit</a>:</td><td> </td><td valign="top"><a href="#Implicit-hyperlinks">Implicit hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-implicit_002c-demo">hyperlinks, implicit, demo</a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-index">hyperlinks, index</a>:</td><td> </td><td valign="top"><a href="#Index-hyperlinks">Index hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-index-destination-placement">hyperlinks, index destination placement</a>:</td><td> </td><td valign="top"><a href="#Choosing-destination-placement">Choosing destination placement</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-index_002c-exact">hyperlinks, index, exact</a>:</td><td> </td><td valign="top"><a href="#Exact-destinations-for-index-terms">Exact destinations for index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-large-operators">hyperlinks, large operators</a>:</td><td> </td><td valign="top"><a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-large-operators-1">hyperlinks, large operators</a>:</td><td> </td><td valign="top"><a href="#Setting-group-options">Setting group options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-lists">hyperlinks, lists</a>:</td><td> </td><td valign="top"><a href="#List-hyperlinks">List hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-opening-in-a-new-window">hyperlinks, opening in a new window</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-page-references">hyperlinks, page references</a>:</td><td> </td><td valign="top"><a href="#Page-reference-hyperlinks">Page reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-preserving-page_002dbreaking">hyperlinks, preserving page-breaking</a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-preserving-spacing">hyperlinks, preserving spacing</a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-see-and-see-also-index-entries">hyperlinks, see and see also index entries</a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-in-see-and-see-also-entries">Hyperlinks in see and see also entries</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-table-of-contents">hyperlinks, table of contents</a>:</td><td> </td><td valign="top"><a href="#Contents-hyperlinks">Contents hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-to-another-file">hyperlinks, to another file</a>:</td><td> </td><td valign="top"><a href="#Link-types-for-hypertex">Link types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-to-another-file-1">hyperlinks, to another file</a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-to-another-file-2">hyperlinks, to another file</a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-URL">hyperlinks, <acronym>URL</acronym></a>:</td><td> </td><td valign="top"><a href="#General-hyperlinks">General hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-URL-1">hyperlinks, <acronym>URL</acronym></a>:</td><td> </td><td valign="top"><a href="#URL-hyperlinks">URL hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-URL-2">hyperlinks, <acronym>URL</acronym></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-hypertex">Link types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperlinks_002c-URL-3">hyperlinks, <acronym>URL</acronym></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hyperref_002esty"><code>hyperref.sty</code></a>:</td><td> </td><td valign="top"><a href="#Packages-known-not-to-work">Packages known not to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hypertex_002c-destination-options"><code>hypertex</code>, destination options</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-hypertex">Destination options for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hypertex_002c-destination-types"><code>hypertex</code>, destination types</a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-hypertex">Destination types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hypertex_002c-hyperlink-driver"><code>hypertex</code>, hyperlink driver</a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hypertex_002c-link-options"><code>hypertex</code>, link options</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-hypertex">Link options for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hypertex_002c-link-types"><code>hypertex</code>, link types</a>:</td><td> </td><td valign="top"><a href="#Link-types-for-hypertex">Link types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-hypertext-links">hypertext links</a>:</td><td> </td><td valign="top"><a href="#Hyperlinks">Hyperlinks</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Concept-index_cp_letter-I">I</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-identifying-numbers">identifying numbers</a>:</td><td> </td><td valign="top"><a href="#g_t_005cifinteger-and-_005cisinteger">\ifinteger and \isinteger</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-idxuniq"><code>idxuniq</code></a>:</td><td> </td><td valign="top"><a href="#Exact-destinations-for-index-terms">Exact destinations for index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ignoring-arguments">ignoring arguments</a>:</td><td> </td><td valign="top"><a href="#Macro-arguments">Macro arguments</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-implicit-hyperlinks">implicit hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Implicit-hyperlinks">Implicit hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-implicit-hyperlinks_002c-demo">implicit hyperlinks, demo</a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-inaccessible-macros">inaccessible macros</a>:</td><td> </td><td valign="top"><a href="#Category-codes">Category codes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-index-entries-and-ranges">index entries and ranges</a>:</td><td> </td><td valign="top"><a href="#Modifying-index-entries">Modifying index entries</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-index-entries-containing-braces">index entries containing braces</a>:</td><td> </td><td valign="top"><a href="#Index-entries-with-special-characters">Index entries with special characters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-index-entries-containing-brackets">index entries containing brackets</a>:</td><td> </td><td valign="top"><a href="#Index-entries-with-special-characters">Index entries with special characters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-index-entries-with-special-characters">index entries with special characters</a>:</td><td> </td><td valign="top"><a href="#Index-entries-with-special-characters">Index entries with special characters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-index-entries_0027-page-numbers_002c-modifying">index entries’ page numbers, modifying</a>:</td><td> </td><td valign="top"><a href="#Modifying-index-entries">Modifying index entries</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-index-entries_002c-and-cross_002dreferencing">index entries, and cross-referencing</a>:</td><td> </td><td valign="top"><a href="#Modifying-index-entries">Modifying index entries</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-index-entries_002c-and-cross_002dreferencing-1">index entries, and cross-referencing</a>:</td><td> </td><td valign="top"><a href="#Customizing-indexing">Customizing indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-index-entries_002c-proofing">index entries, proofing</a>:</td><td> </td><td valign="top"><a href="#Proofing-index-terms">Proofing index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-index-entries_002c-with-verbatim-text">index entries, with verbatim text</a>:</td><td> </td><td valign="top"><a href="#Index-entries-with-special-characters">Index entries with special characters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-index-entry-continuations">index entry continuations</a>:</td><td> </td><td valign="top"><a href="#Typesetting-an-index">Typesetting an index</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-index-entry-formatting">index entry formatting</a>:</td><td> </td><td valign="top"><a href="#Typesetting-an-index">Typesetting an index</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-index-entry-general-sorting">index entry general sorting</a>:</td><td> </td><td valign="top"><a href="#Indexing-commands">Indexing commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-index-fonts">index fonts</a>:</td><td> </td><td valign="top"><a href="#Typesetting-an-index">Typesetting an index</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-index-groupings">index groupings</a>:</td><td> </td><td valign="top"><a href="#Typesetting-an-index">Typesetting an index</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-index-hyperlink">index hyperlink</a>:</td><td> </td><td valign="top"><a href="#Index-hyperlinks">Index hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-index-typesetting">index typesetting</a>:</td><td> </td><td valign="top"><a href="#Typesetting-an-index">Typesetting an index</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-index_002c-and-verbatim-text">index, and verbatim text</a>:</td><td> </td><td valign="top"><a href="#Index-entries-with-special-characters">Index entries with special characters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-index_002c-choosing-destination-placement">index, choosing destination placement</a>:</td><td> </td><td valign="top"><a href="#Choosing-destination-placement">Choosing destination placement</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-index_002c-destination-placement">index, destination placement</a>:</td><td> </td><td valign="top"><a href="#Choosing-destination-placement">Choosing destination placement</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-index_002c-exact-hyperlinks">index, exact hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Exact-destinations-for-index-terms">Exact destinations for index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-index_002c-hyperlinks-in-see-and-see-also-entries">index, hyperlinks in see and see also entries</a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-in-see-and-see-also-entries">Hyperlinks in see and see also entries</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-index_002c-parsing-page-numbers">index, parsing page numbers</a>:</td><td> </td><td valign="top"><a href="#Page-destinations-for-index-terms">Page destinations for index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-index_002c-placement-of-destinations">index, placement of destinations</a>:</td><td> </td><td valign="top"><a href="#Choosing-destination-placement">Choosing destination placement</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-index_002c-selecting-destination-placement">index, selecting destination placement</a>:</td><td> </td><td valign="top"><a href="#Choosing-destination-placement">Choosing destination placement</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-index_002c-underlining-page-numbers">index, underlining page numbers</a>:</td><td> </td><td valign="top"><a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-indexes_002c-disabling">indexes, disabling</a>:</td><td> </td><td valign="top"><a href="#Indexing">Indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-indexes_002c-multiple">indexes, multiple</a>:</td><td> </td><td valign="top"><a href="#Indexing">Indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-indexing">indexing</a>:</td><td> </td><td valign="top"><a href="#Indexing">Indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-indexing-and-trailing-spaces">indexing and trailing spaces</a>:</td><td> </td><td valign="top"><a href="#Indexing-terms">Indexing terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-indexing-commands">indexing commands</a>:</td><td> </td><td valign="top"><a href="#Indexing-commands">Indexing commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-indexing-terms">indexing terms</a>:</td><td> </td><td valign="top"><a href="#Indexing-terms">Indexing terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-insertion-classes">insertion classes</a>:</td><td> </td><td valign="top"><a href="#Multiple-columns">Multiple columns</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-inset-hyperlink-border">inset hyperlink border</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-installation">installation</a>:</td><td> </td><td valign="top"><a href="#Installation">Installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-integers_002c-detecting">integers, detecting</a>:</td><td> </td><td valign="top"><a href="#g_t_005cifinteger-and-_005cisinteger">\ifinteger and \isinteger</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-italic-correction">italic correction</a>:</td><td> </td><td valign="top"><a href="#Formatting-bibliographies">Formatting bibliographies</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-item-labels_002c-changing">item labels, changing</a>:</td><td> </td><td valign="top"><a href="#Formatting-lists">Formatting lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-iteration">iteration</a>:</td><td> </td><td valign="top"><a href="#Iteration">Iteration</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Concept-index_cp_letter-J">J</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-justification">justification</a>:</td><td> </td><td valign="top"><a href="#Justification">Justification</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Concept-index_cp_letter-K">K</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-Knuth_002c-Donald-Ervin">Knuth, Donald Ervin</a>:</td><td> </td><td valign="top"><a href="#Citations">Citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Knuth_002c-Donald-Ervin-1">Knuth, Donald Ervin</a>:</td><td> </td><td valign="top"><a href="#Category-codes">Category codes</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Concept-index_cp_letter-L">L</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-labels-on-items_002c-changing">labels on items, changing</a>:</td><td> </td><td valign="top"><a href="#Formatting-lists">Formatting lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-labels_002c-characters-valid-in">labels, characters valid in</a>:</td><td> </td><td valign="top"><a href="#Cross_002dreferences">Cross-references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-labels_002c-empty-equation">labels, empty equation</a>:</td><td> </td><td valign="top"><a href="#Equation-references">Equation references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-labels_002c-empty-equation_002c-referring-to">labels, empty equation, referring to</a>:</td><td> </td><td valign="top"><a href="#Equation-references">Equation references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Lamport_002c-Leslie">Lamport, Leslie</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-LAMSTeX">LAMSTeX</a>:</td><td> </td><td valign="top"><a href="#Logos">Logos</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Lang_002c-Serge">Lang, Serge</a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Lang_002c-Serge-1">Lang, Serge</a>:</td><td> </td><td valign="top"><a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-large-operators-and-hyperlinks">large operators and hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-large-operators-and-hyperlinks-1">large operators and hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Setting-group-options">Setting group options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-LaTeX">LaTeX</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-LaTeX-1">LaTeX</a>:</td><td> </td><td valign="top"><a href="#Citations">Citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-LaTeX-2">LaTeX</a>:</td><td> </td><td valign="top"><a href="#Logos">Logos</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-LaTeX-3">LaTeX</a>:</td><td> </td><td valign="top"><a href="#Slanted-lines-and-vectors">Slanted lines and vectors</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-LaTeX-commands_002c-in-btxmac_002etex">LaTeX commands, in <samp>btxmac.tex</samp></a>:</td><td> </td><td valign="top"><a href="#Commands-from-LaTeX">Commands from LaTeX</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-LaTeX-graphics-collection">LaTeX graphics collection</a>:</td><td> </td><td valign="top"><a href="#Loading-LaTeX-packages">Loading LaTeX packages</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-LaTeX-graphics-collection-1">LaTeX graphics collection</a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-LaTeX-graphics-collection-2">LaTeX graphics collection</a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-LaTeX-graphics-collection_002c-demo">LaTeX graphics collection, demo</a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-LaTeX-packages">LaTeX packages</a>:</td><td> </td><td valign="top"><a href="#Loading-LaTeX-packages">Loading LaTeX packages</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-LaTeX-packages-1">LaTeX packages</a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-LaTeX-packages-2">LaTeX packages</a>:</td><td> </td><td valign="top"><a href="#Packages-known-not-to-work">Packages known not to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-LaTeX-packages_002c-restoring-_005cinput">LaTeX packages, restoring <code>\input</code></a>:</td><td> </td><td valign="top"><a href="#Environment-for-loading-packages">Environment for loading packages</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-left_002dalignment-of-equation-numbers">left-alignment of equation numbers</a>:</td><td> </td><td valign="top"><a href="#Displays">Displays</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-left_002djustification">left-justification</a>:</td><td> </td><td valign="top"><a href="#Justification">Justification</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-left_002djustification-of-displays">left-justification of displays</a>:</td><td> </td><td valign="top"><a href="#Displays">Displays</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-letterspacing">letterspacing</a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-linear-systems-theory">linear systems theory</a>:</td><td> </td><td valign="top"><a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-lines">lines</a>:</td><td> </td><td valign="top"><a href="#Slanted-lines-and-vectors">Slanted lines and vectors</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-link-group">link group</a>:</td><td> </td><td valign="top"><a href="#Implicit-hyperlinks">Implicit hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-link-options">link options</a>:</td><td> </td><td valign="top"><a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-link-options_002c-common">link options, common</a>:</td><td> </td><td valign="top"><a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-link-options_002c-dvipdfm">link options, <code>dvipdfm</code></a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-link-options_002c-hypertex">link options, <code>hypertex</code></a>:</td><td> </td><td valign="top"><a href="#Link-options-for-hypertex">Link options for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-link-options_002c-pdftex">link options, <code>pdftex</code></a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-link-type">link type</a>:</td><td> </td><td valign="top"><a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-link-types_002c-dvipdfm">link types, <code>dvipdfm</code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-link-types_002c-hypertex">link types, <code>hypertex</code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-hypertex">Link types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-link-types_002c-pdftex">link types, <code>pdftex</code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-link_002c-group-options">link, group options</a>:</td><td> </td><td valign="top"><a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-link_002c-group-options-1">link, group options</a>:</td><td> </td><td valign="top"><a href="#Setting-group-options">Setting group options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-link_002c-group-options_002c-demo">link, group options, demo</a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-link_002c-group-type">link, group type</a>:</td><td> </td><td valign="top"><a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-link_002c-group-type-1">link, group type</a>:</td><td> </td><td valign="top"><a href="#Setting-group-types">Setting group types</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-linkgroup">linkgroup</a>:</td><td> </td><td valign="top"><a href="#Implicit-hyperlinks">Implicit hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-linkgroup-options">linkgroup options</a>:</td><td> </td><td valign="top"><a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-linkgroup-options-1">linkgroup options</a>:</td><td> </td><td valign="top"><a href="#Setting-group-options">Setting group options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-linkgroup-options_002c-demo">linkgroup options, demo</a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-linkgroup-type">linkgroup type</a>:</td><td> </td><td valign="top"><a href="#Setting-hyperlink-types-and-options">Setting hyperlink types and options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-linkgroup-type-1">linkgroup type</a>:</td><td> </td><td valign="top"><a href="#Setting-group-types">Setting group types</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-linkgroup-_0060cite_0027">linkgroup ‘cite’</a>:</td><td> </td><td valign="top"><a href="#Citation-hyperlinks">Citation hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-linkgroup-_0060eq_0027">linkgroup ‘eq’</a>:</td><td> </td><td valign="top"><a href="#Equation-reference-hyperlinks">Equation reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-linkgroup-_0060eq_0027-1">linkgroup ‘eq’</a>:</td><td> </td><td valign="top"><a href="#Setting-group-options">Setting group options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-linkgroup-_0060foot_0027">linkgroup ‘foot’</a>:</td><td> </td><td valign="top"><a href="#Footnote-hyperlinks">Footnote hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-linkgroup-_0060footback_0027">linkgroup ‘footback’</a>:</td><td> </td><td valign="top"><a href="#Footnote-hyperlinks">Footnote hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-linkgroup-_0060hrefext_0027">linkgroup ‘hrefext’</a>:</td><td> </td><td valign="top"><a href="#General-hyperlinks">General hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-linkgroup-_0060hrefint_0027">linkgroup ‘hrefint’</a>:</td><td> </td><td valign="top"><a href="#General-hyperlinks">General hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-linkgroup-_0060idx_0027">linkgroup ‘idx’</a>:</td><td> </td><td valign="top"><a href="#Index-hyperlinks">Index hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-linkgroup-_0060ref_0027">linkgroup ‘ref’</a>:</td><td> </td><td valign="top"><a href="#Cross_002dreference-hyperlinks">Cross-reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-linkgroup-_0060url_0027">linkgroup ‘url’</a>:</td><td> </td><td valign="top"><a href="#URL-hyperlinks">URL hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-linkgroup-_0060xref_0027">linkgroup ‘xref’</a>:</td><td> </td><td valign="top"><a href="#Page-reference-hyperlinks">Page reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-links_002c-hypertext">links, hypertext</a>:</td><td> </td><td valign="top"><a href="#Hyperlinks">Hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-list-of-figures">list of figures</a>:</td><td> </td><td valign="top"><a href="#Alternative-contents-files">Alternative contents files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-list-of-tables">list of tables</a>:</td><td> </td><td valign="top"><a href="#Alternative-contents-files">Alternative contents files</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-listing-files">listing files</a>:</td><td> </td><td valign="top"><a href="#Verbatim-listing">Verbatim listing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-listing-files_002c-demo">listing files, demo</a>:</td><td> </td><td valign="top"><a href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029">Highlighting TeX comments in listings (lscommnt.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-lists">lists</a>:</td><td> </td><td valign="top"><a href="#Lists">Lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-lists_002c-formatting">lists, formatting</a>:</td><td> </td><td valign="top"><a href="#Formatting-lists">Formatting lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-lists_002c-hyperlinks">lists, hyperlinks</a>:</td><td> </td><td valign="top"><a href="#List-hyperlinks">List hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-loading-packages_002c-environment-for">loading packages, environment for</a>:</td><td> </td><td valign="top"><a href="#Environment-for-loading-packages">Environment for loading packages</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-logos">logos</a>:</td><td> </td><td valign="top"><a href="#Logos">Logos</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-lookahead-without-spaces">lookahead without spaces</a>:</td><td> </td><td valign="top"><a href="#g_t_005cfuturenonspacelet">\futurenonspacelet</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-loops">loops</a>:</td><td> </td><td valign="top"><a href="#Iteration">Iteration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-lscommnt_002etex"><code>lscommnt.tex</code></a>:</td><td> </td><td valign="top"><a href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029">Highlighting TeX comments in listings (lscommnt.tex)</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Concept-index_cp_letter-M">M</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-magnification_002c-hyperlink-destination">magnification, hyperlink destination</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-makeindex"><code>makeindex</code></a>:</td><td> </td><td valign="top"><a href="#Invoking-Eplain">Invoking Eplain</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-makeindex-1"><code>makeindex</code></a>:</td><td> </td><td valign="top"><a href="#Indexing">Indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-makeindex-2"><code>makeindex</code></a>:</td><td> </td><td valign="top"><a href="#Index-hyperlinks">Index hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-margins_002c-changing">margins, changing</a>:</td><td> </td><td valign="top"><a href="#Margins">Margins</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-margins_002c-index-terms-in">margins, index terms in</a>:</td><td> </td><td valign="top"><a href="#Proofing-index-terms">Proofing index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mathematics-displays_002c-formatting">mathematics displays, formatting</a>:</td><td> </td><td valign="top"><a href="#Displays">Displays</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mathematics-displays_002c-hyperlinks">mathematics displays, hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-mathematics-displays_002c-hyperlinks-1">mathematics displays, hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Setting-group-options">Setting group options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Metafont">Metafont</a>:</td><td> </td><td valign="top"><a href="#Logos">Logos</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-miniltx_002etex"><code>miniltx.tex</code></a>:</td><td> </td><td valign="top"><a href="#Loading-LaTeX-packages">Loading LaTeX packages</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-minimal-realizations">minimal realizations</a>:</td><td> </td><td valign="top"><a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-modifying-index-entries_0027-page-numbers">modifying index entries’ page numbers</a>:</td><td> </td><td valign="top"><a href="#Modifying-index-entries">Modifying index entries</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-morphisms">morphisms</a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-multiple-column-output">multiple column output</a>:</td><td> </td><td valign="top"><a href="#Multiple-columns">Multiple columns</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-multiple-indexes">multiple indexes</a>:</td><td> </td><td valign="top"><a href="#Indexing">Indexing</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Concept-index_cp_letter-N">N</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-named-destination">named destination</a>:</td><td> </td><td valign="top"><a href="#Link-types-for-hypertex">Link types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-named-destination-1">named destination</a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-names_002c-of-TeX-variants">names, of TeX variants</a>:</td><td> </td><td valign="top"><a href="#Logos">Logos</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-new-window_002c-opening-hyperlink-in">new window, opening hyperlink in</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-newlinechar">newlinechar</a>:</td><td> </td><td valign="top"><a href="#Diagnostics">Diagnostics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-newlines_002c-obeying">newlines, obeying</a>:</td><td> </td><td valign="top"><a href="#Obeying-spaces">Obeying spaces</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-nolinks_002c-hyperlink-driver"><code>nolinks</code>, hyperlink driver</a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-numbered-destination">numbered destination</a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-numbered-lists">numbered lists</a>:</td><td> </td><td valign="top"><a href="#Lists">Lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-numbered-references">numbered references</a>:</td><td> </td><td valign="top"><a href="#Citations">Citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-numbers_002c-detecting">numbers, detecting</a>:</td><td> </td><td valign="top"><a href="#g_t_005cifinteger-and-_005cisinteger">\ifinteger and \isinteger</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-numbers_002c-written-form-of">numbers, written form of</a>:</td><td> </td><td valign="top"><a href="#Writing-out-numbers">Writing out numbers</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Concept-index_cp_letter-O">O</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-Oberdiek_002c-Heiko">Oberdiek, Heiko</a>:</td><td> </td><td valign="top"><a href="#Checking-for-PDF-output">Checking for PDF output</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-omitting-hyperlinks">omitting hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-omitting-hyperlinks-1">omitting hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Turning-hyperlinks-on_002foff">Turning hyperlinks on/off</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-omitting-typesetting-of-graphics">omitting typesetting of graphics</a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-open-boxes">open boxes</a>:</td><td> </td><td valign="top"><a href="#Boxes">Boxes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-option-list_002c-group">option list, group</a>:</td><td> </td><td valign="top"><a href="#Setting-group-options">Setting group options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-option-list_002c-preserving-for-group">option list, preserving for group</a>:</td><td> </td><td valign="top"><a href="#Setting-group-options">Setting group options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-options_002c-destination_002c-common">options, destination, common</a>:</td><td> </td><td valign="top"><a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-options_002c-destination_002c-dvipdfm">options, destination, <code>dvipdfm</code></a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-options_002c-destination_002c-hypertex">options, destination, <code>hypertex</code></a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-hypertex">Destination options for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-options_002c-destination_002c-pdftex">options, destination, <code>pdftex</code></a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-options_002c-link-and-destination">options, link and destination</a>:</td><td> </td><td valign="top"><a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-options_002c-link_002c-common">options, link, common</a>:</td><td> </td><td valign="top"><a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-options_002c-link_002c-dvipdfm">options, link, <code>dvipdfm</code></a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-options_002c-link_002c-hypertex">options, link, <code>hypertex</code></a>:</td><td> </td><td valign="top"><a href="#Link-options-for-hypertex">Link options for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-options_002c-link_002c-pdftex">options, link, <code>pdftex</code></a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ordered-list">ordered list</a>:</td><td> </td><td valign="top"><a href="#Lists">Lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-output-routine-and-index-proofing">output routine and index proofing</a>:</td><td> </td><td valign="top"><a href="#Proofing-index-terms">Proofing index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-overstriking">overstriking</a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Concept-index_cp_letter-P">P</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-packages_002c-LaTeX">packages, LaTeX</a>:</td><td> </td><td valign="top"><a href="#Loading-LaTeX-packages">Loading LaTeX packages</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-packages_002c-LaTeX-1">packages, LaTeX</a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-packages_002c-LaTeX-2">packages, LaTeX</a>:</td><td> </td><td valign="top"><a href="#Packages-known-not-to-work">Packages known not to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-page-destination">page destination</a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-page-list_002c-parsing">page list, parsing</a>:</td><td> </td><td valign="top"><a href="#Page-destinations-for-index-terms">Page destinations for index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-page-range_002c-parsing">page range, parsing</a>:</td><td> </td><td valign="top"><a href="#Page-destinations-for-index-terms">Page destinations for index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-page-reference-hyperlink">page reference hyperlink</a>:</td><td> </td><td valign="top"><a href="#Page-reference-hyperlinks">Page reference hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-page_002dbreaking_002c-preserving-with-hyperlinks">page-breaking, preserving with hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-parsing-page-numbers">parsing page numbers</a>:</td><td> </td><td valign="top"><a href="#Page-destinations-for-index-terms">Page destinations for index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Patashnik_002c-Oren">Patashnik, Oren</a>:</td><td> </td><td valign="top"><a href="#Citations">Citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pathnames_002c-breaking">pathnames, breaking</a>:</td><td> </td><td valign="top"><a href="#Paths">Paths</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pathnames_002c-breaking-1">pathnames, breaking</a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PDF"><acronym>PDF</acronym></a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PDF-output"><acronym>PDF</acronym> output</a>:</td><td> </td><td valign="top"><a href="#Checking-for-PDF-output">Checking for PDF output</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pdftex"><code>pdftex</code></a>:</td><td> </td><td valign="top"><a href="#Invoking-Eplain">Invoking Eplain</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pdftex-1"><code>pdftex</code></a>:</td><td> </td><td valign="top"><a href="#Checking-for-PDF-output">Checking for PDF output</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pdftex-2"><code>pdftex</code></a>:</td><td> </td><td valign="top"><a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pdftex_002c-destination-options"><code>pdftex</code>, destination options</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pdftex_002c-destination-types"><code>pdftex</code>, destination types</a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pdftex_002c-hyperlink-driver"><code>pdftex</code>, hyperlink driver</a>:</td><td> </td><td valign="top"><a href="#Hyperlink-drivers-pdftex-and-dvipdfm">Hyperlink drivers pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pdftex_002c-link-options"><code>pdftex</code>, link options</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pdftex_002c-link-types"><code>pdftex</code>, link types</a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pdfTeX_002c-problems-using-color-and-graphics">pdfTeX, problems using color and graphics</a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pdfTeX_002c-problems-with-supp_002dmis_002etex">pdfTeX, problems with <samp>supp-mis.tex</samp></a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-pict2e_002esty"><code>pict2e.sty</code></a>:</td><td> </td><td valign="top"><a href="#Packages-known-not-to-work">Packages known not to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-picture-mode">picture mode</a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-picture-mode-1">picture mode</a>:</td><td> </td><td valign="top"><a href="#Slanted-lines-and-vectors">Slanted lines and vectors</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Portable-Document-Format">Portable Document Format</a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PostScript-point">PostScript point</a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PostScript-point-1">PostScript point</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-PostScript-point-2">PostScript point</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-proofing-index-terms">proofing index terms</a>:</td><td> </td><td valign="top"><a href="#Proofing-index-terms">Proofing index terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-properties">properties</a>:</td><td> </td><td valign="top"><a href="#Properties">Properties</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ps2pdf"><code>ps2pdf</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ps2pdf-1"><code>ps2pdf</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-psfrag_002esty"><code>psfrag.sty</code></a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Concept-index_cp_letter-Q">Q</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-quadruple-column-output">quadruple column output</a>:</td><td> </td><td valign="top"><a href="#Multiple-columns">Multiple columns</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Concept-index_cp_letter-R">R</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-Rahtz_002c-Sebastian">Rahtz, Sebastian</a>:</td><td> </td><td valign="top"><a href="#Loading-LaTeX-packages">Loading LaTeX packages</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-raising-hyperlink-destinations">raising hyperlink destinations</a>:</td><td> </td><td valign="top"><a href="#Options-supported-by-all-drivers">Options supported by all drivers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-raising-hyperlink-destinations-1">raising hyperlink destinations</a>:</td><td> </td><td valign="top"><a href="#Setting-group-options">Setting group options</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-ranges-and-index-entry">ranges and index entry</a>:</td><td> </td><td valign="top"><a href="#Modifying-index-entries">Modifying index entries</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-recognizing-numbers">recognizing numbers</a>:</td><td> </td><td valign="top"><a href="#g_t_005cifinteger-and-_005cisinteger">\ifinteger and \isinteger</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-rectangles">rectangles</a>:</td><td> </td><td valign="top"><a href="#Boxes">Boxes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-references_002c-alphanumeric">references, alphanumeric</a>:</td><td> </td><td valign="top"><a href="#Citations">Citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-references_002c-defining-general">references, defining general</a>:</td><td> </td><td valign="top"><a href="#Defining-generic-references">Defining generic references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-references_002c-defining-general-1">references, defining general</a>:</td><td> </td><td valign="top"><a href="#Using-generic-references">Using generic references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-references_002c-numbered">references, numbered</a>:</td><td> </td><td valign="top"><a href="#Citations">Citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-register-allocation">register allocation</a>:</td><td> </td><td valign="top"><a href="#Allocation-macros">Allocation macros</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-restoring-_005cinput_002c-LaTeX-packages">restoring <code>\input</code>, LaTeX packages</a>:</td><td> </td><td valign="top"><a href="#Environment-for-loading-packages">Environment for loading packages</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-return-character">return character</a>:</td><td> </td><td valign="top"><a href="#Category-codes">Category codes</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-right_002djustification">right-justification</a>:</td><td> </td><td valign="top"><a href="#Justification">Justification</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-rms">rms</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-rotation">rotation</a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-rotation_002c-demo">rotation, demo</a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-rule-thickness">rule thickness</a>:</td><td> </td><td valign="top"><a href="#Rules">Rules</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-run_003a-links">‘<samp>run:</samp>’ links</a>:</td><td> </td><td valign="top"><a href="#General-hyperlinks">General hyperlinks</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Concept-index_cp_letter-S">S</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-scaling">scaling</a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-scaling_002c-demo">scaling, demo</a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-sed"><code>sed</code></a>:</td><td> </td><td valign="top"><a href="#Customizing-indexing">Customizing indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-see-also-index-entries-and-hyperlinks">see also index entries and hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-in-see-and-see-also-entries">Hyperlinks in see and see also entries</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-see-also-index-entries-and-sorting">see also index entries and sorting</a>:</td><td> </td><td valign="top"><a href="#Customizing-indexing">Customizing indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-see_002c-and-index-entries">see, and index entries</a>:</td><td> </td><td valign="top"><a href="#Modifying-index-entries">Modifying index entries</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-see_002c-and-index-entries-1">see, and index entries</a>:</td><td> </td><td valign="top"><a href="#Customizing-indexing">Customizing indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-see_002c-and-index-entries_002c-hyperlinks">see, and index entries, hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-in-see-and-see-also-entries">Hyperlinks in see and see also entries</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-silent-indexing">silent indexing</a>:</td><td> </td><td valign="top"><a href="#Indexing-terms">Indexing terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-skipping-tokens">skipping tokens</a>:</td><td> </td><td valign="top"><a href="#g_t_005cifundefined">\ifundefined</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-skipping-tokens-1">skipping tokens</a>:</td><td> </td><td valign="top"><a href="#g_t_005cifempty">\ifempty</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-SLiTeX">SLiTeX</a>:</td><td> </td><td valign="top"><a href="#Logos">Logos</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Snake-Lemma">Snake Lemma</a>:</td><td> </td><td valign="top"><a href="#Arrows-and-morphisms">Arrows and morphisms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-solid-hyperlink-border">solid hyperlink border</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-sorting-an-index">sorting an index</a>:</td><td> </td><td valign="top"><a href="#Indexing">Indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-sorting-of-index-entries">sorting of index entries</a>:</td><td> </td><td valign="top"><a href="#Indexing-commands">Indexing commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-soul_002esty"><code>soul.sty</code></a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-space-above-index-entries">space above index entries</a>:</td><td> </td><td valign="top"><a href="#Typesetting-an-index">Typesetting an index</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-spaces_002c-ignoring">spaces, ignoring</a>:</td><td> </td><td valign="top"><a href="#g_t_005cfuturenonspacelet">\futurenonspacelet</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-spaces_002c-obeying">spaces, obeying</a>:</td><td> </td><td valign="top"><a href="#Obeying-spaces">Obeying spaces</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-spaces_002c-trailing-and-indexing-commands">spaces, trailing and indexing commands</a>:</td><td> </td><td valign="top"><a href="#Indexing-terms">Indexing terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-spacing-out">spacing out</a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-spacing_002c-preserving-with-hyperlinks">spacing, preserving with hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-special-characters">special characters</a>:</td><td> </td><td valign="top"><a href="#Verbatim-listing">Verbatim listing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-special-characters_002c-in-index-entries">special characters, in index entries</a>:</td><td> </td><td valign="top"><a href="#Index-entries-with-special-characters">Index entries with special characters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-special-characters_002c-in-table-of-contents">special characters, in table of contents</a>:</td><td> </td><td valign="top"><a href="#Writing-the-_002etoc-file">Writing the .toc file</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Stallman_002c-Richard">Stallman, Richard</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-striking-out">striking out</a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-style_002c-hyperlink-border">style, hyperlink border</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-subequations_002c-referring-to">subequations, referring to</a>:</td><td> </td><td valign="top"><a href="#Subequation-references">Subequation references</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-subterm-in-indexing">subterm in indexing</a>:</td><td> </td><td valign="top"><a href="#Indexing-terms">Indexing terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-supp_002dmis_002etex_002c-problems-with-pdfTeX"><code>supp-mis.tex<span class="roman">, problems with pdfTeX</span></code></a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-supp_002dpdf_002etex"><code>supp-pdf.tex</code></a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Concept-index_cp_letter-T">T</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-table-of-contents">table of contents</a>:</td><td> </td><td valign="top"><a href="#Contents">Contents</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-table-of-contents_002c-and-verbatim-text">table of contents, and verbatim text</a>:</td><td> </td><td valign="top"><a href="#Writing-the-_002etoc-file">Writing the .toc file</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-table-of-contents_002c-hyperlinks">table of contents, hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Contents-hyperlinks">Contents hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-table-of-contents_002c-short">table of contents, short</a>:</td><td> </td><td valign="top"><a href="#Reading-the-_002etoc-file">Reading the .toc file</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-table-of-contents_002c-short-1">table of contents, short</a>:</td><td> </td><td valign="top"><a href="#Macro-arguments">Macro arguments</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tables">tables</a>:</td><td> </td><td valign="top"><a href="#Tables">Tables</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tabs">tabs</a>:</td><td> </td><td valign="top"><a href="#Obeying-spaces">Obeying spaces</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TeX-by-Topic"><i>TeX by Topic</i></a>:</td><td> </td><td valign="top"><a href="#Iteration">Iteration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TeX-Frequently-Asked-Question">TeX Frequently Asked Question</a>:</td><td> </td><td valign="top"><a href="#g_t_005cifinteger-and-_005cisinteger">\ifinteger and \isinteger</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXFORMATS"><code>TEXFORMATS</code></a>:</td><td> </td><td valign="top"><a href="#Installation">Installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-texi2dvi"><code>texi2dvi</code></a>:</td><td> </td><td valign="top"><a href="#Invoking-Eplain">Invoking Eplain</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-texi2dvi-1"><code>texi2dvi</code></a>:</td><td> </td><td valign="top"><a href="#Citations">Citations</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-texi2dvi-2"><code>texi2dvi</code></a>:</td><td> </td><td valign="top"><a href="#Indexing">Indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Texinfo">Texinfo</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TEXINPUTS"><code>TEXINPUTS</code></a>:</td><td> </td><td valign="top"><a href="#Installation">Installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-time-of-day">time of day</a>:</td><td> </td><td valign="top"><a href="#Time-of-day">Time of day</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-toc-files_002c-writing-several"><code>toc</code> files, writing several</a>:</td><td> </td><td valign="top"><a href="#Changing-the-_002etoc-file_0027s-root-name">Changing the .toc file's root name</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-tracing">tracing</a>:</td><td> </td><td valign="top"><a href="#Diagnostics">Diagnostics</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-trailing-spaces-and-indexing-commands">trailing spaces and indexing commands</a>:</td><td> </td><td valign="top"><a href="#Indexing-terms">Indexing terms</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-trimsee"><code>trimsee</code></a>:</td><td> </td><td valign="top"><a href="#Customizing-indexing">Customizing indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-triple-column-output">triple column output</a>:</td><td> </td><td valign="top"><a href="#Multiple-columns">Multiple columns</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Tu_002c-Loring-W_002e">Tu, Loring W.</a>:</td><td> </td><td valign="top"><a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-TUGboat"><i>TUGboat</i></a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-type_002c-link-and-destination">type, link and destination</a>:</td><td> </td><td valign="top"><a href="#Introduction-to-hyperlinks">Introduction to hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-types_002c-destination_002c-dvipdfm">types, destination, <code>dvipdfm</code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-types_002c-destination_002c-hypertex">types, destination, <code>hypertex</code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-hypertex">Destination types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-types_002c-destination_002c-pdftex">types, destination, <code>pdftex</code></a>:</td><td> </td><td valign="top"><a href="#Destination-types-for-pdftex-and-dvipdfm">Destination types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-types_002c-link_002c-dvipdfm">types, link, <code>dvipdfm</code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-types_002c-link_002c-hypertex">types, link, <code>hypertex</code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-hypertex">Link types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-types_002c-link_002c-pdftex">types, link, <code>pdftex</code></a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-typesetting-an-index">typesetting an index</a>:</td><td> </td><td valign="top"><a href="#Typesetting-an-index">Typesetting an index</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Concept-index_cp_letter-U">U</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-undefined-control-sequence_002c-checking-for">undefined control sequence, checking for</a>:</td><td> </td><td valign="top"><a href="#g_t_005cifundefined">\ifundefined</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-undefined-labels_002c-warnings-about">undefined labels, warnings about</a>:</td><td> </td><td valign="top"><a href="#Installation">Installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-underline-hyperlink-border">underline hyperlink border</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-underlining">underlining</a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-underlining-page-numbers-in-index">underlining page numbers in index</a>:</td><td> </td><td valign="top"><a href="#Page-list-and-page-range-parsers">Page list and page range parsers</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-universal-mapping-property">universal mapping property</a>:</td><td> </td><td valign="top"><a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-unordered-lists">unordered lists</a>:</td><td> </td><td valign="top"><a href="#Lists">Lists</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-upgrading">upgrading</a>:</td><td> </td><td valign="top"><a href="#Installation">Installation</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-URL-for-ifpdf_002esty"><acronym>URL</acronym> for <samp>ifpdf.sty</samp></a>:</td><td> </td><td valign="top"><a href="#Checking-for-PDF-output">Checking for PDF output</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-URL-for-MakeIndex"><acronym>URL</acronym> for MakeIndex</a>:</td><td> </td><td valign="top"><a href="#Indexing">Indexing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-URL-for-path_002esty"><acronym>URL</acronym> for <samp>path.sty</samp></a>:</td><td> </td><td valign="top"><a href="#Paths">Paths</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-URL-for-pdfTeX"><acronym>URL</acronym> for pdfTeX</a>:</td><td> </td><td valign="top"><a href="#Checking-for-PDF-output">Checking for PDF output</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-URL-for-texnames_002esty"><acronym>URL</acronym> for <samp>texnames.sty</samp></a>:</td><td> </td><td valign="top"><a href="#Logos">Logos</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-URL-hyperlink"><acronym>URL</acronym> hyperlink</a>:</td><td> </td><td valign="top"><a href="#General-hyperlinks">General hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-URL-hyperlink-1"><acronym>URL</acronym> hyperlink</a>:</td><td> </td><td valign="top"><a href="#URL-hyperlinks">URL hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-URL-hyperlink-2"><acronym>URL</acronym> hyperlink</a>:</td><td> </td><td valign="top"><a href="#Link-types-for-hypertex">Link types for hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-URL-hyperlink-3"><acronym>URL</acronym> hyperlink</a>:</td><td> </td><td valign="top"><a href="#Link-types-for-pdftex-and-dvipdfm">Link types for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-url_002esty"><code>url.sty</code></a>:</td><td> </td><td valign="top"><a href="#Packages-known-to-work">Packages known to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-url_002esty-1"><code>url.sty</code></a>:</td><td> </td><td valign="top"><a href="#URL-hyperlinks">URL hyperlinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-url_002esty-2"><code>url.sty</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-user_002dinaccessible-macros">user-inaccessible macros</a>:</td><td> </td><td valign="top"><a href="#Category-codes">Category codes</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Concept-index_cp_letter-V">V</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-vectors">vectors</a>:</td><td> </td><td valign="top"><a href="#Slanted-lines-and-vectors">Slanted lines and vectors</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-verbatim-listing">verbatim listing</a>:</td><td> </td><td valign="top"><a href="#Verbatim-listing">Verbatim listing</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-verbatim-listing_002c-demo">verbatim listing, demo</a>:</td><td> </td><td valign="top"><a href="#Highlighting-TeX-comments-in-listings-_0028lscommnt_002etex_0029">Highlighting TeX comments in listings (lscommnt.tex)</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-verbatim-text_002c-in-index">verbatim text, in index</a>:</td><td> </td><td valign="top"><a href="#Index-entries-with-special-characters">Index entries with special characters</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-verbatim-text_002c-in-table-of-contents">verbatim text, in table of contents</a>:</td><td> </td><td valign="top"><a href="#Writing-the-_002etoc-file">Writing the .toc file</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-version-number">version number</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Concept-index_cp_letter-W">W</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-Walden_002c-David">Walden, David</a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-Warner_002c-Frank-W_002e">Warner, Frank W.</a>:</td><td> </td><td valign="top"><a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-whatsits-made-by-hyperlinks">whatsits made by hyperlinks</a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-nolinks">Hyperlink driver nolinks</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-whatsits-made-by-index-entries">whatsits made by index entries</a>:</td><td> </td><td valign="top"><a href="#Indexing-commands">Indexing commands</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-while-loops">while loops</a>:</td><td> </td><td valign="top"><a href="#Iteration">Iteration</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-whitespace">whitespace</a>:</td><td> </td><td valign="top"><a href="#Obeying-spaces">Obeying spaces</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-width_002c-hyperlink-border">width, hyperlink border</a>:</td><td> </td><td valign="top"><a href="#Link-options-for-pdftex-and-dvipdfm">Link options for pdftex and dvipdfm</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-writing-several-toc-files">writing several <code>toc</code> files</a>:</td><td> </td><td valign="top"><a href="#Changing-the-_002etoc-file_0027s-root-name">Changing the .toc file's root name</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Concept-index_cp_letter-X">X</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-xcolor_002esty"><code>xcolor.sty</code></a>:</td><td> </td><td valign="top"><a href="#Packages-known-not-to-work">Packages known not to work</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xdvi"><code>xdvi</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlink-driver-hypertex">Hyperlink driver hypertex</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-XeLaTeX">XeLaTeX</a>:</td><td> </td><td valign="top"><a href="#Logos">Logos</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xeplain_002etex"><code>xeplain.tex</code></a>:</td><td> </td><td valign="top"><a href="#Introduction">Introduction</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-XeTeX">XeTeX</a>:</td><td> </td><td valign="top"><a href="#Logos">Logos</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-xhyper_002etex"><code>xhyper.tex</code></a>:</td><td> </td><td valign="top"><a href="#Hyperlinks-_0028xhyper_002etex_0029">Hyperlinks (xhyper.tex)</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Concept-index_cp_letter-Z">Z</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="#index-Zassenhaus_002c-Hans">Zassenhaus, Hans</a>:</td><td> </td><td valign="top"><a href="#Construction-of-commutative-diagrams">Construction of commutative diagrams</a></td></tr> +<tr><td></td><td valign="top"><a href="#index-zooming_002c-hyperlink-destination">zooming, hyperlink destination</a>:</td><td> </td><td valign="top"><a href="#Destination-options-for-pdftex-and-dvipdfm">Destination options for pdftex and dvipdfm</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +</table> +<table><tr><th valign="top">Jump to: </th><td><a class="summary-letter" href="#Concept-index_cp_symbol-1"><b>*</b></a> + +<a class="summary-letter" href="#Concept-index_cp_symbol-2"><b>.</b></a> + +<br> +<a class="summary-letter" href="#Concept-index_cp_letter-A"><b>A</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-B"><b>B</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-C"><b>C</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-D"><b>D</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-E"><b>E</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-F"><b>F</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-G"><b>G</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-H"><b>H</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-I"><b>I</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-J"><b>J</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-K"><b>K</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-L"><b>L</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-M"><b>M</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-N"><b>N</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-O"><b>O</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-P"><b>P</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-Q"><b>Q</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-R"><b>R</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-S"><b>S</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-T"><b>T</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-U"><b>U</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-V"><b>V</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-W"><b>W</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-X"><b>X</b></a> + +<a class="summary-letter" href="#Concept-index_cp_letter-Z"><b>Z</b></a> + +</td></tr></table> + + +<hr> + + + +</body> +</html> |