summaryrefslogtreecommitdiff
path: root/Master/texmf/doc/info/eplain.info
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf/doc/info/eplain.info')
-rw-r--r--Master/texmf/doc/info/eplain.info8187
1 files changed, 0 insertions, 8187 deletions
diff --git a/Master/texmf/doc/info/eplain.info b/Master/texmf/doc/info/eplain.info
deleted file mode 100644
index 5b27ad3c3ae..00000000000
--- a/Master/texmf/doc/info/eplain.info
+++ /dev/null
@@ -1,8187 +0,0 @@
-This is eplain.info, produced by texi2any version 4.13.96+dev from
-eplain.texi.
-
-This manual documents the Eplain macros, version 3.5, February 2013.
-Eplain provides functionality for plain TeX that is intended to be
-useful regardless of how your document is actually formatted.
-
- Most of this manual is in the public domain, like most of the Eplain
-code. It was originally written by Karl Berry, starting in 1989. Steven
-Smith wrote the documentation for the commutative diagram macros; this
-chapter is under the GNU General Public License. Adam Lewenberg has made
-additions and corrections. Oleg Katsitadze wrote the section on LaTeX
-packages and the chapter on hyperlinks, and updates throughout.
-INFO-DIR-SECTION TeX
-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.5, February 2013.
-Eplain provides functionality for plain TeX that is intended to be
-useful regardless of how your document is actually formatted.
-
- Most of this manual is in the public domain, like most of the Eplain
-code. It was originally written by Karl Berry, starting in 1989.
-Steven Smith wrote the documentation for the commutative diagram macros;
-this chapter is under the GNU General Public License. Adam Lewenberg
-has made additions and corrections. Oleg Katsitadze wrote the section
-on LaTeX packages and the chapter on hyperlinks, and updates throughout.
-
- The Eplain home page is <http://tug.org/eplain>.
-
-* 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. Its home on the web is <http://tug.org/eplain>.
-
- 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. The original sources can be found in Eplain source
-zip archive in your TeX distribution, on CTAN or on Eplain's home page
-at <http://tug.org/eplain>.
-
- 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 conveniently, you need two things: a program to do the tedious
-formatting, and a way to cite references by labels, rather than by
-numbers. The BibTeX program, written by Oren Patashnik, takes care 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'.
-
- On the other hand, if your document's bibliography is very simple,
-you may prefer to create the '.bbl' file yourself, by hand, instead of
-using BibTeX. An annotated example of this approach is also given
-below.
-
- 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 above '\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::).
-
- For simple documents you might choose to write the '.bbl' file
-yourself, instead of running BibTeX. For this scenario, the following
-commands should suffice:
-
- $ tex citex (read citex.bbl, produces undefined citation messages)
- $ tex citex (one more time, to resolve the references)
-
- 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.
-* Commands from LaTeX:: LaTeX commands defined by 'btxmac'.
-
-
-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, Next: Commands from LaTeX, 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.
-
-'\biblabelprecontents'
-'\biblabelpostcontents'
- Macros expanded before and after '\biblabelcontents', respectively.
- For example, to get left-justified numeric labels (they are
- right-justified by default):
-
- \def\biblabelprecontents{\relax}
- \def\biblabelpostcontents{\hss}
-
-'\bblrm'
- The default font used for printing the bibliography.
-
-'\bblem'
- The font used for printing the titles and other "emphasized"
- material.
-
-'\bblemph'
- Typesets its argument using '\bblem', then inserts an italic
- correction.
-
-'\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 desperate, of course you can also hand-edit the .bbl file
-that BibTeX produces to do anything you wish.
-
-
-File: eplain.info, Node: Commands from LaTeX, Prev: Formatting bibliographies, Up: Citations
-
-4.3.3 Commands from LaTeX
--------------------------
-
-Because of the historical connection between BibTeX and LaTeX, in
-practice many bibliography styles and bibliographies use LaTeX commmands
-that are not part of bibliography handling, per se.
-
- To support this, 'btxmac.tex' (and thus Eplain) define the following.
-In all cases, an existing definition (e.g., from 'miniltx.tex', *note
-Loading LaTeX packages: Loading LaTeX packages.) will not be
-overwritten. Here is the list:
-
-'\newcommand'
-'\renewcommand'
-'\providecommand'
- Defining new commands in various ways. The Eplain versions do not
- support the *-form of these; use 'miniltx' for that.
-
-'\em'
-'\emph'
-'\sc'
-'\textbf'
- Selecting fonts.
-
-'\mbox'
- A horizontal box.
-
-'\newblock'
- Starts elements of a bibliography entry.
-
- For full information about these, see the LaTeX manual and sources.
-
-
-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'.
-
- Eplain defines '\eqnum' and '\eqalignnum' which can be set up to
-produce either left-aligned or right-aligned equation numbers.
-'\lefteqnumbers' ('\righteqnumbers') will define '\eqnum' to expand to
-'\eqno' ('\leqno'), and '\eqalignnum' to expand to '\eqalignno'
-('\leqalignno'). Default is '\righteqnumbers' (right-aligned equation
-numbers).
-
-* 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).
-
- '\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'.
-
- To reset the category code of all special characters to 12 ("other"),
-'\verbatim' uses '\uncatcodespecials' (*note Category codes::). If you
-make additional characters "special", you should extend '\dospecials' to
-include those characters, lest they be given special treatment inside
-verbatim environments. For example,
-
- \catcode`\A=\active
- % Try commenting out the following line.
- \expandafter\def\expandafter\dospecials\expandafter{\dospecials\do\A}
- \verbatimA#$%_^|endverbatim
-
- 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 '\eqnum' command
- (*note Displays::). (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 '\eqnum' 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.
-
- As another example, consider the following requirement: we want to
-include chapter number in all equation references, and additionally we
-want to include the part number when referencing an equation from any
-part other than the one where the equation appears. For example,
-references to the third equation in chapter 2 of part 1 should be
-typeset as '(2.3)' throughout part 1, but as '(I.2.3)' in any other
-part. Let's assume we have the current chapter and part numbers in count
-registers '\chapnum' and '\partnum', respectively.
-
- The idea is to have '\eqconstruct' store the part number of the
-equation (that is, the part number _at the time of definition_), so that
-later '\eqprint' can compare the stored number with the current part
-number (that is, the part number _at the time of reference_). The
-complicating factor is that internally, the result of '\eqconstruct' is
-both expanded and written out to the '.aux' file, _and_ used to typeset
-the equation number, so the commands that store the part number should
-behave correctly in both situations. This is difficult to achieve with
-expandable commands; therefore, to avoid expansion problems, we are
-going to use only TeX primitives, which are non-expandable:
-
- \newcount\eqpartnum
-
- \def\eqconstruct#1{%
- \global\eqpartnum=\the\partnum\relax
- \number\chapnum.#1%
- }
-
- \def\eqprint#1{%
- \setbox0=\hbox{#1}%
- (\ifnum\partnum=\eqpartnum \else
- \uppercase\expandafter{\romannumeral\eqpartnum}.%
- \fi
- \box0)%
- }%
-
-In '\eqconstruct', besides constructing the base equation number (e.g.,
-'1.2'), we also store the part number of the equation in the count
-register '\eqpartnum' ('\the\partnum' is expanded when the equation
-number is written to the '.aux' file, so the equation label definition
-in the '.aux' file will contain the actual part number). In '\eqprint',
-we need to know the equation's part number before we typeset the base
-equation number, therefore we first put the argument in a box, thus
-causing '\eqpartnum' to be set.
-
-
-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.
-
- Note that MakeIndex does not use the above naming scheme for multiple
-indexes. Unless instructed otherwise, MakeIndex always writes its output
-to a file with extension '.ind'. For example, if you define an
-additional index with the command '\defineindex{j}', you'll need to run
-MakeIndex like this:
-
- $ makeindex book.jdx -o book.jnd
-
- For each index defined with '\defineindex{N}', Eplain provides a
-switch '\ifNdx' which controls whether indexing commands write index
-entries to the corresponding index file. However, even when index term
-writing is disabled, indexing commands still do all other processing of
-their arguments, including typesetting of proof index terms (*note
-Proofing index terms::.
-
- For example, if you write '\idxfalse' near the beginning of a
-document 'foo.tex' (before the first indexing command), Eplain will not
-open the default index file ('foo.idx') and the corresponding indexing
-commands ('\idx', '\sidx', etc.) will not write index entries there.
-This may be useful for draft compilations of a manuscript, e.g., to
-avoid the overhead of index file input/output.
-
-* 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. The normal index entries
- have to be created separately--'seealso' does _not_ contribute a
- page number to the index entry. For example, if you have indexed a
- term on pages 75, 97 and 114, and then add a 'seealso' entry for
- the term:
-
- \sidx[seealso]{archetypal criticism}[elements of]{dichotomies}
-
- the index will contain
-
- 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, hence for the
-non-silent commands the term, besides being a valid MakeIndex input,
-must also represent a valid TeX input. The silent commands don't have
-this restriction--their terms only need to become valid TeX input
-_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 LaTeX styles and macro
-packages tackle more difficult applications. The 'autorows' feature of
-the Memoir package provides similar functionality to this.
-
- 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 an unbreakable space of (essentially) size '\@normalvsize' minus
-'\pagetotal' (where '\@normalvsize' is 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 space (during the column splitting operation when the whole page is
-output). Bugs are easily possible, unfortunately.
-
- 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 '\AMSLaTeX', '\AMSTeX', '\BibTeX' '\eTeX', '\ExTeX',
-'\LAMSTeX', '\LaTeX', '\MF', '\SLiTeX', '\XeLaTeX', and '\XeTeX' to
-produce their respective logos. (Sorry, the logos are not shown here.)
-Some spelling variants of these are also supported.
-
- Most of 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:: Packages supported with Eplain.
-* 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 a concept 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.
-
- Both the 'miniltx.tex' file used by Eplain and some LaTeX packages
-redefine TeX's primitive '\input' to be a macro. Under plain TeX, users
-probably expect the primitive '\input'. 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'.
-
- Along the same lines, Eplain restores the catcode of '@' at
-'\endpackages' to whatever it was before (using '\resetatcatcode', as
-defined by 'miniltx.tex'). This is needed because 'miniltx.tex', read by
-'\beginpackages', does not restore the catcode of '@', but leaves it as
-11 (letter).
-
- 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 cna 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 ('2009/07/16 v2.2 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}
- \href{mailto:tex-eplain@tug.org}{Eplain mailing list}
-
-*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}
-
- \url{mailto:foobar@example.org}
-
- \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}
-
- \url{mailto:foobar@example.org}
-
- \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.
-For notes on the usage, *note Verbatim listing::.
-
- 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
- }
-
- It's possible to define macros that appear to accept optional
-arguments intermixed with mandatory arguments in any imaginable way. For
-example:
-
- \makeatletter
- % \mo{m}[o]
- \def\mo#1{\def\mo@arg{#1}\@getoptionalarg\fin@mo}
- \def\fin@mo{\vskip1pc
- ARG: \mo@arg \par
- OPTARG: \@optionalarg \par
- }
- % \mom{m}[o]{m}
- \def\mom#1{\def\mom@arg{#1}\@getoptionalarg\fin@mom}
- \def\fin@mom#1{\vskip1pc
- ARG1: \mom@arg \par
- OPTARG: \@optionalarg \par
- ARG2: #1\par
- }
- % \omo[o]{m}[o]
- \def\omo{\@getoptionalarg\fin@omo}
- \def\fin@omo#1{\let\omo@optarg\@optionalarg
- \def\omo@arg{#1}\@getoptionalarg\@fin@omo}
- \def\@fin@omo{\vskip1pc
- OPTARG1: \omo@optarg \par
- ARG: \omo@arg \par
- OPTARG2: \@optionalarg \par
- }
- \makeatother
-
- 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: Destination types for hypertex.
- (line 14)
-* @hllabel <1>: Link types for hypertex.
- (line 39)
-* @hllabel <2>: Destination types for pdftex and dvipdfm.
- (line 84)
-* @hllabel <3>: Link types for pdftex and dvipdfm.
- (line 67)
-* @indexproof insertion class: Proofing index terms.
- (line 28)
-* abovecolumnskip: Multiple columns. (line 33)
-* abovecolumnspenalty: Tables. (line 30)
-* abovelistpenalty: Formatting lists. (line 29)
-* abovelistskip: Formatting lists. (line 29)
-* abovelistskipamount: Formatting lists. (line 10)
-* adjarrow: Arrows and morphisms.
- (line 113)
-* adjmapdown: Arrows and morphisms.
- (line 91)
-* adjmapleft: Arrows and morphisms.
- (line 66)
-* adjmapright: Arrows and morphisms.
- (line 63)
-* adjmapup: Arrows and morphisms.
- (line 94)
-* advancebottommargin: Margins. (line 26)
-* advanceleftmargin: Margins. (line 26)
-* advancerightmargin: Margins. (line 26)
-* advancetopmargin: Margins. (line 26)
-* afterindexterm: Customizing indexing.
- (line 6)
-* afterindexterm hook: Indexing commands. (line 62)
-* AMSLaTeX: Logos. (line 10)
-* AMSTeX: Logos. (line 10)
-* arrow: Arrows and morphisms.
- (line 20)
-* arrow <1>: Arrows and morphisms.
- (line 104)
-* bblem: Formatting bibliographies.
- (line 41)
-* bblemph: Formatting bibliographies.
- (line 45)
-* bblfilebasename: Citations. (line 30)
-* bblhook: Formatting bibliographies.
- (line 67)
-* bblnewblock: Formatting bibliographies.
- (line 53)
-* bblrm: Formatting bibliographies.
- (line 38)
-* bblsc: Formatting bibliographies.
- (line 49)
-* bcolor (hyperlink option): Link options for pdftex and dvipdfm.
- (line 13)
-* bdash (hyperlink option): Link options for pdftex and dvipdfm.
- (line 19)
-* bdash (hyperlink option) <1>: Link options for pdftex and dvipdfm.
- (line 32)
-* begin for index entries: Modifying index entries.
- (line 22)
-* beginindex hook: Typesetting an index.
- (line 30)
-* beginlist: Formatting lists. (line 50)
-* 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 110)
-* biblabelcontents: Formatting bibliographies.
- (line 23)
-* biblabelextraspace: Formatting bibliographies.
- (line 61)
-* biblabelpostcontents: Formatting bibliographies.
- (line 30)
-* biblabelprecontents: Formatting bibliographies.
- (line 30)
-* biblabelprint: Formatting bibliographies.
- (line 17)
-* biblabelwidth: Formatting bibliographies.
- (line 11)
-* bibliography: Citations. (line 61)
-* bibliography (hyperlinks): Citation hyperlinks. (line 11)
-* bibliographystyle: Citations. (line 68)
-* BibTeX: Logos. (line 10)
-* bihline: Arrows and morphisms.
- (line 69)
-* bimapdown: Arrows and morphisms.
- (line 85)
-* bimapleft: Arrows and morphisms.
- (line 60)
-* bimapright: Arrows and morphisms.
- (line 57)
-* bimapup: Arrows and morphisms.
- (line 88)
-* bisline: Arrows and morphisms.
- (line 116)
-* bivline: Arrows and morphisms.
- (line 97)
-* blackbox: Boxes. (line 7)
-* blanklineskipamount in justified text: Justification. (line 23)
-* blanklineskipamount in obeyed text: Obeying spaces. (line 16)
-* bottom (destination option): Destination types for pdftex and dvipdfm.
- (line 65)
-* bottom (destination option) <1>: Destination options for pdftex and dvipdfm.
- (line 56)
-* bottommargin: Margins. (line 17)
-* boxit: Boxes. (line 28)
-* boxitspace: Boxes. (line 30)
-* bstyle (hyperlink option): Link options for pdftex and dvipdfm.
- (line 25)
-* bwidth (hyperlink option): Link options for pdftex and dvipdfm.
- (line 49)
-* catcode: Category codes. (line 13)
-* center: Justification. (line 7)
-* centereddisplays: Displays. (line 13)
-* channelwidth: Arrows and morphisms.
- (line 119)
-* channelwidth <1>: Commutative diagram parameters.
- (line 36)
-* cite: Citations. (line 42)
-* cite (hyperlinks): Citation hyperlinks. (line 6)
-* cmd (destination option): Destination types for hypertex.
- (line 14)
-* cmd (destination option) <1>: Destination options for hypertex.
- (line 7)
-* cmd (destination option) <2>: Destination types for pdftex and dvipdfm.
- (line 83)
-* cmd (destination option) <3>: Destination options for pdftex and dvipdfm.
- (line 14)
-* cmd (hyperlink option): Link types for hypertex.
- (line 39)
-* cmd (hyperlink option) <1>: Link options for hypertex.
- (line 7)
-* cmd (hyperlink option) <2>: Link types for pdftex and dvipdfm.
- (line 66)
-* cmd (hyperlink option) <3>: Link options for pdftex and dvipdfm.
- (line 56)
-* 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: Construction of commutative diagrams.
- (line 64)
-* commdiagbaselines <1>: Commutative diagram parameters.
- (line 43)
-* csn: \csn and \ece. (line 6)
-* definecolor: Hyperlinks (xhyper.tex).
- (line 7)
-* definecontentsfile: Alternative contents files.
- (line 6)
-* defineindex: Indexing. (line 36)
-* definexref: Defining generic references.
- (line 6)
-* definexref <1>: Hyperlinks (xhyper.tex).
- (line 7)
-* definexref (hyperlinks): Cross-reference hyperlinks.
- (line 6)
-* depth (destination option): Destination types for pdftex and dvipdfm.
- (line 61)
-* depth (destination option) <1>: Destination options for pdftex and dvipdfm.
- (line 34)
-* depth (hyperlink option): Link options for pdftex and dvipdfm.
- (line 122)
-* discretionaries: Paths. (line 20)
-* displaylines: Displays. (line 18)
-* dospecials: Verbatim listing. (line 57)
-* 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)
-* em: Commands from LaTeX. (line 25)
-* emph: Commands from LaTeX. (line 25)
-* enablehyperlinks: Introduction to hyperlinks.
- (line 42)
-* enablehyperlinks <1>: Choosing destination placement.
- (line 7)
-* enablehyperlinks <2>: Hyperlink driver nolinks.
- (line 48)
-* end for index entries: Modifying index entries.
- (line 22)
-* endlist: Formatting lists. (line 52)
-* endnumberedlist: Lists. (line 13)
-* endorderedlist: Lists. (line 13)
-* endpackages: Environment for loading packages.
- (line 6)
-* endunorderedlist: Lists. (line 20)
-* 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 24)
-* eqalignno: Displays. (line 18)
-* eqalignno <1>: Displays. (line 23)
-* eqalignnum: Displays. (line 23)
-* 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)
-* eqno: Displays. (line 23)
-* eqnum: Displays. (line 23)
-* eqnum <1>: Equation references. (line 15)
-* eqnum <2>: Equation references. (line 38)
-* eqnumber: Equation references. (line 8)
-* eqprint: Formatting equation references.
- (line 12)
-* eqref: Equation references. (line 46)
-* eqref <1>: Equation reference hyperlinks.
- (line 20)
-* eqrefn: Equation references. (line 51)
-* eqrefn <1>: Equation reference hyperlinks.
- (line 20)
-* 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)
-* eTeX: Logos. (line 10)
-* everyfootnote: Footnotes. (line 35)
-* evrule: Rules. (line 18)
-* expandonce: \expandonce. (line 6)
-* ext (hyperlink option): Link types for hypertex.
- (line 23)
-* ext (hyperlink option) <1>: Link options for hypertex.
- (line 20)
-* ExTeX: Logos. (line 10)
-* file (hyperlink option): Link types for hypertex.
- (line 22)
-* file (hyperlink option) <1>: Link options for hypertex.
- (line 14)
-* file (hyperlink option) <2>: Link types for pdftex and dvipdfm.
- (line 40)
-* file (hyperlink option) <3>: Link types for pdftex and dvipdfm.
- (line 52)
-* file (hyperlink option) <4>: Link options for pdftex and dvipdfm.
- (line 63)
-* fileexists (conditional): Auxiliary files. (line 10)
-* filename (hyperlink type): Link types for hypertex.
- (line 21)
-* filename (hyperlink type) <1>: Link types for pdftex and dvipdfm.
- (line 39)
-* filepage (hyperlink type): Link types for pdftex and dvipdfm.
- (line 51)
-* 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 50)
-* footnote (hyperlinks): Footnote hyperlinks. (line 7)
-* footnotemarkseparation: Footnotes. (line 25)
-* footnoteruleheight: Footnotes. (line 44)
-* footnoterulewidth: Footnotes. (line 44)
-* for: Iteration. (line 6)
-* For: Iteration. (line 15)
-* frac: Fractions. (line 6)
-* fullmonthname: Time of day. (line 13)
-* futurenonspacelet: \futurenonspacelet. (line 6)
-* getproperty: Properties. (line 18)
-* gloggingall: Diagnostics. (line 22)
-* gobble: Macro arguments. (line 7)
-* gobbletwo: Macro arguments. (line 7)
-* gridcommdiag: Construction of commutative diagrams.
- (line 88)
-* gtracingall: Diagnostics. (line 22)
-* gutter: Multiple columns. (line 23)
-* gutterbox: Multiple columns. (line 24)
-* hangindent for index entries: Typesetting an index.
- (line 45)
-* harrowlength: Arrows and morphisms.
- (line 27)
-* harrowlength <1>: Commutative diagram parameters.
- (line 11)
-* hchannel: Commutative diagram parameters.
- (line 39)
-* height (destination option): Destination types for pdftex and dvipdfm.
- (line 60)
-* height (destination option) <1>: Destination options for pdftex and dvipdfm.
- (line 37)
-* height (hyperlink option): Link options for pdftex and dvipdfm.
- (line 125)
-* hgrid: Construction of commutative diagrams.
- (line 108)
-* hgrid <1>: Commutative diagram parameters.
- (line 47)
-* hldest: Explicit hyperlinks. (line 6)
-* hldest <1>: Destination types for hypertex.
- (line 17)
-* hldest <2>: Destination types for pdftex and dvipdfm.
- (line 86)
-* hldest <3>: Setting hyperlink types and options.
- (line 7)
-* hldestoff: Hyperlink driver nolinks.
- (line 10)
-* hldestoff <1>: Turning low-level commands on/off.
- (line 6)
-* hldeston: Turning low-level commands on/off.
- (line 6)
-* hldestopts: Setting default types and options.
- (line 15)
-* hldestopts <1>: Setting group options.
- (line 10)
-* hldestopts <2>: Hyperlinks (xhyper.tex).
- (line 7)
-* hldesttype: Setting default types and options.
- (line 6)
-* hldesttype <1>: Setting group types. (line 6)
-* hldesttype <2>: Hyperlinks (xhyper.tex).
- (line 7)
-* hlend: Explicit hyperlinks. (line 25)
-* hlend <1>: Hyperlinks (xhyper.tex).
- (line 7)
-* hlfootbacklabel: Footnote hyperlinks. (line 12)
-* hlfootlabel: Footnote hyperlinks. (line 12)
-* hlfootlabelnumber: Footnote hyperlinks. (line 15)
-* 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 7)
-* hline: Arrows and morphisms.
- (line 54)
-* hloff: Hyperlink driver nolinks.
- (line 10)
-* hloff <1>: Turning low-level commands on/off.
- (line 6)
-* hlon: Turning low-level commands on/off.
- (line 6)
-* hlopts: Setting default types and options.
- (line 15)
-* hlopts <1>: Setting group options.
- (line 10)
-* hlopts <2>: Hyperlinks (xhyper.tex).
- (line 7)
-* hlstart: Explicit hyperlinks. (line 25)
-* hlstart <1>: Link types for hypertex.
- (line 43)
-* hlstart <2>: Link types for pdftex and dvipdfm.
- (line 70)
-* hlstart <3>: Setting hyperlink types and options.
- (line 7)
-* hlstart <4>: Hyperlinks (xhyper.tex).
- (line 7)
-* hltype: Setting default types and options.
- (line 6)
-* hltype <1>: Setting group types. (line 6)
-* hmorphposn: Arrows and morphisms.
- (line 32)
-* hmorphposn <1>: Commutative diagram parameters.
- (line 20)
-* hmorphposndn: Arrows and morphisms.
- (line 38)
-* hmorphposndn <1>: Commutative diagram parameters.
- (line 22)
-* hmorphposnlft: Arrows and morphisms.
- (line 39)
-* hmorphposnlft <1>: Commutative diagram parameters.
- (line 23)
-* hmorphposnrt: Arrows and morphisms.
- (line 39)
-* hmorphposnrt <1>: Commutative diagram parameters.
- (line 22)
-* hmorphposnup: Arrows and morphisms.
- (line 38)
-* hmorphposnup <1>: Commutative diagram parameters.
- (line 22)
-* hoffset: Proofing index terms.
- (line 21)
-* hookaction: Hooks. (line 14)
-* hookactiononce: Hooks. (line 21)
-* hookappend: Hooks. (line 15)
-* hookprepend: Hooks. (line 16)
-* hookrun: Hooks. (line 37)
-* href: General hyperlinks. (line 6)
-* hruledefaultdepth: Rules. (line 9)
-* hruledefaultheight: Rules. (line 9)
-* hsize: Margins. (line 32)
-* 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 41)
-* idxencapoperator: Customizing indexing.
- (line 38)
-* idxendrangemark: Customizing indexing.
- (line 44)
-* 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 49)
-* idxpagerangedelimiter: Page list and page range parsers.
- (line 23)
-* idxpagerangedelimiter <1>: Page list and page range parsers.
- (line 30)
-* 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 35)
-* idxsubmarked: Indexing commands. (line 40)
-* idxsubmarked (hyperlinks): Index hyperlinks. (line 6)
-* ifempty: \ifempty. (line 6)
-* iffileexists: Auxiliary files. (line 10)
-* ifidx: Indexing. (line 54)
-* ifindexproofing: Proofing index terms.
- (line 12)
-* ifinteger: \ifinteger and \isinteger.
- (line 6)
-* ifpdf: Checking for PDF output.
- (line 10)
-* ifpdf <1>: Introduction to hyperlinks.
- (line 51)
-* ifrewritetocfile: Reading the .toc file.
- (line 26)
-* ifundefined: \ifundefined. (line 6)
-* includegraphics: Hyperlinks (xhyper.tex).
- (line 7)
-* 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)
-* indexproofingfalse: Proofing index terms.
- (line 12)
-* indexproofingtrue: Proofing index terms.
- (line 12)
-* indexproofterm: Proofing index terms.
- (line 12)
-* indexproofunbox: Proofing index terms.
- (line 28)
-* indexsee: Customizing indexing.
- (line 53)
-* indexsee <1>: Hyperlinks in see and see also entries.
- (line 8)
-* indexseealso: Customizing indexing.
- (line 53)
-* indexseealso <1>: Hyperlinks in see and see also entries.
- (line 8)
-* indexseealsowords: Customizing indexing.
- (line 53)
-* indexseeword: Customizing indexing.
- (line 53)
-* indexsetmargins: Proofing index terms.
- (line 21)
-* indexspace: Typesetting an index.
- (line 54)
-* innerdef: Allocation macros. (line 28)
-* innerinnerdef: Allocation macros. (line 39)
-* innernewbox: Allocation macros. (line 21)
-* innernewcount: Allocation macros. (line 21)
-* innernewdimen: Allocation macros. (line 21)
-* innernewfam: Allocation macros. (line 22)
-* innernewhelp: Allocation macros. (line 22)
-* innernewif: Allocation macros. (line 22)
-* innernewinsert: Allocation macros. (line 22)
-* innernewlanguage: Allocation macros. (line 23)
-* innernewread: Allocation macros. (line 24)
-* innernewskip: Allocation macros. (line 24)
-* innernewtoks: Allocation macros. (line 24)
-* innernewwrite: Allocation macros. (line 24)
-* 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: Citations. (line 17)
-* jobname <1>: Typesetting an index.
- (line 11)
-* jobname <2>: Auxiliary files. (line 9)
-* LAMSTeX: Logos. (line 11)
-* LaTeX: Logos. (line 11)
-* lbracechar: Category codes. (line 57)
-* left (destination option): Destination types for pdftex and dvipdfm.
- (line 11)
-* left (destination option) <1>: Destination types for pdftex and dvipdfm.
- (line 33)
-* left (destination option) <2>: Destination types for pdftex and dvipdfm.
- (line 54)
-* left (destination option) <3>: Destination types for pdftex and dvipdfm.
- (line 65)
-* left (destination option) <4>: Destination options for pdftex and dvipdfm.
- (line 60)
-* leftdisplayindent: Displays. (line 11)
-* leftdisplays: Displays. (line 9)
-* leftdisplaysetup: Formatting displays. (line 8)
-* lefteqnumbers: Displays. (line 23)
-* leftmargin: Margins. (line 17)
-* leqalignno: Displays. (line 19)
-* leqalignno <1>: Displays. (line 23)
-* leqno: Displays. (line 23)
-* letreturn: Category codes. (line 40)
-* letter: Category codes. (line 10)
-* lft: Arrows and morphisms.
- (line 15)
-* li: Lists. (line 27)
-* li (hyperlinks): List hyperlinks. (line 6)
-* linenumberedlisting: Verbatim listing. (line 17)
-* linenumberedlisting <1>: Highlighting TeX comments in listings (lscommnt.tex).
- (line 7)
-* listcompact: Lists. (line 38)
-* listing: Verbatim listing. (line 7)
-* listing <1>: Highlighting TeX comments in listings (lscommnt.tex).
- (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 11)
-* loop: Iteration. (line 40)
-* makeactive: Category codes. (line 13)
-* makeatletter: Category codes. (line 22)
-* makeatother: Category codes. (line 31)
-* makeblankbox: Boxes. (line 12)
-* makecolumns: Tables. (line 6)
-* makeheadline: Proofing index terms.
- (line 28)
-* mapdown: Arrows and morphisms.
- (line 13)
-* mapdown <1>: Arrows and morphisms.
- (line 76)
-* mapleft: Arrows and morphisms.
- (line 6)
-* mapleft <1>: Arrows and morphisms.
- (line 51)
-* mapright: Arrows and morphisms.
- (line 6)
-* mapright <1>: Arrows and morphisms.
- (line 48)
-* mapup: Arrows and morphisms.
- (line 13)
-* mapup <1>: Arrows and morphisms.
- (line 79)
-* matrix: Construction of commutative diagrams.
- (line 10)
-* mbox: Commands from LaTeX. (line 28)
-* MF: Logos. (line 11)
-* monthname: Time of day. (line 10)
-* morphdist: Arrows and morphisms.
- (line 33)
-* morphdist <1>: Commutative diagram parameters.
- (line 32)
-* name (hyperlink type): Link types for hypertex.
- (line 7)
-* name (hyperlink type) <1>: Link types for pdftex and dvipdfm.
- (line 18)
-* new...: Allocation macros. (line 8)
-* newblock: Commands from LaTeX. (line 31)
-* newcommand: Commands from LaTeX. (line 18)
-* newwin (hyperlink option): Link types for pdftex and dvipdfm.
- (line 41)
-* newwin (hyperlink option) <1>: Link types for pdftex and dvipdfm.
- (line 53)
-* newwin (hyperlink option) <2>: Link options for pdftex and dvipdfm.
- (line 90)
-* noarrow: Invoking Eplain. (line 84)
-* noauxfile: Invoking Eplain. (line 89)
-* nobibtex: Invoking Eplain. (line 73)
-* nocite: Citations. (line 58)
-* nolastlinelisting: Verbatim listing. (line 25)
-* nolastlinelisting <1>: Highlighting TeX comments in listings (lscommnt.tex).
- (line 7)
-* 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 91)
-* numberedfootnote: Footnotes. (line 7)
-* numberedfootnote (hyperlinks): Footnote hyperlinks. (line 6)
-* numberedlist: Lists. (line 13)
-* numberedlistdepth: Formatting lists. (line 41)
-* numberedmarker: Formatting lists. (line 37)
-* numbername: Writing out numbers. (line 6)
-* obeywhitespace: Obeying spaces. (line 6)
-* orderedlist: Lists. (line 13)
-* 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 30)
-* pagefit (hyperlink option): Link types for pdftex and dvipdfm.
- (line 31)
-* pagefit (hyperlink option) <1>: Link types for pdftex and dvipdfm.
- (line 41)
-* pagefit (hyperlink option) <2>: Link types for pdftex and dvipdfm.
- (line 53)
-* pagefit (hyperlink option) <3>: Link options for pdftex and dvipdfm.
- (line 107)
-* pageno: Proofing index terms.
- (line 21)
-* pagetotal: Multiple columns. (line 14)
-* paperheight: Margins. (line 43)
-* paperwidth: Margins. (line 46)
-* 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 54)
-* phantomeqlabel: Equation reference hyperlinks.
- (line 14)
-* phantomeqnumber: Equation reference hyperlinks.
- (line 14)
-* previouseverydisplay: Formatting displays. (line 14)
-* printbetweencitations: Formatting citations.
- (line 20)
-* printcitefinish: Formatting citations.
- (line 15)
-* printcitenote: Formatting citations.
- (line 26)
-* printcitestart: Formatting citations.
- (line 15)
-* printitem: Formatting lists. (line 51)
-* printlistinglineno: Verbatim listing. (line 19)
-* printlistinglineno <1>: Verbatim listing. (line 27)
-* providecommand: Commands from LaTeX. (line 18)
-* quadcolumns: Multiple columns. (line 7)
-* raggedright for index entries: Typesetting an index.
- (line 45)
-* raise (hyperlink option): Options supported by all drivers.
- (line 13)
-* raise (hyperlink option) <1>: Setting group options.
- (line 33)
-* raw (destination type): Destination types for hypertex.
- (line 12)
-* raw (destination type) <1>: Destination types for pdftex and dvipdfm.
- (line 81)
-* raw (hyperlink type): Link types for hypertex.
- (line 37)
-* raw (hyperlink type) <1>: Link types for pdftex and dvipdfm.
- (line 64)
-* rbracechar: Category codes. (line 58)
-* readindexfile: Typesetting an index.
- (line 6)
-* readindexfile (hyperlinks): Index hyperlinks. (line 9)
-* readtocfile: Reading the .toc file.
- (line 6)
-* ref: Using generic references.
- (line 16)
-* ref <1>: Hyperlinks (xhyper.tex).
- (line 7)
-* 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 22)
-* refs (hyperlinks): Cross-reference hyperlinks.
- (line 26)
-* refspace: Cross-reference hyperlinks.
- (line 24)
-* refspace <1>: Page reference hyperlinks.
- (line 10)
-* reftie: Cross-reference hyperlinks.
- (line 16)
-* reftie <1>: Cross-reference hyperlinks.
- (line 23)
-* reftie <2>: Equation reference hyperlinks.
- (line 20)
-* renewcommand: Commands from LaTeX. (line 18)
-* repeat: Iteration. (line 42)
-* resetatcatcode: Environment for loading packages.
- (line 35)
-* resetatcatcode <1>: Category codes. (line 23)
-* rewritetocfile (conditional): Reading the .toc file.
- (line 26)
-* right (destination option): Destination types for pdftex and dvipdfm.
- (line 66)
-* right (destination option) <1>: Destination options for pdftex and dvipdfm.
- (line 64)
-* righteqnumbers: Displays. (line 23)
-* rightmargin: Margins. (line 17)
-* rotatebox: Hyperlinks (xhyper.tex).
- (line 7)
-* rt: Arrows and morphisms.
- (line 14)
-* sanitize: Converting to characters.
- (line 22)
-* sarrowlength: Arrows and morphisms.
- (line 28)
-* sarrowlength <1>: Commutative diagram parameters.
- (line 17)
-* sc: Commands from LaTeX. (line 25)
-* see for index entries: Modifying index entries.
- (line 36)
-* see for index entries <1>: Customizing indexing.
- (line 62)
-* seealso for index entries: Modifying index entries.
- (line 49)
-* seevariant: Customizing indexing.
- (line 53)
-* setidxpagelistdelimiter: Page list and page range parsers.
- (line 14)
-* setidxpagerangedelimiter: Page list and page range parsers.
- (line 14)
-* setproperty: Properties. (line 13)
-* setuplistinghook: Verbatim listing. (line 13)
-* setuplistinghook <1>: Highlighting TeX comments in listings (lscommnt.tex).
- (line 7)
-* 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)
-* sline <1>: Arrows and morphisms.
- (line 107)
-* 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)
-* textbf: Commands from LaTeX. (line 25)
-* timestamp: Time of day. (line 18)
-* timestring: Time of day. (line 16)
-* toc...entry: Writing the .toc file.
- (line 9)
-* toc...entry <1>: Writing the .toc file.
- (line 54)
-* tocfilebasename: Changing the .toc file's root name.
- (line 10)
-* today: Time of day. (line 21)
-* top (destination option): Destination types for pdftex and dvipdfm.
- (line 11)
-* top (destination option) <1>: Destination types for pdftex and dvipdfm.
- (line 25)
-* top (destination option) <2>: Destination types for pdftex and dvipdfm.
- (line 46)
-* top (destination option) <3>: Destination types for pdftex and dvipdfm.
- (line 66)
-* top (destination option) <4>: Destination options for pdftex and dvipdfm.
- (line 68)
-* topmargin: Margins. (line 17)
-* tracingall: Diagnostics. (line 8)
-* tracingboxes: Diagnostics. (line 16)
-* tracingoff: Diagnostics. (line 18)
-* triplecolumns: Multiple columns. (line 7)
-* tt: Packages known to work.
- (line 77)
-* ttfamily: Packages known to work.
- (line 73)
-* uncatcodespecials: Verbatim listing. (line 57)
-* uncatcodespecials <1>: Category codes. (line 49)
-* unorderedlist: Lists. (line 20)
-* unorderedlistdepth: Formatting lists. (line 41)
-* unorderedmarker: Formatting lists. (line 37)
-* url: Hyperlinks (xhyper.tex).
- (line 7)
-* url (hyperlink type): Link types for hypertex.
- (line 14)
-* url (hyperlink type) <1>: Link types for pdftex and dvipdfm.
- (line 25)
-* url (hyperlinks): URL hyperlinks. (line 6)
-* usepackage: The \usepackage command.
- (line 6)
-* varrowlength: Arrows and morphisms.
- (line 28)
-* varrowlength <1>: Commutative diagram parameters.
- (line 14)
-* vchannel: Commutative diagram parameters.
- (line 39)
-* verbatim: Verbatim listing. (line 34)
-* verbatimescapechar: Verbatim listing. (line 47)
-* vgrid: Construction of commutative diagrams.
- (line 108)
-* vgrid <1>: Commutative diagram parameters.
- (line 51)
-* vline: Arrows and morphisms.
- (line 82)
-* vmorphposn: Arrows and morphisms.
- (line 33)
-* vmorphposn <1>: Commutative diagram parameters.
- (line 26)
-* vmorphposndn: Arrows and morphisms.
- (line 38)
-* vmorphposndn <1>: Commutative diagram parameters.
- (line 28)
-* vmorphposnlft: Arrows and morphisms.
- (line 40)
-* vmorphposnlft <1>: Commutative diagram parameters.
- (line 29)
-* vmorphposnrt: Arrows and morphisms.
- (line 39)
-* vmorphposnrt <1>: Commutative diagram parameters.
- (line 28)
-* vmorphposnup: Arrows and morphisms.
- (line 38)
-* vmorphposnup <1>: Commutative diagram parameters.
- (line 28)
-* vpenalty: Mode-specific penalties.
- (line 9)
-* vruledefaultwidth: Rules. (line 10)
-* width (destination option): Destination types for pdftex and dvipdfm.
- (line 60)
-* width (destination option) <1>: Destination options for pdftex and dvipdfm.
- (line 40)
-* width (hyperlink option): Link options for pdftex and dvipdfm.
- (line 128)
-* writenumberedtocentry: Writing the .toc file.
- (line 13)
-* writenumberedtocline: Writing the .toc file.
- (line 36)
-* writetocentry: Writing the .toc file.
- (line 7)
-* XeLaTeX: Logos. (line 11)
-* XeTeX: Logos. (line 11)
-* 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: Page references. (line 18)
-* xrefpageword <1>: Page reference hyperlinks.
- (line 10)
-* xrefwarning conditional: Using generic references.
- (line 14)
-* xrefwarningfalse: Citations. (line 78)
-* xrlabel: Converting to characters.
- (line 6)
-* xyz (destination type): Destination types for hypertex.
- (line 7)
-* xyz (destination type) <1>: Destination types for pdftex and dvipdfm.
- (line 7)
-* zoom (destination option): Destination types for pdftex and dvipdfm.
- (line 7)
-* zoom (destination option) <1>: Destination options for pdftex and dvipdfm.
- (line 21)
-
-
-File: eplain.info, Node: Concept index, Prev: Macro index, Up: Top
-
-Concept index
-*************
-
-
-* Menu:
-
-* *-form of LaTeX commands: Commands from LaTeX. (line 18)
-* .aux file: Citations. (line 17)
-* .aux file <1>: Cross-references. (line 11)
-* .bbl file: Citations. (line 21)
-* .bib file: Citations. (line 20)
-* .bst files: Citations. (line 70)
-* .cls files: Loading LaTeX packages.
- (line 6)
-* .eps files: Packages known to work.
- (line 91)
-* .eps files <1>: Packages known to work.
- (line 100)
-* .fmt file: Installation. (line 27)
-* .fmt file <1>: Invoking Eplain. (line 14)
-* .idx files: Indexing. (line 23)
-* .idx files <1>: Index hyperlinks. (line 14)
-* .ind files: Indexing. (line 27)
-* .ind files <1>: Index hyperlinks. (line 25)
-* .pdf files: Checking for PDF output.
- (line 6)
-* .pdf files <1>: Packages known to work.
- (line 91)
-* .pdf files <2>: Introduction to hyperlinks.
- (line 13)
-* .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 128)
-* 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: URL hyperlinks. (line 17)
-* avoiding boxed links <1>: Setting default types and options.
- (line 25)
-* 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 30)
-* beveled hyperlink border: Link options for pdftex and dvipdfm.
- (line 25)
-* bibliographies: Citations. (line 6)
-* bibliography fonts: Formatting bibliographies.
- (line 38)
-* bibliography items, extra space between: Formatting bibliographies.
- (line 67)
-* bibliography, formatting the: Formatting bibliographies.
- (line 6)
-* bibliography, hyperlinks: Citation hyperlinks. (line 11)
-* bibtex: Invoking Eplain. (line 103)
-* BibTeX: Citations. (line 9)
-* BibTeX <1>: Logos. (line 10)
-* black boxes: Boxes. (line 6)
-* Borceux, Francis: Construction of commutative diagrams.
- (line 79)
-* border color, hyperlink: Link options for pdftex and dvipdfm.
- (line 13)
-* border style, hyperlink: Link options for pdftex and dvipdfm.
- (line 19)
-* border style, hyperlink <1>: Link options for pdftex and dvipdfm.
- (line 25)
-* border width, hyperlink: Link options for pdftex and dvipdfm.
- (line 49)
-* Bott, Raoul: Construction of commutative diagrams.
- (line 13)
-* boxed links, avoiding: URL hyperlinks. (line 17)
-* boxed links, avoiding <1>: Setting default types and options.
- (line 25)
-* 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 85)
-* Brockett, Roger W.: Construction of commutative diagrams.
- (line 38)
-* Butterfly Lemma: Construction of commutative diagrams.
- (line 121)
-* Carlisle, David: Loading LaTeX packages.
- (line 14)
-* catcode of '@': Environment for loading packages.
- (line 35)
-* category codes: Category codes. (line 6)
-* centering: Justification. (line 6)
-* characters, converting to: Converting to characters.
- (line 6)
-* characters, special: Verbatim listing. (line 57)
-* citations: Citations. (line 6)
-* citations, formatting: Formatting citations.
- (line 6)
-* citations, hyperlinks: Citation hyperlinks. (line 6)
-* citations, undefined: Citations. (line 48)
-* cmtt8: Proofing index terms.
- (line 12)
-* color: Packages known to work.
- (line 25)
-* color, demo: Hyperlinks (xhyper.tex).
- (line 7)
-* color, hyperlink border: Link options for pdftex and dvipdfm.
- (line 13)
-* color, hyperlinks: URL hyperlinks. (line 17)
-* color, hyperlinks <1>: Options supported by all drivers.
- (line 37)
-* color, hyperlinks <2>: Setting default types and options.
- (line 25)
-* color, problems with pdfTeX: Packages known to work.
- (line 29)
-* color.sty: Packages known to work.
- (line 21)
-* color.sty <1>: URL hyperlinks. (line 18)
-* color.sty <2>: Hyperlink driver nolinks.
- (line 34)
-* color.sty <3>: Setting default types and options.
- (line 27)
-* color.sty <4>: Hyperlinks (xhyper.tex).
- (line 7)
-* colored links: URL hyperlinks. (line 17)
-* colored links <1>: Options supported by all drivers.
- (line 37)
-* colored links <2>: Setting default types and options.
- (line 25)
-* 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 62)
-* comments, highlighting in listings: Highlighting TeX comments in listings (lscommnt.tex).
- (line 7)
-* commutative diagrams: Commutative diagrams.
- (line 6)
-* contents: Contents. (line 6)
-* contents, and verbatim text: Writing the .toc file.
- (line 49)
-* 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: Defining generic references.
- (line 6)
-* cross-references, defining general <1>: Using generic references.
- (line 6)
-* cross-references, demo: Hyperlinks (xhyper.tex).
- (line 7)
-* cross-references, hyperlinks: Cross-reference hyperlinks.
- (line 6)
-* cross-referencing index entries: Modifying index entries.
- (line 36)
-* cross-referencing index entries <1>: Customizing indexing.
- (line 62)
-* 'CTRL-L', and verbatim listing: Verbatim listing. (line 30)
-* cube: Construction of commutative diagrams.
- (line 89)
-* customizing indexing: Customizing indexing.
- (line 6)
-* dashed hyperlink border: Link options for pdftex and dvipdfm.
- (line 19)
-* dashed hyperlink border <1>: Link options for pdftex and dvipdfm.
- (line 25)
-* date: Time of day. (line 6)
-* default hyperlink options: Setting hyperlink types and options.
- (line 6)
-* default hyperlink options <1>: Setting group types. (line 17)
-* default hyperlink type: Setting hyperlink types and options.
- (line 6)
-* default hyperlink type <1>: Setting group types. (line 17)
-* defining general references: Defining generic references.
- (line 6)
-* defining general references <1>: Using generic references.
- (line 6)
-* definitions, global: Category codes. (line 37)
-* demo files: Demo files. (line 6)
-* destgroup: Implicit hyperlinks. (line 10)
-* destgroup options: Setting hyperlink types and options.
- (line 12)
-* destgroup options <1>: Setting group options.
- (line 6)
-* destgroup options, demo: Hyperlinks (xhyper.tex).
- (line 7)
-* destgroup type: Setting hyperlink types and options.
- (line 12)
-* destgroup type <1>: Setting group types. (line 6)
-* destgroup type, demo: Hyperlinks (xhyper.tex).
- (line 7)
-* 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)
-* 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: Setting hyperlink types and options.
- (line 6)
-* destinations, default options <1>: Setting group types. (line 17)
-* destinations, default type: Setting hyperlink types and options.
- (line 6)
-* destinations, default type <1>: Setting group types. (line 17)
-* destinations, dimensions: Destination options for pdftex and dvipdfm.
- (line 34)
-* destinations, dimensions <1>: Destination options for pdftex and dvipdfm.
- (line 37)
-* destinations, dimensions <2>: Destination options for pdftex and dvipdfm.
- (line 40)
-* destinations, dimensions <3>: Destination options for pdftex and dvipdfm.
- (line 56)
-* destinations, dimensions <4>: Destination options for pdftex and dvipdfm.
- (line 60)
-* destinations, dimensions <5>: Destination options for pdftex and dvipdfm.
- (line 64)
-* destinations, dimensions <6>: Destination options for pdftex and dvipdfm.
- (line 68)
-* destinations, disabling: Hyperlink driver nolinks.
- (line 6)
-* destinations, disabling <1>: Turning hyperlinks on/off.
- (line 6)
-* destinations, group options: Setting hyperlink types and options.
- (line 12)
-* destinations, group options <1>: Setting group options.
- (line 6)
-* destinations, group options, demo: Hyperlinks (xhyper.tex).
- (line 7)
-* destinations, group type: Setting hyperlink types and options.
- (line 12)
-* destinations, group type <1>: Setting group types. (line 6)
-* destinations, group type, demo: Hyperlinks (xhyper.tex).
- (line 7)
-* destinations, in another file: Link types for hypertex.
- (line 21)
-* destinations, in another file <1>: Link types for pdftex and dvipdfm.
- (line 39)
-* destinations, in another file <2>: Link types for pdftex and dvipdfm.
- (line 51)
-* destinations, large operators: Options supported by all drivers.
- (line 27)
-* destinations, large operators <1>: Setting group options.
- (line 33)
-* destinations, magnification: Destination options for pdftex and dvipdfm.
- (line 21)
-* destinations, named: Link types for hypertex.
- (line 7)
-* destinations, named <1>: Link types for pdftex and dvipdfm.
- (line 18)
-* destinations, numbered: Link types for pdftex and dvipdfm.
- (line 91)
-* destinations, page: Link types for pdftex and dvipdfm.
- (line 30)
-* destinations, raising: Options supported by all drivers.
- (line 13)
-* destinations, URL: Link types for hypertex.
- (line 14)
-* destinations, URL <1>: Link types for pdftex and dvipdfm.
- (line 25)
-* detecting numbers: \ifinteger and \isinteger.
- (line 6)
-* diagnostics: Diagnostics. (line 6)
-* Diagram, macros for LaTeX: Construction of commutative diagrams.
- (line 79)
-* dimensions, hyperlink: Link options for pdftex and dvipdfm.
- (line 122)
-* dimensions, hyperlink <1>: Link options for pdftex and dvipdfm.
- (line 125)
-* dimensions, hyperlink <2>: Link options for pdftex and dvipdfm.
- (line 128)
-* dimensions, hyperlink destination: Destination options for pdftex and dvipdfm.
- (line 34)
-* dimensions, hyperlink destination <1>: Destination options for pdftex and dvipdfm.
- (line 37)
-* dimensions, hyperlink destination <2>: Destination options for pdftex and dvipdfm.
- (line 40)
-* dimensions, hyperlink destination <3>: Destination options for pdftex and dvipdfm.
- (line 56)
-* dimensions, hyperlink destination <4>: Destination options for pdftex and dvipdfm.
- (line 60)
-* dimensions, hyperlink destination <5>: Destination options for pdftex and dvipdfm.
- (line 64)
-* dimensions, hyperlink destination <6>: Destination options for pdftex and dvipdfm.
- (line 68)
-* disabling hyperlinks: Hyperlink driver nolinks.
- (line 6)
-* disabling hyperlinks <1>: Turning hyperlinks on/off.
- (line 6)
-* disabling indexes: Indexing. (line 54)
-* displayed math and hyperlinks: Options supported by all drivers.
- (line 27)
-* displayed math and hyperlinks <1>: Setting group options.
- (line 33)
-* 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: Introduction to hyperlinks.
- (line 36)
-* dvipdfm <1>: Hyperlink driver hypertex.
- (line 13)
-* dvipdfm <2>: Hyperlink driver hypertex.
- (line 47)
-* '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)
-* dvips <1>: Hyperlink driver hypertex.
- (line 32)
-* Eijkhout, Victor: Iteration. (line 61)
-* eject in multicolumns: Multiple columns. (line 14)
-* electronic mail addresses, breaking: Paths. (line 6)
-* electronic mail addresses, breaking <1>: Packages known to work.
- (line 121)
-* 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 91)
-* Encapsulated PostScript <1>: Packages known to work.
- (line 100)
-* 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 91)
-* EPS <1>: Packages known to work.
- (line 100)
-* epstopdf: Packages known to work.
- (line 91)
-* epstopdf.sty: Packages known to work.
- (line 89)
-* equation labels, characters valid in: Equation references. (line 54)
-* equation numbers, formatting of: Formatting equation references.
- (line 6)
-* equation numbers, left-alignment: Displays. (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 24)
-* error on '\input': Environment for loading packages.
- (line 41)
-* escape character, changing verbatim: Verbatim listing. (line 47)
-* eTeX: Logos. (line 10)
-* 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 7)
-* ExTeX: Logos. (line 10)
-* file, hyperlink to: Link types for hypertex.
- (line 21)
-* file, hyperlink to <1>: Link types for pdftex and dvipdfm.
- (line 39)
-* file, hyperlink to <2>: Link types for pdftex and dvipdfm.
- (line 51)
-* 'file:' links: General hyperlinks. (line 37)
-* filenames, breaking: Paths. (line 6)
-* filenames, breaking <1>: Packages known to work.
- (line 121)
-* files, verbatim listing of: Verbatim listing. (line 6)
-* files, verbatim listing of, demo: Highlighting TeX comments in listings (lscommnt.tex).
- (line 7)
-* 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)
-* Ghostscript <1>: Hyperlink driver hypertex.
- (line 35)
-* gobbling arguments: Macro arguments. (line 6)
-* golden mean: Construction of commutative diagrams.
- (line 59)
-* golden mean <1>: Construction of commutative diagrams.
- (line 59)
-* Graham, Ronald L.: Citations. (line 91)
-* graphics collection, LaTeX: Loading LaTeX packages.
- (line 14)
-* graphics collection, LaTeX <1>: Packages known to work.
- (line 25)
-* graphics collection, LaTeX <2>: Hyperlink driver nolinks.
- (line 34)
-* graphics collection, LaTeX, demo: Hyperlinks (xhyper.tex).
- (line 7)
-* 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: Packages known to work.
- (line 23)
-* graphicx.sty <1>: Hyperlinks (xhyper.tex).
- (line 7)
-* grid: Construction of commutative diagrams.
- (line 79)
-* group option list: Setting group options.
- (line 48)
-* group options, hyperlink: Setting hyperlink types and options.
- (line 12)
-* group options, hyperlink <1>: Setting group options.
- (line 6)
-* group options, hyperlink, demo: Hyperlinks (xhyper.tex).
- (line 7)
-* group type, hyperlink: Setting hyperlink types and options.
- (line 12)
-* group type, hyperlink <1>: Setting group types. (line 6)
-* group type, hyperlink, demo: Hyperlinks (xhyper.tex).
- (line 7)
-* 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': Equation reference hyperlinks.
- (line 6)
-* group 'eq' <1>: Equation reference hyperlinks.
- (line 20)
-* group 'eq' <2>: Setting group options.
- (line 34)
-* 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, 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 21)
-* groups, specifying all: Setting group types. (line 26)
-* hanging on '\input': Environment for loading packages.
- (line 41)
-* help messages: Diagnostics. (line 24)
-* highlight modes, hyperlink: Link options for pdftex and dvipdfm.
- (line 69)
-* highlighting: Packages known to work.
- (line 111)
-* highlighting, in listings: Highlighting TeX comments in listings (lscommnt.tex).
- (line 7)
-* Ho"ppner, Klaus: Packages known to work.
- (line 83)
-* hooks: Hooks. (line 6)
-* hyperlink border color: Link options for pdftex and dvipdfm.
- (line 13)
-* hyperlink color: URL hyperlinks. (line 17)
-* hyperlink color <1>: Options supported by all drivers.
- (line 37)
-* hyperlink color <2>: Setting default types and options.
- (line 25)
-* hyperlink destination, dimensions: Destination options for pdftex and dvipdfm.
- (line 34)
-* hyperlink destination, dimensions <1>: Destination options for pdftex and dvipdfm.
- (line 37)
-* hyperlink destination, dimensions <2>: Destination options for pdftex and dvipdfm.
- (line 40)
-* hyperlink destination, dimensions <3>: Destination options for pdftex and dvipdfm.
- (line 56)
-* hyperlink destination, dimensions <4>: Destination options for pdftex and dvipdfm.
- (line 60)
-* hyperlink destination, dimensions <5>: Destination options for pdftex and dvipdfm.
- (line 64)
-* hyperlink destination, dimensions <6>: Destination options for pdftex and dvipdfm.
- (line 68)
-* hyperlink destination, magnification: Destination options for pdftex and dvipdfm.
- (line 21)
-* hyperlink destination, named: Link types for hypertex.
- (line 7)
-* hyperlink destination, named <1>: Link types for pdftex and dvipdfm.
- (line 18)
-* hyperlink destination, numbered: Link types for pdftex and dvipdfm.
- (line 91)
-* hyperlink destination, page: Link types for pdftex and dvipdfm.
- (line 30)
-* hyperlink destination, raising: Options supported by all drivers.
- (line 13)
-* hyperlink dimensions: Link options for pdftex and dvipdfm.
- (line 122)
-* hyperlink dimensions <1>: Link options for pdftex and dvipdfm.
- (line 125)
-* hyperlink dimensions <2>: Link options for pdftex and dvipdfm.
- (line 128)
-* 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 21)
-* 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 19)
-* hyperlinks, border style <1>: Link options for pdftex and dvipdfm.
- (line 25)
-* hyperlinks, border width: Link options for pdftex and dvipdfm.
- (line 49)
-* hyperlinks, citations: Citation hyperlinks. (line 6)
-* hyperlinks, cross-references: Cross-reference hyperlinks.
- (line 6)
-* hyperlinks, default options: Setting hyperlink types and options.
- (line 6)
-* hyperlinks, default options <1>: Setting group types. (line 17)
-* hyperlinks, default type: Setting hyperlink types and options.
- (line 6)
-* hyperlinks, default type <1>: Setting group types. (line 17)
-* hyperlinks, demo: Hyperlinks (xhyper.tex).
- (line 7)
-* hyperlinks, disabling: Hyperlink driver nolinks.
- (line 6)
-* hyperlinks, disabling <1>: Turning hyperlinks on/off.
- (line 6)
-* hyperlinks, equations: Equation reference hyperlinks.
- (line 6)
-* hyperlinks, explicit: Explicit hyperlinks. (line 6)
-* hyperlinks, explicit, demo: Hyperlinks (xhyper.tex).
- (line 7)
-* 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 48)
-* hyperlinks, group options: Setting hyperlink types and options.
- (line 12)
-* hyperlinks, group options <1>: Setting group options.
- (line 6)
-* hyperlinks, group options, demo: Hyperlinks (xhyper.tex).
- (line 7)
-* hyperlinks, group type: Setting hyperlink types and options.
- (line 12)
-* hyperlinks, group type <1>: Setting group types. (line 6)
-* hyperlinks, highlight mode: Link options for pdftex and dvipdfm.
- (line 69)
-* hyperlinks, implicit: Implicit hyperlinks. (line 6)
-* hyperlinks, implicit, demo: Hyperlinks (xhyper.tex).
- (line 7)
-* 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: Options supported by all drivers.
- (line 27)
-* hyperlinks, large operators <1>: Setting group options.
- (line 33)
-* 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: Link types for hypertex.
- (line 21)
-* hyperlinks, to another file <1>: Link types for pdftex and dvipdfm.
- (line 39)
-* hyperlinks, to another file <2>: Link types for pdftex and dvipdfm.
- (line 51)
-* hyperlinks, URL: General hyperlinks. (line 20)
-* hyperlinks, URL <1>: URL hyperlinks. (line 6)
-* hyperlinks, URL <2>: Link types for hypertex.
- (line 14)
-* hyperlinks, URL <3>: Link types for pdftex and dvipdfm.
- (line 25)
-* 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 7)
-* 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 85)
-* 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: Modifying index entries.
- (line 36)
-* index entries, and cross-referencing <1>: Customizing indexing.
- (line 62)
-* 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 50)
-* 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, disabling: Indexing. (line 54)
-* indexes, multiple: Indexing. (line 36)
-* 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 25)
-* installation: Installation. (line 6)
-* integers, detecting: \ifinteger and \isinteger.
- (line 6)
-* italic correction: Formatting bibliographies.
- (line 45)
-* item labels, changing: Formatting lists. (line 53)
-* iteration: Iteration. (line 6)
-* justification: Justification. (line 6)
-* Knuth, Donald Ervin: Citations. (line 91)
-* Knuth, Donald Ervin <1>: Category codes. (line 7)
-* labels on items, changing: Formatting lists. (line 53)
-* 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 15)
-* LAMSTeX: Logos. (line 11)
-* Lang, Serge: Arrows and morphisms.
- (line 126)
-* Lang, Serge <1>: Construction of commutative diagrams.
- (line 121)
-* large operators and hyperlinks: Options supported by all drivers.
- (line 27)
-* large operators and hyperlinks <1>: Setting group options.
- (line 33)
-* LaTeX: Introduction. (line 15)
-* LaTeX <1>: Citations. (line 10)
-* LaTeX <2>: Logos. (line 11)
-* LaTeX <3>: Slanted lines and vectors.
- (line 7)
-* LaTeX commands, in 'btxmac.tex': Commands from LaTeX. (line 6)
-* LaTeX graphics collection: Loading LaTeX packages.
- (line 14)
-* LaTeX graphics collection <1>: Packages known to work.
- (line 25)
-* LaTeX graphics collection <2>: Hyperlink driver nolinks.
- (line 34)
-* LaTeX graphics collection, demo: Hyperlinks (xhyper.tex).
- (line 7)
-* LaTeX packages: Loading LaTeX packages.
- (line 6)
-* LaTeX packages <1>: Packages known to work.
- (line 6)
-* LaTeX packages <2>: Packages known not to work.
- (line 6)
-* LaTeX packages, restoring '\input': Environment for loading packages.
- (line 24)
-* left-alignment of equation numbers: Displays. (line 6)
-* left-justification: Justification. (line 6)
-* left-justification of displays: Displays. (line 6)
-* letterspacing: Packages known to work.
- (line 111)
-* 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: Setting hyperlink types and options.
- (line 12)
-* link, group options <1>: Setting group options.
- (line 6)
-* link, group options, demo: Hyperlinks (xhyper.tex).
- (line 7)
-* link, group type: Setting hyperlink types and options.
- (line 12)
-* link, group type <1>: Setting group types. (line 6)
-* linkgroup: Implicit hyperlinks. (line 10)
-* linkgroup options: Setting hyperlink types and options.
- (line 12)
-* linkgroup options <1>: Setting group options.
- (line 6)
-* linkgroup options, demo: Hyperlinks (xhyper.tex).
- (line 7)
-* linkgroup type: Setting hyperlink types and options.
- (line 12)
-* linkgroup type <1>: Setting group types. (line 6)
-* linkgroup 'cite': Citation hyperlinks. (line 6)
-* linkgroup 'eq': Equation reference hyperlinks.
- (line 20)
-* linkgroup 'eq' <1>: Setting group options.
- (line 34)
-* 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)
-* 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 7)
-* lists: Lists. (line 6)
-* lists, formatting: Formatting lists. (line 6)
-* lists, hyperlinks: List hyperlinks. (line 6)
-* loading packages, environment for: Environment for loading packages.
- (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 7)
-* magnification, hyperlink destination: Destination options for pdftex and dvipdfm.
- (line 21)
-* makeindex: Invoking Eplain. (line 103)
-* makeindex <1>: Indexing. (line 14)
-* makeindex <2>: Index hyperlinks. (line 12)
-* margins, changing: Margins. (line 6)
-* margins, index terms in: Proofing index terms.
- (line 6)
-* mathematics displays, formatting: Displays. (line 6)
-* mathematics displays, hyperlinks: Options supported by all drivers.
- (line 27)
-* mathematics displays, hyperlinks <1>: Setting group options.
- (line 33)
-* Metafont: Logos. (line 11)
-* 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 36)
-* named destination: Link types for hypertex.
- (line 7)
-* named destination <1>: Link types for pdftex and dvipdfm.
- (line 18)
-* names, of TeX variants: Logos. (line 6)
-* new window, opening hyperlink in: Link options for pdftex and dvipdfm.
- (line 90)
-* newlinechar: Diagnostics. (line 26)
-* newlines, obeying: Obeying spaces. (line 6)
-* 'nolinks', hyperlink driver: Hyperlink driver nolinks.
- (line 6)
-* numbered destination: Link types for pdftex and dvipdfm.
- (line 91)
-* numbered lists: Lists. (line 6)
-* numbered references: Citations. (line 91)
-* 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: Hyperlink driver nolinks.
- (line 6)
-* omitting hyperlinks <1>: Turning hyperlinks on/off.
- (line 6)
-* omitting typesetting of graphics: Packages known to work.
- (line 69)
-* open boxes: Boxes. (line 12)
-* option list, group: Setting group options.
- (line 48)
-* option list, preserving for group: Setting group options.
- (line 21)
-* 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 111)
-* packages, LaTeX: Loading LaTeX packages.
- (line 6)
-* packages, LaTeX <1>: Packages known to work.
- (line 6)
-* packages, LaTeX <2>: Packages known not to work.
- (line 6)
-* page destination: Link types for pdftex and dvipdfm.
- (line 30)
-* 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: Paths. (line 6)
-* pathnames, breaking <1>: Packages known to work.
- (line 121)
-* PDF: Packages known to work.
- (line 91)
-* PDF output: Checking for PDF output.
- (line 6)
-* pdftex: Invoking Eplain. (line 114)
-* pdftex <1>: Checking for PDF output.
- (line 6)
-* pdftex <2>: Introduction to hyperlinks.
- (line 35)
-* '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: Packages known to work.
- (line 14)
-* picture mode <1>: Slanted lines and vectors.
- (line 7)
-* Portable Document Format: Packages known to work.
- (line 91)
-* PostScript point: Destination types for pdftex and dvipdfm.
- (line 66)
-* PostScript point <1>: Destination options for pdftex and dvipdfm.
- (line 50)
-* PostScript point <2>: Link options for pdftex and dvipdfm.
- (line 49)
-* proofing index terms: Proofing index terms.
- (line 6)
-* properties: Properties. (line 6)
-* ps2pdf: Hyperlink driver hypertex.
- (line 14)
-* ps2pdf <1>: Hyperlink driver hypertex.
- (line 35)
-* psfrag.sty: Packages known to work.
- (line 98)
-* quadruple column output: Multiple columns. (line 6)
-* Rahtz, Sebastian: Loading LaTeX packages.
- (line 14)
-* raising hyperlink destinations: Options supported by all drivers.
- (line 13)
-* raising hyperlink destinations <1>: Setting group options.
- (line 33)
-* ranges and index entry: Modifying index entries.
- (line 22)
-* recognizing numbers: \ifinteger and \isinteger.
- (line 6)
-* rectangles: Boxes. (line 6)
-* references, alphanumeric: Citations. (line 128)
-* references, defining general: Defining generic references.
- (line 6)
-* references, defining general <1>: Using generic references.
- (line 6)
-* references, numbered: Citations. (line 91)
-* register allocation: Allocation macros. (line 6)
-* restoring '\input', LaTeX packages: Environment for loading packages.
- (line 24)
-* return character: Category codes. (line 40)
-* right-justification: Justification. (line 6)
-* rms: Introduction. (line 16)
-* rotation: Packages known to work.
- (line 25)
-* rotation, demo: Hyperlinks (xhyper.tex).
- (line 7)
-* rule thickness: Rules. (line 7)
-* 'run:' links: General hyperlinks. (line 38)
-* scaling: Packages known to work.
- (line 25)
-* scaling, demo: Hyperlinks (xhyper.tex).
- (line 7)
-* sed: Customizing indexing.
- (line 64)
-* see also index entries and hyperlinks: Hyperlinks in see and see also entries.
- (line 6)
-* see also index entries and sorting: Customizing indexing.
- (line 49)
-* see, and index entries: Modifying index entries.
- (line 36)
-* see, and index entries <1>: Customizing indexing.
- (line 62)
-* see, and index entries, hyperlinks: Hyperlinks in see and see also entries.
- (line 6)
-* silent indexing: Indexing terms. (line 6)
-* skipping tokens: \ifundefined. (line 10)
-* skipping tokens <1>: \ifempty. (line 12)
-* SLiTeX: Logos. (line 11)
-* Snake Lemma: Arrows and morphisms.
- (line 130)
-* solid hyperlink border: Link options for pdftex and dvipdfm.
- (line 25)
-* sorting an index: Indexing. (line 6)
-* sorting of index entries: Indexing commands. (line 50)
-* soul.sty: Packages known to work.
- (line 109)
-* 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 111)
-* spacing, preserving with hyperlinks: Hyperlink driver nolinks.
- (line 6)
-* special characters: Verbatim listing. (line 57)
-* special characters, in index entries: Index entries with special characters.
- (line 6)
-* special characters, in table of contents: Writing the .toc file.
- (line 49)
-* Stallman, Richard: Introduction. (line 16)
-* striking out: Packages known to work.
- (line 111)
-* style, hyperlink border: Link options for pdftex and dvipdfm.
- (line 25)
-* 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 49)
-* table of contents, hyperlinks: Contents hyperlinks. (line 6)
-* table of contents, short: Reading the .toc file.
- (line 19)
-* table of contents, short <1>: Macro arguments. (line 10)
-* 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: Invoking Eplain. (line 103)
-* texi2dvi <1>: Citations. (line 102)
-* texi2dvi <2>: Indexing. (line 33)
-* Texinfo: Introduction. (line 15)
-* 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 65)
-* triple column output: Multiple columns. (line 6)
-* Tu, Loring W.: Construction of commutative diagrams.
- (line 13)
-* TUGboat: Introduction. (line 64)
-* 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 25)
-* underlining: Packages known to work.
- (line 111)
-* 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 15)
-* URL hyperlink: General hyperlinks. (line 20)
-* URL hyperlink <1>: URL hyperlinks. (line 6)
-* URL hyperlink <2>: Link types for hypertex.
- (line 14)
-* URL hyperlink <3>: Link types for pdftex and dvipdfm.
- (line 25)
-* url.sty: Packages known to work.
- (line 119)
-* url.sty <1>: URL hyperlinks. (line 6)
-* url.sty <2>: Hyperlinks (xhyper.tex).
- (line 7)
-* 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 7)
-* verbatim text, in index: Index entries with special characters.
- (line 40)
-* verbatim text, in table of contents: Writing the .toc file.
- (line 49)
-* version number: Introduction. (line 50)
-* Walden, David: Introduction. (line 61)
-* 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 62)
-* while loops: Iteration. (line 6)
-* whitespace: Obeying spaces. (line 6)
-* width, hyperlink border: Link options for pdftex and dvipdfm.
- (line 49)
-* 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)
-* XeLaTeX: Logos. (line 11)
-* xeplain.tex: Introduction. (line 6)
-* XeTeX: Logos. (line 11)
-* xhyper.tex: Hyperlinks (xhyper.tex).
- (line 7)
-* Zassenhaus, Hans: Construction of commutative diagrams.
- (line 121)
-* zooming, hyperlink destination: Destination options for pdftex and dvipdfm.
- (line 21)
-
-
-
-Tag Table:
-Node: Top809
-Node: Introduction8254
-Node: Installation11274
-Node: Invoking Eplain13326
-Node: User definitions17923
-Node: Diagnostics19750
-Node: Rules21315
-Node: Citations22146
-Node: Formatting citations28574
-Node: Formatting bibliographies30111
-Node: Commands from LaTeX33347
-Node: Displays34321
-Node: Formatting displays35708
-Node: Time of day36341
-Node: Lists37100
-Node: Formatting lists39240
-Node: Verbatim listing41523
-Node: Contents44743
-Node: Writing the .toc file45412
-Node: Reading the .toc file48274
-Node: Changing the .toc file's root name49677
-Node: Alternative contents files50693
-Node: Cross-references51257
-Node: Defining generic references52743
-Node: Using generic references53619
-Node: Page references54903
-Node: Equation references55722
-Node: Formatting equation references58487
-Node: Subequation references62837
-Node: Indexing64753
-Node: Indexing terms67861
-Node: Indexing commands68973
-Node: Modifying index entries71992
-Node: Index entries with special characters74962
-Node: Proofing index terms79204
-Node: Typesetting an index81017
-Node: Customizing indexing83483
-Node: Justification87179
-Node: Tables88849
-Node: Margins91340
-Node: Multiple columns93493
-Node: Footnotes95530
-Node: Fractions98105
-Node: Paths98888
-Node: Logos100490
-Node: Boxes101220
-Node: Checking for PDF output103006
-Node: Loading LaTeX packages104094
-Node: The \usepackage command105451
-Node: Environment for loading packages106537
-Node: Packages known to work108877
-Node: Packages known not to work115252
-Node: Hyperlinks116013
-Node: Introduction to hyperlinks116594
-Node: Explicit hyperlinks122130
-Node: Implicit hyperlinks124415
-Node: General hyperlinks126236
-Node: URL hyperlinks127758
-Node: Citation hyperlinks129858
-Node: List hyperlinks130585
-Node: Cross-reference hyperlinks130976
-Node: Page reference hyperlinks132347
-Node: Equation reference hyperlinks133008
-Node: Index hyperlinks134398
-Node: Exact destinations for index terms136156
-Node: Page destinations for index terms138323
-Node: Choosing destination placement140941
-Node: Index page list and page range parsers141730
-Node: Hyperlinks in see and see also entries142282
-Node: Footnote hyperlinks143080
-Node: Contents hyperlinks144274
-Node: Hyperlink drivers144657
-Node: Options supported by all drivers145291
-Node: Hyperlink driver hypertex148087
-Node: Destination types for hypertex151031
-Node: Destination options for hypertex152065
-Node: Link types for hypertex152547
-Node: Link options for hypertex154554
-Node: Hyperlink drivers pdftex and dvipdfm155576
-Node: Destination types for pdftex and dvipdfm156221
-Node: Destination options for pdftex and dvipdfm159700
-Node: Link types for pdftex and dvipdfm162151
-Node: Link options for pdftex and dvipdfm165665
-Node: Hyperlink driver nolinks169303
-Node: Setting hyperlink types and options171706
-Node: Setting default types and options172707
-Node: Setting group types174133
-Node: Setting group options175322
-Node: Turning hyperlinks on/off177803
-Node: Turning low-level commands on/off178441
-Node: Turning hyperlinks on/off for a group178954
-Node: Arrow theoretic diagrams180107
-Node: Slanted lines and vectors180485
-Node: Commutative diagrams182558
-Node: Arrows and morphisms183167
-Node: Construction of commutative diagrams187623
-Node: Commutative diagram parameters194779
-Node: Programming definitions196595
-Node: Category codes197601
-Node: Allocation macros200246
-Node: Iteration202381
-Node: Macro arguments204033
-Node: Converting to characters207400
-Node: Expansion208785
-Node: \csn and \ece209408
-Node: \edefappend209973
-Node: Hooks210520
-Node: Properties212694
-Node: \expandonce213773
-Node: \ifundefined214221
-Node: \ifempty214785
-Node: \ifinteger and \isinteger215527
-Node: \futurenonspacelet216562
-Node: Obeying spaces217157
-Node: Writing out numbers218181
-Node: Mode-specific penalties218504
-Node: Auxiliary files219233
-Node: User-defined environments220152
-Node: Page list and page range parsers221365
-Node: Demo files223497
-Node: Hyperlinks (xhyper.tex)224063
-Node: Highlighting TeX comments in listings (lscommnt.tex)232412
-Node: Macro index234868
-Node: Concept index302707
-
-End Tag Table