summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/ltxtools/ltxtools-index.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/ltxtools/ltxtools-index.sty')
-rw-r--r--Master/texmf-dist/tex/latex/ltxtools/ltxtools-index.sty597
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