diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/ltxtools/ltxtools-index.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/ltxtools/ltxtools-index.sty | 597 |
1 files changed, 597 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/ltxtools/ltxtools-index.sty b/Master/texmf-dist/tex/latex/ltxtools/ltxtools-index.sty new file mode 100644 index 00000000000..11687978088 --- /dev/null +++ b/Master/texmf-dist/tex/latex/ltxtools/ltxtools-index.sty @@ -0,0 +1,597 @@ +%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++% +% This is file 'ltxtools-index.sty', version 0.0.1, December 2011. % +% % +% This package and accompanying files may be distributed and/or % +% modified under the conditions of the LaTeX Project Public License, % +% either version 1.3 of this license or any later version. The latest % +% version of this license is in http://www.latex-project.org/lppl.txt % +% and version 1.3 or later is part of all distributions of LaTeX % +% version 2005/12/01 or later. % +% % +% The LPPL maintenance status of this software is 'author-maintained'. % +% % +% This software is provided 'as it is', without warranty of any kind, % +% either expressed or implied, including, but not limited to, the % +% implied warranties of merchantability and fitness for a particular % +% purpose. % +% % +% Copyright (c) 2011 Ahmed Musa (amusa22@gmail.com). % +%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++% + +\@ifpackageloaded{ltxtools}{% + \@ifpackagelater{ltxtools}{2011/12/12}{}{% + \@latex@error{Loaded version of ltxtools package is + not current}\@ehc + }% +}{% + \RequirePackage{ltxtools}[2011/12/12]% +} +\UseNormalCatcodes +\StyleFilePurpose{Macros and interfaces for index-related tasks (AM)} +\StyleFileRCSInfo +$Id: ltxtools-index.sty,v 0.0.1 2011/12/12 09:00:00 Ahmed Musa Exp $ +\ProvidesPackage{ltxtools-index}[\StyleFileInfo] +\NeedsTeXFormat{LaTeX2e}[2011/06/27] +\loadifnotloaded{ltxtools-doc}[2011/12/12] +\cptloadpackages{% + ltxkeys||2011/12/12; + xcolor|table,dvipsnames,hyperref|2007/01/21; +} +\ltsprovidecolorset[x](1){% + green,0.00,0.59,0.00;brown,0.50,0.25,0.00; + teal,0.00,0.82,0.82;magenta,0.44,0.00,0.87; + purple,0.50,0.00,0.25 +} +\cptnewvariables{if}[LTS@]{mainidx,noidx} +\ltxkeys@declarekeys*(cmd)[LTS]{ltxtools-index}[LTS@]{% + stylecolor/xgreen1; + cmdcolor/xmagenta1; + speccolor/xteal1; + texcolor/Maroon; + macrocolor/blue; + examplecolor/teal; +} +\ltxkeys@declarekeys*(bool)[LTS]{ltxtools-index}[LTS@]{% + fancypages/true; +} +\ltxkeys@declareoption*{% + \ltxkeys@getpvalnopad + \ltxmsg@warn{Unknown option '\CurrentKey' with + value '\InnocentVal' ignored}% +} +%\ltxkeys@executeoptions[LTS]<ltxtools-index>{}\relax +\ltxkeys@processoptions*[LTS]<ltxtools-index>\relax +\ltsAtBeginDocument{% + \ltscolorlet{ltsmacrocolor}{\LTS@macrocolor}% + \ltscolorlet{ltsspeccolor}{\LTS@speccolor}% + \ltscolorlet{ltstexcolor}{\LTS@texcolor}% + \ltscolorlet{ltscmdcolor}{\LTS@cmdcolor}% + \ltscolorlet{ltsstylecolor}{\LTS@stylecolor}% + \ltscolorlet{ltsdoccolor}{black}% +} +\robust@def*\ltsdonotindex#1{% + \cptexpandarg{\ltsfiltermergecsv\LTS@donotindex@hook} + {\detokenize{#1}}\nofilter +} +\ltsdonotindex{\begingroup,\endgroup,\bgroup,\egroup} +\ltsdonotindex{\def,\edef,\xdef,\global,\long,\let,\newcommand} +\ltsdonotindex{\expandafter,\noexpand,\unexpanded,\string,\csname} +\ltsdonotindex{\if,\ifcase,\else,\fi,\or,\relax,\iftrue,\iffalse} +\ltsdonotindex{draft,final,true,false} + +\robust@def*\ltsdollar{\ifmmode\mathdollar\else\texttt{\char`\$}\fi} +\robust@def*\ltsleftbrace{\ifmmode\lbrace\else\texttt{\char`\{}\fi} +\robust@def*\ltsrightbrace{\ifmmode\rbrace\else\texttt{\char`\}}\fi} +\robust@def*\ltsunderscore{% + \ifmmode\nfss@text{\textunderscore}\else\texttt{\char`\_}\fi +} +\robust@def*\ltstypeset{% + \begingroup\LTS@sanitize\LTS@testcl\LTS@typeset +} +\robust@def*\LTS@typeset#1#2{% + \edef\LTS@tempa{\detokenize{#2}}% + \ifLTS@cl + \edef\LTS@tempa{\s@expandarg\cptzapspaces\LTS@tempa}% + \else + \despacecontent\LTS@tempa + \fi + \texttt{\textcolor{#1}{\expandcsonce\LTS@tempa}}% + \endgroup +} +\robust@def*\ltscmdtypeset{% + \begingroup + \LTS@sanitize\LTS@testcl\LTS@cmdtypeset +} +\robust@def*\LTS@cmdtypeset#1{% + \edef\reserved@a{\ifLTS@cl!\fi}% + \expandafter\endgroup\expandafter + \ltstypeset\reserved@a{ltscmdcolor}{#1}% +} +\robust@def*\ltscmdfamily{\color{ltscmdcolor}\ttfamily} +\robust@def*\ltscmdtext{\begingroup\LTS@sanitize\LTS@cmdtext} +\robust@def*\LTS@cmdtext#1{\endgroup\textcolor{ltscmdcolor}{\texttt{#1}}} +\new@def*\ltsheadquoted#1{\ltsneverexpand{\quoted{#1}}} +\new@def*\ltsheadfx#1{\ltsneverexpand{\ltsfx{#1}}} +\new@def*\ltsheadhx#1{\ltsneverexpand{\ltshx{#1}}} +\new@def*\quotedfxx#1{{\NoWrapQuotes\quoted{\ftfxx{#1}}}}% \quotedFx +\new@def*\quotedfx{% + \begingroup + \@makeother{\#}\LTS@quotedfx +} +\new@def*\LTS@quotedfx#1{% + \NoWrapQuotes\quoted{\ltsftfx{#1}}% + \endgroup +} +\new@def*\quotedhx{% + \begingroup + \@makeother{\#}\LTS@quotedhx +} +\new@def*\LTS@quotedhx#1{% + \NoWrapQuotes\quoted{\ltsfthx{#1}}% + \endgroup +} +\robust@def*\ltsfx{% + \def\LTS@currcolor{ltscmdcolor}% + \begingroup + \LTS@sanitize\LTS@teststcl\LTS@fx +} +\robust@def\LTS@fx#1{% + \edef\LTS@tempb{\detokenize{#1}}% + \ifLTS@cl + \let\LTS@tempa\cptzapspaces + \else + \ifLTS@st + \let\LTS@tempa\cptzapspaces + \else + \let\LTS@tempa\cpttrimspace + \fi + \fi + \cptexpanded{% + \noexpand\textcolor{\LTS@currcolor}% + {\noexpand\texttt{\s@expandarg\LTS@tempa\LTS@tempb}}% + }% + \endgroup +} +\robust@def*\ampfx#1#{% + \def\LTS@currcolor{ltscmdcolor}% + \amp@fx{#1}% +} +\robust@def\amp@fx#1#2{% + \begingroup + \edef\LTS@tempb{\detokenize{#2}}% + \def\test##1##2{\ifinsetTF{##2}{##1}}% + \cptifcasse\test{#1} + {!}{\let\LTS@tempa\cptzapspaces} + {*}{\let\LTS@tempa\cptzapspaces} + \elseif + \let\LTS@tempa\cpttrimspace + \endif + \cptexpanded{% + \noexpand\textcolor{\LTS@currcolor}% + {\noexpand\texttt{\s@expandarg\LTS@tempa\LTS@tempb}}% + }% + \endgroup +} +\robust@def*\ltsftfx{% + \@tempswatrue + \def\LTS@currcolor{ltscmdcolor}% + \LTS@teststcl\LTS@footfx +} +\robust@def*\ltsfthx{% + \@tempswatrue + \def\LTS@currcolor{ltstexcolor}% + \LTS@teststcl\LTS@footfx +} +\robust@def*\ltsftfxx{% + \@tempswafalse + \def\LTS@currcolor{ltscmdcolor}% + \LTS@teststcl\LTS@footfx +} +\robust@def*\LTS@footfx#1{% + \edef\LTS@tempb{\detokenize{#1}}% + \ifLTS@cl + \let\LTS@tempa\cptzapspaces + \else + \ifLTS@st + \let\LTS@tempa\cptzapspaces + \else + \let\LTS@tempa\cpttrimspace + \if@tempswa + \LTS@footfxparse\LTS@tempb + \fi + \fi + \fi + \cptexpanded{% + \noexpand\textcolor{\LTS@currcolor}% + {\noexpand\texttt{\s@expandarg\LTS@tempa\LTS@tempb}}% + }% +} +\robust@def*\LTS@footfxparse#1{% + \begingroup + \s@expandarg\cpt@pophash#1#1% + \LTS@putspaceafter#1\cpt@leftbracechar + \edef\x##1{##1\expandcsonce{#1}\@space\LTS@nil}% + \edef\y##1{\def##1####1\@space####2\LTS@nil}% + \y\y{% + \ifblankTF{##2}{% + \toks@\expandafter{\the\toks@##1}% + }{% + \if\@backslashchar\cpt@car##1x\car@nil + \toks@\expandafter{\the\toks@##1}% + \else + \ltsgetlasttsv{##1}% + \if\last\cpt@leftbracechar + \toks@\expandafter{\the\toks@##1}% + \else + \cptexpanded{\toks@{\the\toks@\unexpanded{##1}\@space}}% + \fi + \fi + \y##2\LTS@nil + }% + }% + \x{\toks@{}\y}% + \edef#1{\the\toks@}% + \postgroupdef#1\endgroup +} +\robust@def\LTS@putspaceafter#1#2{% + \begingroup + \toks@{}% + \xifinsetTF{#2}{\detokenize\expandafter{#1}}{% + \edef\x##1{##1\detokenize\expandafter{#1}#2\LTS@nil}% + \edef\y##1{\def##1####1#2####2\LTS@nil}% + \y\y{% + \ifblankTF{##2}{% + \toks@\expandafter{\the\toks@##1}% + }{% + \cptexpanded{\toks@{\the\toks@##1#2\@space}}% + \y##2\LTS@nil + }% + }% + \x{\toks@{}\y}% + }{% + \toks@\expandafter{\detokenize\expandafter{#1}}% + }% + \edef#1{\the\toks@}% + \postgroupdef#1\endgroup +} +\robust@def*\ltsifcsvfinal{% + \ifnum\indrisnr>\@ne + \iflastindris + \ifLTS@pm\@space and\else,\fi\@space + \else + ,\@space + \fi + \fi +} +\robust@def*\ltsffx{% + \LTS@teststclpm{% + \def\LTS@currcolor{ltscmdcolor}% + \begingroup\LTS@sanitize\expandafter\endgroup\LTS@ffx + }% +} +\robust@def*\LTS@ffx#1{% + \def\do##1{% + \ltsifcsvfinal + \edef\LTS@tempa{\s@expandarg\cpttrimspace{\detokenize{##1}}}% + \texttt{\textcolor{\LTS@currcolor}{\LTS@tempa}}% + }% + \indrisloop{#1}\do +} +\robust@def*\ltsftffx{% + \LTS@teststclpm{% + \def\LTS@currcolor{ltscmdcolor}% + \LTS@ftffx + }% +} +\robust@def*\ltsfthhx{% + \LTS@teststclpm{% + \def\LTS@currcolor{ltstexcolor}% + \LTS@ftffx + }% +} +\robust@def*\LTS@ftffx#1{% + \edef\LTS@tempa{\detokenize{#1}}% + \s@expandarg\cpt@pophash\LTS@tempa\LTS@tempa + \expandafter\LTS@ffx\expandafter{\LTS@tempa}% +} +\robust@def*\ltshx{% + \def\LTS@currcolor{ltstexcolor}% + \begingroup\LTS@sanitize\LTS@teststclpm\LTS@fx +} +\robust@def*\ltshhx{% + \LTS@teststclpm{% + \def\LTS@currcolor{ltstexcolor}% + \begingroup\LTS@sanitize\expandafter\endgroup\LTS@ffx + }% +} +% Indexing command syntax: +% * (star) -> print #1 only in index, else print also at place of call. +% ' (prime) -> zap spaces, else trim spaces. +\robust@def*\LTS@fxidx#1#2#3{% + \usename{LTS@mainidx#1}% + \let\LTS@texttt\texttt + \def\LTS@currcolor{#2}% + \LTS@teststclpm{\begingroup\LTS@sanitize\usename{LTS@fxi@#3}}% +} +\robust@def*\ltsfxim{\LTS@fxidx{true}{ltscmdcolor}{a}} +\newletcs\ltsffxim\ltsfxim +\robust@def*\ltsfxi{\LTS@fxidx{false}{ltscmdcolor}{a}} +\newletcs\ltsffxi\ltsfxi +\robust@def*\ltsfxis{\LTS@fxidx{false}{ltscmdcolor}{b}} +\robust@def*\ltshxim{\LTS@fxidx{true}{ltstexcolor}{a}} +\robust@def*\ltshxi{\LTS@fxidx{false}{ltstexcolor}{a}} +\robust@def*\ltshxis{\LTS@fxidx{false}{ltstexcolor}{b}} +\robust@def*\LTS@zaportrim#1{% + \begingroup + \edef\x##1{##1{\detokenize{#1}}}% + \xdef\zaportrim@res{% + \ifboolTF{LTS@cl}{\x\cptzapspaces}{\x\cpttrimspace}% + }% + \endgroup +} +\robust@def*\LTS@fxi@a#1{\LTS@fxi@b{#1}{}} +\robust@def*\LTS@fxi@b#1#2{% + \endgroup + \edef\LTS@tempb{\s@expandarg\cpttrimspace{\detokenize{#2}}}% + \def\do##1{% + \LTS@zaportrim{##1}% + \ifLTS@st\else + \ltsifcsvfinal + \cptexpandsecond\textcolor + {{\LTS@currcolor}{\LTS@texttt{\zaportrim@res}}}% + \fi + \cptexpanded{\LTS@indexentry{}{\zaportrim@res}{\LTS@tempb}}% + }% + \indrisloop{#1}\do +} +\robust@def*\ltsdummyfxim{\LTS@teststclpm\LTS@dummyfxi} +\robust@def*\ltsdummyfxi{\LTS@teststclpm\LTS@dummyfxi} +\robust@def*\LTS@dummyfxi#1{} +\robust@def*\LTS@aidx#1#2#3{% + \usename{LTS@mainidx#1}% + \let\LTS@texttt\@iden + \def\LTS@currcolor{#2}% + \LTS@teststclpm{% + \begingroup + \LTS@sanitize + \usename{LTS@fxi@#3}% + }% +} +\robust@def*\ltsaidx{\LTS@aidx{false}{ltsdoccolor}{a}} +\robust@def*\ltsaidxm{\LTS@aidx{true}{ltsdoccolor}{a}} +% Index entries with |see reference ('s' refers to 'see'); +% 'm' -> main (with \underbar): +\robust@def*\ltsaidxs{\LTS@aidx{false}{ltsdoccolor}{b}} +\robust@def*\ltsbidx{\LTS@aidx{false}{ltsspeccolor}{a}} +\robust@def*\ltsbidxm{\LTS@aidx{true}{ltsspeccolor}{a}} +\robust@def*\ltsbidxs{\LTS@aidx{false}{ltsspeccolor}{b}} +% Italicize or apply something to the first word. +% Because of the need to sort the entries, it is usually +% more difficult to apply something to the first word. +% Eg, \ltsaiidxs[\emph,Choice keys]{nominations xxx \emph{yyy}}{zzz} +\robust@def*\ltsaiidx{\LTS@aiidx{false}{ltsdoccolor}{a}} +\robust@def*\ltsaiidxm{\LTS@aiidx{true}{ltsdoccolor}{a}} +\robust@def*\ltsaiidxs{\LTS@aiidx{false}{ltsdoccolor}{b}} +\robust@def*\LTS@aiidx#1#2#3{% + \usename{LTS@mainidx#1}% + \def\LTS@currcolor{#2}% + \LTS@teststclpm{\cpt@testopt{\usename{LTS@fxii@#3}}{}}% +} +\robust@def*\LTS@fxii@a[#1]#2{\LTS@fxii@b[#1]{#2}{}} +\robust@def*\LTS@fxii@b[#1]#2#3{% + \begingroup + \def\reserved@a##1,##2,##3\LTS@nil{% + \def\format{##1}\def\mainentry{##2}% + }% + \reserved@a#1,,\LTS@nil + \def\getfirstword##1 ##2\LTS@nil{% + \def\firstword{##1}\def\rmwords{##2}% + }% + \edef\LTS@tempb{\cpttrimspace{#3}}% + \def\do##1{% + \edef\LTS@tempc{\cpttrimspace{##1}}% + \cptthreexp\getfirstword\expandafter\LTS@tempc\@space\LTS@nil + \ifLTS@st\else + \ltsifcsvfinal + \cptexpandsecond\textcolor{{\LTS@currcolor}{\LTS@tempc}}% + \fi + \cptexpanded{\LTS@iindexentry{\mainentry}{\LTS@tempc}{\LTS@tempb}}% + }% + \indrisloop{#2}\do + \endgroup +} +\robust@def*\ltsfiles{\LTS@files@a{false}{b}} +\newletcs\ltsfile\ltsfiles +\robust@def*\ltsfilesm{\LTS@files@a{true}{b}} +\robust@def*\ltsfiless{\LTS@files@a{false}{c}} +\robust@def*\LTS@files@a#1#2{% + \usename{LTS@mainidx#1}% + \LTS@teststclpm{% + \begingroup + \LTS@sanitize + \cpt@testopt{\usename{LTS@files@#2}}{tex}% + }% +} +\robust@def*\LTS@files@b[#1]#2{\LTS@files@c[#1]{#2}{}} +\robust@def*\LTS@files@c[#1]#2#3{% + \endgroup + \def\LTS@currcolor{ltsstylecolor}% + \edef\LTS@tempb{\s@expandarg\cptzapspaces{\detokenize{#1}}}% + \edef\LTS@tempa{\s@expandarg\cptzapspaces{\detokenize{#2}}}% + \def\do##1{% + \ifLTS@st\else + \ltsifcsvfinal + \cptexpanded{\ltstypeset{ltsstylecolor}{##1.\LTS@tempb}}% + \fi + \cptexpanded{\LTS@indexentry{Files}{##1.\LTS@tempb}{#3}}% + }% + \indrisloop*\LTS@tempa\do +} +\robust@def*\ltsemphlist{% + \LTS@teststpm{\begingroup\LTS@sanitize\LTS@emph\emph}% +} +\robust@def*\ltsquotedlist{% + \LTS@teststpm{\begingroup\LTS@sanitize\LTS@emph\quoted}% +} +\robust@def*\LTS@emph#1#2{% + \xdef\@gtempa{\ifLTS@st*\fi}% + \endgroup + \def\do##1{% + \ltsifcsvfinal + \edef\LTS@tempa{\s@expandarg\cpttrimspace{##1}}% + #1{\LTS@tempa}% + }% + \expandafter\indrisloop\@gtempa{#2}\do +} +\new@def*\ltsheadpkg#1{\ltsneverexpand{\ltspkg{#1}}} +\robust@def*\ltspkgnoidx{% + \LTS@mainidxfalse\LTS@noidxtrue + \LTS@teststclpm\LTS@pkg@a +} +\newletcs\ltspkgg=\ltspkgnoidx +\robust@def*\ltspkg{% + \LTS@mainidxfalse\LTS@noidxfalse + \LTS@teststclpm\LTS@pkg@a +} +\robust@def*\ltspkgm{% |underbar + \LTS@mainidxtrue\LTS@noidxfalse + \LTS@teststclpm\LTS@pkg@a +} +\robust@def*\ltspkgs{% |see + \LTS@mainidxfalse\LTS@noidxfalse + \LTS@teststclpm\LTS@pkg@b +} +\robust@def*\LTS@pkg@a#1{\LTS@pkg@b{#1}{}} +\robust@def*\LTS@pkg@b#1#2{% + \edef\LTS@tempa{\s@expandarg\cptzapspaces{\detokenize{#1}}}% + \edef\LTS@tempb{\s@expandarg\cptzapspaces{\detokenize{#2}}}% + \def\LTS@currcolor{ltsstylecolor}% + \def\do##1{% + \ifLTS@st\else + \ltsifcsvfinal + \textcolor{ltsstylecolor}{\texttt{##1}}% + \fi + \ifLTS@noidx\else + \cptexpanded{\LTS@indexentry{Packages}{##1}{\LTS@tempb}}% + \fi + \let\LTS@tempc\indrisnr + }% + \indrisloop*\LTS@tempa\do + \ifLTS@st\else + \ifLTS@pm\@space package\ifnum\LTS@tempc>1 s\fi\fi + \fi +} +\robust@def*\LTS@indremovescape#1{% + \ifblankTF{#1}{\cpt@isblankerr\LTS@indremovescape}{}% + \let\LTS@putbs\cptswfalse + \edef\LTS@tempa{\s@expandarg\cpttrimspace{\detokenize{#1}}}% + \if\@backslashchar\expandafter\LTS@car\LTS@tempa x\car@nil + \let\LTS@putbs\cptswtrue + \edef\LTS@remscape@res{\expandafter\@gobble\LTS@tempa}% + \else + \let\LTS@remscape@res\LTS@tempa + \fi +} +\robust@def*\ifindexthis#1{% + \LTS@indremovescape{#1}% + \xifinsetTF{,\cptoxdetok\LTS@tempa,}{,\LTS@donotindex@hook,}% + \@gobble\@iden +} +\robust@def*\LTS@decidebackslash#1{% + \if\LTS@putbs + \def#1{\texttt{\symbol{'134}}}% + \else + \def#1{}% + \fi +} +\ifcsdefinable\LTS@currcolor\relax +\AfterStartOfDocument{% + \newletcs\LTS@indexcmd\index +} +\robust@def*\LTS@indexentry#1#2#3{% + \begingroup + \ifindexthis{#2}{% + \let\idxitem@a\LTS@remscape@res + \ifLTS@mainidx + \ifblankTF{#3}{}{% + \ltxmsg@err{Main index entry can't have '|see'}\@ehc + }% + \fi + \ifboolTF{LTS@cl}\LTS@detok@zap\despacecontent\idxitem@a + \LTS@decidebackslash\idxbs@a + \ifblankTF{#3}{}{% + \LTS@indremovescape{#3}% + \let\idxitem@b\LTS@remscape@res + \LTS@decidebackslash\idxbs@b + }% + \let\x\noexpand + \cptexpanded{% + \x\LTS@indexcmd{\ifblankTF{#1}{}{#1>}% + \idxitem@a=\x\textcolor{\LTS@currcolor}% + {\x\texttt{\idxbs@a\idxitem@a}}% + \ifLTS@mainidx|underbar\fi + \ifblankTF{#3}{}{% + |see{\x\texttt{\x\textcolor{\LTS@currcolor}% + {\idxbs@b\idxitem@b}}}% + }% + }% + }% + }% + \endgroup +} +\robust@def*\LTS@iindexentry#1#2#3{% + \ifindexthis{#2}{% + \cptexpanded{% + \noexpand\LTS@indexcmd{% + \ifblankTF{#1}{}{#1>}% + #2=\noexpand\textcolor{\LTS@currcolor}{% + \format{\firstword}% + \ifx\rmwords\@empty\else\@space\rmwords\fi + }% + \ifLTS@mainidx|underbar\fi + \ifblankTF{#3}{}{% + |see{\noexpand\textcolor{\LTS@currcolor}{#3}}% + }% + }% + }% + }% +} +\robust@def*\LTS@helv{\fontfamily{phv}\selectfont\color{blue}} +\robust@def\ltsindexpreamble#1{\long\def\LTS@idxpreamble{#1}} +\cptemptify\LTS@idxpreamble +\robust@def*\ltsindexpreambleformat#1{\long\def\LTS@idxpreamblefmt{#1}} +\newletcs\LTS@idxpreamblefmt\relax +\cptnewvariables{count}{ltsindexcolumns}[2] +\AfterStartOfDocument{% + \renewenvironment{theindex}{% + \begin{multicols}{\ltsindexcolumns}% + [\vspace{2\baselineskip}\centerline{\indexname}% + \LTS@idxpreamblefmt\LTS@idxpreamble][5\baselineskip]% + \addcontentsline{toc}{section}{Index}% + \ifLTS@fancypages\pagestyle{fancyplain}\fi + \def\indexspace{\endgraf\vskip5\p@\@plus\p@\@minus\p@}% + \def\@idxitem{% + \endgraf\vskip-.5\baselineskip\@plus\p@\@minus\p@ + \hangindent40\p@ + }% + \patchcs\endtrivlist{% + \if@newlist + \@noitemerr + \global\@newlistfalse + \fi + }{% + \if@newlist + \ltxmsg@warn{Nested center environment possibly + occurred\on@line}% + \global\@newlistfalse + \fi + }{}{}% + \let\item\@idxitem + \small + }{% + \end{multicols}% + \@ignoretrue + }% +} + +\endinput |