[tex-eplain] indexing appendices
Oleg Katsitadze
olegkat at gmail.com
Sun Mar 2 04:40:08 CET 2008
On Sat, Mar 01, 2008 at 04:22:15PM -0600, Karl Berry wrote:
> BTW, I would not assume that makeindex could not be configured to get
> around this, unless you have actually checked.
This is very interesting. I also suspected that, but I couldn't find
anything in the manual page. So now I took a look at the code and
discovered that makeindex has a notion of a "composite page number".
Parts of a complex page number must be separated by a "page
compositor", which by default is "-". So, makeindex can correctly
scan and process page numbers of the form "A-1", "B-32-i",
"1-IV-42-f", etc., (up to ten levels) but it can't do what Helmut
wanted (a "no compositor" case like "A1", but see below).
Page compositor can also be changed through the .mst file with
page_compositor setting (I've checked), but for some reason
makeindex's man page doesn't mention composite page numbers at all,
let alone the ability to change the compositor char. I wonder why is
that. Karl, if I patch the man page, can makeindex be repackaged? Or
maybe it can just be patched in TeX-Live? It's not GPL, but similar.
The only catch is that the license requires that "all modified
versions [...] be reported back to the author". Can we find the
author?
At any rate, below is a modified sample for Helmut which works with
makeindex, if he's willing to accept the page compositor character.
If not, it might be possible to sacrifice some char, making it a
compositor character for makeindex and an active character in TeX
which outputs nothing (the latter only needs to be done while reading
the index, so this can easily be "&", which I doubt will occur in
index entries).
Best,
Oleg
\input eplain
\newif\ifprefixpagenumbers \prefixpagenumberstrue
\def\part#1 #2 \par{%
\vfil\eject
\gdef\partprefix{#1}%
\pageno=1
{\bf #2}\par
\nobreak\smallskip
}
\let\plainfolio\folio
\def\folio{%
\ifprefixpagenumbers
\partprefix \ifx\empty\partprefix\else-\fi \plainfolio
\else
\plainfolio
\fi
}
% Avoid "undefined macro" errors if \partprefix gets used
% before it gets defined.
\let\partprefix\empty
% Do not prefix part letter inside the footer.
\footline={\hss\tenrm\prefixpagenumbersfalse\folio\hss}
\part {} Main Part
Text of Main Part.\sidx{foo}
\part A Appendix~A
Text of Appendix~A.\sidx{bar}
\part B Appendix~B
Text of Appendix~B.\sidx{term}\sidx{bar}\sidx{foo}
\part C Appendix~C
Text of Appendix~C.\sidx{another term}\sidx{bar}
\part D Appendix~D
Text of Appendix~D.\sidx{yet another term}\sidx{foo}
\part {} Index
\readindexfile{i}
\end
More information about the tex-eplain
mailing list