diff options
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r-- | Master/texmf-dist/source/latex/imakeidx/imakeidx.dtx | 94 |
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 |