summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/eplain
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-12-08 00:33:10 +0000
committerKarl Berry <karl@freefriends.org>2006-12-08 00:33:10 +0000
commit4ac020d664274755c1fd75b93e4ccd34a051038e (patch)
tree14c198cdfd66880c00badfb5ff921d7d76a4a533 /Master/texmf-dist/doc/eplain
parent7ff51640e2fd3e968488d312879dee70458f2926 (diff)
update eplain.info
git-svn-id: svn://tug.org/texlive/trunk@2631 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/eplain')
-rw-r--r--Master/texmf-dist/doc/eplain/doc/eplain.info7863
1 files changed, 0 insertions, 7863 deletions
diff --git a/Master/texmf-dist/doc/eplain/doc/eplain.info b/Master/texmf-dist/doc/eplain/doc/eplain.info
deleted file mode 100644
index aa7dd6bbd4e..00000000000
--- a/Master/texmf-dist/doc/eplain/doc/eplain.info
+++ /dev/null
@@ -1,7863 +0,0 @@
-This is eplain.info, produced by makeinfo version 4.8 from eplain.texi.
-
- This manual documents the Eplain macros, version 3.1, December 2006.
-Eplain provides functionality for plain TeX that is intended to be
-useful regardless of how your document is actually formatted.
-
- Most of this manual is in the public domain, like most of the Eplain
-code. It was mostly written by Karl Berry, starting in 1989. Steven
-Smith wrote the documentation for the commutative diagram macros; this
-chapter is under the GNU General Public License. Adam Lewenberg has
-made additions and corrections. Oleg Katsitadze has helped with writing
-the section on LaTeX packages and the chapter on hyperlinks.
-
-INFO-DIR-SECTION Texinfo documentation system
-START-INFO-DIR-ENTRY
-* Eplain: (eplain). Expanding on plain Tex.
-END-INFO-DIR-ENTRY
-
-
-File: eplain.info, Node: Top, Next: Introduction, Up: (dir)
-
-Eplain
-******
-
-This manual documents the Eplain macros, version 3.1, December 2006.
-Eplain provides functionality for plain TeX that is intended to be
-useful regardless of how your document is actually formatted.
-
- Most of this manual is in the public domain, like most of the Eplain
-code. It was mostly written by Karl Berry, starting in 1989. Steven
-Smith wrote the documentation for the commutative diagram macros; this
-chapter is under the GNU General Public License. Adam Lewenberg has
-made additions and corrections. Oleg Katsitadze has helped with writing
-the section on LaTeX packages and the chapter on hyperlinks.
-
-* Menu:
-
-* Introduction:: Eplain's purpose and philosophy.
-* Installation:: Installing Eplain.
-* Invoking Eplain:: Using Eplain from a TeX file.
-* User definitions:: Macros to be used in a document.
-* Hyperlinks:: Producing documents with hyperlinks.
-* Arrow theoretic diagrams:: Macros for commutative diagrams.
-* Programming definitions:: Macros to be used in writing other macros.
-* Demo files:: Sample documents demonstrating Eplain.
-* Macro index:: Entries for TeX and Eplain control sequences.
-* Concept index:: General index.
-
- --- The Detailed Node Listing ---
-
-User definitions
-
-* Diagnostics:: Tracing information.
-* Rules:: Changing the default rule dimensions.
-* Citations:: Using BibTeX and Eplain to make bibliographies.
-* Displays:: Changing the formatting of math displays.
-* Time of day:: Producing the time of day.
-* Lists:: Producing numbered and unordered lists.
-* Verbatim listing:: Producing text just as it appears.
-* Contents:: Making a table of contents.
-* Cross-references:: Symbolically referring to pages or equations.
-* Page references:: Symbolic references to page numbers.
-* Equation references:: Symbolic references to equation numbers.
-* Indexing:: Creating and typesetting indexes.
-* Justification:: Left- or right-justification, or centering.
-* Tables:: Producing ordered tables.
-* Margins:: Changing the margins directly.
-* Multiple columns:: Getting output in two columns.
-* Footnotes:: Autonumbered footnotes; changing formatting.
-* Fractions:: A better way to produce fractions in text.
-* Paths:: Allowing line breaks in pathnames.
-* Logos:: Various logos.
-* Boxes:: Producing filled or open rectangles.
-* Checking for PDF output:: Checking for pdfTeX in PDF mode.
-* Loading LaTeX packages:: Support for LaTeX packages under plain TeX.
-
-Citations
-
-* Formatting citations:: Changing the way citations are printed.
-* Formatting bibliographies:: Changing the way bibliographies are printed.
-
-Displays
-
-* Formatting displays:: General formatting of displays.
-
-Lists
-
-* Formatting lists:: Changing how the lists look.
-
-Contents
-
-* Writing the .toc file::
-* Reading the .toc file::
-* Changing the .toc file's root name::
-* Alternative contents files::
-
-Cross-references
-
-* Defining generic references::
-* Using generic references::
-
-Equation references
-
-* Formatting equation references::
-* Subequation references::
-
-Indexing
-
-* Indexing terms:: Specifying what to index.
-* Typesetting an index:: Printing the sorted output.
-* Customizing indexing:: Creating commands and specifying extra actions.
-
-Indexing terms
-
-* Indexing commands:: Making index entries.
-* Modifying index entries:: Ranges, see/see also, page number typesetting.
-* Index entries with special characters::
-* Proofing index terms:: Noting index entries in the margins.
-
-Loading LaTeX packages
-
-* The \usepackage command:: Command to load packages.
-* Environment for loading packages:: Environment for the \usepackage commands.
-* Packages known to work:: Supported packages.
-* Packages known not to work:: Packages known not to work with Eplain.
-
-Hyperlinks
-
-* Introduction to hyperlinks::
-* Explicit hyperlinks::
-* Implicit hyperlinks::
-* Hyperlink drivers::
-* Setting hyperlink types and options::
-* Turning hyperlinks on/off::
-
-Implicit hyperlinks
-
-* General hyperlinks:: hrefint, hrefext
-* URL hyperlinks:: url
-* Citation hyperlinks:: cite, bib
-* List hyperlinks:: li
-* Cross-reference hyperlinks:: definexref, ref
-* Page reference hyperlinks:: xrdef, xref
-* Equation reference hyperlinks:: eq
-* Index hyperlinks:: idx
-* Footnote hyperlinks:: foot, footback
-* Contents hyperlinks::
-
-Index hyperlinks
-
-* Exact destinations for index terms::
-* Page destinations for index terms::
-* Choosing destination placement::
-* Index page list and page range parsers::
-* Hyperlinks in see and see also entries::
-
-Hyperlink drivers
-
-* Options supported by all drivers::
-* Hyperlink driver hypertex::
-* Hyperlink drivers pdftex and dvipdfm::
-* Hyperlink driver nolinks::
-
-Hyperlink driver hypertex::
-
-* Destination types for hypertex::
-* Destination options for hypertex::
-* Link types for hypertex::
-* Link options for hypertex::
-
-Hyperlink drivers pdftex and dvipdfm::
-
-* Destination types for pdftex and dvipdfm::
-* Destination options for pdftex and dvipdfm::
-* Link types for pdftex and dvipdfm::
-* Link options for pdftex and dvipdfm::
-
-Setting hyperlink types and options
-
-* Setting default types and options::
-* Setting group types::
-* Setting group options::
-
-Turning hyperlinks on/off
-
-* Turning low-level commands on/off::
-* Turning hyperlinks on/off for a group::
-
-Arrow theoretic diagrams
-
-* Slanted lines and vectors::
-* Commutative diagrams::
-
-Commutative diagrams
-
-* Arrows and morphisms::
-* Construction of commutative diagrams::
-* Commutative diagram parameters::
-
-Programming definitions
-
-* Category codes:: Changing category codes.
-* Allocation macros:: Non-outer versions of \newcount et al.
-* Iteration:: Doing `for' and `while' loops in TeX.
-* Macro arguments:: Reading and ignoring them.
-* Converting to characters:: Normalizing control sequences and spaces.
-* Expansion:: Controlling expansion.
-* Obeying spaces:: Making whitespace count anywhere.
-* Writing out numbers:: Making `1' into `one'.
-* Mode-specific penalties::
-* Auxiliary files:: Testing for their existence.
-* User-defined environments:: User-defined environments.
-* Page list and page range parsers::
-
-Expansion
-
-* \csn and \ece::
-* \edefappend::
-* Hooks:: Manipulating and executing named actions.
-* Properties:: Associating information with a csname.
-* \expandonce::
-* \ifundefined::
-* \ifempty::
-* \ifinteger and \isinteger::
-* \futurenonspacelet::
-
-Demo files
-
-* Hyperlinks (xhyper.tex)::
-* Highlighting TeX comments in listings (lscommnt.tex)::
-
-
-File: eplain.info, Node: Introduction, Next: Installation, Prev: Top, Up: Top
-
-1 Introduction
-**************
-
-The "Eplain" macro package expands on and extends the definitions in
-plain TeX. This manual describes the definitions that you, as either
-an author or a macro writer, might like to use. It doesn't discuss the
-implementation; see comments in the source code (`xeplain.tex') for
-that.
-
- Eplain is not intended to provide "generic" typesetting
-capabilities, as do LaTeX (written by Leslie Lamport) or Texinfo (written
-by Richard Stallman and others). 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.
-
- For example, Eplain does not have a command `\section', which would
-format section headings in an "appropriate" way, such as LaTeX's
-`\section'. 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 are out of luck.
-
- 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 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.
-
- 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 `The TeXbook' 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.
-
- 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.
-
- You can send bug reports or suggestions to <tex-eplain@tug.org>.
-The current version number of Eplain is defined as the macro
-`\fmtversion' at the end of the source file `eplain.tex'. When
-corresponding, please refer to it.
-
- To get on this mailing list yourself, email
-<tex-eplain-request@tug.org> with a message whose body contains a line
-
- subscribe YOU@YOUR.PREFERRED.ADDRESS
-
-or visit `http://tug.org/mailman/listinfo/tex-eplain'.
-
- David Walden had reported his experience with Eplain as a new user.
-The article is available online at
-`http://tug.org/pracjourn/2005-4/walden'. An introductory article
-(written for TUGboat) is also available online at
-`http://tug.org/eplain/misc/tb84katsi.pdf'.
-
-
-File: eplain.info, Node: Installation, Next: Invoking Eplain, Prev: Introduction, Up: Top
-
-2 Installation
-**************
-
-Your TeX installation should already contain a version of Eplain
-(`eplain.tex') in its main `texmf' tree (usually under
-`/usr/share/texmf/tex/eplain/' on Unix systems). To install a newer
-version of Eplain, put the new `eplain.tex' (included in Eplain
-distributions) in the `tex/eplain/' subdirectory of your local `texmf'
-tree. The newer version you install in the local tree should override
-the older one in the main tree.
-
- The location of the local `texmf' tree obviously depends on your
-operating system and TeX installation. On Unix systems the usual
-location is `/usr/local/share/texmf/'. If you don't have write
-permissions for `/usr/local/share/texmf/', many installations read the
-`texmf' tree in the user's home directory; `eplain.tex' then should go
-under `~/texmf/tex/eplain/'. For more information about TeX directory
-structure, please see
-`http://www.tex.ac.uk/cgi-bin/texfaq2html?label=tds'.
-
- If you prefer to install `eplain.tex' in a non-standard place, set
-an environment variable (`TEXINPUTS' for the Web2C port of TeX to Unix)
-to tell TeX how to find it.
-
- If you want, you can also create a format (`.fmt') file for Eplain,
-which will eliminate the time spent reading the macro source file with
-`\input'. You do this by issuing a sequence of Unix commands something
-like this:
-
- prompt$ touch eplain.aux
- prompt$ initex
- This is TeX, ...
- **&plain eplain
- (eplain.tex)
- *\dump
- ... MESSAGES ...
-
-You must make sure that `eplain.aux' exists _before_ you run `initex';
-otherwise, warning messages about undefined labels will never be issued.
-
- You then have to install the resulting `eplain.fmt' in your local
-`texmf' 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 `/usr/local/share/texmf/web2c/' or `/var/lib/texmf/web2c/'; the
-environment variable is `TEXFORMATS'.
-
-
-File: eplain.info, Node: Invoking Eplain, Next: User definitions, Prev: Installation, Up: Top
-
-3 Invoking Eplain
-*****************
-
-The simplest way to use Eplain is simply to put:
-
- \input eplain
-
-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.
-
- In addition, if a format (`.fmt') 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 `&eplain' to TeX's
-`**' prompt. For example:
-
- initex
- This is TeX, ...
- **&eplain myfile
-
- Depending on the implementation of TeX which you are using, you might
-also be able to invoke TeX as `eplain' and have the format file
-automatically read.
-
- 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 `\input eplain' will waste time; if it isn't, then you must load
-it. To solve this, Eplain defines the control sequence `\eplain' to be
-the letter `t' (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:
-
- \ifx\eplain\undefined \input eplain \fi
-
-where `\undefined' must never acquire a definition.
-
- Eplain consists of several source files:
-`xeplain.tex'
- most of the macros;
-
-`arrow.tex'
- commutative diagram macros (*note Arrow theoretic diagrams::),
- written by Steven Smith;
-
-`btxmac.tex'
- bibliography-related macros (*note Citations::);
-
-`ifpdf.sty'
- sets the switch `\ifpdf', which can be used to detect pdfTeX in
- PDF mode (*note Checking for PDF output::), written by Heiko
- Oberdiek;
-
-`path.sty'
- macro for allowing line breaks at punctuation characters within
- long pathnames, electronic mail addresses, etc., (*note Paths::),
- written by Philip Taylor;
-
-`texnames.sty'
- abbreviations for various TeX-related names (*note Logos::), edited
- by Nelson Beebe.
-
-
-The file `eplain.tex' is all of these files merged together, with
-comments removed.
-
- All of these files except `xeplain.tex' can be input individually,
-if all you want are the definitions in that file.
-
- 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 `\nobibtex' is defined, then the bibliography
-definitions are skipped. You must set `\nobibtex' before `eplain.tex'
-is read, naturally. For example, you could start your input file like
-this:
-
- \let\nobibtex = t
- \input eplain
-
-By default, `\nobibtex' is undefined, and so the bibliography
-definitions _are_ made.
-
- Likewise, define `\noarrow' if you don't want to include the
-commutative diagram macros from `arrow.tex', perhaps because you
-already have conflicting ones.
-
- If you don't want to read or write an `aux' file at all, for any
-kind of cross-referencing, define `\noauxfile' before reading
-`eplain.tex'. This also turns off all warnings about undefined labels.
-
- Eplain conflicts with AMSTeX (to be precise, with `amsppt.sty'): the
-macros `\cite' and `\ref' are defined by both.
-
- If you want to use AMSTeX's `\cite', the solution is to define
-`\nobibtex' before reading Eplain, as described above.
-
- If you have `amsppt.sty' loaded and use `\ref', Eplain writes a
-warning on your terminal. If you want to use the AMSTeX `\ref', do
-`\let\ref = \amsref' after reading Eplain. To avoid the warning, do
-`\let\ref = \eplainref' after reading Eplain and before using `\ref'.
-
- Sometimes you may need to run TeX more then once on your `.tex' file
-in order to produce and typeset indexes, resolve undefined
-cross-references and/or citations. The shell script `texi2dvi' from
-the Texinfo documentation system (see
-`http://www.gnu.org/software/texinfo') 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 `LATEX' environment
-variable to `tex'. For example, in a Bourne-compatible shell, the
-following command will do all the work:
-
- prompt$ LATEX=tex texi2dvi file.tex
-
-(Despite the name, `texi2dvi' can also produce `.pdf' files; just set
-`LATEX=pdftex'.) See the output from the command `texi2dvi --help' for
-invoking information and a full list of options.
-
-
-File: eplain.info, Node: User definitions, Next: Hyperlinks, Prev: Invoking Eplain, Up: Top
-
-4 User definitions
-******************
-
-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.
-
-* Menu:
-
-* Diagnostics:: Tracing information.
-* Rules:: Changing the default rule dimensions.
-* Citations:: Using BibTeX and Eplain to make bibliographies.
-* Displays:: Changing the formatting of math displays.
-* Time of day:: Producing the time of day.
-* Lists:: Producing numbered and unordered lists.
-* Verbatim listing:: Producing text just as it appears.
-* Contents:: Making a table of contents.
-* Cross-references:: Symbolic references to equations, figures, etc.
-* Page references:: Symbolic references to page numbers.
-* Equation references:: Symbolic references to equation numbers.
-* Indexing:: Creating and typesetting indexes.
-* Justification:: Ragged left, ragged right, centered.
-* Tables:: Producing ordered tables.
-* Margins:: Changing the margins directly.
-* Multiple columns:: Getting output in two columns.
-* Footnotes:: Autonumbered footnotes; changing formatting.
-* Fractions:: A better way to produce fractions in text.
-* Paths:: Allowing line breaks in pathnames.
-* Logos:: Various logos.
-* Boxes:: Producing filled or open rectangles.
-* Checking for PDF output:: Checking for pdfTeX in PDF mode.
-* Loading LaTeX packages:: Support for LaTeX packages under plain TeX.
-
-
-File: eplain.info, Node: Diagnostics, Next: Rules, Up: User definitions
-
-4.1 Diagnostics
-===============
-
-Plain TeX provides the `\tracingall' command, to turn on the maximum
-amount of tracing possible in TeX. The (usually voluminous) output
-from `\tracingall' goes both on the terminal and into the transcript
-file. 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
-`\loggingall'. (For some reason, this command is available in
-Metafont, but not in TeX.)
-
- It is also sometimes useful to see the complete contents of boxes.
-`\tracingboxes' does this. (It doesn't affect whether or not the
-contents are shown on the terminal.)
-
- You can turn off all tracing with `\tracingoff'.
-
- 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 `\gloggingall' and `\gtracingall'.
-
- Finally, if you write your own help messages (see `\newhelp' in `The
-TeXbook'), you want a convenient way to break lines in them. This is
-what TeX's `\newlinechar' parameter is for; however, plain TeX doesn't
-set `\newlinechar'. Therefore, Eplain defines it to be the character
-`^^J'.
-
- For example, one of Eplain's own error messages is defined as
-follows:
-
- \newhelp\envhelp{Perhaps you forgot to end the previous^^J%
- environment? I'm finishing off the current group,^^J%
- hoping that will fix it.}%
-
-
-File: eplain.info, Node: Rules, Next: Citations, Prev: Diagnostics, Up: User definitions
-
-4.2 Rules
-=========
-
-The default dimensions of rules are defined in chapter 21 of the `The
-TeXbook'. To sum up what is given there, the "thickness" of rules is 0.4pt
-by default. Eplain defines three parameters that let you change this
-dimension: `\hruledefaultheight', `\hruledefaultdepth', and
-`\vruledefaultwidth'. By default, they are defined as `The TeXbook'
-describes.
-
- But it would be wrong to redefine `\hrule' and `\vrule'. 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 `\ehrule' and
-`\evrule'.
-
-
-File: eplain.info, Node: Citations, Next: Displays, Prev: Rules, Up: User definitions
-
-4.3 Citations
-=============
-
-Bibliographies are part of almost every technical document. To handle
-them easily, you need two things: a program to do the tedious
-formatting, and a way to cite references by labels, rather than by
-numbers. The BibTeX program, written by Oren Patashnik, takes care of
-the first item; the citation commands in LaTeX, written to be used with
-BibTeX, take care of the second. Therefore, Eplain adopts the use of
-BibTeX, and virtually the same interface as LaTeX.
-
- 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 `.aux'. BibTeX
-reads this file. You should put the bibliography data in a file or
-files with the extension `.bib'. BibTeX writes out a file with the same
-root name as your document and extension `.bbl'. Eplain reads this file 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 `.bib' 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.
-
- 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 `.bbl' file by defining the control sequence
-`\bblfilebasename'. The default definition is simply `\jobname'.
-
- See the document `BibTeXing' (whose text is in the file
-`btxdoc.tex', which should be in the Eplain distribution you got) for
-information on how to write your .bib files. Both the BibTeX and the
-Eplain distributions contain several examples, also.
-
- The `\cite' command produces a citation in the text of your
-document. The exact printed form the citation will take is under your
-control (*note Formatting citations::). `\cite' takes one required
-argument, a comma-separated list of cross-reference labels (*note
-Cross-references::, 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. The
-`\cite' command also produces a command in the .aux file that tells
-BibTeX to retrieve the given reference(s) from the .bib file. `\cite'
-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.)
-
- Eplain can create hypertext links for citations pointing to the
-relevant bibliography entries (*note Citation hyperlinks::).
-
- Another command, `\nocite', puts the given reference(s) into the
-bibliography, but produces nothing in the text.
-
- The `\bibliography' command is next. It serves two purposes:
-producing the typeset bibliography, and telling BibTeX the root names
-of the .bib files. Therefore, the argument to `\bibliography' is a
-comma separated list of the .bib files (without the `.bib'). Again,
-spaces in this list are significant.
-
- You tell BibTeX the particular style in which you want your
-bibliography typeset with one more command: `\bibliographystyle'. The
-argument to this is a single filename STYLE, which tells BibTeX to look
-for a file STYLE.bst. See the document `Designing BibTeX styles'
-(whose text is in the `btxhak.tex') for information on how to write
-your own styles.
-
- Eplain automatically reads the citations from the .aux file when
-your job starts.
-
- If you don't want to see the messages about undefined citations, you
-can say `\xrefwarningfalse' before making any citations. Eplain
-automatically does this if the .aux file does not exist. You can
-restore the default by saying `\xrefwarningtrue'.
-
- Here is a TeX input file that illustrates the various commands.
-
- \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.
-
- If we suppose that this file was named `citex.tex' and that the
-bibliography data is in `knuth.bib' (as the `\bibliography' command
-says), the following commands do what's required. (`$ ' represents the
-shell prompt.)
-
- $ tex citex (produces undefined citation messages)
- $ bibtex citex (read knuth.bib and citex.aux, write citex.bbl)
- $ tex citex (read citex.bbl, still have undefined citations)
- $ tex citex (one more time, to resolve the references)
-
-The `texi2dvi' program can help you automate this process (*note
-Invoking Eplain::).
-
- The output looks something like (because we used the plain
-bibliography style):
-
- Two citations to Knuthian works: [2,1 note].
-
- References
-
- [1] Ronald L. Graham, Donald E. Knuth, and Oren Patashnik.
- Concrete Mathematics. Addison-Wesley, Reading, Massachusetts, 1989.
-
- [2] Donald E. Knuth. Surreal Numbers. Addison-Wesley, Reading,
- Massachusetts, 1974.
-
- 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 `alpha'.)
-
-* Menu:
-
-* Formatting citations:: Changing the way citations are printed.
-* Formatting bibliographies:: Changing the way bibliographies are printed.
-
-
-File: eplain.info, Node: Formatting citations, Next: Formatting bibliographies, Up: Citations
-
-4.3.1 Formatting citations
---------------------------
-
-You may wish to change Eplain's formatting of citations; i.e., the
-result of your `\cite' 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.
-
-`\printcitestart'
-
-`\printcitefinish'
- Eplain expands these macros at the begining and end of the list of
- citations for each `\cite' command. By default, they produce a
- `[' and `]', respectively.
-
-`\printbetweencitations'
- If a `\cite' command has multiple citations, as in
- `\cite{acp,texbook}', Eplain expands this macro in between each
- pair of citations. By default, it produces a comma followed by a
- space.
-
-`\printcitenote'
- This macro takes one argument, which is the optional note to the
- `\cite' command. If the `\cite' 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.
-
- Here is an example, showing you could produce citations as
-superscripted labels, with the optional notes in parentheses.
-
- \def\printcitestart{\unskip $^\bgroup}
- \def\printbetweencitations{,}
- \def\printcitefinish{\egroup$}
- \def\printcitenote#1{\hbox{\sevenrm\space (#1)}}
-
-
-File: eplain.info, Node: Formatting bibliographies, Prev: Formatting citations, Up: Citations
-
-4.3.2 Formatting bibliographies
--------------------------------
-
-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:
-
-`\biblabelwidth'
- This control sequence represents a `\dimen' 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 `\biblabelprint', below.
-
-`\biblabelprint'
- This macro takes one argument, the label to print. By default, the
- label is put in a box of width `\biblabelwidth', and is followed by
- an enspace. When you want to change the spacing around the
- labels, this is the right macro to redefine.
-
-`\biblabelcontents'
- This macro also takes one argument, the label to print. By
- default, the label is printed using the font `\bblrm' (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.
-
-`\bblrm'
- The default font used for printing the bibliography.
-
-`\bblem'
- The font used for printing the titles and other "emphasized"
- material.
-
-`\bblsc'
- In some styles, authors' names are printed in a caps-and-small-caps
- font. In those cases, this font is used.
-
-`\bblnewblock'
- 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.)
-
-`\biblabelextraspace'
- Bibliography entries are typeset with a hanging indentation of
- `\biblabelwidth' plus this. The default is `.5em', where the em
- width is taken from the `\bblrm' font. If you want to change
- this, you should do it inside `\bblhook'.
-
-`\bblhook'
- This is expanded before reading the .bbl 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 `\bblhook': `\parskip',
- which produces extra space between the items; and
- `\biblabelextraspace', which is described above. (By the way,
- `\hookappend' won't work with `\bblhook', despite the names. Just
- use `\def'.)
-
-
- If you are really desperate, you can also hand-edit the .bbl file
-that BibTeX produces to do anything you wish.
-
-
-File: eplain.info, Node: Displays, Next: Time of day, Prev: Citations, Up: User definitions
-
-4.4 Displays
-============
-
-By default, TeX centers displayed material. (Displayed material is
-just whatever you put between `$$''s--it's not necessarily
-mathematics.) Many layouts would be better served if the displayed
-material was left-justified. Therefore, Eplain provides the command
-`\leftdisplays', which indents displayed material by `\parindent' plus
-`\leftskip', plus `\leftdisplayindent'.
-
- You can go back to centering displays with `\centereddisplays'. (It
-is usually poor typography to have both centered and left-justified
-displays in a single publication, though.)
-
- `\leftdisplays' also changes the plain TeX commands that deal with
-alignments inside math displays, `\displaylines', `\eqalignno', and
-`\leqalignno', to produce left-justified text. You can still override
-this formatting by inserting `\hfill' glue, as explained in `The
-TeXbook'.
-
-* Menu:
-
-* Formatting displays:: General formatting of displays.
-
-
-File: eplain.info, Node: Formatting displays, Up: Displays
-
-4.4.1 Formatting displays
--------------------------
-
-If you want some other kind of formatting, you can write a definition
-of your own, analogous to `\leftdisplays'. You need only make sure
-that `\leftdisplaysetup' is called at the beginning of every display
-(presumably by invoking it in TeX's `\everydisplay' parameter), and to
-define `\generaldisplay'.
-
- `\leftdisplays' expands the old value of `\everydisplay' before
-calling `\leftdisplaysetup', 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 `\previouseverydisplay'.
-
-
-File: eplain.info, Node: Time of day, Next: Lists, Prev: Displays, Up: User definitions
-
-4.5 Time of day
-===============
-
-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.
-
- `\monthname' produces the name of the current month, abbreviated to
-three letters.
-
- `\fullmonthname' produces the name of the current month,
-unabbreviated (in English).
-
- `\timestring' produces the current time, as in `1:14 p.m.'
-
- `\timestamp' produces the current date and time, as in `23 Apr 64
-1:14 p.m.'. (Except the spacing is slightly different.)
-
- `\today' produces the current date, as in `23 April 1964'.
-
-
-File: eplain.info, Node: Lists, Next: Verbatim listing, Prev: Time of day, Up: User definitions
-
-4.6 Lists
-=========
-
-Many documents require lists of items, either numbered or simply
-enumerated. Plain TeX defines one macro to help with creating lists,
-`\item', but that is insufficient in many cases. Therefore, Eplain
-provides two pairs of commands:
-
-`\numberedlist ... \endnumberedlist'
-
-`\orderedlist ... \endorderedlist'
- These commands (they are synonyms) produce a list with the items
- numbered sequentially, starting from one. A nested `\numberedlist'
- labels the items with lowercase letters, starting with `a'.
- Another nested `\numberedlist' labels the items with roman
- numerals. Yet more deeply nested numbered lists label items with
- `*'.
-
-`\unorderedlist ... \endunorderedlist'
- This produces a list with the items labelled with small black boxes
- ("square bullets"). A nested `\unorderedlist' labels items with
- em-dashes. Doubly (and deeper) nested unordered lists label items
- with `*'s.
-
-
- The two kinds of lists can be nested within each other, as well.
-
- In both kinds of lists, you begin an item with `\li'. An item may
-continue for several paragraphs. Each item starts a paragraph.
-
- You can give `\li' 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 `\xrefn'. *Note Cross-references::.
-
- Eplain can create hypertext links for the markers produced by
-`\xrefn' pointing to the relevant list item (*note List hyperlinks::).
-
- You can also say `\listcompact' right after `\numberedlist' or
-`\unorderedlist'. The items in the list will then not have any extra
-space between them (*note Formatting lists::). You might want to do
-this if the items in this particular list are short.
-
- Here is an example:
-
- \numberedlist\listcompact
- \li The first item.
- \li The second item.
-
- The second paragraph of the second item.
- \endnumberedlist
-
-* Menu:
-
-* Formatting lists:: Changing how the lists look.
-
-
-File: eplain.info, Node: Formatting lists, Up: Lists
-
-4.6.1 Formatting lists
-----------------------
-
-Several registers define the spacing associated with lists. It is
-likely that their default values won't suit your particular layout.
-
-`\abovelistskipamount, \belowlistskipamount'
- The vertical glue inserted before and after every list,
- respectively.
-
-`\interitemskipamount'
- The vertical glue inserted before each item except the first.
- `\listcompact' resets this to zero, as mentioned above.
-
-`\listleftindent, \listrightindent'
- `\listrightindent' is the amount of space by which the list is
- indented on the right; i.e., it is added to `\rightskip'.
- `\listleftindent' is the amount of space, _relative to_
- `\parindent', 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 `\parindent' is reset to
- zero.
-
-
- The three vertical glues are inserted by macros, and preceded by
-penalties: `\abovelistskip' does `\vpenalty\abovelistpenalty' and then
-`\vskip\abovelistskip'. `\belowlistskip' and `\interitemskip' are
-analogous.
-
- In addition, the macro `\listmarkerspace' is called to separate the
-item label from the item text. This is set to `\enspace' by default.
-
- If you want to change the labels on the items, you can redefine these
-macros: `\numberedmarker' or `\unorderedmarker'. The following
-registers might be useful if you do:
-
-`\numberedlistdepth, \unorderedlistdepth'
- These keep track of the depth of nesting of the two kinds of lists.
-
-`\itemnumber, \itemletter'
- 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 `\itemnumber' starts at one, and `\itemletter'
- starts at 97, i.e., lowercase `a'.
-
-
- You can also redefine the control sequences that are used internally,
-if you want to do something radically different: `\beginlist' is
-invoked to begin both kinds of lists; `\printitem' is invoked to print
-the label (and space following the label) for each item; and `\endlist' is
-invoked to end both kinds of lists.
-
-
-File: eplain.info, Node: Verbatim listing, Next: Contents, Prev: Lists, Up: User definitions
-
-4.7 Verbatim listing
-====================
-
-It is sometimes useful to include a file verbatim in your document; for
-example, part of a computer program. The `\listing' command is given
-one argument, a filename, and produces the contents of that file in
-your document. `\listing' expands `\listingfont' to set the current
-font. The default value of `\listingfont' is `\tt'.
-
- You can take arbitrary actions before reading the file by defining
-the macro `\setuplistinghook'. This is expanded just before the file
-is input.
-
- If you want to have line numbers on the output, you can say
-`\let\setuplistinghook = \linenumberedlisting'. The line numbers are
-stored in the count register `\lineno' while the file is being read.
-You can redefine the macro `\printlistinglineno' to change how they are
-printed.
-
- Normally, the `\listing' 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 `\let\setuplistinghook =
-\nolastlinelisting'. This also works with line numbers (say
-`\def\setuplistinghook{\linenumberedlisting \nolastlinelisting}'), but
-only if `\printlistinglineno' consists exclusively of boxes at the top
-level (i.e., any `\kern's or glue should be wrapped up in a box).
-
- You can use the form feed control character (ASCII code 12, typed as
-`CTRL-L') in the file to force a page break in the output.
-
- You can produce in-line verbatim text in your document with
-`\verbatim'. End the text with `|endverbatim'. If you need a `|' in
-the text, double it. If the first character of the verbatim text is a
-space, use `| '. (`| ' will work elsewhere in the argument, too, but
-isn't necessary.)
-
- For example:
-
- \verbatim| ||\#%&!|endverbatim
-
-produces ` |\#%&!'.
-
- Line breaks and spaces in the verbatim text are preserved.
-
- You can change the verbatim escape character from the default `|'
-with `\verbatimescapechar CHAR'; for example, this changes it to `@'.
-
- \verbatimescapechar \@
-
-The backslash is not necessary in some cases, but is in others,
-depending on the catcode of the character. The argument to
-`\verbatimescapechar' is used as `\catcode `CHAR', so the exact rules
-follow that for `\catcode'.
-
- Because `\verbatim' must change the category code of special
-characters, calling inside a macro definition of your own does not work
-properly. For example:
-
- \def\mymacro{\verbatim &#%|endverbatim}% Doesn't work!
-
-To accomplish this, you must change the category codes yourself before
-making the macro definition. Perhaps `\uncatcodespecials' will help
-you (*note Category codes::).
-
-
-File: eplain.info, Node: Contents, Next: Cross-references, Prev: Verbatim listing, Up: User definitions
-
-4.8 Contents
-============
-
-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 `.toc' (and the same root
-name as your document) to save the information.
-
-* Menu:
-
-* Writing the .toc file::
-* Reading the .toc file::
-* Changing the .toc file's root name::
-* Alternative contents files::
-
-
-File: eplain.info, Node: Writing the .toc file, Next: Reading the .toc file, Up: Contents
-
-4.8.1 Writing the .toc file
----------------------------
-
-To write an entry for the table of contents, you say
-`\writetocentry{PART}{TEXT}', where PART is the type of part this entry
-is, e.g., `chapter', and TEXT is the text of the title.
-`\writetocentry' puts an entry into the .toc file that looks like
-`\tocPARTentry{TEXT}{PAGE NUMBER}' (unless PART is an integer, see
-below). The TEXT is written unexpanded.
-
- A related command, `\writenumberedtocentry', takes one additional
-argument, the first token of which is expanded at the point of the
-`\writenumberedtocentry', 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 _want_ full expansion of the third argument,
-you don't get it--you must expand it yourself, before you call
-`\writenumberedtocentry'.
-
- For example:
-
- \writenumberedtocentry{chapter}{A $\sin$ wave}{\the\chapno}
- \writetocentry{section}{A section title}
-
-Supposing `\the\chapno' expanded to `3' and that the `\write''s
-occurred on pages eight and nine, respectively, the above writes the
-following to the .toc file:
-
- \tocchapterentry{A $\sin$ wave}{3}{8}
- \tocsectionentry{A section title}{9}
-
- A variation on `\writenumberedtocentry' is `\writenumberedtocline',
-differing only in the order of the parameters it takes and writes for
-the `\tocPARTentry' control sequences. To continue the previous
-example:
-
- \writenumberedtocline{chapter}{\the\chapno}{A $\sin$ wave}
-
-writes the following to the .toc file:
-
- \tocchapterentry{3}{A $\sin$ wave}{8}
-
-Such ordering of the parameters allows the `\tocPARTentry' 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 verbatim text (*note Verbatim listing::).
-
- Each of `\writetocentry', `\writenumberedtocentry' and
-`\writenumberedtocline' processes a numeric PART argument specially.
-If you pass PART expanding to an integer, these macros write into the
-.toc file an entry that starts with `\tocentry{PART}'. Thus, you can
-define a single `\tocentry' macro which formats all entries for a table
-of contents. To continue the previous examples:
-
- \writenumberedtocentry{1}{A $\sin$ wave}{\the\chapno}
- \writenumberedtocline{1}{\the\chapno}{A $\sin$ wave}
- \writetocentry{2}{A section title}
-
-writes the following to the .toc file:
-
- \tocentry{1}{A $\sin$ wave}{3}{8}
- \tocentry{1}{3}{A $\sin$ wave}{8}
- \tocentry{2}{A section title}{9}
-
-
-File: eplain.info, Node: Reading the .toc file, Next: Changing the .toc file's root name, Prev: Writing the .toc file, Up: Contents
-
-4.8.2 Reading the .toc file
----------------------------
-
-You read the .toc file with the command `\readtocfile'. Naturally,
-whatever `\toc... entry' commands that were written to the file must be
-defined when `\readtocfile' is invoked. Eplain has minimal definitions
-for `\tocchapterentry', `\tocsectionentry', and `\tocsubsectionentry',
-just to prevent undefined control sequence errors in common cases.
-They aren't suitable for anything but preliminary proofs.
-
- Each of `\writetocentry', `\writenumberedtocentry' and
-`\writenumberedtocline' opens the .toc file for writing, thereby
-deleting the information from the previous run. You should therefore
-arrange that `\readtocfile' be called _before_ the first call to a
-`\writetoc...' macro. `\readtocfile' does not itself delete the
-information from the .toc file, so that you can call it several times,
-e.g., to create both a short and normal table of contents. (To produce
-this in particular, define `\tocsectionentry' to produce nothing while
-you are reading .toc file for a short table of contents (*note Macro
-arguments::).)
-
- On the other hand, if you don't want to rewrite the .toc file at
-all, perhaps because you are only running TeX on part of your
-manuscript, you can set `\rewritetocfilefalse'.
-
-
-File: eplain.info, Node: Changing the .toc file's root name, Next: Alternative contents files, Prev: Reading the .toc file, Up: Contents
-
-4.8.3 Changing the .toc file's root name
-----------------------------------------
-
-By default, the `.toc' file has the root `\jobname'. 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
-`\tocfilebasename'.
-
- Note that `\writetocentry', `\writenumberedtocentry' and
-`\writenumberedtocline' will open the contents file for writing only at
-the first call, using the value of `\tocfilebasename' at that time.
-Changing the value of `\tocfilebasename' afterwards will not affect
-which file gets _written_, although it will affect which file gets
-_read_ by `\readcontentsfile'. In case you need to write several
-contents files from a single TeX job, use `\definecontentsfile' (*note
-Alternative contents files::).
-
-
-File: eplain.info, Node: Alternative contents files, Prev: Changing the .toc file's root name, Up: Contents
-
-4.8.4 Alternative contents files
---------------------------------
-
-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 `\definecontentsfile{ABBREV}'. All of the above commands are
-actually a special case that Eplain predefines with
-
- \definecontentsfile{toc}
-
-The ABBREV is used both for the file extension and in the control
-sequence names.
-
-
-File: eplain.info, Node: Cross-references, Next: Page references, Prev: Contents, Up: User definitions
-
-4.9 Cross-references
-====================
-
-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.
-
- Eplain therefore provides commands for symbolic cross-references. It
-uses an auxiliary file with extension .aux (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 .aux file at
-the first reference; after reading it, Eplain reopens it for writing.
-
- You can control whether or not Eplain warns you about undefined
-labels. *Note Citations::.
-
- 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, `(a1 $&^_' is a valid label (assuming the category codes
-of plain TeX), but `%#\{' has no valid characters.
-
- You can also do symbolic cross-references for bibliographic citations
-and list items. *Note Citations::, and *Note Lists::.
-
- Eplain can create hypertext links for the cross-references (*note
-Cross-reference hyperlinks::).
-
-* Menu:
-
-* Defining generic references::
-* Using generic references::
-
-
-File: eplain.info, Node: Defining generic references, Next: Using generic references, Up: Cross-references
-
-4.9.1 Defining generic references
----------------------------------
-
-Eplain provides the command `\definexref' 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:
-
- \definexref{sec-intro}{3.1}{section}
-
-Of course, the label value is usually generated by another macro using
-TeX count registers or some such.
-
- `\definexref' doesn't actually define LABEL; instead, it writes out
-the definition to the .aux file, where Eplain will read it on the next
-TeX run.
-
- The CLASS argument is used by the `\ref' and `\refs' commands. See
-the next section.
-
-
-File: eplain.info, Node: Using generic references, Prev: Defining generic references, Up: Cross-references
-
-4.9.2 Using generic references
-------------------------------
-
-To retrieve the value of the label defined via `\definexref' (see the
-previous section), Eplain provides the following macros:
-
-`\refn{LABEL}'
-
-`\xrefn{LABEL}'
- `\refn' and `\xrefn' (they are synonyms) produce the bare
- definition of LABEL. If LABEL isn't defined, issue a warning, and
- produce LABEL itself instead, in typewriter. (The warning isn't
- given if `\xrefwarningfalse'.)
-
-`\ref{LABEL}'
- Given the class C for LABEL (see the description of `\definexref'
- in the previous section), expand the control sequence `\C word'
- (if it's defined) followed by a tie. Then call `\refn' on LABEL.
- (Example below.)
-
-`\refs{LABEL}'
- Like `\ref', but append the letter `s' to the `\...word'.
-
-
- The purpose of the `\...word' macro is to produce the word `Section'
-or `Figure' or whatever that usually precedes the actual reference
-number.
-
- Here is an example:
-
- \def\sectionword{Section}
- \definexref{sec-intro}{3.1}{section}
- \definexref{sec-next}{3.2}{section}
- See \refs{sec-intro} and \refn{sec-next} ...
-
-This produces `See Sections 3.1 and 3.2 ...'
-
-
-File: eplain.info, Node: Page references, Next: Equation references, Prev: Cross-references, Up: User definitions
-
-4.10 Page references
-====================
-
-Eplain provides two commands for handling references to page numbers,
-one for definition and one for use.
-
-`\xrdef{LABEL}'
- Define LABEL to be the current page number. This produces no
- printed output, and ignores following spaces.
-
-`\xref{LABEL}'
- Produce the text `p. PAGENO', which is the usual form for
- cross-references. The PAGENO is actually LABEL's definition; if
- LABEL isn't defined, the text of the label itself is printed. The
- `p. ' prefix is defined by `\xrefpageword'. Its default
- definition is `p.\thinspace'.
-
-
- Eplain can create hypertext links for the page references (*note
-Page reference hyperlinks::).
-
-
-File: eplain.info, Node: Equation references, Next: Indexing, Prev: Page references, Up: User definitions
-
-4.11 Equation references
-========================
-
-Instead of referring to pages, it's most useful if equation labels
-refer to equation numbers. Therefore, Eplain reserves a `\count'
-register, `\eqnumber', for the current equation number, and increments
-it at each numbered equation.
-
- Here are the commands to define equation labels and then refer to
-them:
-
-`\eqdef{LABEL}'
- This defines LABEL to be the current value of `\eqnumber', and, if
- the current context is not inner, then produces a `\eqno' command.
- (The condition makes it possible to use `\eqdef' in an
- `\eqalignno' construction, for example.) The text of the equation
- number is produced using `\eqprint'. *Note Formatting equation
- references::.
-
- If LABEL 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.
-
- 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.
-
-`\eqdefn{LABEL}'
- This is like `\eqdef', except it always omits the `\eqno' command.
- It can therefore be used in places where `\eqdef' 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.
-
-`\eqref{LABEL}'
- This produces a formatted reference to LABEL. If LABEL is
- undefined (perhaps because it is a forward reference), it just
- produces the text of the label itself. Otherwise, it calls
- `\eqprint'.
-
-`\eqrefn{LABEL}'
- This produces the cross-reference text for LABEL. That is, it is
- like `\eqref', except it doesn't call `\eqprint'.
-
-
- Equation labels can contain the same characters that are valid in
-general cross-references.
-
- Eplain can create hypertext links for the equation references (*note
-Equation reference hyperlinks::).
-
-* Menu:
-
-* Formatting equation references::
-* Subequation references::
-
-
-File: eplain.info, Node: Formatting equation references, Next: Subequation references, Up: Equation references
-
-4.11.1 Formatting equation references
--------------------------------------
-
-Both defining an equation label and referring to it should usually
-produce output. This output is produced with the `\eqprint' macro,
-which takes one argument, the equation number being defined or referred
-to. By default, this just produces `(NUMBER)', where NUMBER is the
-equation number. To produce the equation number in a different font,
-or with different surrounding symbols, or whatever, you can redefine
-`\eqprint'. 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.)
-
- \def\eqprint#1{{\it (#1)}}
-
- 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 `\eqconstruct'. For
-example:
-
- \def\eqconstruct#1{\the\chapternumber.#1}
-
-(If you are keeping the chapter number in a count register named
-`\chapternumber', naturally.)
-
- The reason for having both `\eqconstruct' and `\eqprint' may not be
-immediately apparent. The difference is that `\eqconstruct' affects
-the text that cross-reference label is defined to be, while `\eqprint'
-affects only what is typeset on the page. The example just below might
-help.
-
- 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*)'.
-
- Therefore, Eplain allows you to give an optional argument (i.e.,
-arbitrary text in square brackets) before the cross-reference label to
-\eqdef. Then, when you refer to the equation, that text is produced.
-Here's how to get the example just mentioned:
-
- $$...\eqdef{a-eq}$$
- ...
- $$...\eqdef[\eqrefn{a-eq}*]{a-eq-var}$$
- In \eqref{a-eq-var}, we expand on \eqref{a-eq}, ...
-
- We use `\eqrefn' in the cross-reference text, not `\eqref', so that
-`\eqprint' is called only once.
-
-
-File: eplain.info, Node: Subequation references, Prev: Formatting equation references, Up: Equation references
-
-4.11.2 Subequation references
------------------------------
-
-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)...".
-
- The commands to do this are `\eqsubdef' and `\eqsubdefn'. They take
-one LABEL 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 `\eqnumber', they also use another
-counter, `\subeqnumber'. This counter is advanced by one at every
-`\eqsubdef' or `\eqsubdefn', and reset to zero at every `\eqdef' or
-`\eqdefn'.
-
- You use `\eqref' to refer to subequations as well as main equations.
-
- To put the two together to construct the text that the label will
-produce, they use a macro `\eqsubreftext'. 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:
-
- \def\eqsubreftext#1#2{#1.#2}%
-
-You can redefine `\eqsubreftext' to print however you like. For
-example, this definition makes the labels print as `2a', `2b', and so
-on.
-
- \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
- }
-
-Sadly, we must define a new count register, `\subref', instead of using
-the scratch count register `\count255', because `#1' might include
-other macro calls which use `\count255'.
-
-
-File: eplain.info, Node: Indexing, Next: Justification, Prev: Equation references, Up: User definitions
-
-4.12 Indexing
-=============
-
-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.
-
- Eplain can create hypertext links pointing from the index to the
-index terms (*note Index hyperlinks::).
-
- Eplain's indexing commands were designed to work with the program
-MakeIndex, available from CTAN hosts in
-`tex-archive/indexing/makeindex'; 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 `http://www.ctan.org/tex-archive/indexing/makeindex'.
-
- The basic strategy for indexing works like this:
-
- 1. For a document `foo.tex', Eplain's indexing commands (e.g.,
- `\idx'; see the section `Indexing terms' below) write the raw index
- material to `foo.idx'.
-
- 2. MakeIndex reads `foo.idx', collects and sorts the index, and
- writes the result to `foo.ind'.
-
- 3. Eplain reads and typesets `foo.ind' on a subsequent run of TeX.
- See the section `Typesetting an index' below.
-
-
-The `texi2dvi' program can help you automate this process (*note
-Invoking Eplain::).
-
- If your document needs more than one index, each must have its own
-file. Therefore, Eplain provides the command `\defineindex', which
-takes an argument that is a single letter, which replaces `i' in the
-filenames and in the indexing command names described below. For
-example,
-
- \defineindex{m}
-
-defines the command `\mdx' to write to the file `foo.mdx'. Eplain
-simply does `\defineindex{i}' to define the default commands.
-
-* Menu:
-
-* Indexing terms:: Specifying what to index.
-* Typesetting an index:: Printing the sorted output.
-* Customizing indexing:: Creating commands and specifying extra actions.
-
-
-File: eplain.info, Node: Indexing terms, Next: Typesetting an index, Up: Indexing
-
-4.12.1 Indexing terms
----------------------
-
-Indexing commands in Eplain come in pairs: one command that only writes
-the index entry to the `.idx' file (see above section), and one that
-also typesets the term being indexed. The former always starts with `s'
-(for "silent"). In either case, the name always includes `Idx', where I
-is the index letter, also described above. Eplain defines the index `i'
-itself, so that's what we'll use in the names below.
-
- The silent form of the commands take a subterm as a trailing optional
-argument. For example, `\sidx{truth}[definition of]' on page 75 makes
-an index entry that will eventually be typeset (by default) as
-
- truth
- definition of, 75
-
- Also, the silent commands ignore trailing spaces. The non-silent
-ones do not.
-
-* Menu:
-
-* Indexing commands:: Making index entries.
-* Modifying index entries:: Ranges, see/see also, page number typesetting.
-* Index entries with special characters::
-* Proofing index terms:: Noting index entries in the margins.
-
-
-File: eplain.info, Node: Indexing commands, Next: Modifying index entries, Up: Indexing terms
-
-4.12.1.1 Indexing commands
-..........................
-
-Here are the commands.
-
- * `\sidx{TERM}[SUBTERM]' makes an index entry for TERM, optionally
- with subterm SUBTERM. `\idx{TERM}' also produces TERM as output.
- Example:
-
- \sidx{truth}[beauty of]
- The beauty of truth is \idx{death}.
-
- Subterms at the second and further levels can also be specified in
- SUBTERM, using the `\idxsubentryseparator' character to separate
- them. This character is by default `!'.
-
- * `\sidxname{FIRST M.}{VON LAST}[SUBTERM]' makes an index entry for
- `VON LAST, FIRST M.'. You can change the `, ' by redefining
- `\idxnameseparator'. `\idxname{FIRST M.}{VON LAST}' also produces
- FIRST M. VON LAST as output. (These commands are useful special
- cases of `\idx' and `\sidx'.) Example:
-
- \sidxname{Richard}{Stark}
- \idxname{Donald}{Westlake} has written many kinds of novels, under
- almost as many names.
-
- * `\sidxmarked\CS{TERM}[SUBTERM]' makes an index entry for
- `TERM[SUBTERM]', but TERM will be put in the index as `\CS{term}',
- but still sorted as just TERM. `\idxmarked\CS{TERM}' also typesets
- `\CS{term}'. This provides for the usual ways of changing the
- typesetting of index entries. 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.
-
- * `\sidxsubmarked{TERM}\CS{subterm}' makes an index entry for TERM,
- SUBTERM as usual, but also puts SUBTERM in the index as
- `\CS{term}'. `\idxsubmarked{TERM}\CS{subterm}' also typesets
- `TERM \CS{subterm}', in the unlikely event that your syntax is
- convoluted enough to make this useful. Example:
-
- \def\title#1{{\sl #1}}
- \sidxsubmarked{Anderson, Laurie}\title{Strange Angels}
- The \idxsubmarked{Anderson}\title{Carmen} is a strange twist.
-
-
- 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 `SORT@TYPESET'. For example:
-
- \sidx{Ap-weight@$A_\pi$-weight}
-
-will sort as `Ap-weight', but print with the proper math. The `@' here
-is MakeIndex's default character for this purpose. See
-`http://www.ctan.org/tex-archive/indexing/makeindex'. To make an index
-entry with an `@' in it, you have to escape it with a backslash; Eplain
-provides no macros for doing this.
-
- After any index command, Eplain runs `\hookaction{afterindexterm}'.
-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 `\if@aftersctnhead' set true when
-you're at a section heading, you could do:
-
- \hookaction{afterindexterm}{\if@aftersctnhead \nobreak \fi}
-
-
-File: eplain.info, Node: Modifying index entries, Next: Index entries with special characters, Prev: Indexing commands, Up: Indexing terms
-
-4.12.1.2 Modifying index entries
-................................
-
-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 `begin' and `end' can be specified
-together with `pagemarkup=CS' (separate them with a comma without a
-following space, like this: `[begin,pagemarkup=defn]').
-
- These work via MakeIndex's "encapsulation" feature. *Note
-Customizing indexing::, if you're not using the default characters for
-the MakeIndex operators. The other optional argument (specifying a
-subterm) is independent of these.
-
- Here are the possibilities:
-
-`begin'
-`end'
- 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:
-
- \sidx[begin]{future}[Cohen, Leonard]
- ...
- \sidx[end]{future}[Cohen, Leonard]
-
- will typeset as something like
-
- future,
- Cohen, Leonard, 65-94
-
-`see'
- 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:
-
- \sidx[see]{analysis}[archetypal]{archetypal criticism}
-
- becomes
-
- analysis,
- archetypal, see archetypal criticism
-
-`seealso'
- Similar to `see' (the previous item), but also allows for normal
- index entries of the referencing term. Example:
-
- \sidx[seealso]{archetypal criticism}[elements of]{dichotomies}
-
- becomes
-
- archetypal criticism,
- elements of, 75, 97, 114, see also dichotomies
-
- (Aside for the academically curious: The archetypally critical
- book I took these dichotomous examples from is Laurence Berman's
- `The Musical Image', which I happened to co-design and typeset.)
-
-`pagemarkup=CS'
- This puts `\CS' before the page number in the typeset index, thus
- allowing you to underline definitive entries, italicize examples,
- and the like. You do _not_ precede the control sequence CS 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:
-
- \def\defn#1{{\sl #1}}
- \sidx[pagemarkeup=defn]{indexing}
-
- becomes something like
-
- indexing, `\defn{75}'
-
-
-
-File: eplain.info, Node: Index entries with special characters, Next: Proofing index terms, Prev: Modifying index entries, Up: Indexing terms
-
-4.12.1.3 Index entries with special characters
-..............................................
-
-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 `!' has no special meaning for TeX, it is a
-subentry separator for MakeIndex, therefore you'd have to escape
-occurrences of literal `!' in index terms. Things get even more
-interesting with characters which are special in both TeX and MakeIndex.
-
- This in turn has some implications for the non-silent forms of the
-indexing commands (*note Indexing terms::), 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 (`"'):
-
- \idx{"!}
-
-This would have to be rewritten using the silent command:
-
- !\sidx{"!}
-
-In general, it is a good idea to eschew the non-silent commands
-whenever index term contains anything unusual.
-
- 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 `.idx' file. The non-silent forms then
-typeset the term by rescanning the verbatim copy, therefore for the
-non-silent commands the term, besides being a valid MakeIndex input,
-must also represent a valid TeX input. The silent commands don't have
-this restriction--their terms only need to become valid TeX input
-_after_ MakeIndex processes the `.idx' file and writes the `.ind' file.
-This is what makes the non-silent commands less powerful and more
-troublesome when dealing with special characters.
-
- Here's an example showing that terms for the silent commands can
-contain almost any character:
-
- \sidx[see]{comments}[with %@with \verbatim %"|endverbatim]
- {commenting with \verbatim %"|endverbatim}
-
-We didn't have to escape `%' in the sort string for MakeIndex, while we
-had to put it inside the verbatim environment (*note Verbatim
-listing::) in the part which MakeIndex will pass back to TeX. Also, we
-had to escape the `|' 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 `.idx' and `.ind' files
-resulting from processing the above input.
-
- As was mentioned, index terms can embed "almost any character", so
-now we'll describe the exceptions.
-
- The following characters are reset to their usual meanings because
-they are not useful verbatim: multiple consequent spaces are converted
-into a single space; ASCII tab characters are treated as spaces; ASCII
-return is treated as end-of-line (this means, among other things, that
-long terms can be broken across several lines).
-
- You have to be careful with the begin- and end-group characters (`{'
-and `}' by default). If they are matched, you don't have to do
-anything special. For example:
-
- \sidx {braces {, }@braces
- \verbatim {"|endverbatim, \verbatim }"|endverbatim}
-
-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 `\idxargopen' and/or `\idxargclose' 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:
-
- \def\idxargopen{`\<}
- \def\idxargclose{`\>}
- \sidx <left brace "{@left brace \verbatim "{"|endverbatim>
-
-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 `"'.
-
- And the final note: if you need a subentry containing brackets (`['
-and `]'), avoid the optional argument of `\sidx' and friends, and use
-instead MakeIndex's subentry separator to create the subentry with the
-brackets in it:
-
- \sidx{entry!subentry with a bracket [}
-
-
-File: eplain.info, Node: Proofing index terms, Prev: Index entries with special characters, Up: Indexing terms
-
-4.12.1.4 Proofing index terms
-.............................
-
-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.)
-
- So Eplain puts index terms in the margin of each page, if you set
-`\indexproofingtrue'. It is `false' by default. The terms are typeset
-by the macro `\indexproofterm', which takes a single argument, the term
-to be typeset. Eplain's definition of `\indexproofterm' just puts it
-into an `\hbox', first doing `\indexprooffont', which Eplain defines to
-select the font `cmtt8'. With this definition long terms run off the
-page, but since this is just for proofreading anyway, it seems
-acceptable.
-
- 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 `\ifodd\pageno', Eplain kerns by `\outsidemargin', otherwise
-by `\insidemargin'. If those macros are undefined, `\indexsetmargins'
-defines them to be one inch plus `\hoffset'.
-
- To get the proofing index entries on the proper page, Eplain defines
-a new insertion class `\@indexproof'. To unbox any index proofing
-material, Eplain redefines `\makeheadline' to call `\indexproofunbox'
-before the original `\makeheadline'. Thus, if you have your own output
-routine, that redefines or doesn't use `\makeheadline', it's up to you
-to call `\indexproofunbox' at the appropriate time.
-
-
-File: eplain.info, Node: Typesetting an index, Next: Customizing indexing, Prev: Indexing terms, Up: Indexing
-
-4.12.2 Typesetting an index
----------------------------
-
-The command `\readindexfile{i}' reads and typesets the `.ind' file that
-MakeIndex outputs (from the `.idx' file which the indexing commands in
-the previous sections write). Eplain defines a number of commands that
-support the default MakeIndex output.
-
- More precisely, `\readindexfile' reads
-`\indexfilebasename.INDEX-LETTERnd', where the INDEX-LETTER is the
-argument. `\indexfilebasename' is `\jobname' by default, but if you
-have different indexes in different parts of a book, you may wish to
-change it, just as with bibliographies (*note Citations::).
-
- MakeIndex was designed to work with LaTeX; therefore, by default the
-`.ind' file starts with `\begin{theindex}' and ends with
-`\end{theindex}'. If no `\begin' has been defined, Eplain defines one
-to ignore its argument and set up for typesetting the index (see
-below), and also defines a `\end' to ignore its argument. (In a group,
-naturally, since there is a primitive `\end').
-
- Eplain calls `\indexfonts', sets `\parindent = 0pt', and does
-`\doublecolumns' (*note Multiple columns::) at the `\begin{theindex}'.
-`\indexfonts' does nothing by default; it's just there for you to
-override. (Indexes are usually typeset in smaller type than the main
-text.)
-
- It ends the setup with `\hookrun{beginindex}', so you can override
-anything you like in that hook (*note Hooks::). For example:
-
- \hookaction{beginindex}{\triplecolumns}
-
- MakeIndex turns each main index entry into an `\item', subentries
-into `\subitem', and subsubentries into `\subsubitem'. By default, the
-first line of main entries are not indented, and subentries are
-indented 1em per level. Main entries are preceded by a `\vskip' of
-`\aboveitemskipamount', `0pt plus2pt' by default. Page breaks are
-encouraged before main entries (`\penalty -100'), but prohibited
-afterwards--Eplain has no provision for "continued" index entries.
-
- All levels do the following:
-
- \hangindent = 1em
- \raggedright
- \hyphenpenalty = 10000
-
- Each entry ends with `\hookrun{indexitem}', so you can change any of
-this. For example, to increase the allowable rag:
-
- \hookaction{indexitem}{\advance\rightskip by 2em}
-
- Finally, MakeIndex outputs `\indexspace' between each group of
-entries in the `.ind' file. Eplain makes this equivalent to `\bigbreak'.
-
-
-File: eplain.info, Node: Customizing indexing, Prev: Typesetting an index, Up: Indexing
-
-4.12.3 Customizing indexing
----------------------------
-
-By default, MakeIndex outputs `, ' after each term in the index. To
-change this, you can add the following to your MakeIndex style (`.ist')
-file:
-
- delim_0 "\\afterindexterm "
- delim_1 "\\afterindexterm "
- delim_2 "\\afterindexterm "
-
-Eplain makes `\afterindexterm' equivalent to `\quad'.
-
- You can also change the keywords Eplain recognizes (*note Modifying
-index entries::):
-
-`\idxrangebeginword'
- `begin'
-
-`\idxrangeendword'
- `end'
-
-`\idxseecmdword'
- `see'
-
-`\idxseealsocmdword'
- `seealso'
-
-
- You can also change the magic characters Eplain puts into the `.idx'
-file, in case you've changed them in the `.ist' file:
-
-`\idxsubentryseparator'
- `!'
-
-`\idxencapoperator'
- `|'
-
-`\idxbeginrangemark'
- `('
-
-`\idxendrangemark'
- `)'
-
-
- There is no macro for the `actual' (`@' by default) character,
-because it's impossible to make it expand properly.
-
- You can change the (imaginary) page number that "see also" entries
-sort as by redefining `\idxmaxpagenum'. This is 99999 by default, which
-is one digit too many for old versions of MakeIndex.
-
- The words output by Eplain for "see" and "see also" index entries
-are defined by `\indexseeword' and `\indexseealsowords' respectively.
-You can change the typeface used for these words by redefining
-`\seevariant'. And finally, the macros `\indexsee' and `\indexseealso'
-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 `\idxmaxpagenum'
-(the latter should normally be ignored). See the example below.
-
- Unfortunately, it is impossible to reliably control the commas
-produced by MakeIndex in front of "see ..." entries in the `.ind' file,
-either at MakeIndex level or at Eplain level. However, the `sed'
-script contained in `trimsee' distributed with Eplain in the `util'
-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:
-
- analysis,
- archetypal (see archetypal criticism)
- archetypal criticism,
- elements of, 75, 97, 114 (see also dichotomies)
-
-You would need to redefine these macros in your TeX file:
-
- \def\indexsee#1#2{({\seevariant \indexseeword\/ }#1)}
- \def\indexseealso#1#2{({\seevariant \indexseealsowords\/ }#1)}
-
-and then filter out the commas in front of the "see ..." entries by
-running the following command to produce the `.ind' file (assuming the
-name of the `.idx' file is `myfile.idx' and the `trimsee' script is
-placed in the current directory):
-
- prompt$ cat myfile.idx | makeindex | ./trimsee > myfile.ind
-
- By default, `trimsee' 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 `\indexsee' and `\indexseealso'
-commands, it is possible to adjust the `trimsee' script through its
-command line options, which are the following:
-
-`-i IS'
- Use IS as a regular expression matching separator before "see ..."
- commands in the input (default: `, \+').
-
-`-o OS'
- Use OS as a separator to replace IS before "see ..." commands
- (default: ` ').
-
-`-s SEE'
- Use SEE as a regular expression matching "see ..." commands
- (default: `\\indexsee').
-
-`-h'
-`--help'
- Print a usage message.
-
-`-v'
-`--version'
- Print version.
-
- `trimsee' reads input from the standard input, and directs its
-output to the standard output.
-
-
-File: eplain.info, Node: Justification, Next: Tables, Prev: Indexing, Up: User definitions
-
-4.13 Justification
-==================
-
-Eplain defines three commands to conveniently justify multiple lines of
-text: `\flushright', `\flushleft', and `\center'.
-
- They all work in the same way; let's take `\center' as the example.
-To start centering lines, you say `\center' 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.
-
- 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
-`\baselineskip', will have _no effect_ 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).
-
- The space between paragraphs is by default one blank line's worth.
-You can adjust this space by assigning to `\blanklineskipamount'; this
-(vertical) glue is inserted after each blank line.
-
- Here is an example:
-
- {\center First line.
-
- Second line, with a blank line before.
- }
-
-This produces:
-
- First line.
-
- Second line, with a blank line before.
-
- 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:
-
- \def\title{\begingroup\titlefont\center}
- \def\endtitle{\endgroup}
-
-
-File: eplain.info, Node: Tables, Next: Margins, Prev: Justification, Up: User definitions
-
-4.14 Tables
-===========
-
-Eplain provides a single command, `\makecolumns', to make generating
-one particular kind of table easier. More ambitious macro packages
-might be helpful to you for more difficult applications. The files
-`ruled.tex' and `TXSruled.tex', available from
-`http://www.ctan.org/tex-archive/macros/texsis', is the only one I know
-of.
-
- 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.
-
- `\makecolumns' 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
-`\makecolumns' command itself).
-
- `\parindent' defines the space to the left of the table. `\hsize'
-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.
-
- You can also control the penalty at a page break before the
-`\makecolumns' by setting the parameter `\abovecolumnspenalty'. 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 `10000'. But if the table produced by `\makecolumns' is standing
-on its own, `\abovecolumnspenalty' should be decreased.
-
- If you happen to give `\makecolumns' 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
-`\makecolumns' 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.
-
- Here is an 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.
-
-This produces `one', `two', and `three' in the first column, and
-`four', `five', and `six' in the second.
-
-
-File: eplain.info, Node: Margins, Next: Multiple columns, Prev: Tables, Up: User definitions
-
-4.15 Margins
-============
-
-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 "margins" 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.
-
-`\topmargin = DIMEN'
-`\bottommargin = DIMEN'
-`\leftmargin = DIMEN'
-
-`\rightmargin = DIMEN'
- These commands set the specified margin to the DIMEN given. The
- `=' and the spaces around it are optional. The control sequences
- here are not TeX registers, despite appearances; therefore,
- commands like `\showthe\topmargin' will not do what you expect.
-
-`\advancetopmargin by DIMEN'
-`\advancebottommargin by DIMEN'
-`\advanceleftmargin by DIMEN'
-
-`\advancerightmargin by DIMEN'
- These commands change the specified margin by the DIMEN given.
-
- 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 `\leftmargin = 2in', the right margin will
-remain at one inch, and the width of the lines (i.e., `\hsize') will
-decrease by one inch.
-
- 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:
-
-`\paperheight'
- The height of the output page; default is 11truein.
-
-`\paperwidth'
- The width of the output page; default is 8.5truein.
-
- If your output page has different dimensions than this, you must
-reassign to these parameters, as in
-
- \paperheight = 11truein
- \paperwidth = 17truein
-
-
-File: eplain.info, Node: Multiple columns, Next: Footnotes, Prev: Margins, Up: User definitions
-
-4.16 Multiple columns
-=====================
-
-Eplain provides for double, triple, and quadruple column output: say
-`\doublecolumns', `\triplecolumns', or `\quadcolumns', and from that
-point on, the manuscript will be set in columns. To go back to one
-column, say `\singlecolumn'.
-
- You may need to invoke `\singlecolumn' to balance the columns on the
-last page of output.
-
- To do a "column eject", i.e., move to the top of the next column, do
-`\columnfill'. This does not actually force an eject, however: it
-merely inserts a kern of size `\@normalvsize' minus `\pagetotal'
-(`\@normalvsize' being the usual height of the page; to implement
-multicolumns, Eplain multiplies `\vsize' itself by the number of
-columns). In most circumstances, a column break will be forced after
-this kern (during the column splitting operation when the whole page is
-output), as desired.
-
- The columns are separated by the value of the dimen parameter
-`\gutter'. Default value is two picas. If you want to add vertical
-material between the columns, use `\gutterbox'. For example, to put a
-vertical line between columns, define `\gutterbox' as
-
- \def\gutterbox{\vbox to \dimen0{\vfil\hbox{\vrule height\dimen0}\vfil}}%
-
-The dimension counter `\dimen0' contains the height of the column.
-
- All the `\...columns' macros insert the value of the glue parameter
-`\abovecolumnskip' before the multicolumn text, and the value of the
-glue parameter `\belowcolumnskip' after it. The default value for both
-of these parameters is `\bigskipamount', i.e., one linespace in plain
-TeX.
-
- The macros take into account only the insertion classes defined by
-plain TeX; namely, footnotes and `\topinsert's. If you have additional
-insertion classes, you will need to change the implementation.
-
- Also, Eplain makes insertions the full page width. There is no
-provision for column-width insertions.
-
-
-File: eplain.info, Node: Footnotes, Next: Fractions, Prev: Multiple columns, Up: User definitions
-
-4.17 Footnotes
-==============
-
-The most common reference mark for footnotes is a raised number,
-incremented on each footnote. The `\numberedfootnote' macro provides
-this. It takes one argument, the footnote text.
-
- If your document uses only numbered footnotes, you could make typing
-`\numberedfootnote' more convenient with a command such as:
-
- \let\footnote = \numberedfootnote
-
-After doing this, you can type your footnotes as `\footnote{FOOTNOTE
-TEXT}', instead of as `\numberedfootnote{FOOTNOTE TEXT}'.
-
- Eplain keeps the current footnote number in the count register
-`\footnotenumber'. 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 `\footnotenumber=0'.
-
- Plain TeX separates the footnote marker from the footnote text by an
-en space (it uses the `\textindent' macro). In Eplain, you can change
-this space by setting the dimension register `\footnotemarkseparation'. The
-default is still an en.
-
- You can produce a space between footenotes by setting the glue
-register `\interfootnoteskip'. The default is zero.
-
- `\parskip' is also set to zero by default before the beginning of
-each footnote (but not for the text of the footnote).
-
- You can also control footnote formatting in a more general way:
-Eplain expands the token register `\everyfootnote' 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:
-
- \everyfootnote = {\sevenrm \leftskip = 1in}
-
- By default, an `\hrule' is typeset above each group of footnotes on
-a page. You can control the dimensions of this rule by setting the
-dimension registers `\footnoterulewidth' and `\footnoteruleheight'. The
-space between the rule and the first footnote on the page is determined
-by the dimension register `\belowfootnoterulespace'. If you don't want
-any rule at all, set `\footenoteruleheight=0pt', and, most likely,
-`\belowfootnoterulespace=0pt'. 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.
-
- The space above the rule and below the text on the page is controlled
-by the glue register `\skip\footins'. The default is a plain TeX
-`\bigskip'.
-
- Eplain can create hypertext links for the footnote marks (*note
-Footnote hyperlinks::).
-
-
-File: eplain.info, Node: Fractions, Next: Paths, Prev: Footnotes, Up: User definitions
-
-4.18 Fractions
-==============
-
-Exercise 11.6 of `The TeXbook' describes a macro `\frac' for setting
-fractions, but `\frac' never made it into plain TeX. So Eplain
-includes it.
-
- `\frac' typesets the numerator and denominator in `\scriptfont0',
-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 `\frac' taking delimited arguments; see page 203 of
-`The TeXbook' for an explanation of delimited macro arguments.)
-
- For example, `\frac 23/{64}' turns `23/64' into 23/64 (you can't see
-the difference in the Info file).
-
-
-File: eplain.info, Node: Paths, Next: Logos, Prev: Fractions, Up: User definitions
-
-4.19 Paths
-==========
-
-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 `letters@alpha.gnu.ai.mit.edu' at the `@' or a `.',
-rather than at the hyphenation points in `letters' and `alpha'.
-
- If you use the `\path' macro to typeset the names, TeX will find
-these good breakpoints. The argument to `\path' is delimited by any
-character other other than `\' which does not appear in the name itself.
-`|' is often a good choice, as in:
-
- \path|letters@alpha.gnu.ai.mit.edu|
-
- You can control the exact set of characters at which breakpoints
-will be allowed by calling `\discretionaries'. This takes the same
-sort of delimited argument; any character in the argument will
-henceforth be a valid breakpoint within `\path'. The default set is
-essentially all the punctuation characters:
-
- \discretionaries |~!@$%^&*()_+`-=#{}[]:";'<>,.?\/|
-
- If for some reason you absolutely must use `\' as the delimiter
-character for `\path', you can set `\specialpathdelimiterstrue'.
-(Other delimiter characters can still be used.) TeX then processes the
-`\path' argument about four times more slowly.
-
- The `\path' macro comes from `path.sty', written by Nelson Beebe and
-Philip Taylor and available at
-`http://www.ctan.org/tex-archive/macros/latex/contrib/misc/path.sty'.
-
-
-File: eplain.info, Node: Logos, Next: Boxes, Prev: Paths, Up: User definitions
-
-4.20 Logos
-==========
-
-Eplain redefines the `\TeX' macro of plain TeX to end with `\null', so
-that the proper spacing is produced when `\TeX' is used at the end of a
-sentence. The other ...TeX macros listed here do this, also.
-
- Eplain defines `\AMSTeX', `\BibTeX' `\AMSLaTeX', `\LAMSTeX', `\LaTeX' `\MF', and
-`\SLiTeX' to produce their respective logos. (Sorry, the logos are not
-shown here.) Some spelling variants of these are also supported.
-
- All these macros come from `texnames.sty', compiled by Nelson Beebe
-and available at
-`http://www.ctan.org/tex-archive/info/biblio/texnames.sty'.
-
-
-File: eplain.info, Node: Boxes, Next: Checking for PDF output, Prev: Logos, Up: User definitions
-
-4.21 Boxes
-==========
-
-The solid rectangle that Eplain uses as a marker in unordered lists
-(*note Lists::) is available by itself: just say `\blackbox'.
-
- You can create black boxes of arbitrary size with `\hrule' or
-`\vrule'.
-
- You can also get unfilled rectangles with `\makeblankbox'. 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 `\box0' to define the
-dimensions of the rectangle it produces. (The contents of `\box0' are
-ignored.)
-
- Here is an example. This small raised open box is suitable for
-putting next to numbers in, e.g., a table of contents.
-
- \def\openbox{%
- \ht0 = 1.75pt \dp0 = 1.75pt \wd0 = 3.5pt
- \raise 2.75pt \makeblankbox{.2pt}{.2pt}
- }
-
- Finally, you can put a box around arbitrary text with `\boxit'. This
-takes one argument, which must itself be a (TeX) box, and puts a
-printed box around it, separated by `\boxitspace' white space (3 points
-by default) on all four sides. For example:
-
- \boxit{\hbox{This text is boxed.}}
-
- 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 `\parindent' to zero inside `\boxit', since it
-is very unlikely you would want indentation there. (If you do, you can
-always reset it yourself.)
-
- `\boxit' uses `\ehrule' and `\evrule' so that you can easily adjust
-the thicknesses of the box rules. *Note Rules::.
-
-
-File: eplain.info, Node: Checking for PDF output, Next: Loading LaTeX packages, Prev: Boxes, Up: User definitions
-
-4.22 Checking for PDF output
-============================
-
-pdfTeX is a TeX variant that can output both `.dvi' and `.pdf' (Adobe's
-Portable Document Format) files (see
-`http://www.ctan.org/tex-archive/systems/pdftex'). You might sometimes
-want to know whether the target format is `.pdf' or `.dvi'. The
-`\ifpdf' switch can be used to detect pdfTeX in PDF mode:
-
- \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
-
- Keep in mind that `\ifpdf' is set based on the value of the
-`\pdfoutput' primitive of pdfTeX at the time Eplain is loaded. If you
-change the value of `\pdfoutput' after you load Eplain, `\ifpdf' will
-not reflect the change.
-
- Eplain defines `\ifpdf' by incorporating Heiko Oberdiek's
-`ifpdf.sty', which is available at
-`http://www.ctan.org/tex-archive/macros/latex/contrib/oberdiek/ifpdf.sty'.
-
-
-File: eplain.info, Node: Loading LaTeX packages, Prev: Checking for PDF output, Up: User definitions
-
-4.23 Loading LaTeX packages
-===========================
-
-Eplain provides a limited support for loading LaTeX packages (`.sty'
-files--not `.cls'). 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 (*note Packages known to work::). If you discover a
-working package which is not in the list, please report it to the
-Eplain mailing list (*note Introduction::).
-
- To set up a pseudo-LaTeX environment for the packages, Eplain uses
-`miniltx.tex'
-(`http://www.ctan.org/tex-archive/macros/plain/graphics/miniltx.tex')
-from the LaTeX graphics collection, written by David Carlisle and
-Sebastian Rahtz (the collection is available at
-`http://www.ctan.org/tex-archive/macros/latex/required/graphics').
-Eplain extends `miniltx.tex' to provide some additional features, e.g.,
-support for package options.
-
-* Menu:
-
-* The \usepackage command:: Command to load packages.
-* Environment for loading packages:: Environment for the \usepackage commands.
-* Packages known to work:: Supported packages.
-* Packages known not to work:: Packages known not to work with Eplain.
-
-
-File: eplain.info, Node: The \usepackage command, Next: Environment for loading packages, Up: Loading LaTeX packages
-
-4.23.1 The `\usepackage' command
---------------------------------
-
-`\usepackage' loads a LaTeX package. Its syntax is similar to that of
-LaTeX's `\usepackage' command:
-
- \usepackage[OPTIONS]{PACKAGES}[VERSION]
-
-where OPTIONS is a comma-separated list of package options, PACKAGES is
-a comma-separated list of packages to load (without the `.sty' suffix),
-and VERSION is a package version number given as a date in the format
-`YYYY/MM/DD'. If an older version of the package is found, a warning
-is issued. If several packages are loaded within a single `\usepackage'
-command, the OPTIONS 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).
-
- For example:
-
- \usepackage[foo,bar]{pack1,pack2}[2005/08/29]
-
-will load packages `pack1' and `pack2', each with the options `foo' and
-`bar', and will check that each of the packages are dated 2005/08/29 or
-newer.
-
-
-File: eplain.info, Node: Environment for loading packages, Next: Packages known to work, Prev: The \usepackage command, Up: Loading LaTeX packages
-
-4.23.2 Environment for loading packages
----------------------------------------
-
-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
-"preamble". Neither plain TeX nor Eplain have any kind of preamble;
-therefore, Eplain requires that all packages be loaded inside a
-`\beginpackages...\endpackages' block, for example:
-
- \beginpackages
- \usepackage[foo,bar]{pack1}
- \usepackage{pack2}
- \endpackages
-
-This requirement enables Eplain to execute the "delayed" commands at
-the end of the `\beginpackages...\endpackages' block.
-
- For the same reason, it is advisable to specify only one such block
-per document, just like there is only one preamble in LaTeX.
-
- Some packages (and the pseudo-LaTeX environment, `miniltx.tex')
-redefine TeX's primitive `\input' to be a macro. Non-primitive
-`\input' is probably not what the user expects under plain TeX.
-Therefore, at the beginning of the `\beginpackages...\endpackages'
-block Eplain saves the meaning of `\input' as `\eplaininput' and
-restores the original `\input' at the end of the block. This usually
-means that the primitive `\input' is restored, unless you (or some
-other macro package you've loaded directly) have redefined it before
-calling `\beginpackages'. In case you need to access the
-package-provided `\input', Eplain saves it as `\packageinput'.
-
- Sometimes you may encounter packages which make conflicting
-redefinitions of `\input'. Common symptoms are TeX spewing
-incomprehensible error messages or hanging in a loop at a call to
-`\input'. This sometimes can be cured by restoring `\input' to
-`\eplaininput' before loading each package. For example:
-
- \beginpackages
- \usepackage{pack1}
- \let\input\eplaininput
- \usepackage{pack2}
- \endpackages
-
-
-File: eplain.info, Node: Packages known to work, Next: Packages known not to work, Prev: Environment for loading packages, Up: Loading LaTeX packages
-
-4.23.3 Packages known to work
------------------------------
-
-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.
-
-autopict (`2001/06/04 v1.1j Picture mode autoload file')
- `http://tug.org/eplain/misc/ltpictur.pdf'
-
- This is the LaTeX "picture mode", started by `\begin{picture}' and
- ended by `\end{picture}' (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.
-
-color (`1999/02/16 v1.0i Standard LaTeX Color (DPC)')
-graphics (`2001/07/07 v1.0n Standard LaTeX Graphics (DPC,SPQR)')
-graphicx (`1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)')
- `http://www.ctan.org/tex-archive/macros/latex/required/graphics/grfguide.pdf'
-
- These packages are from the LaTeX graphics collection. They
- provide commands for changing text/page colors, text rotation and
- scaling, and much more.
-
- *Warning 1:* If you encounter problems loading one of these
- packages under pdfTeX (more specifically, when pdfTeX reads
- `supp-mis.tex'), the cause may be an outdated `supp-mis.tex' (part
- of ConTeXt, a typesetting system for TeX) installed on your
- system. The problem was fixed in `supp-mis.tex'
- version 2004.10.26. You can obtain up-to-date versions of
- `supp-mis.tex' and the accompanying `supp-pdf.tex' from
- `http://www.ctan.org/tex-archive/macros/pdftex/graphics'. To
- convince TeX to use the new files, you have the following options
- in the decreasing order of preference:
-
- 1. put the new files in the same directory with your document;
-
- 2. overwrite the outdated files installed by your TeX
- distribution;
-
- 3. install the new `supp-mis.tex' and `supp-pdf.tex' files in
- the relevant subdirectory of your local `texmf' tree (for
- info on TeX directory structure see
- `http://www.tex.ac.uk/cgi-bin/texfaq2html?label=tds');
-
- 4. upgrade your ConTeXt installation.
-
- 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 `texmf'
- tree.
- *End of warning 1.*
-
- *Warning 2:* If you encounter problems using the `\pagecolor'
- command from the `color.sty' package under pdfTeX, the cause may
- be an outdated pdfTeX color and graphics driver `pdftex.def'. The
- problem was fixed in `pdftex.def' version 0.03p. You can obtain
- an up-to-date version from
- `http://www.ctan.org/tex-archive/graphics/pdftex/pdftex.def'.
- *End of warning 2.*
-
- The `graphics'/`graphicx' packages have the option `draft' which
- instructs `\includegraphics' 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 `\ttfamily'
- to switch to the typewrite type. This command is not defined by
- `miniltx.tex', therefore Eplain defines it and makes it equivalent
- to plain TeX's `\tt'.
-
- *Note Hyperlinks (xhyper.tex)::, for the demonstration of text
- rotation and graphics inclusion using the `graphicx' package, and
- using the `color' package to colorize hypertext links.
-
- Klaus Ho"ppner has written a nice introduction to the LaTeX
- graphics packages and different graphics formats. You can
- download it from
- `http://www.tug.org/pracjourn/2005-3/hoeppner'
-
-epstopdf (`2001/02/04 v1.1 Conversion with epstopdf on the fly (HO)')
- `http://www.ctan.org/tex-archive/macros/latex/contrib/oberdiek'
-
- This package does on-the-fly conversion of Encapsulated PostScript
- (EPS) graphics into Portable Document Format (PDF) graphics for
- inclusion with the `\includegraphics' command from the
- `graphics'/`graphicx' packages, so that you do not have to
- explicitly call the `epstopdf' script.
-
-psfrag (`1998/04/11 v3.04 PSfrag (MCG)')
- `http://www.ctan.org/tex-archive/macros/latex/contrib/psfrag/pfgguide.pdf'
-
- PSfrag allows the user to precisely overlay Encapsulated PostScript
- (EPS) 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.
-
-soul (`2003/11/17 v2.4 letterspacing/underlining (mf)')
- `http://www.ctan.org/tex-archive/macros/latex/contrib/soul'
-
- 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 `\usepackage' command, just say `\input soul.sty'. If
- you intend to use the highlighting macros of `soul', don't forget
- to load the `color' package.
-
-url (`2005/06/27 ver 3.2 Verb mode for urls, etc.')
- `http://www.ctan.org/tex-archive/macros/latex/contrib/misc/url.sty'
-
- This package provides a form of `\verbatim' 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.
-
- Eplain can create hypertext links with the `\url' command (*note
- URL hyperlinks::).
-
- Be sure to get a version dated at least 2005/06/27, as older
- versions have problems in plain TeX.
-
-
-File: eplain.info, Node: Packages known not to work, Prev: Packages known to work, Up: Loading LaTeX packages
-
-4.23.4 Packages known not to work
----------------------------------
-
-The following packages are known not to work with Eplain:
-
-hyperref
- `http://www.ctan.org/tex-archive/macros/latex/contrib/hyperref'
-
- This package depends heavily on LaTeX, so that it is mostly
- unusable outside of LaTeX. Eplain provides its own macros for
- creating hyperlinks, see *Note Hyperlinks::.
-
-pict2e (`2005/07/15 v0.2r Improved picture commands (HjG,RN)')
- `http://www.ctan.org/tex-archive/macros/latex/contrib/pict2e'
-
-xcolor (`2005/06/06 v2.03 LaTeX color extensions (UK)')
- `http://www.ctan.org/tex-archive/macros/latex/contrib/xcolor'
-
-
-File: eplain.info, Node: Hyperlinks, Next: Arrow theoretic diagrams, Prev: User definitions, Up: Top
-
-5 Hyperlinks
-************
-
-This chapter describes the support which Eplain provides for hypertext
-links ("hyperlinks" 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.
-
-* Menu:
-
-* Introduction to hyperlinks::
-* Explicit hyperlinks::
-* Implicit hyperlinks::
-* Hyperlink drivers::
-* Setting hyperlink types and options::
-* Turning hyperlinks on/off::
-
-
-File: eplain.info, Node: Introduction to hyperlinks, Next: Explicit hyperlinks, Up: Hyperlinks
-
-5.1 Introduction to hyperlinks
-==============================
-
-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 `\special' primitive can be used to instruct
-TeX to write special directives into its `.dvi' output file. These
-directives are not interpreted by TeX in any way; they are intended for
-programs which process the `.dvi' files produced by TeX, be it printing
-or converting to other formats, such as `.ps' or `.pdf'.
-
- 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
-`.pdf' files directly from the TeX source, skipping the `.dvi'
-generation and processing step.
-
- 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 "hyperlink drivers"
-come into play.
-
- In order for Eplain to generate proper commands, Eplain has to know
-two things: which engine or `.dvi' processor you are using, and the set
-of commands it understands.
-
- The knowledge about the commands that the various processors
-understand is programmed into Eplain's hyperlink drivers. Eplain
-provides three drivers: `hypertex' (implementation of the HyperTeX
-standard, see `http://arxiv.org/hypertex'), and `pdftex' and `dvipdfm'
-(named after the programs which process the hyperlink commands, pdfTeX
-and dvipdfm). Therefore, Eplain can only produce HyperTeX commands and
-hyperlink commands for one of these two programs--except that the
-extended `dvipdfmx' program can be used as well as the original
-`dvipdfm', since they are compatible.
-
- To tell Eplain which `.dvi' processor or extended TeX engine you are
-using, use the command `\enablehyperlinks'.
-
- For example:
-
- \enablehyperlinks
-
-instructs Eplain to attempt to automatically detect which driver to
-use, as follows: if it detects pdfTeX in PDF mode, it loads the
-`pdftex' driver. If it does not detect pdfTeX in PDF mode, the
-`hypertex' driver is loaded. The detection is based on the `\ifpdf'
-switch (*note Checking for PDF output::).
-
- If necessary, you can explicitly specify the driver name:
-
- \enablehyperlinks[pdftex]
-
-will start producing hyperlinks under the assumption that you are using
-pdfTeX.
-
- Eplain does not produce any hyperlinks until you explicitly enable
-them with `\enablehyperlinks'. 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 `dvipdfm',
-which does not understand their hyperlink commands or the HyperTeX
-commands.
-
-Concepts and Terminology
-------------------------
-
-In general, hyperlinks work as follows. You mark some place in your
-document as a hyperlink destination, associating a "hyperlink label"
-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
-(*Note Explicit hyperlinks::, and *Note Implicit hyperlinks::) describe
-the macros you can use to define destinations and create links pointing
-to those destinations.
-
- 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 "hyperlinks".
-We will use the terms "links" and "destinations" in cases when we need
-to refer specifically to links or destinations.
-
- Hyperlink drivers provide several kinds of links and destinations.
-We will refer to them as "link types" and "destination types".
-
- For example, one of the destination types that the `pdftex' driver
-provides is the `xyz' type; when the user follows a link pointing to an
-`xyz' destination, the exact location marked by that destination is
-displayed. Another destination type provided by the `pdftex' driver is
-the `fit' type; when the user follows a link pointing to a `fit'
-destination, the page containing that destination is zoomed to fit into
-the window in which the document is displayed.
-
- Similarly, drivers support various link types. For example, with the
-`pdftex' driver, the usual link type used to refer to destinations in
-the current document is called `name'. You can also create a link
-pointing to another local document (by using the `filename' link type)
-or to a URL (by using the `url' link type).
-
- In addition, each hyperlink driver supports a number of destination
-and link "options". 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).
-
- *Note Hyperlink drivers::, for the description of hyperlink types and
-options supported by the drivers. *Note Setting hyperlink types and
-options::, for the information on how to set hyperlink options.
-
-
-File: eplain.info, Node: Explicit hyperlinks, Next: Implicit hyperlinks, Prev: Introduction to hyperlinks, Up: Hyperlinks
-
-5.2 Explicit hyperlinks
-=======================
-
-Explicit hyperlinks are created by you, in the source of your document.
-The simplest command is `\hldest', which marks the current position in
-your document as a destination:
-
- \hldest{TYPE}{OPTIONS}{LABEL}
-
-Here TYPE is one of the destination types supported by the hyperlink
-driver (*note Hyperlink drivers::), OPTIONS is a comma-separated list
-of option assignments, and LABEL 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
-`pdftex' driver, the command
-
- \hldest{xyz}{zoom=2000}{index}
-
-creates a destination of type `xyz' ("the current position"), sets the
-magnification ratio for this destination to be 200%, and associates the
-label `index' with the destination.
-
- Another command, `\hlstart', paired with `\hlend', turns all
-intervening material into a link:
-
- \hlstart{TYPE}{OPTIONS}{LABEL} ... \hlend
-
-Here TYPE, OPTIONS and LABEL have the same meaning as for `\hldest'.
-Continuing the previous example,
-
- \hlstart{name}{bstyle=U,bwidth=2}{index} Index\hlend
-
-typesets the word `Index' as a link with underline border of
-width 2 PostScript points, pointing to the named destination `index'
-defined in the previous example. (The other options, like highlight
-mode and border color, are determined by the defaults, *note Setting
-default types and options::).
-
- The LABEL argument of both `\hldest' and `\hlstart' can contain
-special characters (such as `#', `%', `&', `~', etc.) without any
-escaping. This is especially important for URL links supported by some
-drivers (*note Hyperlink drivers::).
-
- Both `\hldest' and `\hlstart' ignore following spaces.
-
- Both `\hldest' and `\hlstart' expand the first token of OPTIONS
-once, so you can save a list of options in a macro and pass it for the
-OPTIONS. For example:
-
- \def\linkopts{bstyle=U,bwidth=2}
- \hlstart{name}{\linkopts}{index}Index\hlend
-
-is functionally equivalent to the previous example.
-
- *Note Hyperlinks (xhyper.tex)::, for a demonstration of the usage of
-explicit hyperlinks.
-
-
-File: eplain.info, Node: Implicit hyperlinks, Next: Hyperlink drivers, Prev: Explicit hyperlinks, Up: Hyperlinks
-
-5.3 Implicit hyperlinks
-=======================
-
-"Implicit hyperlinks" are hyperlinks created implicitly by various
-Eplain macros, such as the macros for citations, cross-references,
-indexing, etc.
-
- All such macros are divided into "link groups" and "destination
-groups" (or "linkgroups" and "destgroups" 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.
-
- *Note Setting hyperlink types and options::, for information on how
-to set parameters for a group.
-
- Here is the list of the linkgroups:
-
- hrefint, hrefext, url, cite, ref, xref, eq, idx, foot, footback.
-
- And here are the destgroups:
-
- bib, li, definexref, xrdef, eq, idx, foot, footback.
-
- *Note Hyperlinks (xhyper.tex)::, for a demonstration of the usage of
-implicit hyperlinks.
-
- The following subsections describe each of the linkgroups and
-destgroups and the hyperlink support provided.
-
-* Menu:
-
-* General hyperlinks:: hrefint, hrefext
-* URL hyperlinks:: url
-* Citation hyperlinks:: cite, bib
-* List hyperlinks:: li
-* Cross-reference hyperlinks:: definexref, ref
-* Page reference hyperlinks:: xrdef, xref
-* Equation reference hyperlinks:: eq
-* Index hyperlinks:: idx
-* Footnote hyperlinks:: foot, footback
-* Contents hyperlinks::
-
-
-File: eplain.info, Node: General hyperlinks, Next: URL hyperlinks, Up: Implicit hyperlinks
-
-5.3.1 General hyperlinks: hrefint, hrefext
--------------------------------------------
-
-`\href{URL}{TEXT}' typesets TEXT as a link to URL. It basically does
-what the explicit hyperlink macros do (*note Explicit hyperlinks::),
-but is more convenient (at the expense of flexibility).
-
- If URL starts with `#', the rest of URL is assumed to be a local
-hyperlink destination name (destination within the same document).
-Parameters for these links can be set by customizing the `hrefint'
-linkgroup. For example:
-
- See \href{#intro}{Introduction}
-
-will make `Introduction' into an internal link, which might have been
-created, e.g., with `\xrdef{intro}'.
-
- If URL does not start with `#', it is assumed to be a URL link.
-Parameters for these links can be set by customizing the `hrefext'
-linkgroup. The special characters (such as `#' and `~') in the URL
-don't need to be escaped. For example:
-
- \href{http://tug.org/eplain/doc/eplain.html#Hyperlinks}{Hyperlinks
- in Eplain}
-
-*Note URL hyperlinks::, for another way to create URL hyperlinks.
-
- The TEXT argument of `\href' can contain verbatim text (*note
-Verbatim listing::) or other macros which manipulate character
-catcodes. For example:
-
- \href{#WeirdChars}{The weird chars \verbatim #&%$~|endverbatim}
-
- `\href' does not currently handle other link types, such as `file:'
-and `run:' links.
-
-
-File: eplain.info, Node: URL hyperlinks, Next: Citation hyperlinks, Prev: General hyperlinks, Up: Implicit hyperlinks
-
-5.3.2 URL hyperlinks: url
---------------------------
-
-The `url' linkgroup covers the `\url' command from the LaTeX package `url'
-(*note Packages known to work::), as well as any new `\url'-like
-commands you define. The type for this linkgroup is set to `url' by
-the drivers which support this link type. `url' links use the
-parameter to the `\url' command as the URL to point to.
-
- You may be using the `\url' command to typeset something other than
-a URL, 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
-`\hloff[url]' (*note Turning hyperlinks on/off for a group::).
-
- By default, URL (and other types of) links are boxed, so that they
-are visually marked even if you do not load the LaTeX `color' package
-(*note Loading LaTeX packages::) and therefore link text is not
-colored. You can see the effect by compiling the following code
-snippet (be sure to get a modern `url.sty', older versions do not work
-in plain TeX; *note Packages known to work::):
-
- \input eplain
- \beginpackages
- \usepackage{url}
- \endpackages
-
- \enablehyperlinks
-
- \url{http://foo/bar}
- \bye
-
- If the hyperlink driver you use supports the link option `bwidth'
-(*note Hyperlink drivers::), you can produce colored links with no
-border around them. Try this:
-
- \input eplain
- \beginpackages
- \usepackage{url}
- \usepackage{color}
- \endpackages
-
- \enablehyperlinks
- \hlopts{bwidth=0}
-
- \url{http://foo/bar}
- \bye
-
-The command `\hlopts{bwidth=0}' sets border width to zero as the
-default for all links, and loading the `color' package automatically
-colors links using the default color (*note Options supported by all
-drivers::). If you want the border width setting to apply to URL links
-only, say `\hlopts[url]{bwidth=0}' (*note Setting hyperlink types and
-options::).
-
-
-File: eplain.info, Node: Citation hyperlinks, Next: List hyperlinks, Prev: URL hyperlinks, Up: Implicit hyperlinks
-
-5.3.3 Citation hyperlinks: cite, bib
--------------------------------------
-
-The `cite' linkgroup includes only the `\cite' command (*note
-Citations::). `\cite' turns each of the references in the list into a
-link pointing to the respective bibliography entry produced by the
-`\bibliography' command.
-
- The `bib' destgroup includes the macros related to the
-`\bibliography' command (*note Citations::). `\bibliography' inputs a
-`.bbl' file, which contains a list of bibliography entries. For each
-of the entries, a destination is defined.
-
- Both commands use the citation label as the hyperlink label.
-
-
-File: eplain.info, Node: List hyperlinks, Next: Cross-reference hyperlinks, Prev: Citation hyperlinks, Up: Implicit hyperlinks
-
-5.3.4 List hyperlinks: li
---------------------------
-
-The `li' destgroup consists of the `\li' command (*note Lists::), which
-defines a destination if you supply the optional argument
-(cross-reference label). This label is also used as the hyperlink
-label.
-
-
-File: eplain.info, Node: Cross-reference hyperlinks, Next: Page reference hyperlinks, Prev: List hyperlinks, Up: Implicit hyperlinks
-
-5.3.5 Cross-reference hyperlinks: definexref, ref
---------------------------------------------------
-
-The `definexref' destgroup is for the `\definexref' command (*note
-Defining generic references::). `\definexref' defines a destination
-using the cross-reference label (the first argument) as the hyperlink
-label.
-
- The `ref' linkgroup includes `\refn' and `\xrefn' (they are
-synonyms), `\ref', and `\refs' (*note Using generic references::).
-
- `\refn' 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 `\reftie' to the reference and become part of
-the link.
-
- `\ref' works similarly to `\refn'. It takes an optional argument,
-which is treated the same way as the optional argument to `\refn'. In
-addition, `\ref' 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 `\reftie' to the preceding word. The
-optional argument is separated from the class word by `\refspace'.
-
- Unlike `\ref', `\refs' does not take an optional argument and does
-not make the class word part of the link, which is appropriate for its
-intended use.
-
-
-File: eplain.info, Node: Page reference hyperlinks, Next: Equation reference hyperlinks, Prev: Cross-reference hyperlinks, Up: Implicit hyperlinks
-
-5.3.6 Page reference hyperlinks: xrdef, xref
----------------------------------------------
-
-The `xrdef' destgroup is for `\xrdef' (*note Page references::).
-`\xrdef' defines a destination using cross-reference label as the
-hyperlink label.
-
- The `xref' linkgroup includes the `\xref' command (*note Page
-references::). `\xref' turns its optional argument (followed by
-`\refspace'), `\xrefpageword' and the cross-reference (page number)
-into a link, using the cross-reference label as the hyperlink label.
-
-
-File: eplain.info, Node: Equation reference hyperlinks, Next: Index hyperlinks, Prev: Page reference hyperlinks, Up: Implicit hyperlinks
-
-5.3.7 Equation reference hyperlinks: eq
-----------------------------------------
-
-All commands that define equation labels are part of the `eq' destgroup.
-These are `\eqdef', `\eqdefn', `\eqsubdef' and `\eqsubdefn' (*note
-Equation references::). 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.
-
- The command `\phantomeqlabel' is called to generate hyperlink labels
-for the empty-labeled equations. By default, it produces the labels in
-the format `PHEQNUMBER', where NUMBER comes from the count register
-`\phantomeqnumber'; this count register is incremented at every
-empty-labeled equation definition.
-
- The commands `\eqref' and `\eqrefn' (*note Equation references::)
-form the `eq' linkgroup. These commands take an optional argument,
-which, when present, is tied with `\reftie' 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.
-
-
-File: eplain.info, Node: Index hyperlinks, Next: Footnote hyperlinks, Prev: Equation reference hyperlinks, Up: Implicit hyperlinks
-
-5.3.8 Index hyperlinks: idx
-----------------------------
-
-All indexing commands (`\idx', `\idxname', `\idxmarked',
-`\idxsubmarked' and their silent equivalents, *note Indexing
-commands::) form the `idx' destgroup. The `idx' linkgroup consists of
-the macros which are used to typeset the index when you say `\readindexfile{INDEX-LETTER}'
-(*note Typesetting an index::).
-
- 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 `.idx' file of the
-following general form:
-
- \indexentry{ENTRY|PAGEMARKUP}{PAGENO}
-
-where ENTRY is the index entry (converted into the internal format that
-MakeIndex understands), CS is the markup command you specified with the
-`pagemarkup=CS' optional argument to the indexing commands (*note
-Modifying index entries::), and PAGENO is the page number on which the
-term appeared. When processing the `.idx' file, MakeIndex makes the
-page number an argument to the page markup command ("encapsulates" the
-page number), so the page number in the `.ind' file appears as
-`\CS{PAGENO}'. Eplain internally replaces the CS command name with its
-own command, which, in addition to calling the original `\CS'
-encapsulator, turns the page number into a link.
-
- Eplain provides two approaches to linking page numbers in the index
-to locations of index terms in the text.
-
-* Menu:
-
-* Exact destinations for index terms::
-* Page destinations for index terms::
-* Choosing destination placement::
-* Index page list and page range parsers::
-* Hyperlinks in see and see also entries::
-
-
-File: eplain.info, Node: Exact destinations for index terms, Next: Page destinations for index terms, Up: Index hyperlinks
-
-5.3.8.1 Exact destinations for index terms
-..........................................
-
-In this approach, each command that marks an index term defines a unique
-destination and passes its label on to the `.idx' file as part of the
-`\indexentry' command. The `\indexentry' line that Eplain writes to
-the `.idx' file becomes
-
- \indexentry{ENTRY|hlidx{LABEL}{CS}}{PAGENO}
-
-where `\hlidx' is the command that is defined by Eplain to take three
-arguments: a hyperlink label (LABEL), a name of page number
-encapsulator (CS) and a page number (PAGENO). In the `.ind' file that
-MakeIndex will generate, the page number will now appear as
-
- \hlidx{LABEL}{CS}{PAGENO}
-
-The result of this command is `\CS{PAGENO}', wrapped up into a link
-pointing to LABEL destination.
-
- The hyperlink labels for the index terms are generated by the `\hlidxlabel'
-command, by default in the format `IDXNUMBER', where NUMBER is the
-value of the count register `\hlidxlabelnumber'. This count register
-is incremented at each index term.
-
- 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 _all_ index entries as distinct, because
-each one contains a (unique) hyperlink label. This disadvantage can be
-partially overcome by the script `idxuniq' distributed with Eplain in
-the `util' directory. This script filters out `\indexentry' lines
-differing only in the hyperlink label but identical otherwise. You
-should process the `.idx' with this script before passing it on to
-MakeIndex. For example:
-
- prompt$ ./idxuniq file.idx | makeindex > file.ind
-
-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; `idxuniq'
-will not filter out the second entry).
-
-
-File: eplain.info, Node: Page destinations for index terms, Next: Choosing destination placement, Prev: Exact destinations for index terms, Up: Index hyperlinks
-
-5.3.8.2 Page destinations for index terms
-.........................................
-
-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 _page_ on which the term appeared. On top of each page
-containing an index term, Eplain defines a destination with label
-produced by `\hlidxpagelabel'. The `\hlidxpagelabel' command takes a
-single argument (page number NUMBER) and by default produces the label
-in the format `IDXPGNUMBER'.
-
- With this approach, the `\indexentry' line which Eplain writes to
-the `.idx' file looks like this:
-
- \indexentry{ENTRY|hlidxpage{CS}}{PAGENO}
-
-where `\hlidxpage' is the command that is defined by Eplain to take two
-arguments: a name of page number encapsulator (CS) and a page number
-(PAGENO). In the `.ind' file that MakeIndex will generate, the page
-number will appear as
-
- \hlidxpage{CS}{PAGENO}
-
- 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.
-
- Another disadvantage is that this approach depends on the page range
-and page list separators which MakeIndex was configured to output.
-`\hlidxpage' must be able to parse the first page number in a page
-range like `1--4'. In addition, page list parsing is needed because
-MakeIndex combines two consecutive page numbers in one call to the page
-number encapsulator, so `\hlidxpage' can be passed, e.g., `1, 2' for
-the PAGENO. In this last case, `\hlidxpage' splits the two page
-numbers, applies `\CS' 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 (`\CS').
-
- Eplain's defaults for the page list and page number delimiters are
-the same as those in MakeIndex, a comma followed by a space (`, ') and
-two dashes (`--'), respectively. If you customize MakeIndex to use
-different delimiters, you must not forget to let Eplain know about them
-with the commands
-
- \setidxpagelistdelimiter{LIST-DELIM}
- \setidxpagerangedelimiter{PAGE-DELIM}
-
-(*note Page list and page range parsers::).
-
-
-File: eplain.info, Node: Choosing destination placement, Next: Index page list and page range parsers, Prev: Page destinations for index terms, Up: Index hyperlinks
-
-5.3.8.3 Choosing destination placement
-......................................
-
-The approach that Eplain should use for the index terms can be selected
-in the `\enablehyperlinks' command. The optional argument it accepts is
-a comma-separated list of options. The `idxexact' option selects the
-first approach, `idxpage' the second, and `idxnone' disables hyperlink
-support for the index terms altogether, in case you want to stop Eplain
-from writing its link wrappers into the `.idx' file. The default is
-`idxpage'.
-
- For example:
-
- \enablehyperlinks[idxexact]
-
-selects the first approach ("exact index links").
-
-
-File: eplain.info, Node: Index page list and page range parsers, Next: Hyperlinks in see and see also entries, Prev: Choosing destination placement, Up: Index hyperlinks
-
-5.3.8.4 Index page list and page range parsers
-..............................................
-
-The macros that Eplain uses to parse page lists and page ranges,
-`\idxparselist' and `\idxparserange', can sometimes be useful when
-defining page number encapsulators. *Note Page list and page range
-parsers::, for the description of these commands and an example of their
-usage.
-
-
-File: eplain.info, Node: Hyperlinks in see and see also entries, Prev: Index page list and page range parsers, Up: Index hyperlinks
-
-5.3.8.5 Hyperlinks in see and see also entries
-..............................................
-
-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 `\indexsee' and `\indexseealso' to corresponding index
-entries. But if desired, this can be implemented with `\hldest' and
-`\hlstart' (*note Explicit hyperlinks::); for 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}
-
-
-File: eplain.info, Node: Footnote hyperlinks, Next: Contents hyperlinks, Prev: Index hyperlinks, Up: Implicit hyperlinks
-
-5.3.9 Footnote hyperlinks: foot, footback
-------------------------------------------
-
-The `foot' link and destination groups include the `\numberedfootnote'
-and `\footnote' macros (*note Footnotes::). 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.
-
- The macros use hyperlink labels generated by `\hlfootlabel' and `\hlfootbacklabel'.
-The default formats for the labels are `FOOTNUMBER' and `FOOTBNUMBER',
-respectively, where NUMBER is the value of the count register `\hlfootlabelnumber'.
-This register is incremented at every footnote.
-
- 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 (*note Turning hyperlinks on/off for a group::):
-
- \hldeston[foot,footback]
- \hlon[foot,footback]
-
-
-File: eplain.info, Node: Contents hyperlinks, Prev: Footnote hyperlinks, Up: Implicit hyperlinks
-
-5.3.10 Contents hyperlinks
---------------------------
-
-There is currently no special support for hyperlinks in the table of
-contents (*note Contents::), but implementing them with the `\hldest'
-and `\hlstart ... \hlend' commands (*note Explicit hyperlinks::) should
-be possible.
-
-
-File: eplain.info, Node: Hyperlink drivers, Next: Setting hyperlink types and options, Prev: Implicit hyperlinks, Up: Hyperlinks
-
-5.4 Hyperlink drivers
-=====================
-
-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.
-
- Some of the descriptions below come from `Portable Document Format
-Reference Manual Version 1.3', March 11, 1999.
-
-* Menu:
-
-* Options supported by all drivers::
-* Hyperlink driver hypertex::
-* Hyperlink drivers pdftex and dvipdfm::
-* Hyperlink driver nolinks::
-
-
-File: eplain.info, Node: Options supported by all drivers, Next: Hyperlink driver hypertex, Up: Hyperlink drivers
-
-5.4.1 Options supported by all drivers
---------------------------------------
-
-This subsection describes the destination and link options which are
-supported by all hyperlink drivers.
-
-Destination options supported by all drivers
-............................................
-
-`raise'
- Specifies how much to raise destinations above the baseline. When
- set to zero or empty, destinations are placed at the baseline.
-
- 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 `\normalbaselineskip' (or some fraction of
- it, like `1.7\normalbaselineskip') makes the setting appropriate
- for different point sizes, in case your document uses more than
- one.
-
- The default setting is `\normalbaselineskip'. 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 `1.7\normalbaselineskip', to accommodate the usual cases of
- large operators in displayed math.
-
- Example: `\hldestopts[eq]{raise=2.5\normalbaselineskip}'
-
-Link options supported by all drivers
-.....................................
-
-`colormodel'
-`color'
- These two options define the color to be used for rendering the
- link text. The colors are used only when a `\color' command is
- defined, e.g., by loading the LaTeX `color' package (*note
- Packages known to work::). The `\color' command is called as
- `\color[COLORMODEL]{COLOR}', where COLORMODEL and COLOR are the
- definitions of the `colormodel' and `color' options, respectively.
- However, if COLORMODEL is empty, the optional argument to
- `\color' is omitted; and if COLOR is empty, the `\color' command
- is omitted altogether. The default setting is `COLORMODEL=cmyk'
- and `COLOR=0.28,1,1,0.35'.
-
- 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
- `\hlopts', because comma is the option list delimiter. With the
- `color' package, it is possible to specify such colors by defining
- a custom color with `\definecolor' and using the new color name
- with an empty COLORMODEL (see examples below).
-
- Examples:
-
- \hlopts{colormodel=,color=blue}% predefined color
- \definecolor{mycolor}{rgb}{.3,.8,.95}
- \hlopts{colormodel=,color=mycolor}% custom color
- \hlopts{colormodel=gray,color=.4}
-
-
-File: eplain.info, Node: Hyperlink driver hypertex, Next: Hyperlink drivers pdftex and dvipdfm, Prev: Options supported by all drivers, Up: Hyperlink drivers
-
-5.4.2 Hyperlink driver `hypertex'
----------------------------------
-
-HyperTeX is a standard for inclusion of hyperlink information in TeX
-(and LaTeX) documents (see `http://arxiv.org/hypertex'). This standard
-defines a set of hyperlink tags implemented as `\special' commands
-written into the DVI file. The major advantage of such standard is
-that a single `.dvi' file containing HyperTeX commands can be viewed by
-any HyperTeX-enabled viewer (e.g., any more or less modern version of `xdvi')
-or converted to other file formats (e.g., PDF) by any HyperTeX-enabled
-DVI converter (e.g., `dvipdfmx' or `dvips' with Ghostscript's `ps2pdf'
-script).
-
- 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 PDF file format, Eplain provides the
-`pdftex' and `dvipdfm' drivers which provide fine control over the PDF
-options (*note Hyperlink drivers pdftex and dvipdfm::).
-
- For more information on programs which support the HyperTeX standard,
-please see
-
- `http://arxiv.org/hypertex'
- `http://www.tug.org/tex-archive/support/hypertex/hypertex'
-
-For convenience, we list a few HyperTeX-enabled converters:
-
-`dvips'
- Note that you need to pass the `-z' option to `dvips' to tell it
- to preserve the information about the hyperlinks. To generate a
- `.pdf' file with hyperlinks, you can use the `ps2pdf' script of Ghostscript.
- For example, if `foo.tex' is a TeX file using HyperTeX commands,
- then
-
- prompt$ tex foo.tex
- prompt$ dvips -z foo.dvi -o
- prompt$ ps2pdf foo.ps
-
- will produce `foo.pdf' with hyperlinks.
-
-`dvipdfm'
-`dvipdfmx'
- No special command line arguments are required, these programs
- automatically detect the HyperTeX commands.
-
-
- 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 URL link instead of a file link.
-
-* Menu:
-
-* Destination types for hypertex::
-* Destination options for hypertex::
-* Link types for hypertex::
-* Link options for hypertex::
-
-
-File: eplain.info, Node: Destination types for hypertex, Next: Destination options for hypertex, Up: Hyperlink driver hypertex
-
-5.4.2.1 Destination types for `hypertex'
-........................................
-
-`xyz'
- "Current position". This is the default type.
-
- Example: `\hldest{xyz}{}{dest123}'
-
-`raw'
- The destination specification (in the form of a HyperTeX
- `\special') is taken from the command sequence `\CS', where CS is
- the value of the `cmd' option. In the definition of `\CS', use `\@hllabel'
- to refer to the hyperlink label. This option is intended to be
- used with destgroups (*note Setting hyperlink types and
- options::), as it does not make sense in a direct call to `\hldest'--you
- can just call the raw command.
-
- Example:
-
- \makeatletter
- \def\mydest{\special{html:<a name="\@hllabel">}%
- \special{html:</a>}}
- \resetatcatcode
- \indent\hldest{raw}{cmd=mydest}{SpecialDest}
- Special destination.
-
-
-
-File: eplain.info, Node: Destination options for hypertex, Next: Link types for hypertex, Prev: Destination types for hypertex, Up: Hyperlink driver hypertex
-
-5.4.2.2 Destination options for `hypertex'
-..........................................
-
-`cmd'
- Name of the macro (without the leading `\') containing a HyperTeX
- `\special' for the `raw' destination.
-
- *Note Destination types for hypertex::, the description of the
- `raw' destination, for an example.
-
-
-File: eplain.info, Node: Link types for hypertex, Next: Link options for hypertex, Prev: Destination options for hypertex, Up: Hyperlink driver hypertex
-
-5.4.2.3 Link types for `hypertex'
-.................................
-
-`name'
- Go to a "named destination". The label is the destination name.
- All destinations in HyperTeX are named destinations. This is the
- default type.
-
- Example: `\hlstart{name}{}{dest123}Link to dest123\hlend'
-
-`url'
- Go to a URL. The label is the URL.
-
- Example:
-
- `\hlstart{url}{}{http://tug.org/eplain/}Eplain home\hlend'
-
-`filename'
- Go to a named destination in another file. The label is the
- destination name. The file name is specified by the `file'
- option. The file name extension can be specified separately by the `ext'
- option. The idea is to set the `ext' 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 DVI, PDF,
- possibly other formats.
-
- Example:
-
- \hlopts{ext=.pdf}
- \hlstart{filename}{file=book}{dest123}
- Link to dest123 in file `book.pdf'\hlend
-
-`raw'
- The link specification (in the form of a HyperTeX `\special') is
- taken from the command sequence `\CS', where CS is the value of the `cmd'
- option. In the definition of `\CS', use `\@hllabel' to refer to
- the hyperlink label. Use the predefined command `\hlhash' to
- insert the `#' characters. This option is intended to be used
- with linkgroups (*note Setting hyperlink types and options::), as
- it does not make sense in a direct call to `\hlstart'--you can
- just call the raw command.
-
- Example:
-
- \makeatletter
- \def\mylink{\special{html:<a href="\hlhash\@hllabel">}}
- \resetatcatcode
- \hlstart{raw}{cmd=mylink}{SpecialDest}
- Link to the special destination.\hlend
-
-
-
-File: eplain.info, Node: Link options for hypertex, Prev: Link types for hypertex, Up: Hyperlink driver hypertex
-
-5.4.2.4 Link options for `hypertex'
-...................................
-
-`cmd'
- Name of the macro (without the leading `\') containing a HyperTeX
- `\special' for the `raw' link.
-
- *Note Link types for hypertex::, the description of the `raw' link,
- for an example.
-
-`file'
- File name for the `filename' link type. See also the `ext' option.
-
- *Note Link types for hypertex::, the description of the `filename'
- link, for an example.
-
-`ext'
- File name extension for the `filename' link type. The idea is to
- set the `ext' 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 DVI, PDF, possibly other formats.
-
- *Note Link types for hypertex::, the description of the `filename'
- link, for an example.
-
-
-File: eplain.info, Node: Hyperlink drivers pdftex and dvipdfm, Next: Hyperlink driver nolinks, Prev: Hyperlink driver hypertex, Up: Hyperlink drivers
-
-5.4.3 Hyperlink drivers `pdftex' and `dvipdfm'
-----------------------------------------------
-
-This subsection describes link and destination types and options
-supported by the `pdftex' and `dvipdfm' drivers. Many of the hyperlink
-types and options are common to both drivers, so we describe them
-together.
-
-* Menu:
-
-* Destination types for pdftex and dvipdfm::
-* Destination options for pdftex and dvipdfm::
-* Link types for pdftex and dvipdfm::
-* Link options for pdftex and dvipdfm::
-
-
-File: eplain.info, Node: Destination types for pdftex and dvipdfm, Next: Destination options for pdftex and dvipdfm, Up: Hyperlink drivers pdftex and dvipdfm
-
-5.4.3.1 Destination types for `pdftex' and `dvipdfm'
-....................................................
-
-`xyz'
- "Current position". The option `zoom' specifies magnification to
- use (zero or empty means leave magnification unchanged, which is
- the default). This is the default type.
-
- For `dvipdfm': the options `left' and `top' specify position
- coordinates to use (empty options mean current position
- coordinate, which is the default).
-
- Example: `\hldest{xyz}{zoom=2000}{dest123}'
-
-`fit'
- Fit the page to the window.
-
- Example: `\hldest{fit}{}{dest123}'
-
-`fith'
- Fit the width of the page to the window.
-
- For `dvipdfm': the `top' option specifies vertical position
- (default is empty, meaning current position).
-
- Example: `\hldest{fith}{}{dest123}'
-
-`fitv'
- Fit the height of the page to the window.
-
- For `dvipdfm': The option `left' specifies horizontal position
- (default is empty, meaning current position).
-
- Example: `\hldest{fitv}{}{dest123}'
-
-`fitb'
- Fit the page's bounding box to the window.
-
- Example: `\hldest{fitb}{}{dest123}'
-
-`fitbh'
- Fit the width of the page's bounding box to the window.
-
- For `dvipdfm': the option `top' specifies vertical position
- (default is empty, meaning current position).
-
- Example: `\hldest{fitbh}{}{dest123}'
-
-`fitbv'
- Fit the height of the page's bounding box to the window.
-
- For `dvipdfm': the option `left' specifies horizontal position
- (default is empty, meaning current position).
-
- Example: `\hldest{fitbv}{}{dest123}'
-
-`fitr'
- For `pdftex': fit the rectangle specified by the options `width', `height'
- and `depth' (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).
-
- For `dvipdfm': fit the rectangle specified by the options `left', `bottom', `right'
- and `top' (in PostScript points, 72 points per inch) in the
- window. For dimensions set to empty, current position coordinate
- is substituted (these are the defaults).
-
- Example for `pdftex':
-
- \hldest{fitr}{width=\hsize,
- height=.5\vsize,depth=0pt}{dest123}
-
- Example for `dvipdfm':
-
- \hldest{fitr}{left=72,bottom=72,
- right=720,top=360}{dest123}
-
-`raw'
- The destination specification (in the form of a pdfTeX command or a
- dvipdfm `\special') is taken from the command sequence `\CS',
- where CS is the value of the `cmd' option. In the definition of
- `\CS', use `\@hllabel' to refer to the hyperlink label. This
- option is intended to be used with destgroups (*note Setting
- hyperlink types and options::), as it does not make sense in a
- direct call to `\hldest'--you can just call the raw command.
-
- Example for `pdftex':
-
- \makeatletter
- \def\mydest{\pdfdest name{\@hllabel} xyz}
- \resetatcatcode
- \hldesttype{raw}
- \hldestopts{cmd=mydest}
-
- Example for `dvipdfm':
-
- \makeatletter
- \def\mydest{\special{pdf: dest (\@hllabel)
- [@thispage /XYZ @xpos @ypos 0]}}
- \resetatcatcode
- \hldesttype{raw}
- \hldestopts{cmd=mydest}
-
-
-File: eplain.info, Node: Destination options for pdftex and dvipdfm, Next: Link types for pdftex and dvipdfm, Prev: Destination types for pdftex and dvipdfm, Up: Hyperlink drivers pdftex and dvipdfm
-
-5.4.3.2 Destination options for `pdftex' and `dvipdfm'
-......................................................
-
-With respect to the destination options, the `pdftex' and `dvipdfm'
-differ in the way the fit rectangle is specified (relative coordinates
-for `pdftex', absolute coordinates for `dvipdfm').
-
-Common destination options
-..........................
-
-`cmd'
- Name of the macro (without the leading `\') containing a pdfTeX
- command or a dvipdfm `\special' for the `raw' destination.
-
- *Note Destination types for pdftex and dvipdfm::, the description
- of the `raw' destination, for an example.
-
-`zoom'
- Magnification ratio times 1000 (like TeX's scale factor). Zero or
- empty means leave magnification unchanged, which is the default.
-
- Example: `\hldest{xyz}{zoom=2000}{dest123}'
-
-`pdftex'-specific destination options
-.....................................
-
-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).
-
-`depth'
- Depth of the fit rectangle for the `fitr' destination.
-
-`height'
- Height of the fit rectangle for the `fitr' destination.
-
-`width'
- Width of the fit rectangle for the `fitr' destination.
-
- Example:
-
- \hldest{fitr}{width=\hsize,
- height=.5\vsize,depth=0pt}{dest123}
-
-`dvipdfm'-specific destination options
-......................................
-
-The dimension options below must be specified in PostScript points
-(72 points per inch), as a number without the `bp' unit name. When set
-to empty, the current position coordinate is used (this is the default
-for all dimension options).
-
-`bottom'
- Bottom position coordinate of a box specification for the various
- destination types.
-
-`left'
- Left position coordinate of a box specification for the various
- destination types.
-
-`right'
- Right position coordinate of a box specification for the various
- destination types.
-
-`top'
- Top position coordinate of a box specification for the various
- destination types.
-
- Example:
-
- \hldest{fitr}{left=72,bottom=72,
- right=720,top=360}{dest123}
-
-
-File: eplain.info, Node: Link types for pdftex and dvipdfm, Next: Link options for pdftex and dvipdfm, Prev: Destination options for pdftex and dvipdfm, Up: Hyperlink drivers pdftex and dvipdfm
-
-5.4.3.3 Link types for `pdftex' and `dvipdfm'
-.............................................
-
-Link types are the same for the `pdftex' and `dvipdfm' drivers, except
-that the `pdftex' driver provides one additional link type `num' (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.
-
-Common link types
-.................
-
-`name'
- Go to a "named destination". The label is the destination name.
- All destinations created with `\hldest' are named destinations
- (*note Explicit hyperlinks::). This is the default type.
-
- Example: `\hlstart{name}{}{dest123}Link to dest123\hlend'
-
-`url'
- Go to a URL. The label is the URL.
-
- Example: `\hlstart{url}{}{http://tug.org/eplain/}Eplain
- home\hlend'
-
-`page'
- Go to a page. The label is the page number (counting from 1).
- Page fitting is specified by the `pagefit' option.
-
- Example:
-
- \hlstart{page}{pagefit=/FitH 600}{123}
- Link to page~123\hlend
-
-`filename'
- Go to a named destination in another file. The label is the
- destination name. The file name is specified by the `file'
- option. Page fitting is specified by the `pagefit' option. The `newwin'
- option specifies whether the destination document is opened in the
- same window or in a new window.
-
- Example:
-
- \hlstart{filename}{file=book.pdf,newwin=1}{dest123}
- Link to dest123 in file `book.pdf'\hlend
-
-`filepage'
- Go to a page in another file. The label is the page number
- (counting from 1). The file name is specified by the `file'
- option. Page fitting is specified by the `pagefit' option. The `newwin'
- option specifies whether the destination document is opened in the
- same window or in a new window.
-
- Example:
-
- \hlstart{filepage}{file=book.pdf,newwin=,
- pagefit=/FitR 50 100 300 500}{1}
- Link to page~1 in file `book.pdf'\hlend
-
-`raw'
- The link specification (in the form of a pdfTeX command or a
- dvipdfm `\special' primitive) is taken from the command sequence
- `\CS', where CS is the value of the `cmd' option. In the
- definition of `\CS', use `\@hllabel' to refer to the hyperlink
- label. This option is intended to be used with linkgroups (*note
- Setting hyperlink types and options::), as it does not make sense
- in a direct call to `\hlstart'--you can just call the raw command.
-
- Example for `pdftex':
-
- % Redirect all \url links to the first page
- \def\mycmd{\pdfstartlink goto page 1 {/Fit}}
- \hltype[url]{raw}
- \hlopts[url]{cmd=mycmd}
-
- Example for `dvipdfm':
-
- % 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}
-
-`pdftex'-specific link types
-............................
-
-`num'
- Go to a "numbered destination". The label is the destination
- number.
-
- Example: `\hlstart{num}{}{123}Link to 123\hlend'
-
-
-File: eplain.info, Node: Link options for pdftex and dvipdfm, Prev: Link types for pdftex and dvipdfm, Up: Hyperlink drivers pdftex and dvipdfm
-
-5.4.3.4 Link options for `pdftex' and `dvipdfm'
-...............................................
-
-Link options are mostly the same for the `pdftex' and `dvipdfm'
-drivers. The `pdftex' driver has additional options to specify link
-dimensions.
-
-Common link options
-...................
-
-`bcolor'
- Border color. An array of three numbers in the range 0 to 1,
- representing a color in DeviceRGB.
-
- Example: `\hlstart{name}{bcolor=.1 .5 1}{dest123}Link\hlend'
-
-`bdash'
- Array of numbers representing on and off stroke lengths for drawing
- dashes.
-
- Example: `\hlstart{name}{bstyle=D,bdash=2 4}{dest123}Link\hlend'
-
-`bstyle'
- Link border style:
-
- `S'
- The border is drawn as a solid line.
-
- `D'
- The border is drawn with a dashed line (the dash pattern is
- specified by the `bdash' option).
-
- `B'
- The border is drawn in a beveled style.
-
- `I'
- The border is drawn in an inset style.
-
- `U'
- The border is drawn as a line on the bottom of the link
- rectangle.
-
- The default is `S'.
-
- Example: `\hlstart{name}{bstyle=D,bdash=2 4}{dest123}Link\hlend'
-
-`bwidth'
- Border width in PostScript points (72 points per inch). The
- default is 1.
-
- Example: `\hlstart{name}{bwidth=2}{dest123}Link\hlend'
-
-`cmd'
- Name of the macro (without the leading `\') containing a pdfTeX
- command or a dvipdfm `\special' for the `raw' link.
-
- *Note Link types for pdftex and dvipdfm::, the description of the
- `raw' link, for an example.
-
-`file'
- File name for the `filename' and `filepage' link types.
-
- *Note Link types for pdftex and dvipdfm::, the descriptions of the
- `filename' and `filepage' links, for an example.
-
-`hlight'
- Link border highlight modes:
-
- `I'
- The rectangle specified by the bounding box of the link is
- inverted.
-
- `N'
- No highlighting is done.
-
- `O'
- The border of the link is inverted.
-
- `P'
- The region underneath the bounding box of the link is drawn
- inset into the page.
-
- The default is `I'.
-
- Example: `\hlstart{name}{bstyle=S,hlight=O}{dest123}Link\hlend'
-
-`newwin'
- For the `filename' and `filepage' links, specifies whether the
- destination document is opened in the same window or in a new
- window. The settings are:
-
- `0'
- Open in the same window.
-
- `non-0'
- Open in a new window.
-
- `empty'
- Behavior according to the viewer settings.
-
- The default is empty.
-
- *Note Link types for pdftex and dvipdfm::, the descriptions of the
- `filename' and `filepage' links, for an example.
-
-`pagefit'
- For the `page' and `filepage links', specifies how the page must
- be fitted to the window. `pagefit' specification is written to
- the PDF file as is, so it must conform to the PDF standard.
-
- *Note Link types for pdftex and dvipdfm::, the descriptions of the
- `page' and `filepage' links, for an example.
-
-`pdftex'-specific link options
-..............................
-
-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).
-
-`depth'
- Depth of the link.
-
-`height'
- Height of the link.
-
-`width'
- Width of the link.
-
- Example:
-
- \hlstart{name}{width=5in,height=20pc,depth=0pt}{dest123}
- Link\hlend
-
-
-File: eplain.info, Node: Hyperlink driver nolinks, Prev: Hyperlink drivers pdftex and dvipdfm, Up: Hyperlink drivers
-
-5.4.4 Hyperlink driver `nolinks'
---------------------------------
-
-Select this driver to suppress all hyperlinks in your document.
-
- 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 `\hloff' and `\hldestoff'
-(*note Turning hyperlinks on/off::).
-
- The purpose of `\hldestoff' and `\hloff' 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.)
-
- 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 `nolinks'. This ensures that spacing and page-breaking are the
-same as what you were getting with hyperlinks enabled.
-
- The reason for this is that hyperlinks are produced by the
-`\special' primitives or low-level hyperlink commands. Each such
-command is placed inside a "whatsit" (an internal TeX object), which
-may introduce legitimate breakpoints at places where none would exist
-without the whatsits. The macros `\hldestoff' and `\hloff' disable the
-hyperlink macros completely, so that no whatsits are produced.
-
- In contrast, the `nolinks' 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 LaTeX `color' package.)
-
- Another reason for using `nolinks' is that in horizontal mode
-`\hldest' places destinations inside boxes of zero width, height, and
-depth. When you say `\hldestoff', `\hldest' 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 `nolinks' driver helps by defining `\hldest' to produce
-the empty boxes.
-
- So, if you are planning to produce versions of your PDF document
-both with and without hyperlinks, here is the recommended way to enable
-the hyperlinks under pdfTeX:
-
- \ifpdf
- \enablehyperlinks
- \else
- \enablehyperlinks[nolinks]%
- \fi
-
-
-File: eplain.info, Node: Setting hyperlink types and options, Next: Turning hyperlinks on/off, Prev: Hyperlink drivers, Up: Hyperlinks
-
-5.5 Setting hyperlink types and options
-=======================================
-
-You can define default types for links and destinations, which will be
-used when you do not specify a type in `\hlstart' or `\hldest'.
-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 `\hlstart' or `\hldest'.
-
- The parameters for implicit links and destinations can be customized
-by setting the "group" types and options. When not set, the defaults
-are used.
-
- 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
-`\begingroup...\endgroup' block; when the group ends, the previous
-settings are restored.
-
-* Menu:
-
-* Setting default types and options::
-* Setting group types::
-* Setting group options::
-
-
-File: eplain.info, Node: Setting default types and options, Next: Setting group types, Up: Setting hyperlink types and options
-
-5.5.1 Setting default types and options
----------------------------------------
-
-The default types for links and destinations can be set with the
-following commands:
-
- \hltype{TYPE}
- \hldesttype{TYPE}
-
-where TYPE is one of the link/destination types supported by the
-selected hyperlink driver (*note Hyperlink drivers::).
-
- Default values for the options can be set with the following
-commands:
-
- \hlopts{OPTIONS}
- \hldestopts{OPTIONS}
-
-where OPTIONS is a comma-separated list of option assignments in the
-format `OPTION=VALUE'. Again, what options are allowed depends on the
-selected hyperlink driver.
-
- 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 `color' package
-(*note Loading LaTeX packages::) or use other means to define the
-`\color' 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 `bwidth'; *note
-Hyperlink drivers::):
-
- \hlopts{bwidth=0}
-
-
-File: eplain.info, Node: Setting group types, Next: Setting group options, Prev: Setting default types and options, Up: Setting hyperlink types and options
-
-5.5.2 Setting group types
--------------------------
-
-When called with an optional argument, as in
-
- \hltype[GROUPS]{TYPE}
- \hldesttype[GROUPS]{TYPE}
-
-where GROUPS is a comma-separated list of groups, `\hltype' and
-`\hldesttype' set the type for each group from GROUPS to TYPE. 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 `url' by the drivers which support this link type).
-
- There are two special "groups" which can be used inside the GROUPS
-list. An empty group sets the default type. This allows to set the
-default type and group types in one command, for example:
-
- \hltype[eq,]{TYPE}
-
-sets the link type for the `eq' linkgroup and the default link type to
-TYPE.
-
- Another special group is a star (`*') group, which signifies all
-defined groups. For example, the command
-
- \hldesttype[*,]{TYPE}
-
-sets the destination type to TYPE for each group, as well as the
-default destination type.
-
-
-File: eplain.info, Node: Setting group options, Prev: Setting group types, Up: Setting hyperlink types and options
-
-5.5.3 Setting group options
----------------------------
-
-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.
-
- To manipulate the list of option values for the groups, you use the
-`\hlopts' and `\hldestopts' commands with an optional argument:
-
- \hlopts[GROUPS]{OPTIONS}
- \hldestopts[GROUPS]{OPTIONS}
- \hlopts![GROUPS]{OPTIONS}
- \hldestopts![GROUPS]{OPTIONS}
-
-where GROUPS is a comma-separated list of groups and OPTIONS is a
-comma-separated list of option assignments. The two special "groups",
-the empty group and the star (`*') group, have the same meaning as for
-`\hltype' and `\hldesttype'. When used without the exclamation mark,
-`\hlopts' and `\hldestopts' preserve the current list of options for
-the groups, and only update the options listed in OPTIONS. If you add
-the exclamation mark, the current list of options for each group in
-GROUPS is discarded and the new list is set to OPTIONS.
-
- The "overriding" nature of the `!' 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 `!'.
-
- For example, with displayed mathematical formulas, you often need to
-adjust the `raise' option for the `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
-`\hldestopts' without the `!', for example:
-
- $$\hldestopts[eq]{raise=2.5\normalbaselineskip}
- ...
- $$
-
-The display commands (`$$') implicitly put the entire formula inside a
-(TeX) group (`\begingroup...\endgroup'), so you do not need to isolate
-the setting of the `raise' option--it will be restored after the
-closing `$$'.
-
- 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:
-
- raise=1.7\normalbaselineskip
-
-This setting usually accommodates the large operators, which often
-appear in displayed math.
-
-
-File: eplain.info, Node: Turning hyperlinks on/off, Prev: Setting hyperlink types and options, Up: Hyperlinks
-
-5.6 Turning hyperlinks on/off
-=============================
-
-Links and/or destinations can be turned on or off globally by disabling
-the low-level commands, or for each group individually.
-
- 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 `\begingroup...\endgroup' block; when the group ends, the
-previous settings are restored.
-
-* Menu:
-
-* Turning low-level commands on/off::
-* Turning hyperlinks on/off for a group::
-
-
-File: eplain.info, Node: Turning low-level commands on/off, Next: Turning hyperlinks on/off for a group, Up: Turning hyperlinks on/off
-
-5.6.1 Turning low-level commands on/off
----------------------------------------
-
-The low-level commands `\hlstart', `\hlend' and `\hldest' can be turned
-on/off with the following commands:
-
- \hldeston
- \hldestoff
- \hlon
- \hloff
-
-*Note Hyperlink driver nolinks::, for the implications of using these
-commands to disable hyperlinks for the entire document.
-
-
-File: eplain.info, Node: Turning hyperlinks on/off for a group, Prev: Turning low-level commands on/off, Up: Turning hyperlinks on/off
-
-5.6.2 Turning hyperlinks on/off for a group
--------------------------------------------
-
-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:
-
- \hldeston[GROUPS]
- \hldestoff[GROUPS]
- \hlon[GROUPS]
- \hloff[GROUPS]
-
-where GROUPS is the list of linkgroups/destgroups. This list can
-contain two special groups. The empty group switches the low-level
-commands (*note Turning low-level commands on/off::), and the star
-(`*') group operates on all defined groups.
-
- 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:
-
- \hloff
- \hloff[eq]
- \hlon
-
-all links are on except for the `eq' linkgroup.
-
-
-File: eplain.info, Node: Arrow theoretic diagrams, Next: Programming definitions, Prev: Hyperlinks, Up: Top
-
-6 Arrow theoretic diagrams
-**************************
-
-This chapter describes definitions for producing commutative diagrams.
-
- Steven Smith wrote this documentation (and the macros).
-
-* Menu:
-
-* Slanted lines and vectors::
-* Commutative diagrams::
-
-
-File: eplain.info, Node: Slanted lines and vectors, Next: Commutative diagrams, Up: Arrow theoretic diagrams
-
-6.1 Slanted lines and vectors
-=============================
-
-The macros `\drawline' and `\drawvector' provide the capability found
-in LaTeX's 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, `\drawvector(-4,1){60pt}'
-produces the vector
-
- (A vector in the 2d quadrant of length 60 pt appears here.)
-
- which lies in the 2d quadrant, has a slope of minus 1/4, and a width
-of 60 pt.
-
- Note that if an `\hbox' is placed around `\drawline' or
-`\drawvector', then the width of the `\hbox' will be the positive
-dimension specified in the third argument, except when a vertical line
-or vector is specified, e.g., `\drawline(0,1){1in}', which has zero
-width. If the specified direction lies in the 1st or 2d quadrant
-(e.g., `(1,1)' or `(-2,3)'), then the `\hbox' will have positive height
-and zero depth. Conversely, if the specified direction lies in the 3d
-or 4th quadrant (e.g., `(-1,-1)' or `(2,-3)'), then the `\hbox' will
-have positive depth and zero height.
-
- There are a finite number of directions that can be specified. For
-`\drawline', the absolute value of each integer defining the direction
-must be less than or equal to six, i.e., `(7,-1)' is incorrect, but
-`(6,-1)' is acceptable. For `\drawvector', 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 `(2,1)' instead of `(4,2)'. Also, specify `(1,0)'
-instead of, say, `(3,0)' for horizontal lines and likewise for vertical
-lines.
-
- Finally, these macros depend upon the LaTeX font `line10'. 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.
-
-
-File: eplain.info, Node: Commutative diagrams, Prev: Slanted lines and vectors, Up: Arrow theoretic diagrams
-
-6.2 Commutative diagrams
-========================
-
-The primitive commands `\drawline' and `\drawvector' 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.
-
-* Menu:
-
-* Arrows and morphisms::
-* Construction of commutative diagrams::
-* Commutative diagram parameters::
-
-
-File: eplain.info, Node: Arrows and morphisms, Next: Construction of commutative diagrams, Up: Commutative diagrams
-
-6.2.1 Arrows and morphisms
---------------------------
-
-The macros `\mapright' and `\mapleft' produce right and left pointing
-arrows, respectively. Use superscript (`^') to place a morphism above
-the arrow, e.g., `\mapright^\alpha'; use subscript (`_') to place a
-morphism below the arrow, e.g., `\mapright_{\tilde l}'. Superscripts
-and subscripts may be used simulataneously, e.g., `\mapright^\pi_{\rm
-epimor.}'.
-
- Similarly, the macros `\mapup' and `\mapdown' produce up and down
-pointing arrows, respectively. Use `\rt' to place a morphism to the
-right of the arrow, e.g., `\mapup\rt{\rm id}'; use `\lft' to place a
-morphism to the left of the arrow, e.g., `\mapup\lft\omega'. `\lft'
-and `\rt' may be used simultaneously, e.g., `\mapdown\lft\pi\rt{\rm
-monomor.}'.
-
- Slanted arrows are produced by the macro `\arrow', which takes a
-direction argument (e.g., `\arrow(3,-4)'). Use `\rt' and `\lft' to
-place morphisms to the right and left, respectively, of the arrow. A
-slanted line (no arrowhead) is produced with the macro `\sline', whose
-syntax is identical to that of `\arrow'.
-
- The length of these macros is predefined by the default TeX
-dimensions `\harrowlength', for horizontal arrows (or lines),
-`\varrowlength', for vertical arrows (or lines), and `\sarrowlength', for
-slanted arrows (or lines). To change any of these dimensions, say,
-e.g., `\harrowlength=40pt'. 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
-`\hmorphposn', `\vmorphposn', and `\morphdist'. 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 `^'/`_' or `\lft'/`\rt' construction), use the parameters
-`\hmorphposnup', `\hmorphposndn', `\vmorphposnup', `\vmorphposndn', `\hmorphposnrt', `\hmorphposnlft', `\vmorphposnrt', and
-`\vmorphposnlft'. The default values of all these dimensions are
-provided in the section on parameters that follows below.
-
- 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 `\mapright':
-
-`\mapright'
- `$X\mapright Y$' = (a right arrow).
-
-`\mapleft'
- `$X\mapleft Y$' = (a left arrow).
-
-`\hline'
- `$X\hline Y$' = (horizontal line)
-
-`\bimapright'
- `$X\bimapright Y$' = (two right arrows).
-
-`\bimapleft'
- `$X\bimapleft Y$' = (two left arrows)
-
-`\adjmapright'
- `$X\adjmapright Y$' = (two adjoint arrows; left over right)
-
-`\adjmapleft'
- `$X\adjmapleft Y$' = (two adjoint arrows; right over left)
-
-`\bihline'
- `$X\bihline Y$' = (two horizontal lines)
-
- 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 `\mapdown':
-
-`\mapdown'
- (a down arrow)
-
-`\mapup'
- (an up arrow)
-
-`\vline'
- (vertical line)
-
-`\bimapdown'
- (two down arrows)
-
-`\bimapup'
- (two up arrows)
-
-`\adjmapdown'
- (two adjoint arrows; down then up)
-
-`\adjmapup'
- (two adjoint arrows; up then down)
-
-`\bivline'
- (two vertical lines)
-
- 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 `\arrow':
-
-`\arrow'
- (a slanted arrow)
-
-`\sline'
- (a slanted line)
-
-`\biarrow'
- (two straight arrows)
-
-`\adjarrow'
- (two adjoint arrows)
-
-`\bisline'
- (two straight lines)
-
-
- The width between double arrows is controlled by the parameter
-`\channelwidth'. The parameters `\hchannel' and `\vchannel', if
-nonzero, override `\channelwidth' by controlling the horizontal and
-vertical shifting from the first arrow to the second.
-
- There are no adornments on these arrows to distinguish inclusions
-from epimorphisms from monomorphisms. Many texts, such as Lang's book
-`Algebra', use as a tasteful alternative the symbol `inc' (in roman)
-next to an arrow to denote inclusion.
-
- Future enhancements will include a mechanism to draw curved arrows
-found in, e.g., the Snake Lemma, by employing a version of the `\path'
-macros of Appendix D of `The TeXbook'.
-
-
-File: eplain.info, Node: Construction of commutative diagrams, Next: Commutative diagram parameters, Prev: Arrows and morphisms, Up: Commutative diagrams
-
-6.2.2 Construction of commutative diagrams
-------------------------------------------
-
-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 `The TeXbook'. This case is covered by the macro `\commdiag', which
-is an altered version of the Plain TeX macro `\matrix'. An example
-suffices to demonstrate this macro. The following commutative diagram
-(illustrating the covering homotopy property; Bott and Tu,
-`Differential Forms in Algebraic Topology')
-
- (A commutative diagram appears here in the printed output.)
-
- is produced with the code
-
- $$\commdiag{Y&\mapright^f&E\cr \mapdown&\arrow(3,2)\lft{f_t}&\mapdown\cr
- Y\times I&\mapright^{\bar f_t}&X}$$
-
- Of course, the parameters may be changed to produce a different
-effect. The following commutative diagram (illustrating the universal
-mapping property; Warner, `Foundations of Differentiable Manifolds and
-Lie Groups')
-
- (A commutative diagram appears here in the printed output.)
-
- is produced with the code
-
- $$\varrowlength=20pt
- \commdiag{V\otimes W\cr \mapup\lft\phi&\arrow(3,-1)\rt{\tilde l}\cr
- V\times W&\mapright^l&U\cr}$$
-
- 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, `Finite Dimensional Linear Systems')
-
- (A commutative diagram appears here in the printed output.)
-
- which is produced with the code
-
- $$\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}$$
-
- Other commutative diagram examples appear in the file
-`commdiags.tex', which is distributed with this package.
-
- 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 gamma=1.618...; the arrow
-direction closest to this mean is `(3,2)'. In the second example, a
-slope of -1/3 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 `\commdiag' by redefining the macro
-`\commdiagbaselines'. (cf. Exercise 18.46 of `The TeXbook' and the
-section on parameters below.)
-
- 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
-`\noalign' primitive to insert a `\vskip' immediately above or below
-the offending line, e.g.,
-`$$\commdiag{\noalign{\vskip6pt}X&\mapright^\int&Y\cr ...}'.
-
- The macro `\commdiag' 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 `Diagram' 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.,
-
- . . . . . .
- . . . . . .
- . . . . . .
- . . . . . .
-
- 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 `\gridcommdiag' to implement your design
-as a TeX alignment. For example, the cubic diagram
-
- (A commutative diagram appears here.)
-
- that appears in Francis Borceux's documentation can be implemented on
-a 7 by 7 grid, and is achieved with the code
-
- $$\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}$$
-
- The dimensions `\hgrid' and `\vgrid' control the horizontal and
-vertical spacing of the grid used by `\gridcommdiag'. 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 `\gridcommdiag' method, albeit more powerful, is less automatic
-than the simpler `\commdiag' method. Furthermore, the ad hoc macro
-`\cross' is introduced to allow the effect of overlapping arrows.
-Finally, note that the positions of four of the morphisms are adjusted
-by setting `\hmorphposn' and `\vmorphposn'.
-
- 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 `Algebra')
-
- (A commutative diagram appears here.)
-
- This diagram may be implemented on a 9 by 12 grid with an aspect
-ratio of 1/2, and is set with the code
-
- $$\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}$$
-
- Again, the construction of this diagram requires careful choices for
-the arrow lengths and is facilitated by the introduction of the ad hoc
-macros `\cross', `\r', and `\l'. Note also that superscripts were used
-to adjust the position of the vertices u(U intersection v) and (u
-intersection V)v. Many diagrams may be typeset with the predefined
-macros that appear here; however, ingenuity is often required to handle
-special cases.
-
-
-File: eplain.info, Node: Commutative diagram parameters, Prev: Construction of commutative diagrams, Up: Commutative diagrams
-
-6.2.3 Commutative diagram parameters
-------------------------------------
-
-The following is a list describing the parameters used in the
-commutative diagram macros. These dimensions may be changed globally or
-locally.
-
-`\harrowlength'
- (Default: 60 pt) The length of right or left arrows.
-
-`\varrowlength'
- (Default: 0.618`\harrowlength') The length of up or down arrows.
-
-`\sarrowlength'
- (Default: 60 pt) The horizontal length of slanted arrows.
-
-`\hmorphposn'
- (Default: 0 pt) The horizontal position of the morphism with
- respect to its default position. There are also the dimensions
- `\hmorphposnup', `\hmorphposndn', `\hmorphposnrt', and
- `\hmorphposnlft' for `^'/`_' or `\lft'/`\rt' constructions.
-
-`\vmorphposn'
- (Default: 0 pt) The vertical position of the morphism with respect
- to its default position. There are also the dimensions
- `\vmorphposnup', `\vmorphposndn', `\vmorphposnrt', and
- `\vmorphposnlft' for `^'/`_' or `\lft'/`\rt' constructions.
-
-`\morphdist'
- (Default: 4 pt) The distance of morphisms from slanted lines or
- arrows.
-
-`\channelwidth'
- (Default: 3 pt) The distance between double lines or arrows.
-
-`\hchannel, \vchannel'
- (Defaults: 0 pt) Overrides `\channelwidth'. The horizontal and
- vertical shifts between double lines or arrows.
-
-`\commdiagbaselines'
- (Default: `\baselineskip=15pt \lineskip=3pt \lineskiplimit=3pt ')
- The parameters used by `\commdiag' for setting interline glue.
-
-`\hgrid'
- (Default: 15 pt) The horizontal spacing of the grid used by
- `\gridcommdiag'.
-
-`\vgrid'
- (Default: 15 pt) The vertical spacing of the grid used by
- `\gridcommdiag'.
-
-
-
-File: eplain.info, Node: Programming definitions, Next: Demo files, Prev: Arrow theoretic diagrams, Up: Top
-
-7 Programming definitions
-*************************
-
-The definitions in this section are only likely to be useful when you
-are writing nontrivial macros, not when writing a document.
-
-* Menu:
-
-* Category codes:: Changing category codes.
-* Allocation macros:: Non-outer versions of \newcount et al.
-* Iteration:: Doing `for' and `while' loops in TeX.
-* Macro arguments:: Reading and ignoring them.
-* Converting to characters:: Normalizing control sequences and spaces.
-* Expansion:: Controlling expansion.
-* Obeying spaces:: Making whitespace count anywhere.
-* Writing out numbers:: Making `1' into `one'.
-* Mode-specific penalties::
-* Auxiliary files:: Testing for their existence.
-* User-defined environments:: User-defined environments.
-* Page list and page range parsers::
-
-
-File: eplain.info, Node: Category codes, Next: Allocation macros, Up: Programming definitions
-
-7.1 Category codes
-==================
-
-Plain TeX defines `\active' (as the number 13) for use in changing
-category codes. Although the author of `The TeXbook' has
-"intentionally kept the category codes numeric", two other categories
-are commonly used: letters (category code 11) and others (12).
-Therefore, Eplain defines `\letter' and `\other'.
-
- Sometimes it is cleaner to make a character active without actually writing
-a `\catcode' command. The `\makeactive' command takes a character as
-an argument to make active (and ignores following spaces). For
-example, here are two commands which both make `\' active:
-
- \makeactive\\ \makeactive92
-
- Sometimes you might want to temporarily change the category code of
-the `@' character to `\letter', so that you can use or define macros
-which are normally inaccessible to the user. For such situations,
-Eplain provides the `\makeatletter' command. It sets the category code
-of `@' to `\letter' (11) and defines `\resetatcatcode' to restore the
-category code to whatever it was before the call to `\makeatletter'.
-For example:
-
- \makeatletter
- \def\@hidden@macro{This macro cannot normally be
- called / redefined by the user}
- \resetatcatcode
-
-There is also `\makeatother' which works similarly but sets the
-category code of `@' to `\other' (12).
-
- 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
-`\obeyspaces' in `The TeXbook'). 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 `\letreturn',
-which defines the usual end-of-line character to be the argument. For
-example:
-
- \def\mymacro{... \letreturn\myreturn ... }
- \mymacro hello
- there
-
-The end-of-line between `hello' and `there' causes `\myreturn' to be
-expanded.
-
- `The TeXbook' describes `\uncatcodespecials', which makes all
-characters which are normally "special" into "other" characters, but
-the definition never made it into plain TeX. Eplain therefore defines
-it.
-
- Finally, `\percentchar' expands into a literal `%' character. This
-is useful when you `\write' TeX output to a file, and want to avoid
-spurious spaces. For example, Eplain writes a `\percentchar' after the
-definition of cross-references. The macros `\lbracechar' and
-`\rbracechar' expand similarly.
-
-
-File: eplain.info, Node: Allocation macros, Next: Iteration, Prev: Category codes, Up: Programming definitions
-
-7.2 Allocation macros
-=====================
-
-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 `new', e.g., `\newcount' 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 `\outer', to help find errors. (The error this helps to find
-is a missing right brace in some macro definition.)
-
- 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 `inner': `\innernewbox', `\innernewcount', `\innernewdimen', `\innernewfam', `\innernewhelp', `\innernewif', `\innernewinsert', `\innernewlanguage', `\innernewread',
-`\innernewskip', `\innernewtoks', `\innernewwrite'.
-
- You can also define non-outer versions of other macros in the same
-way that Eplain defines the above. The basic macro is called
-`\innerdef':
-
- \innerdef \INNERNAME {OUTERNAME}
-
- The first argument (\INNERNAME) to `\innerdef' is the control
-sequence that you want to define. Any previous definition of
-\INNERNAME is replaced. The second argument (OUTERNAME) is the
-_characters_ in the name of the outer control sequence. (You can't use
-the actual control sequence name, since it's outer!)
-
- If the outer control sequence is named \CS, and you want to define
-`innerCS' as the inner one, you can use `\innerinnerdef', which is just
-an abbreviation for a call to `\innerdef'. For example, these two
-calls are equivalent:
-
- \innerdef\innerproclaim{proclaim}
- \innerinnerdef{proclaim}
-
-
-File: eplain.info, Node: Iteration, Next: Macro arguments, Prev: Allocation macros, Up: Programming definitions
-
-7.3 Iteration
-=============
-
-You can iterate through a comma-separated list of items with `\for'. Here
-is an example:
-
- \for\name:=karl,kathy\do{%
- \message{\name}%
- }%
-
-This writes `karl' and `kathy' to the terminal. Spaces before or after
-the commas in the list, or after the `:=', are _not_ ignored. To strip
-leading spaces off the items, use `\For':
-
- \For\name:=
- karl,
- kathy\do{%
- \message{\name}%
- }%
-
-Note that trailing spaces are still _not_ ignored.
-
- Both `\for' and `\For' expand the first token of the item list
-fully, so this is equivalent to the above:
-
- \def\namelist{karl,kathy}%
- \for\name:=\namelist\do ...
-
-However, this won't work, either with `\for' or with `\For':
-
- \def\namelist{karl,kathy}%
- \For\name:= \namelist\do ...
-
-because `\for' and `\For' expand the first token after `:=' which is
-space, not `\namelist'.
-
- Eplain provides another kind of loops, which is an extension of plain
-TeX's `\loop'. If you say:
-
- \loop
- LOOP-TEXT
- \if CONDITION
- IF-TEXT
- \repeat
-
-then LOOP-TEXT will be repeated as long as CONDITION is satisfied
-(`\if' can be any of the TeX's conditional commands, without the
-matching `\fi'). Eplain extends this with the optional else clause:
-
- \loop
- LOOP-TEXT
- \if CONDITION
- IF-TEXT
- \else
- ELSE-TEXT
- \repeat
-
-Here, LOOP-TEXT will be repeated as long as CONDITION is _not_
-satisfied. This extension is from Victor Eijkhout's TeX by Topic
-(page 104).
-
-
-File: eplain.info, Node: Macro arguments, Next: Converting to characters, Prev: Iteration, Up: Programming definitions
-
-7.4 Macro arguments
-===================
-
-It is occasionally useful to redefine a macro that takes arguments to
-do nothing. Eplain defines `\gobble', `\gobbletwo', and `\gobblethree'
-to swallow one, two, and three arguments, respectively.
-
- For example, if you want to produce a "short" table of contents--one
-that includes only chapters, say--the easiest thing to do is read the
-entire `.toc' file (*note Contents::), and just ignore the commands
-that produce section or subsection entries. To be specific:
-
- \let\tocchapterentry = \shorttocchapter
- \let\tocsectionentry = \gobbletwo
- \let\tocsubsectionentry = \gobbletwo
- \readtocfile
-
-(Of course, this assumes you only have chapters, sections, and
-subsections in your document.)
-
- In addition, Eplain defines `\eattoken' to swallow the single
-following token, using `\let'. Thus, `\gobble' followed by `{...}'
-ignores the entire brace-enclosed text. `\eattoken' followed by the
-same ignores only the opening left brace.
-
- Eplain defines a macro `\identity' 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 `\eqconstruct' (*note
-Formatting equation references::) is `\identity'.)
-
- You may also want to read an optional argument. The established
-convention is that optional arguments are put in square brackets, so
-that is the syntax Eplain recognizes. Eplain ignores space tokens
-before an optional argument, via `\futurenonspacelet'.
-
- You test for an optional argument by using `\@getoptionalarg'. It
-takes one argument, a control sequence to expand after reading the
-argument, if present. If an optional argument is present, the control
-sequence `\@optionalarg' expands to it; otherwise, `\@optionalarg' is
-`\empty'. You must therefore have the category code of `@' set to 11
-(letter). Here is an example:
-
- \catcode`@=\letter
- \def\cmd{\@getoptionalarg\finishcmd}
- \def\finishcmd{%
- \ifx\@optionalarg\empty
- % No optional argument present.
- \else
- % One was present.
- \fi
- }
-
- 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.
-
-
-File: eplain.info, Node: Converting to characters, Next: Expansion, Prev: Macro arguments, Up: Programming definitions
-
-7.5 Converting to characters
-============================
-
-Eplain defines `\xrlabel' to produce control sequence names for
-cross-reference labels, et al. This macro expands to its argument with
-an `_' appended. (It does this because the usual use of `\xrlabel' is
-to generate a control sequence name, and we naturally want to avoid
-conflicts between control sequence names.)
-
- Because `\xrlabel' is fully expandable, to make a control sequence
-name out of the result you need only do
-
- `\csname \xrlabel{LABEL}\endcsname'
-
-The `\csname' 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 `\', `{', `}', and `#', all
-of which are used in macro definitions themselves.
-
- `\sanitize' 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 `\writenumberedtocentry'; `#2' is the title that the user has given.
-
- ...
- \def\temp{#2}%
- ...
- \write\tocfile{%
- ...
- \sanitize\temp
- ...
- }%
-
-
-File: eplain.info, Node: Expansion, Next: Obeying spaces, Prev: Converting to characters, Up: Programming definitions
-
-7.6 Expansion
-=============
-
-This section describes some miscellanous macros for expansion, etc.
-
-* Menu:
-
-* \csn and \ece:: Abbreviations for \csname expansions.
-* \edefappend::
-* Hooks:: Manipulating and executing named actions.
-* Properties:: Associating information with a csname.
-* \expandonce::
-* \ifundefined::
-* \ifempty::
-* \ifinteger and \isinteger::
-* \futurenonspacelet::
-
-
-File: eplain.info, Node: \csn and \ece, Next: \edefappend, Up: Expansion
-
-7.6.1 `\csn' and `\ece'
------------------------
-
-`\csn'{NAME} simply abbreviates `\csname' NAME `\endcsname', thus
-saving some typing. The extra level of expansion does take some time,
-though, so I don't recommend it for an inner loop.
-
- `\ece'{TOKEN}{NAME} abbreviates
-
- \expandafter TOKEN \csname NAME \endcsname
-
-For example,
-
- \def\fontabbrevdef#1#2{\ece\def{@#1font}{#2}}
- \fontabbrevdef{normal}{ptmr}
-
-defines a control sequence `\@normalfont' to expand to `ptmr'.
-
-
-File: eplain.info, Node: \edefappend, Next: Hooks, Prev: \csn and \ece, Up: Expansion
-
-7.6.2 `\edefappend'
--------------------
-
-`\edefappend' 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 `\edef' that redefines the control sequence).
-
- For example:
-
- \def\foo{abc}
- \def\bar{xyz}
- \edefappend\foo{\bar karl}
-
-results in `\foo' being defined as `abcxyzkarl'.
-
-
-File: eplain.info, Node: Hooks, Next: Properties, Prev: \edefappend, Up: Expansion
-
-7.6.3 Hooks
------------
-
-A "hook" 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 `\every ...' token lists are all examples of
-hooks.
-
- Eplain provides several macros for adding actions to hooks. They all
-take two arguments: the name of the hook and the new actions.
-
-`hookaction NAME ACTIONS'
-`hookappend NAME ACTIONS'
-
-`hookprepend NAME ACTIONS'
- Each of these adds ACTIONS to the hook NAME. (Any
- previously-defined actions are retained.) NAME is not a control
- sequence, but rather the characters of the name.
-
-`hookactiononce NAME `\CS''
- `\hookactiononce' adds CS to NAME, like the macros above, but
- first it adds
-
- \global\let \CS \relax
-
- to the definition of \CS. (This implies \CS must be a true
- expandable macro, not a control sequence `\let' to a primitive or
- some other such thing.) Thus, \CS is expanded the next time the
- hook NAME is run, but it will disappear after that.
-
- The `\global' is useful because `\hookactiononce' 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.
-
- The companion macro to defining hook actions is `\hookrun', for
-running them. This takes a single argument, the name of the hook. If
-no actions for the hook are defined, no error ensues.
-
- Here is a skeleton of general `\begin' and `\end' macros that run
-hooks, and a couple of calls to define actions. The use of
-`\hookprepend' for the begin action and `\hookappend' for the end
-action ensures that the actions are executed in proper sequence with
-other actions (as long as the other actions use `\hookprepend' and
-`\hookappend' also).
-
- \def\begin#1{ ... \hookrun{begin} ... }
- \def\end#1{ ... \hookrun{end} ... }
- \hookprepend{begin}\start_underline
- \hookappend{end}\finish_underline
-
-
-File: eplain.info, Node: Properties, Next: \expandonce, Prev: Hooks, Up: Expansion
-
-7.6.4 Properties
-----------------
-
-A "property" is a name/value pair associated with another symbol,
-traditionally called an "atom". Both atom and property names are
-control sequence names.
-
- Eplain provides two macros for dealing with property lists:
-`\setproperty' and `\getproperty'.
-
-`\setproperty ATOM PROPNAME VALUE'
- `\setproperty' defines the property PROPERTY on the atom ATOM to
- be VALUE. ATOM and PROPNAME can be anything acceptable to
- `\csname'. VALUE can be anything.
-
-`\getproperty ATOM PROPNAME'
- `\getproperty' expands to the value stored for PROPNAME on ATOM.
- If PROPNAME is undefined, it expands to nothing (i.e., `\empty').
-
-
- 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.
-
- The following example typesets `xyz'.
-
- \setproperty{a}{pr}{xyz}
- \getproperty{a}{pr}
-
-
-File: eplain.info, Node: \expandonce, Next: \ifundefined, Prev: Properties, Up: Expansion
-
-7.6.5 `\expandonce'
--------------------
-
-`\expandonce' is defined as `\expandafter\noexpand'. Thus,
-`\expandonce TOKEN' expands TOKEN once, instead of to TeX primitives.
-This is most useful in an `\edef'.
-
- For example, the following defines `\temp' to be `\foo', not `abc'.
-
- \def\foo{abc}
- \def\bar{\foo}
- \edef\temp{\expandonce\bar}
-
-
-File: eplain.info, Node: \ifundefined, Next: \ifempty, Prev: \expandonce, Up: Expansion
-
-7.6.6 `\ifundefined'
---------------------
-
-`\ifundefined{CS} T \else F \fi' expands the T text if the control
-sequence `\CS' is undefined or has been `\let' to `\relax', and the F
-text otherwise.
-
- Since `\ifundefined' 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 `\if''s and `\fi''s.
-
- This macro was taken directly from `The TeXbook', page 308.
-
-
-File: eplain.info, Node: \ifempty, Next: \ifinteger and \isinteger, Prev: \ifundefined, Up: Expansion
-
-7.6.7 `\ifempty'
-----------------
-
-`\ifempty{ARG} T \else F \fi' expands the T text if ARG is the empty
-string, and the F text otherwise. This macro is useful when you need
-to test for empty arguments to your macros, for example:
-
- \def\foo#1{\ifempty{#1} T \else F \fi}
-
- Since `\ifempty' 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 `\if''s and `\fi''s.
-
- Note that the following code
-
- \def\empty{}
- \ifempty\empty\message{empty}\else\message{not empty}\fi
-
-will produce the message `not empty'.
-
-
-File: eplain.info, Node: \ifinteger and \isinteger, Next: \futurenonspacelet, Prev: \ifempty, Up: Expansion
-
-7.6.8 `\ifinteger' and `\isinteger'
------------------------------------
-
-`\ifinteger{ARG} T \else F \fi' expands the T text if ARG is an
-integer, and the F text otherwise. This macro can detect positive and
-negative integers.
-
- Since `\ifinteger' 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 `\if''s and `\fi''s. For
-such situations Eplain provides `\isinteger', which can be used as
-follows:
-
- \if\isinteger{ARG} T \else F \fi
-
- Although `\ifinteger' and `\isinteger' work well with regular input,
-they are not bullet-proof. For example, the following code
-
- \ifinteger{12_ab}integer\else not integer\fi
-
-will expand to `ab_integer' (and thus would not even compile outside
-math mode).
-
- These macros come from TeX Frequently Asked Question
-(`http://www.tex.ac.uk/cgi-bin/texfaq2html').
-
-
-File: eplain.info, Node: \futurenonspacelet, Prev: \ifinteger and \isinteger, Up: Expansion
-
-7.6.9 `\futurenonspacelet'
---------------------------
-
-The `\futurelet' primitive allows you to look at the next token from
-the input. Sometimes, though, you want to look ahead ignoring any
-spaces. This is what `\futurenonspacelet' does. It is otherwise the
-same as `\futurelet': 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:
-
- \futurenonspacelet\temp\finishup
- \def\finishup{\ifx\temp ...}
-
-
-File: eplain.info, Node: Obeying spaces, Next: Writing out numbers, Prev: Expansion, Up: Programming definitions
-
-7.7 Obeying spaces
-==================
-
-`\obeywhitespace' makes both end-of-lines and space characters in the
-input be respected in the output. Unlike plain TeX's `\obeyspaces',
-even spaces at the beginnings of lines turn into blank space.
-
- 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 `\ '
-produces.
-
- 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 `\blanklineskipamount': if you set this negative, the
-space produced by a blank line will be smaller; if positive, larger.
-
- 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 expand instead.)
-
-
-File: eplain.info, Node: Writing out numbers, Next: Mode-specific penalties, Prev: Obeying spaces, Up: Programming definitions
-
-7.8 Writing out numbers
-=======================
-
-`\numbername' produces the written-out form of its argument, i.e.,
-`zero' through `ten' for the numbers 0-10, and numerals for all others.
-
-
-File: eplain.info, Node: Mode-specific penalties, Next: Auxiliary files, Prev: Writing out numbers, Up: Programming definitions
-
-7.9 Mode-specific penalties
-===========================
-
-TeX's built-in `\penalty' 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 `\vpenalty' and `\hpenalty'
-which first leave the other mode and then do `\penalty'.
-
- More precisely, `\vpenalty' inserts `\par' if the current mode is
-horizontal, and `\hpenalty' inserts `\leavevmode' if the current mode
-is vertical. (Thus, `\vpenalty' cannot be used in math mode.)
-
-
-File: eplain.info, Node: Auxiliary files, Next: User-defined environments, Prev: Mode-specific penalties, Up: Programming definitions
-
-7.10 Auxiliary files
-====================
-
-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. `\testfileexistence' is
-given an argument which is appended to `\jobname', and sets the
-conditional `\iffileexists' appropriately. For example:
-
- \testfileexistence{toc}%
- \iffileexists
- \input \jobname.toc
- \fi
-
- `\testfileexistence' takes an optional parameter; when given, it
-will override `\jobname' for the root part of the file name. For
-example, if you want to test for the file `answers.aux', you can do
-this with the following:
-
- \testfileexistence[answers]{aux}%
- \iffileexists
- \input answers.aux
- \fi
-
-
-File: eplain.info, Node: User-defined environments, Next: Page list and page range parsers, Prev: Auxiliary files, Up: Programming definitions
-
-7.11 User-defined environments
-==============================
-
-Plain TeX does not provide "named" block structures, only the anonymous
-`\begingroup' and `\endgroup' 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 `\environment' or an `\endenvironment', you will
-(probably) get an error message about it.
-
- For example:
-
- \def\itpar{
- \environment{@italicpar}
- \it\par
- }
- \def\enditpar{
- \par
- \endenvironment{@italicpar}%
- }
-
-which could then be used to set italicized paragraphs:
-
- \itpar
- If I reprehend anything in this world, it is the use of my oracular
- tongue, and a nice derangement of epitaphs!
- \enditpar
-
- The above sort of environment allows nesting. But environments
-shouldn't always be allowed to nest. Put the control sequence
-`\checkenv' at the beginning of a macro that is going to define an
-environment that should not be nested.
-
-
-File: eplain.info, Node: Page list and page range parsers, Prev: User-defined environments, Up: Programming definitions
-
-7.12 Page list and page range parsers
-=====================================
-
-The macros which Eplain uses to parse the page lists and ranges in the
-index, `\idxparselist' and `\idxparserange' (*note Page destinations
-for index terms::), 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 `\idxpagei' to be `\empty'; when
-a list (range) is detected, they set `\idxpagei' and `\idxpageii' to
-the first and the second page numbers, respectively.
-
- Eplain's defaults for the page list and page range delimiters are the
-same as those in MakeIndex, a comma followed by a space (`, ') and two
-dashes (`--'), respectively. If you customize MakeIndex to use
-different delimiters, you must not forget to let Eplain know about them
-with the commands
-
- \setidxpagelistdelimiter{LIST-DELIM}
- \setidxpagerangedelimiter{PAGE-DELIM}
-
-These commands save the LIST-DELIM and PAGE-DELIM delimiters in `\idxpagelistdelimiter'
-and `\idxpagerangedelimiter', respectively.
-
- 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:
-
- \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}%
- }
-
-Note that the `\ituline' macro is not aware of page lists. This is not
-needed if you use hyperlinks in the index, because `\hlidx' and
-`\hlidxpage' will break up the page lists before calling the user's
-page encapsulator (*note Page destinations for index terms::), so
-`\ituline' will never see the lists. If, however, you need to design a
-macro which also takes care of the lists, you can extend `\ituline'
-with an additional call to `\idxparselist'.
-
-
-File: eplain.info, Node: Demo files, Next: Macro index, Prev: Programming definitions, Up: Top
-
-8 Demo files
-************
-
-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 `demo' subdirectory of Eplain
-distribution. These demos, both the sources and the compiled PDF and
-PS files, are also available from `http://tug.org/eplain/demo'.
-
-* Menu:
-
-* Hyperlinks (xhyper.tex)::
-* Highlighting TeX comments in listings (lscommnt.tex)::
-
-
-File: eplain.info, Node: Hyperlinks (xhyper.tex), Next: Highlighting TeX comments in listings (lscommnt.tex), Up: Demo files
-
-8.1 Hyperlinks (`xhyper.tex')
-=============================
-
-% (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
-
-
-File: eplain.info, Node: Highlighting TeX comments in listings (lscommnt.tex), Prev: Hyperlinks (xhyper.tex), Up: Demo files
-
-8.2 Highlighting TeX comments in listings (`lscommnt.tex')
-==========================================================
-
-% (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
-
-
-File: eplain.info, Node: Macro index, Next: Concept index, Prev: Demo files, Up: Top
-
-Macro index
-***********
-
-
-* Menu:
-
-* @hllabel <1>: Link types for pdftex and dvipdfm.
- (line 68)
-* @hllabel <2>: Destination types for pdftex and dvipdfm.
- (line 84)
-* @hllabel <3>: Link types for hypertex.
- (line 39)
-* @hllabel: Destination types for hypertex.
- (line 14)
-* @indexproof insertion class: Proofing index terms.
- (line 28)
-* abovecolumnskip: Multiple columns. (line 33)
-* abovecolumnspenalty: Tables. (line 32)
-* abovelistpenalty: Formatting lists. (line 29)
-* abovelistskip: Formatting lists. (line 29)
-* abovelistskipamount: Formatting lists. (line 10)
-* adjarrow: Arrows and morphisms.
- (line 112)
-* adjmapdown: Arrows and morphisms.
- (line 90)
-* adjmapleft: Arrows and morphisms.
- (line 65)
-* adjmapright: Arrows and morphisms.
- (line 62)
-* adjmapup: Arrows and morphisms.
- (line 93)
-* advancebottommargin: Margins. (line 28)
-* advanceleftmargin: Margins. (line 28)
-* advancerightmargin: Margins. (line 28)
-* advancetopmargin: Margins. (line 28)
-* afterindexterm: Customizing indexing.
- (line 6)
-* afterindexterm hook: Indexing commands. (line 63)
-* AMSLaTeX: Logos. (line 10)
-* AMSTeX: Logos. (line 10)
-* arrow: Arrows and morphisms.
- (line 20)
-* bblem: Formatting bibliographies.
- (line 33)
-* bblfilebasename: Citations. (line 30)
-* bblhook: Formatting bibliographies.
- (line 55)
-* bblnewblock: Formatting bibliographies.
- (line 41)
-* bblrm: Formatting bibliographies.
- (line 30)
-* bblsc: Formatting bibliographies.
- (line 37)
-* bcolor (hyperlink option): Link options for pdftex and dvipdfm.
- (line 14)
-* bdash (hyperlink option): Link options for pdftex and dvipdfm.
- (line 20)
-* begin for index entries: Modifying index entries.
- (line 22)
-* beginindex hook: Typesetting an index.
- (line 30)
-* beginlist: Formatting lists. (line 51)
-* beginpackages: Environment for loading packages.
- (line 6)
-* begin{picture}: Packages known to work.
- (line 14)
-* begin{theindex}: Typesetting an index.
- (line 17)
-* belowcolumnskip: Multiple columns. (line 34)
-* belowfootnoterulespace: Footnotes. (line 46)
-* belowlistskip: Formatting lists. (line 30)
-* belowlistskipamount: Formatting lists. (line 10)
-* biarrow: Arrows and morphisms.
- (line 109)
-* biblabelcontents: Formatting bibliographies.
- (line 23)
-* biblabelextraspace: Formatting bibliographies.
- (line 49)
-* biblabelprint: Formatting bibliographies.
- (line 17)
-* biblabelwidth: Formatting bibliographies.
- (line 11)
-* bibliography: Citations. (line 56)
-* bibliography (hyperlinks): Citation hyperlinks. (line 11)
-* bibliographystyle: Citations. (line 63)
-* BibTeX: Logos. (line 10)
-* bihline: Arrows and morphisms.
- (line 68)
-* bimapdown: Arrows and morphisms.
- (line 84)
-* bimapleft: Arrows and morphisms.
- (line 59)
-* bimapright: Arrows and morphisms.
- (line 56)
-* bimapup: Arrows and morphisms.
- (line 87)
-* bisline: Arrows and morphisms.
- (line 115)
-* bivline: Arrows and morphisms.
- (line 96)
-* blackbox: Boxes. (line 7)
-* blanklineskipamount in justified text: Justification. (line 24)
-* blanklineskipamount in obeyed text: Obeying spaces. (line 16)
-* bottom (destination option) <1>: Destination options for pdftex and dvipdfm.
- (line 56)
-* bottom (destination option): Destination types for pdftex and dvipdfm.
- (line 65)
-* bottommargin: Margins. (line 18)
-* boxit: Boxes. (line 29)
-* boxitspace: Boxes. (line 31)
-* bstyle (hyperlink option): Link options for pdftex and dvipdfm.
- (line 26)
-* bwidth (hyperlink option): Link options for pdftex and dvipdfm.
- (line 50)
-* catcode: Category codes. (line 13)
-* center: Justification. (line 7)
-* centereddisplays: Displays. (line 13)
-* channelwidth <1>: Commutative diagram parameters.
- (line 36)
-* channelwidth: Arrows and morphisms.
- (line 119)
-* cite: Citations. (line 37)
-* cite (hyperlinks): Citation hyperlinks. (line 6)
-* cmd (destination option) <1>: Destination options for pdftex and dvipdfm.
- (line 14)
-* cmd (destination option) <2>: Destination types for pdftex and dvipdfm.
- (line 83)
-* cmd (destination option) <3>: Destination options for hypertex.
- (line 7)
-* cmd (destination option): Destination types for hypertex.
- (line 14)
-* cmd (hyperlink option) <1>: Link options for pdftex and dvipdfm.
- (line 56)
-* cmd (hyperlink option) <2>: Link types for pdftex and dvipdfm.
- (line 67)
-* cmd (hyperlink option) <3>: Link options for hypertex.
- (line 7)
-* cmd (hyperlink option): Link types for hypertex.
- (line 38)
-* color (hyperlink option): Options supported by all drivers.
- (line 37)
-* colormodel (hyperlink option): Options supported by all drivers.
- (line 37)
-* columnfill: Multiple columns. (line 14)
-* commdiag: Construction of commutative diagrams.
- (line 9)
-* commdiagbaselines <1>: Commutative diagram parameters.
- (line 43)
-* commdiagbaselines: Construction of commutative diagrams.
- (line 64)
-* csn: \csn and \ece. (line 6)
-* definecolor: Hyperlinks (xhyper.tex).
- (line 6)
-* definecontentsfile: Alternative contents files.
- (line 6)
-* defineindex: Indexing. (line 37)
-* definexref <1>: Hyperlinks (xhyper.tex).
- (line 6)
-* definexref: Defining generic references.
- (line 6)
-* definexref (hyperlinks): Cross-reference hyperlinks.
- (line 6)
-* depth (destination option) <1>: Destination options for pdftex and dvipdfm.
- (line 34)
-* depth (destination option): Destination types for pdftex and dvipdfm.
- (line 61)
-* depth (hyperlink option): Link options for pdftex and dvipdfm.
- (line 124)
-* discretionaries: Paths. (line 20)
-* displaylines: Displays. (line 18)
-* doublecolumns: Multiple columns. (line 7)
-* drawline: Slanted lines and vectors.
- (line 6)
-* drawvector: Slanted lines and vectors.
- (line 6)
-* dvipdfm (hyperlink driver): Hyperlink drivers pdftex and dvipdfm.
- (line 6)
-* eattoken: Macro arguments. (line 23)
-* ece: \csn and \ece. (line 10)
-* edefappend: \edefappend. (line 6)
-* ehrule: Rules. (line 17)
-* enablehyperlinks <1>: Hyperlink driver nolinks.
- (line 48)
-* enablehyperlinks <2>: Choosing destination placement.
- (line 7)
-* enablehyperlinks: Introduction to hyperlinks.
- (line 42)
-* end for index entries: Modifying index entries.
- (line 22)
-* endlist: Formatting lists. (line 53)
-* endnumberedlist: Lists. (line 14)
-* endorderedlist: Lists. (line 14)
-* endpackages: Environment for loading packages.
- (line 6)
-* endunorderedlist: Lists. (line 22)
-* end{picture}: Packages known to work.
- (line 14)
-* end{theindex}: Typesetting an index.
- (line 17)
-* eplain: Invoking Eplain. (line 30)
-* eplaininput: Environment for loading packages.
- (line 28)
-* eqalignno: Displays. (line 18)
-* eqconstruct: Formatting equation references.
- (line 21)
-* eqdef: Equation references. (line 15)
-* eqdef (hyperlinks): Equation reference hyperlinks.
- (line 6)
-* eqdefn: Equation references. (line 38)
-* eqdefn (hyperlinks): Equation reference hyperlinks.
- (line 6)
-* eqnumber: Equation references. (line 8)
-* eqprint: Formatting equation references.
- (line 12)
-* eqref <1>: Equation reference hyperlinks.
- (line 20)
-* eqref: Equation references. (line 46)
-* eqrefn <1>: Equation reference hyperlinks.
- (line 20)
-* eqrefn: Equation references. (line 52)
-* eqsubdef: Subequation references.
- (line 11)
-* eqsubdef (hyperlinks): Equation reference hyperlinks.
- (line 6)
-* eqsubdefn: Subequation references.
- (line 11)
-* eqsubdefn (hyperlinks): Equation reference hyperlinks.
- (line 6)
-* eqsubreftext: Subequation references.
- (line 22)
-* everyfootnote: Footnotes. (line 35)
-* evrule: Rules. (line 18)
-* expandonce: \expandonce. (line 6)
-* ext (hyperlink option) <1>: Link options for hypertex.
- (line 20)
-* ext (hyperlink option): Link types for hypertex.
- (line 23)
-* file (hyperlink option) <1>: Link options for pdftex and dvipdfm.
- (line 63)
-* file (hyperlink option) <2>: Link types for pdftex and dvipdfm.
- (line 41)
-* file (hyperlink option) <3>: Link options for hypertex.
- (line 14)
-* file (hyperlink option): Link types for hypertex.
- (line 22)
-* fileexists (conditional): Auxiliary files. (line 10)
-* filename (hyperlink type) <1>: Link types for pdftex and dvipdfm.
- (line 40)
-* filename (hyperlink type): Link types for hypertex.
- (line 21)
-* filepage (hyperlink type): Link types for pdftex and dvipdfm.
- (line 52)
-* fit (destination type): Destination types for pdftex and dvipdfm.
- (line 18)
-* fitb (destination type): Destination types for pdftex and dvipdfm.
- (line 39)
-* fitbh (destination type): Destination types for pdftex and dvipdfm.
- (line 44)
-* fitbv (destination type): Destination types for pdftex and dvipdfm.
- (line 52)
-* fith (destination type): Destination types for pdftex and dvipdfm.
- (line 23)
-* fitr (destination type): Destination types for pdftex and dvipdfm.
- (line 60)
-* fitv (destination type): Destination types for pdftex and dvipdfm.
- (line 31)
-* flushleft: Justification. (line 7)
-* flushright: Justification. (line 7)
-* fmtversion: Introduction. (line 47)
-* footnote (hyperlinks): Footnote hyperlinks. (line 7)
-* footnotemarkseparation: Footnotes. (line 25)
-* footnoteruleheight: Footnotes. (line 44)
-* footnoterulewidth: Footnotes. (line 44)
-* For: Iteration. (line 15)
-* for: Iteration. (line 6)
-* frac: Fractions. (line 6)
-* fullmonthname: Time of day. (line 13)
-* futurenonspacelet: \futurenonspacelet. (line 6)
-* generaldisplay: Formatting displays. (line 10)
-* getproperty: Properties. (line 18)
-* gloggingall: Diagnostics. (line 23)
-* gobble: Macro arguments. (line 7)
-* gobbletwo: Macro arguments. (line 7)
-* gridcommdiag: Construction of commutative diagrams.
- (line 89)
-* gtracingall: Diagnostics. (line 23)
-* gutter: Multiple columns. (line 23)
-* gutterbox: Multiple columns. (line 24)
-* hangindent for index entries: Typesetting an index.
- (line 45)
-* harrowlength <1>: Commutative diagram parameters.
- (line 11)
-* harrowlength: Arrows and morphisms.
- (line 27)
-* hchannel: Commutative diagram parameters.
- (line 39)
-* height (destination option) <1>: Destination options for pdftex and dvipdfm.
- (line 37)
-* height (destination option): Destination types for pdftex and dvipdfm.
- (line 60)
-* height (hyperlink option): Link options for pdftex and dvipdfm.
- (line 127)
-* hgrid <1>: Commutative diagram parameters.
- (line 47)
-* hgrid: Construction of commutative diagrams.
- (line 109)
-* hldest <1>: Setting hyperlink types and options.
- (line 7)
-* hldest <2>: Destination types for pdftex and dvipdfm.
- (line 87)
-* hldest <3>: Destination types for hypertex.
- (line 17)
-* hldest: Explicit hyperlinks. (line 6)
-* hldestoff <1>: Turning low-level commands on/off.
- (line 6)
-* hldestoff: Hyperlink driver nolinks.
- (line 10)
-* hldeston: Turning low-level commands on/off.
- (line 6)
-* hldestopts <1>: Hyperlinks (xhyper.tex).
- (line 6)
-* hldestopts <2>: Setting group options.
- (line 11)
-* hldestopts: Setting default types and options.
- (line 15)
-* hldesttype <1>: Hyperlinks (xhyper.tex).
- (line 6)
-* hldesttype <2>: Setting group types. (line 6)
-* hldesttype: Setting default types and options.
- (line 6)
-* hlend <1>: Hyperlinks (xhyper.tex).
- (line 6)
-* hlend: Explicit hyperlinks. (line 25)
-* hlfootbacklabel: Footnote hyperlinks. (line 12)
-* hlfootlabel: Footnote hyperlinks. (line 12)
-* hlfootlabelnumber: Footnote hyperlinks. (line 14)
-* hlhash: Link types for hypertex.
- (line 40)
-* hlidx: Exact destinations for index terms.
- (line 13)
-* hlidxlabel: Exact destinations for index terms.
- (line 23)
-* hlidxlabelnumber: Exact destinations for index terms.
- (line 25)
-* hlidxpage: Page destinations for index terms.
- (line 20)
-* hlidxpagelabel: Page destinations for index terms.
- (line 11)
-* hlight (hyperlink option): Link options for pdftex and dvipdfm.
- (line 69)
-* hlightcommentslisting: Highlighting TeX comments in listings (lscommnt.tex).
- (line 6)
-* hline: Arrows and morphisms.
- (line 53)
-* hloff <1>: Turning low-level commands on/off.
- (line 6)
-* hloff: Hyperlink driver nolinks.
- (line 10)
-* hlon: Turning low-level commands on/off.
- (line 6)
-* hlopts <1>: Hyperlinks (xhyper.tex).
- (line 6)
-* hlopts <2>: Setting group options.
- (line 11)
-* hlopts: Setting default types and options.
- (line 15)
-* hlstart <1>: Hyperlinks (xhyper.tex).
- (line 6)
-* hlstart <2>: Setting hyperlink types and options.
- (line 7)
-* hlstart <3>: Link types for pdftex and dvipdfm.
- (line 71)
-* hlstart <4>: Link types for hypertex.
- (line 43)
-* hlstart: Explicit hyperlinks. (line 25)
-* hltype <1>: Setting group types. (line 6)
-* hltype: Setting default types and options.
- (line 6)
-* hmorphposn <1>: Commutative diagram parameters.
- (line 20)
-* hmorphposn: Arrows and morphisms.
- (line 33)
-* hmorphposndn <1>: Commutative diagram parameters.
- (line 22)
-* hmorphposndn: Arrows and morphisms.
- (line 38)
-* hmorphposnlft <1>: Commutative diagram parameters.
- (line 23)
-* hmorphposnlft: Arrows and morphisms.
- (line 38)
-* hmorphposnrt <1>: Commutative diagram parameters.
- (line 22)
-* hmorphposnrt: Arrows and morphisms.
- (line 38)
-* hmorphposnup <1>: Commutative diagram parameters.
- (line 22)
-* hmorphposnup: Arrows and morphisms.
- (line 38)
-* hoffset: Proofing index terms.
- (line 21)
-* hookaction: Hooks. (line 15)
-* hookactiononce: Hooks. (line 23)
-* hookappend: Hooks. (line 16)
-* hookprepend: Hooks. (line 17)
-* hookrun: Hooks. (line 39)
-* href: General hyperlinks. (line 6)
-* hruledefaultdepth: Rules. (line 9)
-* hruledefaultheight: Rules. (line 9)
-* hsize: Margins. (line 34)
-* hypertex (hyperlink driver): Hyperlink driver hypertex.
- (line 6)
-* hyphenpenalty for index entries: Typesetting an index.
- (line 45)
-* identity: Macro arguments. (line 28)
-* idx: Indexing commands. (line 8)
-* idx (hyperlinks): Index hyperlinks. (line 6)
-* idxargclose: Index entries with special characters.
- (line 73)
-* idxargopen: Index entries with special characters.
- (line 73)
-* idxbeginrangemark: Customizing indexing.
- (line 42)
-* idxencapoperator: Customizing indexing.
- (line 39)
-* idxendrangemark: Customizing indexing.
- (line 45)
-* idxexact: Choosing destination placement.
- (line 8)
-* idxmarked: Indexing commands. (line 29)
-* idxmarked (hyperlinks): Index hyperlinks. (line 6)
-* idxname: Indexing commands. (line 19)
-* idxname (hyperlinks): Index hyperlinks. (line 6)
-* idxnameseparator: Indexing commands. (line 19)
-* idxnone: Choosing destination placement.
- (line 9)
-* idxpage: Choosing destination placement.
- (line 9)
-* idxpagei: Page list and page range parsers.
- (line 6)
-* idxpageii: Page list and page range parsers.
- (line 6)
-* idxpagelistdelimiter: Page list and page range parsers.
- (line 23)
-* idxpagenum: Customizing indexing.
- (line 51)
-* idxpagerangedelimiter: Page list and page range parsers.
- (line 23)
-* idxparselist: Page list and page range parsers.
- (line 6)
-* idxparserange: Page list and page range parsers.
- (line 6)
-* idxrangebeginword: Customizing indexing.
- (line 20)
-* idxrangeendword: Customizing indexing.
- (line 23)
-* idxseealsocmdword: Customizing indexing.
- (line 29)
-* idxseecmdword: Customizing indexing.
- (line 26)
-* idxsubentryseparator: Customizing indexing.
- (line 36)
-* idxsubmarked: Indexing commands. (line 40)
-* idxsubmarked (hyperlinks): Index hyperlinks. (line 6)
-* ifempty: \ifempty. (line 6)
-* iffileexists: Auxiliary files. (line 10)
-* ifinteger: \ifinteger and \isinteger.
- (line 6)
-* ifpdf <1>: Introduction to hyperlinks.
- (line 51)
-* ifpdf: Checking for PDF output.
- (line 10)
-* ifrewritetocfile: Reading the .toc file.
- (line 26)
-* ifundefined: \ifundefined. (line 6)
-* includegraphics: Hyperlinks (xhyper.tex).
- (line 6)
-* indexfilebasename: Typesetting an index.
- (line 11)
-* indexfonts: Typesetting an index.
- (line 24)
-* indexitem hook: Typesetting an index.
- (line 49)
-* indexprooffont: Proofing index terms.
- (line 12)
-* indexproofterm: Proofing index terms.
- (line 12)
-* indexproofunbox: Proofing index terms.
- (line 28)
-* indexsee <1>: Hyperlinks in see and see also entries.
- (line 8)
-* indexsee: Customizing indexing.
- (line 55)
-* indexseealso <1>: Hyperlinks in see and see also entries.
- (line 8)
-* indexseealso: Customizing indexing.
- (line 55)
-* indexseealsowords: Customizing indexing.
- (line 55)
-* indexseeword: Customizing indexing.
- (line 55)
-* indexsetmargins: Proofing index terms.
- (line 21)
-* indexspace: Typesetting an index.
- (line 54)
-* innerdef: Allocation macros. (line 26)
-* innerinnerdef: Allocation macros. (line 37)
-* innernewbox: Allocation macros. (line 21)
-* innernewcount: Allocation macros. (line 21)
-* innernewdimen: Allocation macros. (line 21)
-* innernewfam: Allocation macros. (line 21)
-* innernewhelp: Allocation macros. (line 21)
-* innernewif: Allocation macros. (line 21)
-* innernewinsert: Allocation macros. (line 21)
-* innernewlanguage: Allocation macros. (line 21)
-* innernewread: Allocation macros. (line 22)
-* innernewskip: Allocation macros. (line 22)
-* innernewtoks: Allocation macros. (line 22)
-* innernewwrite: Allocation macros. (line 22)
-* input: Environment for loading packages.
- (line 24)
-* insidemargin: Proofing index terms.
- (line 21)
-* interfootnoteskip: Footnotes. (line 29)
-* interitemskip: Formatting lists. (line 30)
-* interitemskipamount: Formatting lists. (line 14)
-* isinteger: \ifinteger and \isinteger.
- (line 13)
-* item in indexes: Typesetting an index.
- (line 35)
-* itemletter: Formatting lists. (line 44)
-* itemnumber: Formatting lists. (line 44)
-* ituline: Page list and page range parsers.
- (line 26)
-* jobname <1>: Auxiliary files. (line 9)
-* jobname <2>: Typesetting an index.
- (line 11)
-* jobname: Citations. (line 17)
-* LAMSTeX: Logos. (line 10)
-* LaTeX: Logos. (line 10)
-* lbracechar: Category codes. (line 59)
-* left (destination option) <1>: Destination options for pdftex and dvipdfm.
- (line 60)
-* left (destination option): Destination types for pdftex and dvipdfm.
- (line 11)
-* leftdisplayindent: Displays. (line 11)
-* leftdisplays: Displays. (line 10)
-* leftdisplaysetup: Formatting displays. (line 8)
-* leftmargin: Margins. (line 18)
-* leqalignno: Displays. (line 19)
-* letreturn: Category codes. (line 41)
-* letter: Category codes. (line 10)
-* lft: Arrows and morphisms.
- (line 15)
-* li: Lists. (line 30)
-* li (hyperlinks): List hyperlinks. (line 6)
-* linenumberedlisting <1>: Highlighting TeX comments in listings (lscommnt.tex).
- (line 6)
-* linenumberedlisting: Verbatim listing. (line 17)
-* listcompact: Lists. (line 41)
-* listing <1>: Highlighting TeX comments in listings (lscommnt.tex).
- (line 6)
-* listing: Verbatim listing. (line 7)
-* listingfont: Verbatim listing. (line 10)
-* listleftindent: Formatting lists. (line 18)
-* listmarkerspace: Formatting lists. (line 33)
-* listrightindent: Formatting lists. (line 18)
-* loggingall: Diagnostics. (line 12)
-* loop: Iteration. (line 40)
-* makeactive: Category codes. (line 13)
-* makeatletter: Category codes. (line 22)
-* makeatother: Category codes. (line 32)
-* makeblankbox: Boxes. (line 12)
-* makecolumns: Tables. (line 6)
-* makeheadline: Proofing index terms.
- (line 28)
-* mapdown: Arrows and morphisms.
- (line 13)
-* mapleft: Arrows and morphisms.
- (line 6)
-* mapright: Arrows and morphisms.
- (line 6)
-* mapup: Arrows and morphisms.
- (line 13)
-* matrix: Construction of commutative diagrams.
- (line 10)
-* MF: Logos. (line 10)
-* monthname: Time of day. (line 10)
-* morphdist <1>: Commutative diagram parameters.
- (line 32)
-* morphdist: Arrows and morphisms.
- (line 33)
-* name (hyperlink type) <1>: Link types for pdftex and dvipdfm.
- (line 18)
-* name (hyperlink type): Link types for hypertex.
- (line 7)
-* new...: Allocation macros. (line 9)
-* newwin (hyperlink option) <1>: Link options for pdftex and dvipdfm.
- (line 90)
-* newwin (hyperlink option): Link types for pdftex and dvipdfm.
- (line 42)
-* noarrow: Invoking Eplain. (line 84)
-* noauxfile: Invoking Eplain. (line 89)
-* nobibtex: Invoking Eplain. (line 73)
-* nocite: Citations. (line 53)
-* nolastlinelisting <1>: Highlighting TeX comments in listings (lscommnt.tex).
- (line 6)
-* nolastlinelisting: Verbatim listing. (line 25)
-* nolinks (hyperlink driver): Hyperlink driver nolinks.
- (line 6)
-* normalbaselineskip: Options supported by all drivers.
- (line 19)
-* num (hyperlink type): Link types for pdftex and dvipdfm.
- (line 92)
-* numberedfootnote: Footnotes. (line 7)
-* numberedfootnote (hyperlinks): Footnote hyperlinks. (line 6)
-* numberedlist: Lists. (line 14)
-* numberedlistdepth: Formatting lists. (line 41)
-* numberedmarker: Formatting lists. (line 37)
-* numbername: Writing out numbers. (line 6)
-* obeywhitespace: Obeying spaces. (line 6)
-* orderedlist: Lists. (line 14)
-* other: Category codes. (line 10)
-* outer: Allocation macros. (line 12)
-* outsidemargin: Proofing index terms.
- (line 21)
-* page (hyperlink type): Link types for pdftex and dvipdfm.
- (line 31)
-* pagefit (hyperlink option) <1>: Link options for pdftex and dvipdfm.
- (line 109)
-* pagefit (hyperlink option): Link types for pdftex and dvipdfm.
- (line 32)
-* pageno: Proofing index terms.
- (line 21)
-* pagetotal: Multiple columns. (line 14)
-* paperheight: Margins. (line 45)
-* paperwidth: Margins. (line 48)
-* parindent in indexes: Typesetting an index.
- (line 24)
-* path: Paths. (line 13)
-* pdfoutput: Checking for PDF output.
- (line 20)
-* pdftex (hyperlink driver): Hyperlink drivers pdftex and dvipdfm.
- (line 6)
-* percentchar: Category codes. (line 56)
-* phantomeqlabel: Equation reference hyperlinks.
- (line 14)
-* phantomeqnumber: Equation reference hyperlinks.
- (line 14)
-* previouseverydisplay: Formatting displays. (line 15)
-* printbetweencitations: Formatting citations.
- (line 21)
-* printcitefinish: Formatting citations.
- (line 16)
-* printcitenote: Formatting citations.
- (line 27)
-* printcitestart: Formatting citations.
- (line 16)
-* printitem: Formatting lists. (line 52)
-* printlistinglineno: Verbatim listing. (line 19)
-* quadcolumns: Multiple columns. (line 7)
-* raggedright for index entries: Typesetting an index.
- (line 45)
-* raise (hyperlink option) <1>: Setting group options.
- (line 34)
-* raise (hyperlink option): Options supported by all drivers.
- (line 13)
-* raw (destination type) <1>: Destination types for pdftex and dvipdfm.
- (line 81)
-* raw (destination type): Destination types for hypertex.
- (line 12)
-* raw (hyperlink type) <1>: Link types for pdftex and dvipdfm.
- (line 65)
-* raw (hyperlink type): Link types for hypertex.
- (line 37)
-* rbracechar: Category codes. (line 60)
-* readindexfile: Typesetting an index.
- (line 6)
-* readindexfile (hyperlinks): Index hyperlinks. (line 9)
-* readtocfile: Reading the .toc file.
- (line 6)
-* ref <1>: Hyperlinks (xhyper.tex).
- (line 6)
-* ref: Using generic references.
- (line 17)
-* ref (hyperlinks): Cross-reference hyperlinks.
- (line 19)
-* refn: Using generic references.
- (line 9)
-* refn (hyperlinks): Cross-reference hyperlinks.
- (line 14)
-* refs: Using generic references.
- (line 23)
-* refs (hyperlinks): Cross-reference hyperlinks.
- (line 26)
-* refspace <1>: Page reference hyperlinks.
- (line 10)
-* refspace: Cross-reference hyperlinks.
- (line 24)
-* reftie <1>: Equation reference hyperlinks.
- (line 20)
-* reftie: Cross-reference hyperlinks.
- (line 16)
-* repeat: Iteration. (line 42)
-* resetatcatcode: Category codes. (line 23)
-* rewritetocfile (conditional): Reading the .toc file.
- (line 26)
-* right (destination option) <1>: Destination options for pdftex and dvipdfm.
- (line 64)
-* right (destination option): Destination types for pdftex and dvipdfm.
- (line 65)
-* rightmargin: Margins. (line 18)
-* rotatebox: Hyperlinks (xhyper.tex).
- (line 6)
-* rt: Arrows and morphisms.
- (line 14)
-* sanitize: Converting to characters.
- (line 22)
-* sarrowlength <1>: Commutative diagram parameters.
- (line 17)
-* sarrowlength: Arrows and morphisms.
- (line 28)
-* see for index entries <1>: Customizing indexing.
- (line 64)
-* see for index entries: Modifying index entries.
- (line 36)
-* seealso for index entries: Modifying index entries.
- (line 49)
-* seevariant: Customizing indexing.
- (line 55)
-* setidxpagelistdelimiter: Page list and page range parsers.
- (line 14)
-* setidxpagerangedelimiter: Page list and page range parsers.
- (line 14)
-* setproperty: Properties. (line 13)
-* setuplistinghook <1>: Highlighting TeX comments in listings (lscommnt.tex).
- (line 6)
-* setuplistinghook: Verbatim listing. (line 13)
-* sidx: Indexing commands. (line 8)
-* sidxmarked: Indexing commands. (line 29)
-* sidxname: Indexing commands. (line 19)
-* sidxsubmarked: Indexing commands. (line 40)
-* singlecolumn: Multiple columns. (line 9)
-* sline: Arrows and morphisms.
- (line 23)
-* SLiTeX: Logos. (line 11)
-* special: Introduction to hyperlinks.
- (line 9)
-* specialpathdelimiters (conditional): Paths. (line 28)
-* subeqnumber: Subequation references.
- (line 15)
-* subitem in indexes: Typesetting an index.
- (line 35)
-* subsubitem in indexes: Typesetting an index.
- (line 35)
-* testfileexistence: Auxiliary files. (line 8)
-* TeX: Logos. (line 6)
-* timestamp: Time of day. (line 18)
-* timestring: Time of day. (line 16)
-* toc...entry: Writing the .toc file.
- (line 9)
-* tocfilebasename: Changing the .toc file's root name.
- (line 10)
-* today: Time of day. (line 21)
-* top (destination option) <1>: Destination options for pdftex and dvipdfm.
- (line 68)
-* top (destination option): Destination types for pdftex and dvipdfm.
- (line 11)
-* topmargin: Margins. (line 18)
-* tracingall: Diagnostics. (line 9)
-* tracingboxes: Diagnostics. (line 17)
-* tracingoff: Diagnostics. (line 19)
-* triplecolumns: Multiple columns. (line 7)
-* tt: Packages known to work.
- (line 76)
-* ttfamily: Packages known to work.
- (line 73)
-* uncatcodespecials: Category codes. (line 51)
-* unorderedlist: Lists. (line 22)
-* unorderedlistdepth: Formatting lists. (line 41)
-* unorderedmarker: Formatting lists. (line 37)
-* url: Hyperlinks (xhyper.tex).
- (line 6)
-* url (hyperlink type) <1>: Link types for pdftex and dvipdfm.
- (line 25)
-* url (hyperlink type): Link types for hypertex.
- (line 14)
-* url (hyperlinks): URL hyperlinks. (line 6)
-* usepackage: The \usepackage command.
- (line 6)
-* varrowlength <1>: Commutative diagram parameters.
- (line 14)
-* varrowlength: Arrows and morphisms.
- (line 28)
-* vchannel: Commutative diagram parameters.
- (line 39)
-* verbatim: Verbatim listing. (line 34)
-* verbatimescapechar: Verbatim listing. (line 47)
-* vgrid <1>: Commutative diagram parameters.
- (line 51)
-* vgrid: Construction of commutative diagrams.
- (line 109)
-* vline: Arrows and morphisms.
- (line 81)
-* vmorphposn <1>: Commutative diagram parameters.
- (line 26)
-* vmorphposn: Arrows and morphisms.
- (line 33)
-* vmorphposndn <1>: Commutative diagram parameters.
- (line 28)
-* vmorphposndn: Arrows and morphisms.
- (line 38)
-* vmorphposnlft <1>: Commutative diagram parameters.
- (line 29)
-* vmorphposnlft: Arrows and morphisms.
- (line 39)
-* vmorphposnrt <1>: Commutative diagram parameters.
- (line 28)
-* vmorphposnrt: Arrows and morphisms.
- (line 38)
-* vmorphposnup <1>: Commutative diagram parameters.
- (line 28)
-* vmorphposnup: Arrows and morphisms.
- (line 38)
-* vpenalty: Mode-specific penalties.
- (line 9)
-* vruledefaultwidth: Rules. (line 10)
-* width (destination option) <1>: Destination options for pdftex and dvipdfm.
- (line 40)
-* width (destination option): Destination types for pdftex and dvipdfm.
- (line 60)
-* width (hyperlink option): Link options for pdftex and dvipdfm.
- (line 130)
-* writenumberedtocentry: Writing the .toc file.
- (line 13)
-* writenumberedtocline: Writing the .toc file.
- (line 36)
-* writetocentry: Writing the .toc file.
- (line 7)
-* xrdef: Page references. (line 10)
-* xrdef (hyperlinks): Page reference hyperlinks.
- (line 6)
-* xref: Page references. (line 14)
-* xref (hyperlinks): Page reference hyperlinks.
- (line 10)
-* xrefn: Using generic references.
- (line 10)
-* xrefn (hyperlinks): Cross-reference hyperlinks.
- (line 14)
-* xrefpageword <1>: Page reference hyperlinks.
- (line 10)
-* xrefpageword: Page references. (line 17)
-* xrefwarning conditional: Using generic references.
- (line 15)
-* xrefwarningfalse: Citations. (line 73)
-* xrlabel: Converting to characters.
- (line 6)
-* xyz (destination type) <1>: Destination types for pdftex and dvipdfm.
- (line 7)
-* xyz (destination type): Destination types for hypertex.
- (line 7)
-* zoom (destination option) <1>: Destination options for pdftex and dvipdfm.
- (line 21)
-* zoom (destination option): Destination types for pdftex and dvipdfm.
- (line 7)
-
-
-File: eplain.info, Node: Concept index, Prev: Macro index, Up: Top
-
-Concept index
-*************
-
-
-* Menu:
-
-* .aux file <1>: Cross-references. (line 11)
-* .aux file: Citations. (line 17)
-* .bbl file: Citations. (line 20)
-* .bib file: Citations. (line 20)
-* .bst files: Citations. (line 65)
-* .cls files: Loading LaTeX packages.
- (line 6)
-* .eps files: Packages known to work.
- (line 90)
-* .fmt file <1>: Invoking Eplain. (line 14)
-* .fmt file: Installation. (line 27)
-* .idx files <1>: Index hyperlinks. (line 14)
-* .idx files: Indexing. (line 23)
-* .ind files <1>: Index hyperlinks. (line 25)
-* .ind files: Indexing. (line 27)
-* .pdf files <1>: Introduction to hyperlinks.
- (line 13)
-* .pdf files <2>: Packages known to work.
- (line 90)
-* .pdf files: Checking for PDF output.
- (line 6)
-* .ps files: Introduction to hyperlinks.
- (line 13)
-* .sty files: Loading LaTeX packages.
- (line 6)
-* .toc file: Contents. (line 10)
-* active characters: Category codes. (line 12)
-* after index terms: Customizing indexing.
- (line 6)
-* alignments: Tables. (line 6)
-* all groups, specifying: Setting group types. (line 26)
-* allocation macros: Allocation macros. (line 6)
-* alphanumeric references: Citations. (line 116)
-* AMSLaTeX: Logos. (line 10)
-* amsppt.sty: Invoking Eplain. (line 92)
-* AMSTeX: Logos. (line 10)
-* AMSTeX conflicts: Invoking Eplain. (line 92)
-* arguments, ignoring: Macro arguments. (line 6)
-* arrows: Arrows and morphisms.
- (line 6)
-* atom: Properties. (line 6)
-* autopict.sty: Packages known to work.
- (line 12)
-* avoiding boxed links <1>: Setting default types and options.
- (line 25)
-* avoiding boxed links: URL hyperlinks. (line 17)
-* axuiliary files, existence of: Auxiliary files. (line 6)
-* backslash character: Category codes. (line 15)
-* balancing of columns with \singlecolumn: Multiple columns. (line 11)
-* Berry, Karl: Introduction. (line 28)
-* beveled hyperlink border: Link options for pdftex and dvipdfm.
- (line 26)
-* bibliographies: Citations. (line 6)
-* bibliography fonts: Formatting bibliographies.
- (line 30)
-* bibliography items, extra space between: Formatting bibliographies.
- (line 55)
-* bibliography, formatting the: Formatting bibliographies.
- (line 6)
-* bibliography, hyperlinks: Citation hyperlinks. (line 11)
-* BibTeX <1>: Logos. (line 10)
-* BibTeX: Citations. (line 9)
-* bibtex: Invoking Eplain. (line 103)
-* black boxes: Boxes. (line 6)
-* Borceux, Francis: Construction of commutative diagrams.
- (line 80)
-* border color, hyperlink: Link options for pdftex and dvipdfm.
- (line 14)
-* border style, hyperlink: Link options for pdftex and dvipdfm.
- (line 20)
-* border width, hyperlink: Link options for pdftex and dvipdfm.
- (line 50)
-* Bott, Raoul: Construction of commutative diagrams.
- (line 13)
-* boxed links, avoiding <1>: Setting default types and options.
- (line 25)
-* boxed links, avoiding: URL hyperlinks. (line 17)
-* boxes, open: Boxes. (line 12)
-* braces, inside index entries: Index entries with special characters.
- (line 63)
-* brackets, inside index entries: Index entries with special characters.
- (line 86)
-* Brockett, Roger W.: Construction of commutative diagrams.
- (line 38)
-* Butterfly Lemma: Construction of commutative diagrams.
- (line 122)
-* Carlisle, David: Loading LaTeX packages.
- (line 14)
-* category codes: Category codes. (line 6)
-* centering: Justification. (line 6)
-* characters, converting to: Converting to characters.
- (line 6)
-* citations: Citations. (line 6)
-* citations, formatting: Formatting citations.
- (line 6)
-* citations, hyperlinks: Citation hyperlinks. (line 6)
-* citations, undefined: Citations. (line 43)
-* cmtt8: Proofing index terms.
- (line 12)
-* color: Packages known to work.
- (line 25)
-* color, demo: Hyperlinks (xhyper.tex).
- (line 6)
-* color, hyperlink border: Link options for pdftex and dvipdfm.
- (line 14)
-* color, hyperlinks <1>: Setting default types and options.
- (line 25)
-* color, hyperlinks <2>: Options supported by all drivers.
- (line 37)
-* color, hyperlinks: URL hyperlinks. (line 17)
-* color, problems with pdfTeX: Packages known to work.
- (line 29)
-* color.sty <1>: Hyperlinks (xhyper.tex).
- (line 6)
-* color.sty <2>: Setting default types and options.
- (line 27)
-* color.sty <3>: Hyperlink driver nolinks.
- (line 34)
-* color.sty <4>: URL hyperlinks. (line 18)
-* color.sty: Packages known to work.
- (line 21)
-* colored links <1>: Setting default types and options.
- (line 25)
-* colored links <2>: Options supported by all drivers.
- (line 37)
-* colored links: URL hyperlinks. (line 17)
-* column balancing with \singlecolumn: Multiple columns. (line 11)
-* column eject: Multiple columns. (line 14)
-* commas after index terms: Customizing indexing.
- (line 6)
-* commas in cross-referencing index entries: Customizing indexing.
- (line 64)
-* comments, highlighting in listings: Highlighting TeX comments in listings (lscommnt.tex).
- (line 6)
-* commutative diagrams: Commutative diagrams.
- (line 6)
-* contents: Contents. (line 6)
-* contents, and verbatim text: Writing the .toc file.
- (line 50)
-* contents, hyperlinks: Contents hyperlinks. (line 6)
-* ConTeXt: Packages known to work.
- (line 29)
-* continued index entries: Typesetting an index.
- (line 35)
-* covering homotopy property: Construction of commutative diagrams.
- (line 13)
-* cross-references: Cross-references. (line 6)
-* cross-references, defining general <1>: Using generic references.
- (line 6)
-* cross-references, defining general: Defining generic references.
- (line 6)
-* cross-references, demo: Hyperlinks (xhyper.tex).
- (line 6)
-* cross-references, hyperlinks: Cross-reference hyperlinks.
- (line 6)
-* cross-referencing index entries <1>: Customizing indexing.
- (line 64)
-* cross-referencing index entries: Modifying index entries.
- (line 36)
-* CTRL-L, and verbatim listing: Verbatim listing. (line 30)
-* cube: Construction of commutative diagrams.
- (line 90)
-* customizing indexing: Customizing indexing.
- (line 6)
-* dashed hyperlink border: Link options for pdftex and dvipdfm.
- (line 20)
-* date: Time of day. (line 6)
-* default hyperlink options <1>: Setting group types. (line 17)
-* default hyperlink options: Setting hyperlink types and options.
- (line 6)
-* default hyperlink type <1>: Setting group types. (line 17)
-* default hyperlink type: Setting hyperlink types and options.
- (line 6)
-* defining general references <1>: Using generic references.
- (line 6)
-* defining general references: Defining generic references.
- (line 6)
-* definitions, global: Category codes. (line 38)
-* demo files: Demo files. (line 6)
-* destgroup: Implicit hyperlinks. (line 10)
-* destgroup `bib': Citation hyperlinks. (line 11)
-* destgroup `definexref': Cross-reference hyperlinks.
- (line 6)
-* destgroup `eq': Equation reference hyperlinks.
- (line 6)
-* destgroup `foot': Footnote hyperlinks. (line 6)
-* destgroup `footback': Footnote hyperlinks. (line 6)
-* destgroup `idx': Index hyperlinks. (line 6)
-* destgroup `li': List hyperlinks. (line 6)
-* destgroup `xrdef': Page reference hyperlinks.
- (line 6)
-* destgroup options <1>: Setting group options.
- (line 6)
-* destgroup options: Setting hyperlink types and options.
- (line 12)
-* destgroup options, demo: Hyperlinks (xhyper.tex).
- (line 6)
-* destgroup type <1>: Setting group types. (line 6)
-* destgroup type: Setting hyperlink types and options.
- (line 12)
-* destgroup type, demo: Hyperlinks (xhyper.tex).
- (line 6)
-* destination group: Implicit hyperlinks. (line 10)
-* destination options: Introduction to hyperlinks.
- (line 105)
-* destination options, common: Options supported by all drivers.
- (line 12)
-* destination options, dvipdfm: Destination options for pdftex and dvipdfm.
- (line 6)
-* destination options, hypertex: Destination options for hypertex.
- (line 6)
-* destination options, pdftex: Destination options for pdftex and dvipdfm.
- (line 6)
-* destination type: Introduction to hyperlinks.
- (line 88)
-* destination types, dvipdfm: Destination types for pdftex and dvipdfm.
- (line 6)
-* destination types, hypertex: Destination types for hypertex.
- (line 6)
-* destination types, pdftex: Destination types for pdftex and dvipdfm.
- (line 6)
-* destinations, default options <1>: Setting group types. (line 17)
-* destinations, default options: Setting hyperlink types and options.
- (line 6)
-* destinations, default type <1>: Setting group types. (line 17)
-* destinations, default type: Setting hyperlink types and options.
- (line 6)
-* destinations, dimensions: Destination options for pdftex and dvipdfm.
- (line 34)
-* destinations, disabling <1>: Turning hyperlinks on/off.
- (line 6)
-* destinations, disabling: Hyperlink driver nolinks.
- (line 6)
-* destinations, group options <1>: Setting group options.
- (line 6)
-* destinations, group options: Setting hyperlink types and options.
- (line 12)
-* destinations, group options, demo: Hyperlinks (xhyper.tex).
- (line 6)
-* destinations, group type <1>: Setting group types. (line 6)
-* destinations, group type: Setting hyperlink types and options.
- (line 12)
-* destinations, group type, demo: Hyperlinks (xhyper.tex).
- (line 6)
-* destinations, in another file <1>: Link types for pdftex and dvipdfm.
- (line 40)
-* destinations, in another file: Link types for hypertex.
- (line 21)
-* destinations, large operators <1>: Setting group options.
- (line 34)
-* destinations, large operators: Options supported by all drivers.
- (line 27)
-* destinations, magnification: Destination options for pdftex and dvipdfm.
- (line 21)
-* destinations, named <1>: Link types for pdftex and dvipdfm.
- (line 18)
-* destinations, named: Link types for hypertex.
- (line 7)
-* destinations, numbered: Link types for pdftex and dvipdfm.
- (line 92)
-* destinations, page: Link types for pdftex and dvipdfm.
- (line 31)
-* destinations, raising: Options supported by all drivers.
- (line 13)
-* destinations, URL <1>: Link types for pdftex and dvipdfm.
- (line 25)
-* destinations, URL: Link types for hypertex.
- (line 14)
-* detecting numbers: \ifinteger and \isinteger.
- (line 6)
-* diagnostics: Diagnostics. (line 6)
-* Diagram, macros for LaTeX: Construction of commutative diagrams.
- (line 80)
-* dimensions, hyperlink: Link options for pdftex and dvipdfm.
- (line 124)
-* dimensions, hyperlink destination: Destination options for pdftex and dvipdfm.
- (line 34)
-* disabling hyperlinks <1>: Turning hyperlinks on/off.
- (line 6)
-* disabling hyperlinks: Hyperlink driver nolinks.
- (line 6)
-* displayed math and hyperlinks <1>: Setting group options.
- (line 34)
-* displayed math and hyperlinks: Options supported by all drivers.
- (line 27)
-* displays, left-justifying: Displays. (line 6)
-* do...while loops: Iteration. (line 6)
-* double column output: Multiple columns. (line 6)
-* double columns in indexes: Typesetting an index.
- (line 24)
-* draft, option for graphics.sty: Packages known to work.
- (line 69)
-* driver dvipdfm: Hyperlink drivers pdftex and dvipdfm.
- (line 6)
-* driver hypertex: Hyperlink driver hypertex.
- (line 6)
-* driver nolinks: Hyperlink driver nolinks.
- (line 6)
-* driver pdftex: Hyperlink drivers pdftex and dvipdfm.
- (line 6)
-* drivers, hyperlink: Introduction to hyperlinks.
- (line 6)
-* dvipdfm <1>: Hyperlink driver hypertex.
- (line 13)
-* dvipdfm: Introduction to hyperlinks.
- (line 36)
-* dvipdfm, destination options: Destination options for pdftex and dvipdfm.
- (line 6)
-* dvipdfm, destination types: Destination types for pdftex and dvipdfm.
- (line 6)
-* dvipdfm, hyperlink driver: Hyperlink drivers pdftex and dvipdfm.
- (line 6)
-* dvipdfm, link options: Link options for pdftex and dvipdfm.
- (line 6)
-* dvipdfm, link types: Link types for pdftex and dvipdfm.
- (line 6)
-* dvips: Hyperlink driver hypertex.
- (line 13)
-* Eijkhout, Victor: Iteration. (line 61)
-* eject in multicolumns: Multiple columns. (line 14)
-* electronic mail addresses, breaking <1>: Packages known to work.
- (line 120)
-* electronic mail addresses, breaking: Paths. (line 6)
-* empty argument, checking for: \ifempty. (line 6)
-* empty equation labels: Equation references. (line 22)
-* empty equation labels, referring to: Equation references. (line 27)
-* empty string, checking for: \ifempty. (line 6)
-* Encapsulated PostScript: Packages known to work.
- (line 90)
-* environments, user-defined: User-defined environments.
- (line 6)
-* Eplain, installing: Installation. (line 6)
-* Eplain, invoking: Invoking Eplain. (line 6)
-* Eplain, purpose of: Introduction. (line 6)
-* Eplain, upgrading: Installation. (line 6)
-* eplain.aux: Installation. (line 40)
-* eplain.fmt: Installation. (line 27)
-* EPS: Packages known to work.
- (line 90)
-* epstopdf: Packages known to work.
- (line 90)
-* epstopdf.sty: Packages known to work.
- (line 88)
-* equation labels, characters valid in: Equation references. (line 56)
-* equation numbers, formatting of: Formatting equation references.
- (line 6)
-* equations, giving numbers to all: Equation references. (line 22)
-* equations, groups of: Subequation references.
- (line 6)
-* equations, hyperlinks: Equation reference hyperlinks.
- (line 6)
-* equations, numbering: Equation references. (line 6)
-* equations, references to: Equation references. (line 6)
-* error messages: Diagnostics. (line 25)
-* error on \input: Environment for loading packages.
- (line 35)
-* escape character, changing verbatim: Verbatim listing. (line 47)
-* exact index hyperlinks: Exact destinations for index terms.
- (line 28)
-* expansion, one-level: \expandonce. (line 6)
-* explicit hyperlinks: Explicit hyperlinks. (line 6)
-* explicit hyperlinks, demo: Hyperlinks (xhyper.tex).
- (line 6)
-* file, hyperlink to <1>: Link types for pdftex and dvipdfm.
- (line 40)
-* file, hyperlink to: Link types for hypertex.
- (line 21)
-* file: links: General hyperlinks. (line 36)
-* filenames, breaking <1>: Packages known to work.
- (line 120)
-* filenames, breaking: Paths. (line 6)
-* files, verbatim listing of: Verbatim listing. (line 6)
-* files, verbatim listing of, demo: Highlighting TeX comments in listings (lscommnt.tex).
- (line 6)
-* filtering index entries with hyperlinks: Exact destinations for index terms.
- (line 33)
-* footnotes, hyperlinks: Footnote hyperlinks. (line 6)
-* footnotes, numbered: Footnotes. (line 6)
-* for loops: Iteration. (line 6)
-* form feed character, and verbatim listing: Verbatim listing.
- (line 30)
-* format file: Installation. (line 27)
-* formatting index entries: Typesetting an index.
- (line 35)
-* fractions: Fractions. (line 6)
-* Ghostscript: Hyperlink driver hypertex.
- (line 13)
-* gobbling arguments: Macro arguments. (line 6)
-* golden mean: Construction of commutative diagrams.
- (line 59)
-* Graham, Ronald L.: Citations. (line 86)
-* graphics collection, LaTeX <1>: Hyperlink driver nolinks.
- (line 34)
-* graphics collection, LaTeX <2>: Packages known to work.
- (line 25)
-* graphics collection, LaTeX: Loading LaTeX packages.
- (line 14)
-* graphics collection, LaTeX, demo: Hyperlinks (xhyper.tex).
- (line 6)
-* graphics, omitting typesetting of: Packages known to work.
- (line 69)
-* graphics, problems with pdfTeX: Packages known to work.
- (line 29)
-* graphics.sty: Packages known to work.
- (line 22)
-* graphicx.sty <1>: Hyperlinks (xhyper.tex).
- (line 6)
-* graphicx.sty: Packages known to work.
- (line 23)
-* grid: Construction of commutative diagrams.
- (line 80)
-* group `' (empty): Setting group types. (line 17)
-* group `*': Setting group types. (line 26)
-* group `bib': Citation hyperlinks. (line 11)
-* group `cite': Citation hyperlinks. (line 6)
-* group `definexref': Cross-reference hyperlinks.
- (line 6)
-* group `eq' <1>: Setting group options.
- (line 35)
-* group `eq': Equation reference hyperlinks.
- (line 6)
-* group `foot': Footnote hyperlinks. (line 6)
-* group `footback': Footnote hyperlinks. (line 6)
-* group `hrefext': General hyperlinks. (line 21)
-* group `hrefint': General hyperlinks. (line 12)
-* group `idx': Index hyperlinks. (line 6)
-* group `li': List hyperlinks. (line 6)
-* group `ref': Cross-reference hyperlinks.
- (line 11)
-* group `url': URL hyperlinks. (line 6)
-* group `xrdef': Page reference hyperlinks.
- (line 6)
-* group `xref': Page reference hyperlinks.
- (line 10)
-* group option list: Setting group options.
- (line 49)
-* group options, hyperlink <1>: Setting group options.
- (line 6)
-* group options, hyperlink: Setting hyperlink types and options.
- (line 12)
-* group options, hyperlink, demo: Hyperlinks (xhyper.tex).
- (line 6)
-* group type, hyperlink <1>: Setting group types. (line 6)
-* group type, hyperlink: Setting hyperlink types and options.
- (line 12)
-* group type, hyperlink, demo: Hyperlinks (xhyper.tex).
- (line 6)
-* group, destination: Implicit hyperlinks. (line 10)
-* group, disabling hyperlinks: Turning hyperlinks on/off for a group.
- (line 6)
-* group, link: Implicit hyperlinks. (line 10)
-* group, preserving option list: Setting group options.
- (line 22)
-* groups, specifying all: Setting group types. (line 26)
-* hanging on \input: Environment for loading packages.
- (line 35)
-* help messages: Diagnostics. (line 25)
-* highlight modes, hyperlink: Link options for pdftex and dvipdfm.
- (line 69)
-* highlighting: Packages known to work.
- (line 110)
-* highlighting, in listings: Highlighting TeX comments in listings (lscommnt.tex).
- (line 6)
-* Ho"ppner, Klaus: Packages known to work.
- (line 82)
-* hooks: Hooks. (line 6)
-* hyperlink border color: Link options for pdftex and dvipdfm.
- (line 14)
-* hyperlink color <1>: Setting default types and options.
- (line 25)
-* hyperlink color <2>: Options supported by all drivers.
- (line 37)
-* hyperlink color: URL hyperlinks. (line 17)
-* hyperlink destination, dimensions: Destination options for pdftex and dvipdfm.
- (line 34)
-* hyperlink destination, magnification: Destination options for pdftex and dvipdfm.
- (line 21)
-* hyperlink destination, named <1>: Link types for pdftex and dvipdfm.
- (line 18)
-* hyperlink destination, named: Link types for hypertex.
- (line 7)
-* hyperlink destination, numbered: Link types for pdftex and dvipdfm.
- (line 92)
-* hyperlink destination, page: Link types for pdftex and dvipdfm.
- (line 31)
-* hyperlink destination, raising: Options supported by all drivers.
- (line 13)
-* hyperlink dimensions: Link options for pdftex and dvipdfm.
- (line 124)
-* hyperlink driver dvipdfm: Hyperlink drivers pdftex and dvipdfm.
- (line 6)
-* hyperlink driver hypertex: Hyperlink driver hypertex.
- (line 6)
-* hyperlink driver nolinks: Hyperlink driver nolinks.
- (line 6)
-* hyperlink driver pdftex: Hyperlink drivers pdftex and dvipdfm.
- (line 6)
-* hyperlink drivers: Introduction to hyperlinks.
- (line 6)
-* hyperlink group, disabling hyperlinks: Turning hyperlinks on/off for a group.
- (line 6)
-* hyperlink group, preserving option list: Setting group options.
- (line 22)
-* hyperlink options, common: Options supported by all drivers.
- (line 6)
-* hyperlinks, bibliography: Citation hyperlinks. (line 11)
-* hyperlinks, border style: Link options for pdftex and dvipdfm.
- (line 20)
-* hyperlinks, border width: Link options for pdftex and dvipdfm.
- (line 50)
-* hyperlinks, citations: Citation hyperlinks. (line 6)
-* hyperlinks, cross-references: Cross-reference hyperlinks.
- (line 6)
-* hyperlinks, default options <1>: Setting group types. (line 17)
-* hyperlinks, default options: Setting hyperlink types and options.
- (line 6)
-* hyperlinks, default type <1>: Setting group types. (line 17)
-* hyperlinks, default type: Setting hyperlink types and options.
- (line 6)
-* hyperlinks, demo: Hyperlinks (xhyper.tex).
- (line 6)
-* hyperlinks, disabling <1>: Turning hyperlinks on/off.
- (line 6)
-* hyperlinks, disabling: Hyperlink driver nolinks.
- (line 6)
-* hyperlinks, equations: Equation reference hyperlinks.
- (line 6)
-* hyperlinks, explicit: Explicit hyperlinks. (line 6)
-* hyperlinks, explicit, demo: Hyperlinks (xhyper.tex).
- (line 6)
-* hyperlinks, filtering index entries: Exact destinations for index terms.
- (line 33)
-* hyperlinks, footnotes: Footnote hyperlinks. (line 6)
-* hyperlinks, group option list: Setting group options.
- (line 49)
-* hyperlinks, group options <1>: Setting group options.
- (line 6)
-* hyperlinks, group options: Setting hyperlink types and options.
- (line 12)
-* hyperlinks, group options, demo: Hyperlinks (xhyper.tex).
- (line 6)
-* hyperlinks, group type <1>: Setting group types. (line 6)
-* hyperlinks, group type: Setting hyperlink types and options.
- (line 12)
-* hyperlinks, highlight mode: Link options for pdftex and dvipdfm.
- (line 69)
-* hyperlinks, implicit: Implicit hyperlinks. (line 6)
-* hyperlinks, implicit, demo: Hyperlinks (xhyper.tex).
- (line 6)
-* hyperlinks, index: Index hyperlinks. (line 6)
-* hyperlinks, index destination placement: Choosing destination placement.
- (line 6)
-* hyperlinks, index, exact: Exact destinations for index terms.
- (line 28)
-* hyperlinks, large operators <1>: Setting group options.
- (line 34)
-* hyperlinks, large operators: Options supported by all drivers.
- (line 27)
-* hyperlinks, lists: List hyperlinks. (line 6)
-* hyperlinks, opening in a new window: Link options for pdftex and dvipdfm.
- (line 90)
-* hyperlinks, page references: Page reference hyperlinks.
- (line 6)
-* hyperlinks, preserving page-breaking: Hyperlink driver nolinks.
- (line 6)
-* hyperlinks, preserving spacing: Hyperlink driver nolinks.
- (line 6)
-* hyperlinks, see and see also index entries: Hyperlinks in see and see also entries.
- (line 6)
-* hyperlinks, table of contents: Contents hyperlinks. (line 6)
-* hyperlinks, to another file <1>: Link types for pdftex and dvipdfm.
- (line 40)
-* hyperlinks, to another file: Link types for hypertex.
- (line 21)
-* hyperlinks, URL <1>: Link types for pdftex and dvipdfm.
- (line 25)
-* hyperlinks, URL <2>: Link types for hypertex.
- (line 14)
-* hyperlinks, URL <3>: URL hyperlinks. (line 6)
-* hyperlinks, URL: General hyperlinks. (line 20)
-* hyperref.sty: Packages known not to work.
- (line 9)
-* hypertex, destination options: Destination options for hypertex.
- (line 6)
-* hypertex, destination types: Destination types for hypertex.
- (line 6)
-* hypertex, hyperlink driver: Hyperlink driver hypertex.
- (line 6)
-* hypertex, link options: Link options for hypertex.
- (line 6)
-* hypertex, link types: Link types for hypertex.
- (line 6)
-* hypertext links: Hyperlinks. (line 6)
-* identifying numbers: \ifinteger and \isinteger.
- (line 6)
-* idxuniq: Exact destinations for index terms.
- (line 33)
-* ignoring arguments: Macro arguments. (line 6)
-* implicit hyperlinks: Implicit hyperlinks. (line 6)
-* implicit hyperlinks, demo: Hyperlinks (xhyper.tex).
- (line 6)
-* inaccessible macros: Category codes. (line 19)
-* index entries and ranges: Modifying index entries.
- (line 22)
-* index entries containing braces: Index entries with special characters.
- (line 63)
-* index entries containing brackets: Index entries with special characters.
- (line 86)
-* index entries with special characters: Index entries with special characters.
- (line 6)
-* index entries' page numbers, modifying: Modifying index entries.
- (line 6)
-* index entries, and cross-referencing <1>: Customizing indexing.
- (line 64)
-* index entries, and cross-referencing: Modifying index entries.
- (line 36)
-* index entries, proofing: Proofing index terms.
- (line 6)
-* index entries, with verbatim text: Index entries with special characters.
- (line 40)
-* index entry continuations: Typesetting an index.
- (line 35)
-* index entry formatting: Typesetting an index.
- (line 35)
-* index entry general sorting: Indexing commands. (line 51)
-* index fonts: Typesetting an index.
- (line 24)
-* index groupings: Typesetting an index.
- (line 54)
-* index hyperlink: Index hyperlinks. (line 6)
-* index typesetting: Typesetting an index.
- (line 6)
-* index, and verbatim text: Index entries with special characters.
- (line 40)
-* index, choosing destination placement: Choosing destination placement.
- (line 6)
-* index, destination placement: Choosing destination placement.
- (line 6)
-* index, exact hyperlinks: Exact destinations for index terms.
- (line 28)
-* index, hyperlinks in see and see also entries: Hyperlinks in see and see also entries.
- (line 6)
-* index, parsing page numbers: Page destinations for index terms.
- (line 32)
-* index, placement of destinations: Choosing destination placement.
- (line 6)
-* index, selecting destination placement: Choosing destination placement.
- (line 6)
-* index, underlining page numbers: Page list and page range parsers.
- (line 26)
-* indexes, multiple: Indexing. (line 37)
-* indexing: Indexing. (line 6)
-* indexing and trailing spaces: Indexing terms. (line 20)
-* indexing commands: Indexing commands. (line 6)
-* indexing terms: Indexing terms. (line 6)
-* insertion classes: Multiple columns. (line 38)
-* inset hyperlink border: Link options for pdftex and dvipdfm.
- (line 26)
-* installation: Installation. (line 6)
-* integers, detecting: \ifinteger and \isinteger.
- (line 6)
-* item labels, changing: Formatting lists. (line 54)
-* iteration: Iteration. (line 6)
-* justification: Justification. (line 6)
-* Knuth, Donald Ervin <1>: Category codes. (line 7)
-* Knuth, Donald Ervin: Citations. (line 86)
-* labels on items, changing: Formatting lists. (line 54)
-* labels, characters valid in: Cross-references. (line 20)
-* labels, empty equation: Equation references. (line 22)
-* labels, empty equation, referring to: Equation references. (line 27)
-* Lamport, Leslie: Introduction. (line 13)
-* LAMSTeX: Logos. (line 10)
-* Lang, Serge <1>: Construction of commutative diagrams.
- (line 122)
-* Lang, Serge: Arrows and morphisms.
- (line 126)
-* large operators and hyperlinks <1>: Setting group options.
- (line 34)
-* large operators and hyperlinks: Options supported by all drivers.
- (line 27)
-* LaTeX <1>: Slanted lines and vectors.
- (line 7)
-* LaTeX <2>: Logos. (line 10)
-* LaTeX <3>: Citations. (line 10)
-* LaTeX: Introduction. (line 13)
-* LaTeX graphics collection <1>: Hyperlink driver nolinks.
- (line 34)
-* LaTeX graphics collection <2>: Packages known to work.
- (line 25)
-* LaTeX graphics collection: Loading LaTeX packages.
- (line 14)
-* LaTeX graphics collection, demo: Hyperlinks (xhyper.tex).
- (line 6)
-* LaTeX packages <1>: Packages known not to work.
- (line 6)
-* LaTeX packages <2>: Packages known to work.
- (line 6)
-* LaTeX packages: Loading LaTeX packages.
- (line 6)
-* LaTeX packages, restoring \input: Environment for loading packages.
- (line 24)
-* left-justification: Justification. (line 6)
-* left-justification of displays: Displays. (line 6)
-* letterspacing: Packages known to work.
- (line 110)
-* linear systems theory: Construction of commutative diagrams.
- (line 38)
-* lines: Slanted lines and vectors.
- (line 15)
-* link group: Implicit hyperlinks. (line 10)
-* link options: Introduction to hyperlinks.
- (line 105)
-* link options, common: Options supported by all drivers.
- (line 35)
-* link options, dvipdfm: Link options for pdftex and dvipdfm.
- (line 6)
-* link options, hypertex: Link options for hypertex.
- (line 6)
-* link options, pdftex: Link options for pdftex and dvipdfm.
- (line 6)
-* link type: Introduction to hyperlinks.
- (line 88)
-* link types, dvipdfm: Link types for pdftex and dvipdfm.
- (line 6)
-* link types, hypertex: Link types for hypertex.
- (line 6)
-* link types, pdftex: Link types for pdftex and dvipdfm.
- (line 6)
-* link, group options <1>: Setting group options.
- (line 6)
-* link, group options: Setting hyperlink types and options.
- (line 12)
-* link, group options, demo: Hyperlinks (xhyper.tex).
- (line 6)
-* link, group type <1>: Setting group types. (line 6)
-* link, group type: Setting hyperlink types and options.
- (line 12)
-* linkgroup: Implicit hyperlinks. (line 10)
-* linkgroup `cite': Citation hyperlinks. (line 6)
-* linkgroup `eq' <1>: Setting group options.
- (line 35)
-* linkgroup `eq': Equation reference hyperlinks.
- (line 20)
-* linkgroup `foot': Footnote hyperlinks. (line 6)
-* linkgroup `footback': Footnote hyperlinks. (line 6)
-* linkgroup `hrefext': General hyperlinks. (line 21)
-* linkgroup `hrefint': General hyperlinks. (line 12)
-* linkgroup `idx': Index hyperlinks. (line 6)
-* linkgroup `ref': Cross-reference hyperlinks.
- (line 11)
-* linkgroup `url': URL hyperlinks. (line 6)
-* linkgroup `xref': Page reference hyperlinks.
- (line 10)
-* linkgroup options <1>: Setting group options.
- (line 6)
-* linkgroup options: Setting hyperlink types and options.
- (line 12)
-* linkgroup options, demo: Hyperlinks (xhyper.tex).
- (line 6)
-* linkgroup type <1>: Setting group types. (line 6)
-* linkgroup type: Setting hyperlink types and options.
- (line 12)
-* links, hypertext: Hyperlinks. (line 6)
-* list of figures: Alternative contents files.
- (line 6)
-* list of tables: Alternative contents files.
- (line 6)
-* listing files: Verbatim listing. (line 6)
-* listing files, demo: Highlighting TeX comments in listings (lscommnt.tex).
- (line 6)
-* lists: Lists. (line 6)
-* lists, formatting: Formatting lists. (line 6)
-* lists, hyperlinks: List hyperlinks. (line 6)
-* logos: Logos. (line 6)
-* lookahead without spaces: \futurenonspacelet. (line 6)
-* loops: Iteration. (line 6)
-* lscommnt.tex: Highlighting TeX comments in listings (lscommnt.tex).
- (line 6)
-* magnification, hyperlink destination: Destination options for pdftex and dvipdfm.
- (line 21)
-* makeindex <1>: Index hyperlinks. (line 12)
-* makeindex <2>: Indexing. (line 14)
-* makeindex: Invoking Eplain. (line 103)
-* margins, changing: Margins. (line 6)
-* margins, index terms in: Proofing index terms.
- (line 6)
-* mathematics displays, formatting: Displays. (line 6)
-* mathematics displays, hyperlinks <1>: Setting group options.
- (line 34)
-* mathematics displays, hyperlinks: Options supported by all drivers.
- (line 27)
-* Metafont: Logos. (line 10)
-* miniltx.tex: Loading LaTeX packages.
- (line 14)
-* minimal realizations: Construction of commutative diagrams.
- (line 38)
-* modifying index entries' page numbers: Modifying index entries.
- (line 6)
-* morphisms: Arrows and morphisms.
- (line 6)
-* multiple column output: Multiple columns. (line 6)
-* multiple indexes: Indexing. (line 37)
-* named destination <1>: Link types for pdftex and dvipdfm.
- (line 18)
-* named destination: Link types for hypertex.
- (line 7)
-* names, of TeX variants: Logos. (line 6)
-* new window, opening hyperlink in: Link options for pdftex and dvipdfm.
- (line 90)
-* newlinechar: Diagnostics. (line 27)
-* newlines, obeying: Obeying spaces. (line 6)
-* nolinks, hyperlink driver: Hyperlink driver nolinks.
- (line 6)
-* numbered destination: Link types for pdftex and dvipdfm.
- (line 92)
-* numbered lists: Lists. (line 6)
-* numbered references: Citations. (line 86)
-* numbers, detecting: \ifinteger and \isinteger.
- (line 6)
-* numbers, written form of: Writing out numbers. (line 6)
-* Oberdiek, Heiko: Checking for PDF output.
- (line 24)
-* omitting hyperlinks <1>: Turning hyperlinks on/off.
- (line 6)
-* omitting hyperlinks: Hyperlink driver nolinks.
- (line 6)
-* omitting typesetting of graphics: Packages known to work.
- (line 69)
-* open boxes: Boxes. (line 12)
-* option list, group: Setting group options.
- (line 49)
-* option list, preserving for group: Setting group options.
- (line 22)
-* options, destination, common: Options supported by all drivers.
- (line 12)
-* options, destination, dvipdfm: Destination options for pdftex and dvipdfm.
- (line 6)
-* options, destination, hypertex: Destination options for hypertex.
- (line 6)
-* options, destination, pdftex: Destination options for pdftex and dvipdfm.
- (line 6)
-* options, link and destination: Introduction to hyperlinks.
- (line 105)
-* options, link, common: Options supported by all drivers.
- (line 35)
-* options, link, dvipdfm: Link options for pdftex and dvipdfm.
- (line 6)
-* options, link, hypertex: Link options for hypertex.
- (line 6)
-* options, link, pdftex: Link options for pdftex and dvipdfm.
- (line 6)
-* ordered list: Lists. (line 6)
-* output routine and index proofing: Proofing index terms.
- (line 28)
-* overstriking: Packages known to work.
- (line 110)
-* packages, LaTeX <1>: Packages known not to work.
- (line 6)
-* packages, LaTeX <2>: Packages known to work.
- (line 6)
-* packages, LaTeX: Loading LaTeX packages.
- (line 6)
-* page destination: Link types for pdftex and dvipdfm.
- (line 31)
-* page list, parsing: Page destinations for index terms.
- (line 32)
-* page range, parsing: Page destinations for index terms.
- (line 32)
-* page reference hyperlink: Page reference hyperlinks.
- (line 6)
-* page-breaking, preserving with hyperlinks: Hyperlink driver nolinks.
- (line 6)
-* parsing page numbers: Page destinations for index terms.
- (line 32)
-* Patashnik, Oren: Citations. (line 9)
-* pathnames, breaking <1>: Packages known to work.
- (line 120)
-* pathnames, breaking: Paths. (line 6)
-* PDF: Packages known to work.
- (line 90)
-* PDF output: Checking for PDF output.
- (line 6)
-* pdftex <1>: Introduction to hyperlinks.
- (line 35)
-* pdftex <2>: Checking for PDF output.
- (line 6)
-* pdftex: Invoking Eplain. (line 115)
-* pdftex, destination options: Destination options for pdftex and dvipdfm.
- (line 6)
-* pdftex, destination types: Destination types for pdftex and dvipdfm.
- (line 6)
-* pdftex, hyperlink driver: Hyperlink drivers pdftex and dvipdfm.
- (line 6)
-* pdftex, link options: Link options for pdftex and dvipdfm.
- (line 6)
-* pdftex, link types: Link types for pdftex and dvipdfm.
- (line 6)
-* pdfTeX, problems using color and graphics: Packages known to work.
- (line 29)
-* pdfTeX, problems with supp-mis.tex: Packages known to work.
- (line 29)
-* pict2e.sty: Packages known not to work.
- (line 16)
-* picture mode <1>: Slanted lines and vectors.
- (line 7)
-* picture mode: Packages known to work.
- (line 14)
-* Portable Document Format: Packages known to work.
- (line 90)
-* PostScript point <1>: Link options for pdftex and dvipdfm.
- (line 50)
-* PostScript point <2>: Destination options for pdftex and dvipdfm.
- (line 50)
-* PostScript point: Destination types for pdftex and dvipdfm.
- (line 66)
-* proofing index terms: Proofing index terms.
- (line 6)
-* properties: Properties. (line 6)
-* ps2pdf: Hyperlink driver hypertex.
- (line 13)
-* psfrag.sty: Packages known to work.
- (line 97)
-* quadruple column output: Multiple columns. (line 6)
-* Rahtz, Sebastian: Loading LaTeX packages.
- (line 14)
-* raising hyperlink destinations <1>: Setting group options.
- (line 34)
-* raising hyperlink destinations: Options supported by all drivers.
- (line 13)
-* ranges and index entry: Modifying index entries.
- (line 22)
-* recognizing numbers: \ifinteger and \isinteger.
- (line 6)
-* rectangles: Boxes. (line 6)
-* references, alphanumeric: Citations. (line 116)
-* references, defining general <1>: Using generic references.
- (line 6)
-* references, defining general: Defining generic references.
- (line 6)
-* references, numbered: Citations. (line 86)
-* register allocation: Allocation macros. (line 6)
-* restoring \input, LaTeX packages: Environment for loading packages.
- (line 24)
-* return character: Category codes. (line 41)
-* right-justification: Justification. (line 6)
-* rms: Introduction. (line 14)
-* rotation: Packages known to work.
- (line 25)
-* rotation, demo: Hyperlinks (xhyper.tex).
- (line 6)
-* rule thickness: Rules. (line 7)
-* run: links: General hyperlinks. (line 37)
-* scaling: Packages known to work.
- (line 25)
-* scaling, demo: Hyperlinks (xhyper.tex).
- (line 6)
-* sed: Customizing indexing.
- (line 66)
-* see also index entries and hyperlinks: Hyperlinks in see and see also entries.
- (line 6)
-* see also index entries and sorting: Customizing indexing.
- (line 51)
-* see, and index entries <1>: Customizing indexing.
- (line 64)
-* see, and index entries: Modifying index entries.
- (line 36)
-* see, and index entries, hyperlinks: Hyperlinks in see and see also entries.
- (line 6)
-* silent indexing: Indexing terms. (line 6)
-* skipping tokens <1>: \ifempty. (line 12)
-* skipping tokens: \ifundefined. (line 10)
-* SLiTeX: Logos. (line 11)
-* Snake Lemma: Arrows and morphisms.
- (line 130)
-* solid hyperlink border: Link options for pdftex and dvipdfm.
- (line 26)
-* sorting an index: Indexing. (line 6)
-* sorting of index entries: Indexing commands. (line 51)
-* soul.sty: Packages known to work.
- (line 108)
-* space above index entries: Typesetting an index.
- (line 35)
-* spaces, ignoring: \futurenonspacelet. (line 6)
-* spaces, obeying: Obeying spaces. (line 6)
-* spaces, trailing and indexing commands: Indexing terms. (line 20)
-* spacing out: Packages known to work.
- (line 110)
-* spacing, preserving with hyperlinks: Hyperlink driver nolinks.
- (line 6)
-* special characters, in index entries: Index entries with special characters.
- (line 6)
-* special characters, in table of contents: Writing the .toc file.
- (line 50)
-* Stallman, Richard: Introduction. (line 14)
-* striking out: Packages known to work.
- (line 110)
-* style, hyperlink border: Link options for pdftex and dvipdfm.
- (line 26)
-* subequations, referring to: Subequation references.
- (line 6)
-* subterm in indexing: Indexing terms. (line 13)
-* supp-mis.tex, problems with pdfTeX: Packages known to work.
- (line 29)
-* supp-pdf.tex: Packages known to work.
- (line 29)
-* table of contents: Contents. (line 6)
-* table of contents, and verbatim text: Writing the .toc file.
- (line 50)
-* table of contents, hyperlinks: Contents hyperlinks. (line 6)
-* table of contents, short <1>: Macro arguments. (line 10)
-* table of contents, short: Reading the .toc file.
- (line 19)
-* tables: Tables. (line 6)
-* tabs: Obeying spaces. (line 22)
-* TeX by Topic: Iteration. (line 61)
-* TeX Frequently Asked Question: \ifinteger and \isinteger.
- (line 26)
-* TEXFORMATS: Installation. (line 43)
-* texi2dvi <1>: Indexing. (line 34)
-* texi2dvi <2>: Citations. (line 97)
-* texi2dvi: Invoking Eplain. (line 103)
-* Texinfo: Introduction. (line 13)
-* TEXINPUTS: Installation. (line 23)
-* time of day: Time of day. (line 6)
-* toc files, writing several: Changing the .toc file's root name.
- (line 12)
-* tracing: Diagnostics. (line 6)
-* trailing spaces and indexing commands: Indexing terms. (line 20)
-* trimsee: Customizing indexing.
- (line 67)
-* triple column output: Multiple columns. (line 6)
-* Tu, Loring W.: Construction of commutative diagrams.
- (line 13)
-* TUGboat: Introduction. (line 60)
-* type, link and destination: Introduction to hyperlinks.
- (line 88)
-* types, destination, dvipdfm: Destination types for pdftex and dvipdfm.
- (line 6)
-* types, destination, hypertex: Destination types for hypertex.
- (line 6)
-* types, destination, pdftex: Destination types for pdftex and dvipdfm.
- (line 6)
-* types, link, dvipdfm: Link types for pdftex and dvipdfm.
- (line 6)
-* types, link, hypertex: Link types for hypertex.
- (line 6)
-* types, link, pdftex: Link types for pdftex and dvipdfm.
- (line 6)
-* typesetting an index: Typesetting an index.
- (line 6)
-* undefined control sequence, checking for: \ifundefined. (line 10)
-* undefined labels, warnings about: Installation. (line 40)
-* underline hyperlink border: Link options for pdftex and dvipdfm.
- (line 26)
-* underlining: Packages known to work.
- (line 110)
-* underlining page numbers in index: Page list and page range parsers.
- (line 26)
-* universal mapping property: Construction of commutative diagrams.
- (line 25)
-* unordered lists: Lists. (line 6)
-* upgrading: Installation. (line 6)
-* URL for ifpdf.sty: Checking for PDF output.
- (line 24)
-* URL for MakeIndex: Indexing. (line 14)
-* URL for path.sty: Paths. (line 33)
-* URL for pdfTeX: Checking for PDF output.
- (line 6)
-* URL for texnames.sty: Logos. (line 14)
-* URL hyperlink <1>: Link types for pdftex and dvipdfm.
- (line 25)
-* URL hyperlink <2>: Link types for hypertex.
- (line 14)
-* URL hyperlink <3>: URL hyperlinks. (line 6)
-* URL hyperlink: General hyperlinks. (line 20)
-* url.sty <1>: Hyperlinks (xhyper.tex).
- (line 6)
-* url.sty <2>: URL hyperlinks. (line 6)
-* url.sty: Packages known to work.
- (line 118)
-* user-inaccessible macros: Category codes. (line 19)
-* vectors: Slanted lines and vectors.
- (line 15)
-* verbatim listing: Verbatim listing. (line 6)
-* verbatim listing, demo: Highlighting TeX comments in listings (lscommnt.tex).
- (line 6)
-* verbatim text, in index: Index entries with special characters.
- (line 40)
-* verbatim text, in table of contents: Writing the .toc file.
- (line 50)
-* version number: Introduction. (line 47)
-* Walden, David: Introduction. (line 57)
-* Warner, Frank W.: Construction of commutative diagrams.
- (line 25)
-* whatsits made by hyperlinks: Hyperlink driver nolinks.
- (line 25)
-* whatsits made by index entries: Indexing commands. (line 63)
-* while loops: Iteration. (line 6)
-* whitespace: Obeying spaces. (line 6)
-* width, hyperlink border: Link options for pdftex and dvipdfm.
- (line 50)
-* writing several toc files: Changing the .toc file's root name.
- (line 12)
-* xcolor.sty: Packages known not to work.
- (line 19)
-* xdvi: Hyperlink driver hypertex.
- (line 11)
-* xeplain.tex: Introduction. (line 6)
-* xhyper.tex: Hyperlinks (xhyper.tex).
- (line 6)
-* Zassenhaus, Hans: Construction of commutative diagrams.
- (line 122)
-* zooming, hyperlink destination: Destination options for pdftex and dvipdfm.
- (line 21)
-
-
-
-Tag Table:
-Node: Top824
-Node: Introduction8097
-Node: Installation11064
-Node: Invoking Eplain13116
-Node: User definitions17568
-Node: Diagnostics19395
-Node: Rules20965
-Node: Citations21798
-Node: Formatting citations27641
-Node: Formatting bibliographies29187
-Node: Displays32016
-Node: Formatting displays33063
-Node: Time of day33735
-Node: Lists34496
-Node: Formatting lists36655
-Node: Verbatim listing38951
-Node: Contents41680
-Node: Writing the .toc file42351
-Node: Reading the .toc file45219
-Node: Changing the .toc file's root name46629
-Node: Alternative contents files47649
-Node: Cross-references48214
-Node: Defining generic references49699
-Node: Using generic references50577
-Node: Page references51868
-Node: Equation references52692
-Node: Formatting equation references55445
-Node: Subequation references57745
-Node: Indexing59668
-Node: Indexing terms61671
-Node: Indexing commands62784
-Node: Modifying index entries65812
-Node: Index entries with special characters68529
-Node: Proofing index terms72788
-Node: Typesetting an index74601
-Node: Customizing indexing77068
-Node: Justification80775
-Node: Tables82454
-Node: Margins85009
-Node: Multiple columns87170
-Node: Footnotes89154
-Node: Fractions91741
-Node: Paths92528
-Node: Logos94135
-Node: Boxes94822
-Node: Checking for PDF output96620
-Node: Loading LaTeX packages97711
-Node: The \usepackage command99059
-Node: Environment for loading packages100149
-Node: Packages known to work102216
-Node: Packages known not to work108621
-Node: Hyperlinks109383
-Node: Introduction to hyperlinks109966
-Node: Explicit hyperlinks115522
-Node: Implicit hyperlinks117812
-Node: General hyperlinks119634
-Node: URL hyperlinks121102
-Node: Citation hyperlinks123131
-Node: List hyperlinks123863
-Node: Cross-reference hyperlinks124257
-Node: Page reference hyperlinks125637
-Node: Equation reference hyperlinks126301
-Node: Index hyperlinks127699
-Node: Exact destinations for index terms129463
-Node: Page destinations for index terms131639
-Node: Choosing destination placement134267
-Node: Index page list and page range parsers135059
-Node: Hyperlinks in see and see also entries135612
-Node: Footnote hyperlinks136411
-Node: Contents hyperlinks137609
-Node: Hyperlink drivers137992
-Node: Options supported by all drivers138627
-Node: Hyperlink driver hypertex141431
-Node: Destination types for hypertex144383
-Node: Destination options for hypertex145422
-Node: Link types for hypertex145904
-Node: Link options for hypertex147925
-Node: Hyperlink drivers pdftex and dvipdfm148949
-Node: Destination types for pdftex and dvipdfm149595
-Node: Destination options for pdftex and dvipdfm153094
-Node: Link types for pdftex and dvipdfm155549
-Node: Link options for pdftex and dvipdfm159088
-Node: Hyperlink driver nolinks162727
-Node: Setting hyperlink types and options165139
-Node: Setting default types and options166141
-Node: Setting group types167570
-Node: Setting group options168763
-Node: Turning hyperlinks on/off171253
-Node: Turning low-level commands on/off171891
-Node: Turning hyperlinks on/off for a group172404
-Node: Arrow theoretic diagrams173561
-Node: Slanted lines and vectors173928
-Node: Commutative diagrams176010
-Node: Arrows and morphisms176609
-Node: Construction of commutative diagrams181087
-Node: Commutative diagram parameters188279
-Node: Programming definitions190098
-Node: Category codes191099
-Node: Allocation macros193709
-Node: Iteration195857
-Node: Macro arguments197516
-Node: Converting to characters200015
-Node: Expansion201407
-Node: \csn and \ece201970
-Node: \edefappend202536
-Node: Hooks203085
-Node: Properties205271
-Node: \expandonce206356
-Node: \ifundefined206805
-Node: \ifempty207369
-Node: \ifinteger and \isinteger208112
-Node: \futurenonspacelet209150
-Node: Obeying spaces209749
-Node: Writing out numbers210780
-Node: Mode-specific penalties211103
-Node: Auxiliary files211835
-Node: User-defined environments212758
-Node: Page list and page range parsers213973
-Node: Demo files216110
-Node: Hyperlinks (xhyper.tex)216678
-Node: Highlighting TeX comments in listings (lscommnt.tex)224997
-Node: Macro index227421
-Node: Concept index289457
-
-End Tag Table