% \CheckSum{108}
% \iffalse meta-comment
% ======================================================================
% scrkidx.dtx
% Copyright (c) Markus Kohm, 2002-2006
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
% This work may be distributed and/or modified under the conditions of
% the LaTeX Project Public License, version 1.3b of the license.
% The latest version of this license is in
%   http://www.latex-project.org/lppl.txt
% and version 1.3b 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 work consists of all files listed in manifest.txt.
% ----------------------------------------------------------------------
% scrkidx.dtx
% Copyright (c) Markus Kohm, 2002-2006
%
% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
% Version 1.3b, verteilt und/oder veraendert werden.
% Die neuste Version dieser Lizenz ist
%   http://www.latex-project.org/lppl.txt
% und Version 1.3b ist Teil aller Verteilungen von LaTeX
% Version 2005/12/01 oder spaeter und dieses Werks.
%
% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
% (allein durch den Autor verwaltet).
%
% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
% 
% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
% ======================================================================
% \fi
%
% \CharacterTable
%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%   Digits        \0\1\2\3\4\5\6\7\8\9
%   Exclamation   \!     Double quote  \"     Hash (number) \#
%   Dollar        \$     Percent       \%     Ampersand     \&
%   Acute accent  \'     Left paren    \(     Right paren   \)
%   Asterisk      \*     Plus          \+     Comma         \,
%   Minus         \-     Point         \.     Solidus       \/
%   Colon         \:     Semicolon     \;     Less than     \<
%   Equals        \=     Greater than  \>     Question mark \?
%   Commercial at \@     Left bracket  \[     Backslash     \\
%   Right bracket \]     Circumflex    \^     Underscore    \_
%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%   Right brace   \}     Tilde         \~}
%
% \iffalse
%%% From File: scrkidx.dtx
%<*driver>
% \fi
\ProvidesFile{scrkidx.dtx}[2006/03/28 v2.95 KOMA-Script (index)]
% \iffalse
\documentclass[halfparskip-]{scrdoc}
\usepackage[english,ngerman]{babel}
\usepackage[latin1]{inputenc}
\CodelineIndex
\RecordChanges
\GetFileInfo{scrkidx.dtx}
\title{\KOMAScript{} \partname\ \texttt{\filename}%
  \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}}
\date{\filedate}
\author{Markus Kohm}

\begin{document}
  \maketitle
  \tableofcontents
  \DocInput{\filename}
