%% %% This is file `splitidx.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% splitidx.dtx (with options: `package') %% %% This is a generated file. %% %% Copyright (c) Markus Kohm, 2002-2016 %% %% This file was generated from file(s) of the `SplitIndex bundle'. %% ---------------------------------------------------------------- %% %% This work may be distributed and/or modified under the conditions of %% the LaTeX Project Public License, version 1.3c of the license. %% The latest version of this license is in %% http://www.latex-project.org/lppl.txt %% and version 1.3c or later is part of all distributions of LaTeX %% version 2005/12/01 or later and of this work. %% %% This work has the LPPL maintenance status "author-maintained". %% %% The Current Maintainer and author of this work is Markus Kohm. %% %% This file may only be distributed together with a copy of the %% SplitIndex bundle. You may however distribute the SplitIndex bundle %% without such generated files. %% %% The list of all files belongig to the SplitIndex bundle is given in %% in the file `manifest.txt'. Files generated by means of unpacking the %% distribution (using, for example, the docstrip program) or by means %% of compiling them from a source file, for example, from splitindex.c %% or splitindex.java may be distributed at the distributor's discretion. %% However if they are distributed then a copy of the SplitIndex bundle %% must be distributed together with them. %% %% The list of derived (unpacked or compiled) files belongig to the %% distribution and covered by LPPL is defined by the unpacking scripts %% (with extension .ins) and the installation script (with name %% install.sh) which are part of the distribution. %% %% Two often ignorred clauses from LPPL 1.3c you should not ignore: %% ---------------------------------------------------------------- %% 2. You may distribute a complete, unmodified copy of the Work as you %% received it. Distribution of only part of the Work is considered %% modification of the Work, and no right to distribute such a Derived %% Work may be assumed under the terms of this clause. %% 3. You may distribute a Compiled Work that has been generated from a %% complete, unmodified copy of the Work as distributed under Clause 2 %% above, as long as that Compiled Work is distributed in such a way that %% the recipients may install the Compiled Work on their system exactly %% as it would have been installed if they generated a Compiled Work %% directly from the Work. %% \ProvidesPackage{splitidx}[% 2016/02/18 v1.2c multiple indices for LaTeX] \DeclareOption{makeindex}{\AtEndOfPackage{\makeindex}} \DeclareOption{useindex}{% \def\@se@nd@xc@d@{\let\index\sindex}% \AtEndOfPackage{\@se@nd@xc@d@}% } \let\@se@nd@xc@d@\relax \DeclareOption{allatone}{% \PackageWarning{splitidx}{Option `allatone' deprecated!\MessageBreak You should replace it by `allintoone'}% \ifx\@se@nd@xc@d@\relax\else \PackageInfo{splitidx}{option `allatone' overwrites option `useindex'}% \let\@se@nd@xc@d@\relax \fi \AtEndOfPackage{% \renewcommand*{\sindex}[1][]{\index}% \g@addto@macro\makeindex{\renewcommand*{\sindex}[1][]{\index}}% }% } \DeclareOption{allintoone}{% \ifx\@se@nd@xc@d@\relax\else \PackageInfo{splitidx}{option `allintoone' overwrites option `useindex'}% \let\@se@nd@xc@d@\relax \fi \AtEndOfPackage{% \renewcommand*{\sindex}[1][]{\index}% \g@addto@macro\makeindex{\renewcommand*{\sindex}[1][]{\index}}% }% } \newif\if@verbindex\@verbindexfalse \DeclareOption{protected}{\@verbindextrue} \newif\if@newidxcmd\@newidxcmdfalse \DeclareOption{idxcommands}{\@newidxcmdtrue} \newif\if@splitidx\@splitidxfalse \DeclareOption{split}{\@splitidxtrue} \ProcessOptions\relax \newcommand*\see[2]{\emph{\seename} #1} \providecommand*\seealso[2]{\emph{\alsoname} #1} \providecommand\seename{see} \providecommand*\alsoname{see also} \newcommand*{\sindex}[2][]{% } \g@addto@macro\makeindex{% \renewcommand*{\sindex}{% \@bsphack\begingroup \@sanitize \@wrsindex }% \typeout{Using splitted index at \jobname.idx}% \@se@nd@xc@d@ } \newcommand*{\@wrsindex}[2][]{% \ifx\relax#1\relax \if@splitidx \@wrsindex[idx]{#2}% \else \def\@tempa{#2}% \if@verbindex\@onelevel@sanitize\@tempa\fi \@wrindex{\@tempa}% \fi \else \def\@tempa{#2}% \csname index@#1@hook\endcsname \expandafter\ifx\csname @@wrsindex\endcsname\relax \@@@wrsindex{#1}{{\@tempa}{\thepage}}% \else \def\@tempb{\@@wrsindex{#1}}% \expandafter\@tempb\@tempa||\\% \fi \endgroup \@esphack \fi } \newcommand*{\@@@wrsindex}[2]{% \begingroup \if@splitidx \expandafter\ifx\csname @indexfile@#1\endcsname\relax \PackageError{splitidx}{% Index entry for not existing index% }{% You've tried to set an index to index `#1', without defining\MessageBreak that index before using \string\newindex.\MessageBreak This is only allowed, if you are not using package option `split'.% }% \else \expandafter\protected@write\csname @indexfile@#1\endcsname{% \csname index@#1@writehook\endcsname \csname index@#1@writehook@once\endcsname }{% \string\indexentry#2% }% \fi \else \protected@write\@indexfile{% \csname index@#1@writehook\endcsname \csname index@#1@writehook@once\endcsname }{% \string\indexentry[#1]#2% }% \fi \endgroup } \AtBeginDocument{% \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname ifHy@hyperindex\endcsname\relax \else \expandafter\ifx\csname ifHy@hyperindex\expandafter\endcsname \csname iftrue\endcsname \@ifundefined{@@wrsindex}{% \def\@@wrsindex#1#2|#3|#4\\{% \ifx\\#3\\% \@@@wrsindex{#1}{{#2|hyperpage}{\thepage}}% \else \def\Hy@temp@A{#3}% \ifx\Hy@temp@A\HyInd@ParenLeft \@@@wrsindex{#1}{{#2|#3hyperpage}{\thepage}}% \else \ifx\Hy@temp@A\HyInd@ParenRight \@@@wrsindex{#1}{{#2|#3hyperpage}{\thepage}}% \else \@@@wrsindex{#1}{{#2|#3}{\thepage}}% \fi \fi \fi }% }{}% \fi \fi } \newcommand*{\AtWriteToIndex}[1]{% \expandafter\ifx\csname index@#1@writehook\endcsname\relax \expandafter\let\csname index@#1@writehook\endcsname\@empty \fi \expandafter\g@addto@macro\csname index@#1@writehook\endcsname } \newcommand*{\AtNextWriteToIndex}[1]{% \expandafter\ifx\csname index@#1@writehook@once\endcsname\relax \expandafter\gdef\csname index@#1@writehook@once\endcsname{% \expandafter\global\expandafter\let\expandafter \csname index@#1@writehook@once\endcsname\relax }% \fi \expandafter\g@addto@macro\csname index@#1@writehook@once\endcsname } \newcommand*{\printindex}{% \@ifstar {% \begingroup \let\printindex@@endhook=\printindex@endhook \let\printindex@endhook=\relax \printindices% \csname printindex@@endhook\endcsname \endgroup }{% \@ifnextchar [\@printindex%] brace check comment {% \@input@{\jobname.ind}% \csname printindex@endhook\endcsname }% }% } \newcommand*{\@printindex}{} \def\@printindex[#1]{% \@ifnextchar [% {\@@printindex[{#1}]}% {\@@printindex[{#1}][\csname index@#1@name\endcsname]}% } \newcommand*{\@@printindex}{} \def\@@printindex[#1][#2]{% \begingroup \edef\indexshortcut{#1}% \def\indexname{#2}% \def\kvtcb@text@index{#2}% \let\index@preamble\relax \expandafter\let\expandafter\index@preamble \csname index@\indexshortcut @preamble\endcsname \if@splitidx \def\@tempa{idx}\def\@tempb{#1}% \ifx\@tempa\@tempb\let\@indexsuffix\@gobble\fi \fi \@input@{\jobname\@indexsuffix{#1}.ind}% \endgroup \csname printindex@endhook\endcsname } \begingroup \catcode`\-12 \lowercase{\endgroup \newcommand*{\@indexsuffix}[1]{-#1}% } \newcommand*{\printindices}{% \ifx\@indices\@empty \printindex \else \begingroup \@for\@tempa:=\@indices\do{% \expandafter\printindex\expandafter[\@tempa]% }% \endgroup \fi } \newcommand*{\newindex}[2][\relax]{% \@ifundefined{index@#2@name}{% \if@verbindex \expandafter\gdef\csname index@#2@hook\endcsname{% \@onelevel@sanitize\@tempa }% \else \expandafter\gdef\csname index@#2@hook\endcsname{}% \fi \ifx\@indices\@empty \xdef\@indices{#2}% \else \xdef\@indices{\@indices,#2}% \fi \ifx \relax#1 \expandafter\xdef\csname index@#2@name\endcsname{#2}% \else \expandafter\xdef\csname index@#2@name\endcsname{#1}% \fi \if@newidxcmd \expandafter\newcommand\expandafter*\csname #2\endcsname{}% \expandafter\gdef\csname #2\endcsname{% \sindex[#2]% }% \fi \if@splitidx \def\@tempa{#2}\def\@tempb{idx}% \ifx\@tempa\@tempb \global\let\@indexfile@idx=\@indexfile \else \expandafter\newwrite\csname @indexfile@#2\endcsname \expandafter\immediate\expandafter\openout \csname @indexfile@#2\endcsname=\jobname-#2.idx \fi \fi }{% \PackageError{splitidx}{% index `#2' already defined% }{% You have already defined an index with shortcut `#2'.\MessageBreak You can't define a new index with the same shortcut. If you'll continue \MessageBreak The new definition will be ignored.% }% }% } \if@splitidx \@onlypreamble\newindex \fi \newcommand*{\newprotectedindex}[2][\relax]{% \begingroup\@verbindextrue\newindex[{#1}]{#2}\endgroup } \newcommand*{\@indices}{} \gdef\@indices{} \newcommand{\extendtheindex}[4]{% \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname splitindex@theindex\endcsname\relax \let\splitindex@theindex=\theindex \let\endsplitindex@theindex=\endtheindex \fi \renewcommand*{\theindex}{% #1\splitindex@theindex #2% }% \renewcommand*{\endtheindex}{% #3\endsplitindex@theindex #4% }% } \newcommand{\splitindex@setip}{} \let\splitindex@setip\setindexpreamble \let\setindexpreamble\relax \newcommand{\setindexpreamble}[2][]{% \ifx \relax#1\relax \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname splitindex@setip\endcsname\relax \@namedef{index@preamble}{#2}% \else \splitindex@setip{#2}% \fi \else \@namedef{index@#1@preamble}{#2}% \fi } \newcommand{\useindexpreamble}[1][]{% \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname index@preamble\endcsname\relax\else \ifx\index@preamble\@empty\else \index@preamble #1% \fi \fi } \newcommand*{\printsubindex}{% \begingroup \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname chapter\endcsname\relax \let\section\subsection \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname addsec\endcsname\relax\else \def\addsec{\setcounter{secnumdepth}{0}\subsection}% \fi \else \let\chapter\section \def\@makeschapterhead{\section*} \let\@makechapterhead\section \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname addchap\endcsname\relax\else \let\addchap\addsec \fi \fi \let\onecolumn\@firstoptofone \let\twocolumn\@firstoptofone \let\clearpage\relax \let\cleardoublepage\relax \def\markboth{\expandafter\markright\@gobble}% \ifx\@mkboth\@gobble\else\let\@mkboth\markboth\fi \let\thispagestyle\@gobble \let\printindex@endhook=\endgroup \printindex } \providecommand{\@firstoptofone}[1][]{#1} \endinput %% %% End of file `splitidx.sty'.