%%
%% This is file `docidx2e.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% docindex.dtx  (with options: `pkg')
%% 
%% This file may be distributed and/or modified under the conditions
%% of the LaTeX Project Public License, either version 1.2 of this
%% license or (at your option) any later version. The latest version
%% of this license is in
%%    http://www.latex-project.org/lppl.txt
%% and version 1.2 or later is part of all distributions of LaTeX
%% version 1999/12/01 or later.
%% 
%% This file may only be distributed together with a copy of the source
%% file from which it was generated. You may distribute that source file
%% without this generated file.
%% 
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage
   {docidx2e}
   [2001/04/11 v1.00 doc index formatting package]
\RequirePackage{multicol}
\RequirePackage{xdoc2}[2001/03/26]
\DeclareOption{oldkeywords}{}
\DeclareOption{usedocindexps}{}
\ProcessOptions\relax
\newcommand\indexitem{%
   \relax
   \expandafter\DI@indexitem \expandafter{\DI@last@level}%
}%
\def\DI@indexitem#1#2#3#4{%
   \edef\DI@last@level{\number#2\expandafter}%
   \ifnum #4=9
      \expandafter\expandafter \expandafter\DI@indexitem@
   \fi
   \csname DI@indexitem@\romannumeral#2\expandafter\endcsname
      {#1}{#4}{#3}\NoValue
}
\def\DI@indexitem@#1#2#3#4#5#6#7{#1{#2}{#7}{#4}{#6}}
\def\DI@last@level{0}
\@ifundefined{indexnewletter}{}{%
   \PackageInfo
      {docidx2e}
      {Command \protect\indexnewletter\space redefined}
}
\outer\def\indexnewletter#1#2#3{%
   \DI@item@nojoin
   \ifnum #1=\z@ \vspace{\DI@letter@skip}\fi
   \DI@letter@format{#2}%
   \def\DI@last@level{0}%
   \let\DI@item@join\@firstofone
   \let\DI@item@nojoin\@empty
}
\@ifpackagewith
   {docidx2e}
   {oldkeywords}{}{
   \edef\XD@index@keyword{\@backslashchar xdocindexentry}
   \let\XD@glossary@keyword\XD@index@keyword
   \def\XD@page@compositor{\@backslashchar +}
}
\def\DI@ind@setup{\bgroup
   \def\docindexguard##1{\egroup}%
   \def\begin##1{%
      \egroup
      \PackageWarningNoLine
         {docidx2e}%
         {Ignoring old style index file}
      \endinput
   }%
}
\@ifpackageloaded{template}{
   \PackageWarningNoLine{docidx2e}{The docidx2e package is only meant%
      \MessageBreak for use when LaTeX2e* packages like
      template\MessageBreak are not available.}
}{}
\def\@letinstance#1#2#3{%
   \expandafter\let \expandafter#1%
      \csname TP@I%
         {\expandafter\expandafter \expandafter\@firstoftwo
            \csname TP@T{#2}\endcsname}%
         {#2}{#3}%
      \endcsname
   \ifx \relax#1%
      \expandafter\let \expandafter#1\csname TP@I{}{#2}{#3}\endcsname
   \fi
}
\providecommand*\UseInstance[2]{%
   \@letinstance\@tempa{#1}{#2}%
   \ifx \relax\@tempa
      \PackageError{docidx2e}{Instance #2 of type #1 undefined}\@eha
   \else
      \expandafter\@tempa
   \fi
}
\@namedef{TP@T{justification}}{{}{0}}
\@namedef{TP@I{}{justification}{indexitem1}}{%
   \leftskip=30\p@
   \rightskip=15\p@
   \parindent=-30\p@
   \parfillskip=-\rightskip
}
\@namedef{TP@I{}{justification}{indexitem2}}{%
   \leftskip=30\p@
   \rightskip=15\p@
   \parindent=-15\p@
   \parfillskip=-\rightskip
}
\@namedef{TP@I{}{justification}{indexitem3}}{%
   \leftskip=30\p@
   \rightskip=15\p@
   \parindent=-5\p@
   \parfillskip=-\rightskip
}
\@namedef{TP@T{indexitem}}{{}{4}}
\let\DI@item@join=\@firstofone
\let\DI@item@nojoin=\@empty
\@namedef{TP@I{}{indexitem}{fixed1}}#1#2#3#4{%
   \@letinstance\DI@item@justification{justification}{indexitem1}%
   \DI@item@nojoin
   \DI@item@justification
   \ifx \NoValue#4%
      #3\nobreak\hfil\nopagebreak[2]%
   \else
      #3\pfill#4%
   \fi
   \let\DI@item@join\@firstofone
   \let\DI@item@nojoin\@empty
   \par
}
\@namedef{TP@I{}{indexitem}{fixed2}}#1#2#3#4{%
   \@letinstance\DI@item@justification{justification}{indexitem2}%
   \DI@item@nojoin
   \DI@item@justification
   \ifx \NoValue#4%
      #3\nobreak\hfil\nopagebreak[2]%
   \else
      #3\pfill#4%
   \fi
   \let\DI@item@join\@firstofone
   \let\DI@item@nojoin\@empty
   \par
}
\@namedef{TP@I{}{indexitem}{fixed3}}#1#2#3#4{%
   \@letinstance\DI@item@justification{justification}{indexitem3}%
   \DI@item@nojoin
   \DI@item@justification
   \ifx \NoValue#4%
      #3\nobreak\hfil\nopagebreak[2]%
   \else
      #3\pfill#4%
   \fi
   \let\DI@item@join\@firstofone
   \let\DI@item@nojoin\@empty
   \par
}
\@namedef{TP@I{}{indexitem}{fixed-r1a}}#1#2#3#4{%
   \@letinstance\DI@item@justification{justification}{indexitem1}%
   \DI@item@nojoin
   \DI@item@justification
   \ifx \NoValue#4%
      #3%
      \def\DI@item@join##1{, }%
      \def\DI@item@nojoin{\nobreak\hfil\nopagebreak[4]\par}%
   \else
      #3\pfill#4\par
      \let\DI@item@join\@firstofone
      \let\DI@item@nojoin\@empty
   \fi
   \ignorespaces
}
\@namedef{TP@I{}{indexitem}{fixed-r2a-nocomma}}#1#2#3#4{%
   \@letinstance\DI@item@justification{justification}{indexitem2}%
   \DI@item@nojoin
   \DI@item@justification
   \ifx \NoValue#4%
      #3%
      \def\DI@item@join##1{ }%
      \def\DI@item@nojoin{\nobreak\hfil\nopagebreak[4]\par}%
   \else
      #3\pfill#4\par
      \let\DI@item@join\@firstofone
      \let\DI@item@nojoin\@empty
   \fi
   \ignorespaces
}
\@namedef{TP@I{}{indexitem}{fixed-a3r}}#1#2#3#4{%
   \@letinstance\DI@item@justification{justification}{indexitem3}%
   \DI@item@join{\DI@item@justification}%
   \ifx \NoValue#4%
      #3\hfil\nopagebreak[2]%
   \else
      #3\pfill#4%
   \fi
   \let\DI@item@join\@firstofone
   \let\DI@item@nojoin\@empty
   \par
}
\@namedef{TP@I{}{indexitem}{aloneaccept2}}#1#2#3#4{%
   \@letinstance\DI@item@justification{justification}{indexitem2}%
   \ifnum #1=\tw@
      \DI@item@nojoin \DI@item@justification
   \else\ifnum #2=\tw@
      \DI@item@nojoin \DI@item@justification
   \else
      \DI@item@join{\DI@item@justification}%
   \fi\fi
   \ifx \NoValue#4%
      #3\nobreak\hfil\vadjust{}%
   \else
      #3\pfill #4%
   \fi
   \let\DI@item@join\@firstofone
   \let\DI@item@nojoin\@empty
   \par
}
\@namedef{TP@I{}{indexitem}{aloneaccept3}}#1#2#3#4{%
   \@letinstance\DI@item@justification{justification}{indexitem3}%
   \ifnum #1=\thr@@
      \DI@item@nojoin \DI@item@justification
   \else\ifnum #2=\thr@@
      \DI@item@nojoin \DI@item@justification
   \else
      \DI@item@join{\DI@item@justification}%
   \fi\fi
   \ifx \NoValue#4%
      #3\nobreak\hfil\vadjust{}%
   \else
      #3\pfill #4%
   \fi
   \let\DI@item@join\@firstofone
   \let\DI@item@nojoin\@empty
   \par
}
\@namedef{TP@T{docindex}}{{}{2}}
\@ifpackagewith{docidx2e}{usedocindexps}{%
   \@namedef{TP@I{}{docindex}{index}}#1#2{%
      \begingroup
      \@letinstance\DI@indexitem@i{indexitem}{fixed1}%
      \@letinstance\DI@indexitem@ii{indexitem}{fixed2}%
      \@letinstance\DI@indexitem@iii{indexitem}{fixed3}%
      \columnsep=10pt%
      \parskip=0pt plus 1pt%
      \def\DI@letter@skip{10pt plus 2pt minus 3pt}%
      \def\DI@letter@format##1{%
         \par
         \hb@xt@\hsize{\hfil\textbf{##1}\hfil}%
         \nopagebreak
      }%
      \def\+{-}%
      \IfFileExists{\jobname.ind}{%
         \ifnum \c@IndexColumns>\@ne
            \begin{multicols}{\c@IndexColumns}[#1][\IndexMin]%
         \else
            \enough@room{\IndexMin}%
            #1\par
            \addvspace\multicolsep
         \fi
         \pagestyle{docindex}%
         \small
         \@nobreakfalse
         \DI@ind@setup
         \input{\jobname.ind}%
         \DI@item@nojoin
         \thispagestyle{docindex}
         \ifnum \c@IndexColumns>\@ne
            \end{multicols}%
         \else
            \enough@room\postmulticols
            \addvspace\multicolsep
         \fi
         \normalsize #2\par
      }{\typeout{No file \jobname.ind.}}%
      \endgroup
   }
}{%
   \@namedef{TP@I{}{docindex}{index}}#1#2{%
      \begingroup
      \@letinstance\DI@indexitem@i{indexitem}{fixed1}%
      \@letinstance\DI@indexitem@ii{indexitem}{fixed2}%
      \@letinstance\DI@indexitem@iii{indexitem}{fixed3}%
      \columnsep=10pt%
      \parskip=0pt plus 1pt%
      \def\DI@letter@skip{10pt plus 2pt minus 3pt}%
      \def\DI@letter@format##1{%
         \par
         \hb@xt@\hsize{\hfil\textbf{##1}\hfil}%
         \nopagebreak
      }%
      \def\+{-}%
      \IfFileExists{\jobname.ind}{%
         \ifnum \c@IndexColumns>\@ne
            \begin{multicols}{\c@IndexColumns}[#1][\IndexMin]%
         \else
            \enough@room{\IndexMin}%
            #1\par
            \addvspace\multicolsep
         \fi
         \small
         \@nobreakfalse
         \DI@ind@setup
         \input{\jobname.ind}%
         \DI@item@nojoin
         \ifnum \c@IndexColumns>\@ne
            \end{multicols}%
         \else
            \enough@room\postmulticols
            \addvspace\multicolsep
         \fi
         \normalsize #2\par
      }{\typeout{No file \jobname.ind.}}%
      \endgroup
   }
}
\@namedef{TP@I{}{docindex}{changes}}#1#2{%
   \begingroup
   \@letinstance\DI@indexitem@i{indexitem}{fixed1}%
   \@letinstance\DI@indexitem@ii{indexitem}{fixed-r2a-nocomma}%
   \@letinstance\DI@indexitem@iii{indexitem}{fixed-a3r}%
   \columnsep=10pt%
   \parskip=0pt plus 1pt%
   \def\DI@letter@skip{\z@skip}%
   \let\DI@letter@format\@gobble
   \def\+{-}%
   \IfFileExists{\jobname.gls}{%
      \ifnum \c@GlossaryColumns>\@ne
         \begin{multicols}{\c@GlossaryColumns}[#1][\GlossaryMin]%
      \else
         \enough@room{\GlossaryMin}%
         #1\par
         \addvspace\multicolsep
      \fi
      \small
      \makeatletter
      \@nobreakfalse
      \DI@ind@setup
      \input{\jobname.gls}%
      \DI@item@nojoin
      \ifnum \c@GlossaryColumns>\@ne
         \end{multicols}%
      \else
         \enough@room\postmulticols
         \addvspace\multicolsep
      \fi
      \normalsize #2\par
   }{\typeout{No file \jobname.gls.}}
   \endgroup
}
\renewcommand\PrintIndex{%
   \UseInstance{docindex}{index}{\index@prologue}{}%
   \global\let\PrintIndex\@empty
}
\renewcommand\PrintChanges{%
   \UseInstance{docindex}{changes}{\glossary@prologue}{}%
   \global\let\PrintChanges\@empty
}
\endinput
%%
%% End of file `docidx2e.sty'.
