summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/imakeidx/imakeidx.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-07-05 19:05:29 +0000
committerKarl Berry <karl@freefriends.org>2013-07-05 19:05:29 +0000
commit4a9713e265e82a3c564971e6ce473e3f19a2bc2a (patch)
tree9dc029a7e776dec3ea05fda126175ddd50694fa6 /Master/texmf-dist/source/latex/imakeidx/imakeidx.dtx
parent94276bbc8a1b917f768647374d578af0ceaef606 (diff)
imakeidx (4jul13)
git-svn-id: svn://tug.org/texlive/trunk@31098 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/imakeidx/imakeidx.dtx')
-rw-r--r--Master/texmf-dist/source/latex/imakeidx/imakeidx.dtx94
1 files changed, 68 insertions, 26 deletions
diff --git a/Master/texmf-dist/source/latex/imakeidx/imakeidx.dtx b/Master/texmf-dist/source/latex/imakeidx/imakeidx.dtx
index 12320d3a96d..d47eac29ec8 100644
--- a/Master/texmf-dist/source/latex/imakeidx/imakeidx.dtx
+++ b/Master/texmf-dist/source/latex/imakeidx/imakeidx.dtx
@@ -55,6 +55,7 @@ and the derived files imakeidx.sty and imakeidx.pdf.
\def\class#1{\textsf{\itshape#1}}
\def\opz#1{\texttt{#1}}
\usepackage{multicol}
+\usepackage[colorlinks]{hyperref}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
@@ -78,7 +79,7 @@ and the derived files imakeidx.sty and imakeidx.pdf.
\end{document}
%</driver>
% \fi
-% \CheckSum{785}
+% \CheckSum{797}
%
% \changes{v1.0}{2010/07/10}{First public version}
% \changes{v1.0a}{2010/07/12}{Small bug correction}
@@ -91,6 +92,8 @@ and the derived files imakeidx.sty and imakeidx.pdf.
% \changes{v1.2c}{2012/10/02}{Fixed regression}
% \changes{v1.2d}{2012/10/06}{Fixed bugs with index internal names}
% \changes{v1.2e}{2012/10/22}{Fixed bug with showidx simulated by memoir}
+% \changes{v1.3}{2013/03/26 }{Added internal so as to cooperate in a better
+% way with eledmac (by Maieul Roquette}
%
% \begin{abstract}
% This package exploits the |\write18| facility of modern \TeX\ system
@@ -735,20 +738,21 @@ and the derived files imakeidx.sty and imakeidx.pdf.
% disabled.
% When you make any kind of customization, remember that there are
-% several class or personal settings or features that may render your
-% customization very difficult to handle.
-%
-% Remember that:
+% several classes, or personal settings, or features that may render your
+% customization very difficult to handle. Typically:
+%^^A
%\begin{itemize}
% \item There are classes where the normal usable highest sectioning
% command, disregarding |\part|, is not |\chapter|, but |\section|; for
-% example class \class{article}, \class{scrartcl}.
+% example classes \class{article}, \class{scrartcl}.
+%^^A
%\item Sectioning commands come in two varieties: starred and unstarred;
% the former ones are not numbered and do not produce any entry in the
% headings and in the table of contents; the latter ones may behave
-% differently according to the next list entry.
+% differently according to the next item.
+%^^A
% \item There are some classes (for example \class{book},
-% \class{scrapbook}, \class{menoir},\dots) that have the special
+% \class{scrbook}, \class{menoir},\dots) that have the special
% ``sectioning'' declarations |\frontmatter|, |\mainmatter|, and
% |\backmatter| modify how the unstarred sectioning commands behave for
% what concerns the heading and the table of contents entries.
@@ -757,42 +761,45 @@ and the derived files imakeidx.sty and imakeidx.pdf.
% end. This means that the |\backmatter| declaration may be in force;
% in this case unstarred sectioning commands are not numbered but they
% produce normal headings and table of contents entries.
+%^^A
%\item Heading entries are used by the output routine paging algorithm
% in such a way as to extract the left or the right part from suitable
% ``marks''; for the even (left) pages the required information is
% extracted from the |\topmark| or |\firstmark|, while for the odd (right)
% pages they are extracted from the |\botmark|. Generally speaking,
% the even page heading refers to |\leftmark| and odd page headings
-% refer to |\rightmarkk|; there are the two commands that extract the
+% refer to |\rightmark|; these are the two commands that extract the
% correct part from the suitable marks. But when you use the
-% \Kvalue{headers} value you specify two brace balanced strings that
+% \Kvalue{headers} option value, you specify two brace balanced strings that
% are loaded through |\markboth| as the left and right part of the
% current mark.
+%^^A
% \item The contents of the marks may be very varied; they are generally
% made up of two brace balanced strings, which in turn may contain other
-% brace balanced stings that may be used in different ways by the selected page
+% brace balanced strings that may be used in different ways by the selected page
% style and by the page style definitions of the macros |\chaptermarks|,
% |\sectionmarks|, and |\subsectionmarks| that may interfere with personal
% customizations.
+%^^A
% \item Remember also that things change in an obvious way when one side
-% typesetting is chosen; all a pages are treated as if they were odd ones;
+% typesetting is chosen; all pages are treated as if they were odd ones;
% therefore any customization must take into account also this aspect.
%\end{itemize}
%
% The above list has not been written down for discouraging customizations
-% of any kind: simply it recall what mast be taken care of in order to
+% of any kind: simply it recalls what must be taken care of in order to
% create one's customization in a proper way.
%
% The above list explains why we disabled the commands tied to the
% |\indexsetup| keys \Kvalue{headings} and \Kvalue{firstpagestyle} when
% package \pack{fancydr} is being used; you may even set up these keys,
-% but if the \pack{fancyhdr} package has been load, we disable their
+% but if the \pack{fancyhdr} package has been loaded, we disable their
% action; this implies that any fancy customization must be done before
% starting to print any index.
%
-% The \Kvalue{intoc} must also be used with care, as well as the starred
+% The \Kvalue{intoc} option must also be used with care, as well as the starred
% or unstarred sectioning commands for the \Kvalue{level} and
-% \Kvalue{toclevel} values. They must be chosen according to what the
+% \Kvalue{toclevel} option values. They must be chosen according to what the
% possible |\backmatter| declaration sets up, in order to avoid double
% entries in the table of contents; the |\backmatter| settings may also
% influence the way heading information is being used, and this makes it
@@ -803,7 +810,7 @@ and the derived files imakeidx.sty and imakeidx.pdf.
% eliminate the \Kvalue{intoc} option from your calls; your class,
% packages, and settings are already taking care of it.
-% The package \pack{tocbibind} should be loaded with the \texttt{noindex}
+% The package \pack{tocbibind} should be loaded with the \Kvalue{noindex}
% option, otherwise it would interfere with our redefinition of
% \texttt{theindex}.
%
@@ -818,6 +825,29 @@ and the derived files imakeidx.sty and imakeidx.pdf.
% link anchors needed to navigate your document by means of hyper
% links.
%
+% \subsection{Index location customization}
+%
+% Some packages might want to use the facilities of \emph{imakeidx} to offer customized
+% index commands, where the entry location is not expressed by a page number,
+% but by an other reference value (for example: line number, entry number, etc.).
+%
+% These packages may use the low-level command \cs{imki@wrindexentry} which takes three arguments:
+% \begin{enumerate}
+% \item The index name.
+% \item The entry.
+% \item The location number.
+% \end{enumerate}
+% For example \verb+\imki@wrindexentry{names}{Charles}{26}+ adds to the index \verb+names+
+% the value \verb+Charles+ with the location reference \verb+26+.
+%
+% In simpler words, the new command \cs{imki@wrindexentry} is of interest mainly to package
+% and class authors; it is not to be used by the ``normal'' user, who, on the opposite,
+% if interested in referencing the index entries on some location counter different
+% from the page one, is urged to refer to the classes and packages that implement this
+% facility; \pack{eledmac} should be one of these packages. Matter of fact this addition
+% to the \pack{imakeidx} package was contributed by Maïeul Roquette, the author
+% and maintainer of \pack{eledmac}, and we thank him very much,
+%
% \subsection{Using the \textsf{showidx} package}
% If you want to make use of the \pack{showidx} facilities, remember
% to load that package \emph{before} \pack{imakeidx}; remember also
@@ -827,7 +857,7 @@ and the derived files imakeidx.sty and imakeidx.pdf.
% some of which have to receive the \pack{imakeidx} definition in order
% to perform as described in this documentation.
-% At the same time if the \pack{memoir} classis being used, remember that this class
+% At the same time if the \pack{memoir} class is being used, remember that this class
% simulates the \pack{showidx} package and has its own commands to enable or
% disable the printing of the index entries into the margin of the document;
% the default setting is with the |\hideindexmarks| command in force; but if
@@ -1188,6 +1218,8 @@ and the derived files imakeidx.sty and imakeidx.pdf.
% defining it twice; then we use it to let the \pack{showidx} true or simulated macros do
% their job, but we also take care of resetting the switch default value to
% false at begin document time if the \pack{memoir} class is being used.
+%
+%
% \begin{macrocode}
\@ifundefined{showindexmarks}{\newif\ifshowindexmark}{}
\@ifpackageloaded{showidx}{\showindexmarktrue}{\showindexmarkfalse}
@@ -1195,16 +1227,24 @@ and the derived files imakeidx.sty and imakeidx.pdf.
\ifshowindexmark
\@showidx{\ifdefequal{\imki@jobname}{#1}{}{[#1]\space}#2}%
\fi}
-\def\imki@wrindexsplit#1#2{%
+\newcommand\imki@wrindexentrysplit[3]{%
\expandafter\protected@write\csname#1@idxfile\endcsname{}%
- {\string\indexentry{#2}{\thepage}}%
- \endgroup\imki@showidxentry{#1}{#2}%
- \@esphack}
-\def\imki@wrindexunique#1#2{%
+ {\string\indexentry{#2}{#3}}%
+}
+\newcommand\imki@wrindexentryunique[3]{%
\protected@write\@indexfile{}%
- {\string\indexentry[#1]{#2}{\thepage}}%
- \endgroup\imki@showidxentry{#1}{#2}%
- \@esphack}
+ {\string\indexentry[#1]{#2}{#3}}%
+}
+\def\imki@wrindexsplit#1#2{%
+ \imki@wrindexentrysplit{#1}{#2}{\thepage}%
+ \endgroup\imki@showidxentry{#1}{#2}%
+ \@esphack%
+}
+\def\imki@wrindexunique#1#2{%
+ \imki@wrindexentryunique{#1}{#2}{\thepage}%
+ \endgroup\imki@showidxentry{#1}{#2}%
+ \@esphack%
+ }
% \end{macrocode}
%
% ^^A E - \printindex
@@ -1494,6 +1534,7 @@ and the derived files imakeidx.sty and imakeidx.pdf.
\let\imki@startidx\imki@startidxunique
\let\@wrindex\imki@wrindexunique
\let\imki@putindex\imki@putindexunique
+ \let\imki@wrindexentry\imki@wrindexentryunique
\let\imki@startidxsplit\@undefined
\let\imki@wrindexsplit\@undefined
\let\imki@putindexsplit\@undefined
@@ -1501,6 +1542,7 @@ and the derived files imakeidx.sty and imakeidx.pdf.
\let\imki@startidx\imki@startidxsplit
\let\@wrindex\imki@wrindexsplit
\let\imki@putindex\imki@putindexsplit
+ \let\imki@wrindexentry\imki@wrindexentrysplit
\let\imki@startidxunique\@undefined
\let\imki@wrindexunique\@undefined
\let\imki@putindexunique\@undefined