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 (see section 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 (see section 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 (see section 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.