\end{document}
%</driver>
% \fi
%
% \selectlanguage{ngerman}
%
% \changes{v2.95}{2002/07/01}{%
%   erste Version aus der Aufteilung von \texttt{scrclass.dtx}}
%
% \section{Index}
%
% Der Index unterscheidet sich bei \KOMAScript{} scheinbar nicht
% wesentlich von dem, was die Standardklassen zu bieten haben. In
% Wirklichkeit sind die Unterschiede jedoch erheblich.
%
% Briefe haben keinen Index.
%
% \StopEventually{\PrintIndex\PrintChanges}
%
% \iffalse
%<*!letter>
% \fi
%
% \iffalse
%<*option>
% \fi
%
% \subsection{Optionen für den Index}
%
%  \begin{option}{idxtotoc}
%    \changes{v2.3h}{1995/01/21}{neue Option}
% Die Option sorgt dafür, dass der Index auch im Inhaltsverzeichnis
% erscheint.
%  \begin{macro}{\idx@heading}
% Dazu wird das interne Makro \cs{idx@heading} umdefiniert, über das 
% die Überschrift gesetzt und der Kolumnentitel angepasst wird.
%    \changes{v2.4c}{1996/04/04}{Kolumnentitel werden nun korrekt
%      behandelt}
%    \changes{v2.4g}{1996/11/04}{Index auch bei \textsf{scrartcl}
%      wieder zweispaltig}
%    \changes{v2.6c}{2000/06/10}{im Index kann nach der Überschrift
%      eine Präambel gesetzt werden}
%    \changes{v2.7a}{2001/01/04}{für \textsf{scrbook} und
%      \textsf{scrreprt} die Link-Erzeugung mit \texttt{hyperref}
%      verbessert}
%    \changes{v2.7j}{2001/05/27}{Setzen der Präambel in die
%      \texttt{theindex}-Umgebung verschoben}
%    \changes{v2.9l}{2003/01/19}{\cs{if@twoside} durch
%      \cs{if@openright} ersetzt}
% An dieser Stelle muss dafür gesorgt werden, dass im Falle von
% \textsf{scrbook} und \textsf{scrreprt} das Makro \cs{@schapter}
% verwendet wird. Damit dies hier möglich ist mussten tiefreifendere
% Änderungen am \LaTeX-Kernel bzw. am Gliederungsbefehl \cs{chapter}
% vorgenommen werden.
%
% Die ursprüngliche Definition sah so aus:
% \begin{verbatim}
% \renewcommand*\idx@heading{%
%   \if@twoside\cleardoublepage\else\clearpage\fi%
%   \@mkboth{\indexname}{\indexname}%
% %<report|book>   \addcontentsline{toc}{chapter}{\indexname}%
%   \twocolumn[%
% %<article>   \addsec
% %<report|book>    \@makeschapterhead
%     {\indexname}\index@preamble]%
% }
% \end{verbatim}\vspace{-\baselineskip}
% Die neue Definition wurde wie folgt geändert:
%    \begin{macrocode}
\DeclareOption{idxtotoc}{%
  \AtEndOfClass{%
    \renewcommand*\idx@heading{%
%<report|book>      \if@openright\cleardoublepage\else\clearpage\fi
%<article>      \twocolumn[\addsec{\indexname}]%
%<report|book>      \twocolumn[\addchap{\indexname}]%
      \@mkboth{\indexname}{\indexname}%
    }%
  }%
}
%    \end{macrocode}
%  \end{macro}
%  \end{option}
%
%
% \iffalse
%</option>
%<*body>
% \fi
%
% \subsection{Definitionen für den Index}
%
%  \begin{macro}{\index@preamble}
%    \changes{v2.6c}{2000/06/10}{neu (intern)}
%  \begin{macro}{\setindexpreamble}
%    \changes{v2.6c}{2000/06/10}{neu}
%    \changes{v2.6d}{2000/07/20}{Befehl funktioniert nachdem \cs{let}
%      durch \cs{newcommand*} ersetzt wurde}
%    \changes{v2.95}{2002/07/01}{\cs{let} und \cs{def}}
% Analog zu \cs{bibpreamble} kann \cs{index@preamble} vom Benutzer mit
% \cs{setindexpreamble} auf einen Text gesetzt werden, der nach der
% Indexüberschrift eingefügt wird. Hier wird ein echtes internes Makro
% verwendet, da nicht auf Kompatibilität geachtet werden muss.
%    \begin{macrocode}
\newcommand*{\index@preamble}{}
\let\index@preamble=\relax
\newcommand{\setindexpreamble}[1]{\def\index@preamble{#1}}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%
%  \begin{macro}{\idx@heading}
%    \changes{v2.3h}{1995/01/21}{neu (intern)}
%    \changes{v2.4c}{1995/04/04}{Kolumnentitel werden nun korrekt
%      behandelt}
%    \changes{v2.4g}{1996/11/04}{Index auch bei \texttt{scrartcl}
%      wieder zweispaltig}
%    \changes{v2.6c}{2000/06/10}{Verwendung von \cs{index@preamble}
%      eingefügt}
%    \changes{v2.7j}{2001/05/27}{Setzen der Präambel in die
%      \texttt{theindex}-Umgebung verschoben}
%    \changes{v2.9l}{2003/01/19}{\cs{if@twoside} durch
%      \cs{if@openright} ersetzt}
% Befehl zum Setzen der Überschrift des Indexes.
% Bis Version 2.7a sah diese Definition so aus:
% \begin{verbatim}
% \newcommand*{\idx@heading}{%
%   \if@twoside\cleardoublepage\else\clearpage\fi%
%   \@mkboth{\indexname}{\indexname}%
%   \twocolumn[%
% %<article>  \section*%
% %<report|book>  \@makeschapterhead%
%     {\indexname}\index@preamble]
% }
% \end{verbatim}\vspace{-\baselineskip}
% Dagegen ist grundsätzlich nichts zu sagen. Allerdings gibt es seit
% Version 2.7b die neue Methode der Kapitel-Präambel, die extra
% eingeführt wurde, um die \textsf{hyperref}-Links -- insbesondere
% den des Index -- zumindest bei Verwendung von \texttt{hpdftex.def}
% zu verbessern. Deshalb wurde die Implementierung entsprechend
% abgeändert. Außerdem wurde das Setzen der Präambel aus
% Konsistenzgründen in Version 2.7j übereinstimmten mit der
% \texttt{thebibliography}-Umgebung in die \texttt{theindex}-Umgebung
% verschoben.
%    \begin{macrocode}
\newcommand*{\idx@heading}{%
%<report|book>  \if@openright\cleardoublepage\else\clearpage\fi%
%<article>  \twocolumn[\section*{\indexname}]%
%<report|book>  \twocolumn[\chapter*{\indexname}]%
  \@mkboth{\indexname}{\indexname}%
}
%    \end{macrocode}
%  \end{macro}
%
%  \begin{environment}{theindex}
%    \changes{v2.8d}{2001/07/05}{\cs{indexpagestyle} statt
%      \texttt{plain}}
%    \changes{v2.3h}{1995/01/21}{Verwendung von \cs{idx@heading}}
%    \changes{v2.7j}{2001/05/27}{Setzen der Präambel in die
%      \texttt{theindex}-Umgebung verschoben}
% Der Index ist wie üblich definiert.
%    \begin{macrocode}
\newenvironment{theindex}{%
  \if@twocolumn
    \@restonecolfalse
  \else
    \@restonecoltrue
  \fi
  \columnseprule \z@
  \columnsep 35\p@
%<book|report>  \setchapterpreamble{\index@preamble}%
  \idx@heading%
%<article>  \index@preamble\par\nobreak
  \thispagestyle{\indexpagestyle}\parindent\z@
  \setlength{\parskip}{\z@ \@plus .3\p@}%
  \setlength{\parfillskip}{\z@ \@plus 1fil}%
  \let\item\@idxitem
}{%
  \if@restonecol\onecolumn\else\clearpage\fi
}
%    \end{macrocode}
%  \begin{macro}{\@idxitem}
% Hier haben wird den Anfang eines Eintrags in den Index
%  \begin{macro}{\subitem}
%    \changes{v2.3g}{1996/01/14}{Verwendung von \cs{@idxitem} spart
%      Speicher}
%  \begin{macro}{\subsubitem}
%    \changes{v2.3g}{1996/01/14}{Verwendung von \cs{@idxitem} spart
%      Speicher}
%  \begin{macro}{\indexspace}
% und ebenso Unter- und Unteruntereinträge sowie ein vertikaler
% Abstand.
%    \begin{macrocode}
\newcommand*\@idxitem{\par\hangindent 40\p@}
%    \begin{macrocode}
\newcommand*\subitem{\@idxitem \hspace*{20\p@}}
\newcommand*\subsubitem{\@idxitem \hspace*{30\p@}}
\newcommand*\indexspace{%
  \par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax
}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{environment}
%
%
% \subsection{Standardbezeichner}
%
%  \begin{macro}{\indexname}
% Names des Index:
%    \begin{macrocode}
\newcommand*\indexname{Index}
%    \end{macrocode}
%  \end{macro}
%
%
% \iffalse
%</body>
% \fi
%
% \iffalse
%</!letter>
% \fi
%
%
% \Finale
%
\endinput
%
% end of file `scrkidx.dtx'
%%% Local Variables:
%%% mode: doctex
%%% TeX-master: t
%%% End:
