% \CheckSum{410}
% \iffalse meta-comment
% ======================================================================
% scrkliof.dtx
% Copyright (c) Markus Kohm, 2002-2012
%
% 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.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 work consists of all files listed in manifest.txt.
% ----------------------------------------------------------------------
% scrkliof.dtx
% Copyright (c) Markus Kohm, 2002-2012
%
% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
% Version 1.3c, verteilt und/oder veraendert werden.
% Die neuste Version dieser Lizenz ist
%   http://www.latex-project.org/lppl.txt
% und Version 1.3c 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: scrkliof.dtx
%<*driver>
% \fi
\ProvidesFile{scrkliof.dtx}[2010/11/01 v3.08 KOMA-Script (lists of)]
% \iffalse
\documentclass[halfparskip-]{scrdoc}
\usepackage[english,ngerman]{babel}
\usepackage[latin1]{inputenc}
\CodelineIndex
\RecordChanges
\GetFileInfo{scrkliof.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/06/28}{%
%   erste Version aus der Aufteilung von \texttt{scrclass.dtx}}
%
% \section{Verzeichnisse}
%
% \LaTeX{} Klassen bieten eine ganze Reihe von Verzeichnissen. Thema
% dieses Abschnitts sind die Verzeichnisse der
% Gleitumgebungen und das Inhaltsverzeichnis. \KOMAScript{} bietet
% selbst das Verzeichnis der Gleittabellen und der Abbildungen. Es
% unterstützt außerdem die Verzeichnisse der mit dem \textsf{float}
% Paket angelegten Gleitumgebungen.
%
% Briefe verfügen über keine Verzeichnisse.
%
% \StopEventually{\PrintIndex\PrintChanges}
%
% \iffalse
%<*!letter>
% \fi
%
% \iffalse
%<*option>
% \fi
%
%
% \subsection{Optionen für das Inhaltsverzeichnis}
%
% Einige Anweisungen und Einstellungen werden bereits für die Optionen
% benötigt und deshalb vorab definiert.
%
% \begin{macro}{\if@tocleft}
%   \changes{v2.8q}{2001/11/14}{neuer Schalter}
%   \changes{v2.98c}{2008/03/05}{wird früher definiert}
% \begin{macro}{\@toclefttrue}
% \begin{macro}{\@tocleftfalse}
% Die Wahl der Darstellungsart für das Inhaltsverzeichnis wird in einem
% Schalter gespeichert.
%    \begin{macrocode}
\newif\if@tocleft
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{option}{toc}
%   \changes{v2.98c}{2008/03/04}{Neue Option}
% Dies ist die zentrale Option für Einstellungen des Inhaltsverzeichnisses.
%    \begin{macrocode}
\KOMA@key{toc}{%
  \KOMA@set@ncmdkey{toc}{@tempa}{%
%    \end{macrocode}
% Es gibt Werte, um zu bestimmen, welche Verzeichnisse ins Inhaltsverzeichis
% aufgenommen werden. Eigentlich sind das Optionen der jeweiligen
% Verzeichnisses, aber das muss sich der Anwender ja nicht unbedingt merken.
%    \begin{macrocode}
    {noindex}{0},{noidx}{0},%
    {index}{1},{idx}{1},%
    {nolistof}{2},%
    {listof}{3},%
    {listofnumbered}{4},{numberedlistof}{4},%
    {nobibliography}{5},{nobib}{5},%
    {bibliography}{6},{bib}{6},%
    {bibliographynumbered}{7},{bibnumbered}{7},{numberedbibliography}{7},%
    {numberedbib}{7},%
%    \end{macrocode}
% Dann gibt es Optionen für die Darstellungsarten des
% Inhaltsverzeichnisses. Die Variante \texttt{graduated} ist die altbekannte
% Variante. Bei \texttt{flat} hingegen wird eine tabellenartige Form
% verwendet, bei der die Nummern, Texte und Seitenzahlen jeweils untereinander
% stehen. Der für die Nummern benötigte Platz wird dabei automatisch
% ermittelt.
%    \begin{macrocode}
    {flat}{8},{left}{8},%
    {graduated}{9},{indent}{9},{indented}{9}%
  }{#1}%
  \ifcase \@tempa\relax
    \KOMA@options{index=notoc}{}%
  \or
    \KOMA@options{index=totoc}{}%
  \or
    \KOMA@options{listof=notoc}{}%
  \or
    \KOMA@options{listof=totoc}{}%
  \or
    \KOMA@options{listof=numbered}{}%
  \or
    \KOMA@options{bibliography=nottotoc}{}%
  \or
    \KOMA@options{bibliography=totoc}{}%
  \or
    \KOMA@options{bibliography=totocnumbered}{}%
  \or
    \@toclefttrue
  \or
    \@tocleftfalse
  \fi
}
%    \end{macrocode}
% \end{option}
%
% \begin{option}{tocleft}
%   \changes{v2.8q}{2001/11/14}{neue Option}
%   \changes{v2.98c}{2008/03/05}{obsolet}
%   \changes{v3.01a}{2008/11/20}{deprecated}
% \begin{option}{tocindent}
%   \changes{v2.8q}{2001/11/14}{neue Option}
%   \changes{v2.98c}{2008/03/05}{obsolet}
%   \changes{v3.01a}{2008/11/20}{deprecated}
%    \begin{macrocode}
\KOMA@DeclareDeprecatedOption{tocleft}{toc=flat}
\KOMA@DeclareDeprecatedOption{tocindent}{toc=graduated}
%    \end{macrocode}
%  \end{option}
%  \end{option}
%
%
% \subsection{Optionen für die Gleitumgebungen}
%
% Einige Anweisungen und Einstellungen werden bereits für die Optionen
% benötigt und deshalb vorab definiert.
%
% \begin{macro}{\float@@listhead}
%   \changes{v2.98c}{2008/03/05}{neu (intern)}
% Setzt nur die Überschrift und sonst nichts. Dabei wird die Überschrift als
% einziges Argument übergeben.
%    \begin{macrocode}
\newcommand*{\float@@listhead}{%
%<article>  \section*
%<report|book>  \chapter*
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\if@dynlist}
%   \changes{v2.8q}{2001/11/14}{neuer Schalter}
% \begin{macro}{\@dynlisttrue}
% \begin{macro}{\@dynlistfalse}
% Die Wahl der Darstellungsart wird in einem Schalter gespeichert.
%    \begin{macrocode}
\newif\if@dynlist
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{option}{listof}
%   \changes{v2.98c}{2008/03/05}{Neue Option}
%   \changes{v3.06}{2010/06/02}{Alle über \textsf{tocbasic} realisierten
%     Einstellungen wirken sich auch auf Verzeichnisse des Besitzers
%     \texttt{float} aus, die erst später unter Kontrolle von
%     \textsf{tocbasic} gestellt werden.}
% Dies ist die zentrale Option für die Gleitumgebungsverzeichnisse.
%    \begin{macrocode}
\KOMA@key{listof}{%
  \KOMA@set@ncmdkey{listof}{@tempa}{%
%    \end{macrocode}
% Es gibt Werte, die dafür sorgen, dass die Verzeichnisse der Gleitumgebungen
% im Inhalsverzeichnis aufgeführt werden. Dazu muss nur \cs{float@@listhead}
% umdefiniert werden.
%    \begin{macrocode}
    {notoc}{0},{nottotoc}{0},{plainheading}{0},%
    {totoc}{1},{toc}{1},{notnumbered}{1},%
    {numbered}{2},{totocnumbered}{2},{tocnumbered}{2},{numberedtotoc}{2},%
    {numberedtoc}{2},%
%    \end{macrocode}
% Dann gibt es Optionen für die Darstellungsarten des
% Inhaltsverzeichnisses. Die Variante \texttt{graduated} ist die altbekannte
% Variante. Bei \texttt{flat} hingegen wird eine tabellenartige Form
% verwendet, bei der die Nummern, Texte und Seitenzahlen jeweils untereinander
% stehen. Der für die Nummern benötigte Platz wird dabei automatisch
% ermittelt.
%    \begin{macrocode}
    {flat}{3},{left}{3},%
    {graduated}{4},{indent}{4},{indented}{4},%
%    \end{macrocode}
% Dann gibt es eine Option, mit der die Gliederungsebene der Verzeichnisse
% verändert werden kann.
%    \begin{macrocode}
    {leveldown}{5},
%    \end{macrocode}
%   \changes{v3.06}{2010/05/18}{neuer Wert \texttt{entryprefix}}
% Dann gibt es eine Option, mit der die Einträge in die Verzeichnisse mit
% einem Prefix versehen werden können, soweit ein solcher Prefix
% existiert. Dieser Wert beinhaltet gleichzeitig auch den Wert \texttt{flat}.
%    \begin{macrocode}
    {entryprefix}{6},
%    \end{macrocode}
% Dann gibt es Optionen, für die Unterteilung auf Kapitelebene. Allerdings nur
% für \textsf{scrbook} und \textsf{scrreprt}.
%    \begin{macrocode}
%<*book|report>
    {chapterentry}{7},{withchapterentry}{7},%
    {nochaptergap}{8},{ignorechapter}{8},%
    {chaptergapsmall}{9},{smallchaptergap}{9},%
    {chaptergapline}{10},{onelinechaptergap}{10}%
%</book|report>
  }{#1}%
  \ifcase \@tempa\relax
    \renewcommand*{\float@@listhead}{%
%<article>    \section*
%<report|book>    \chapter*
    }%
    \doforeachtocfile[float]{%
      \unsettoc{\@currext}{numbered}%
      \unsettoc{\@currext}{totoc}%
    }%
    \AtAddToTocList[float]{%
      \unsettoc{\@currext}{numbered}%
      \unsettoc{\@currext}{totoc}%
    }%
  \or% totoc
    \renewcommand*{\float@@listhead}{%
%<article>    \addsec
%<report|book>    \addchap
    }%
    \doforeachtocfile[float]{%
      \unsettoc{\@currext}{numbered}%
      \setuptoc{\@currext}{totoc}%
    }%
    \AtAddToTocList[float]{%
      \unsettoc{\@currext}{numbered}%
      \setuptoc{\@currext}{totoc}%
    }%
  \or% numbered
    \renewcommand*{\float@@listhead}{%
%<article>    \section
%<report|book>    \chapter
    }%
    \doforeachtocfile[float]{%
      \setuptoc{\@currext}{numbered}%
      \setuptoc{\@currext}{totoc}%
    }%
    \AtAddToTocList[float]{%
      \setuptoc{\@currext}{numbered}%
      \setuptoc{\@currext}{totoc}%
    }%
  \or% flat
    \@dynlisttrue
  \or% graduated
    \@dynlistfalse
  \or% leveldown
    \doforeachtocfile[float]{%
      \setuptoc{\@currext}{leveldown}%
    }%
    \AtAddToTocList[float]{%
      \setuptoc{\@currext}{leveldown}%
    }%
  \or% entryprefix
    \@dynlisttrue
    \doforeachtocfile[float]{%
      \BeforeStartingTOC[\@currext]{%
        \scr@ifundefinedorrelax{listof\@currext entryname}{}{%
          \expandafter\def\expandafter\numberline@prefix
          \expandafter{\csname listof\@currext entryname\endcsname
            \nobreakspace}%
        }%
      }%
    }%
    \AtAddToTocList[float]{%
      \BeforeStartingTOC[\@currext]{%
        \scr@ifundefinedorrelax{listof\@currext entryname}{}{%
          \expandafter\def\expandafter\numberline@prefix
          \expandafter{\csname listof\@currext entryname\endcsname
            \nobreakspace}%
        }%
      }%
    }%
%<*book|report>
  \or% chapterentry
    \KOMA@options{chapteratlists=entry}{}%
  \or% chaptergap
    \KOMA@options{chapteratlists=\z@}{}%
  \or% chaptergapsmall
    \KOMA@options{chapteratlists=10\p@}{}%
  \or% chaptergapline
    \KOMA@options{chapteratlists=\baselineskip}{}%
%</book|report>
  \fi
}
%    \end{macrocode}
% \end{option}
%
% \begin{option}{liststotoc}
%   \changes{v2.3h}{1995/01/21}{neue Option}
%   \changes{v2.8b}{2001/06/26}{Verwendung von \cs{float@headings}}
%   \changes{v2.4a}{1996/03/13}{\cs{listtabelname} durch
%     \cs{listtablename} ersetzt}
%   \changes{v2.8g}{2001/07/18}{\cs{float@headings} umbenannt in
%     \cs{float@listhead}} 
%   \changes{v2.98c}{2008/03/05}{obsolet}
%   \changes{v3.01a}{2008/11/20}{deprecated}
%    \begin{macrocode}
\KOMA@DeclareDeprecatedOption{liststotoc}{listof=totoc}
%    \end{macrocode}
% \end{option}
%
% \begin{option}{liststotocnumbered}
%   \changes{v2.8q}{2002/04/08}{dem langjährigen Druck nachgegeben}
%   \changes{v2.9p}{2003/07/07}{Nummerierung im Kolumnentitel}
%   \changes{v2.98c}{2008/03/05}{obsolet}
%   \changes{v3.01a}{2008/11/20}{deprecated}
%    \begin{macrocode}
\KOMA@DeclareDeprecatedOption{liststotocnumbered}{listof=numbered}
%    \end{macrocode}
% \end{option}
%
%
% \begin{option}{listsleft}
%   \changes{v2.8q}{2001/11/14}{neue Option}
%   \changes{v2.98c}{2008/03/05}{obsolet}
%   \changes{v3.01a}{2008/11/20}{deprecated}
% \begin{option}{listsindent}
%   \changes{v2.8q}{2001/11/14}{neue Option}
%   \changes{v2.98c}{2008/03/05}{obsolet}
%   \changes{v3.01a}{2008/11/20}{deprecated}
%    \begin{macrocode}
\KOMA@DeclareDeprecatedOption{listsleft}{listof=flat}
\KOMA@DeclareDeprecatedOption{listsindent}{listof=graduated}
%    \end{macrocode}
% \end{option}
% \end{option}
%
% \begin{option}{chapteratlists}
%   \changes{v2.96a}{2006/12/03}{neue Option}
%   \changes{v2.98c}{2008/03/05}{nicht mehr bei \textsf{scrartcl}}
% \begin{macro}{\if@chaptertolists}
%   \changes{v2.96a}{2006/12/03}{neuer Schalter}
% \begin{macro}{\@chapterlistsgap}
%   \changes{v2.96a}{2006/12/03}{neues Macro (intern)}
% Option, um einzugstellen, ob Kapitel in den Verzeichnissen der
% Gleitumgebungen Spuren hinterlassen. Man kann wahlweise Lücken einstellen
% (Voreinstellung mit 10\,pt) oder die Kapitelüberschrift eintragen lassen.
% Der Schalter gibt dabei an, ob die Kapitelüberschrift eingetragen werden
% soll. Das interne Hilfsmakro \cs{@chapterlistsgap} enthält den gewünschten
% Abstand.
%    \begin{macrocode}
%<*book|report>
\newcommand*{\@chapterlistsgap}{10\p@}
\newif\if@chaptertolists\@chaptertolistsfalse
\KOMA@key{chapteratlists}[entry]{%
  \ifstr{#1}{entry}{%
    \@chaptertoliststrue\renewcommand*{\@chapterlistsgap}{\z@}%
  }{%
    \@chaptertolistsfalse\renewcommand*{\@chapterlistsgap}{#1}%
  }%
}
%</book|report>
%    \end{macrocode}
% \end{macro}  
% \end{macro}  
% \end{option}
%
% \iffalse
%</option>
%<*body>
% \fi
%
% \subsection{Definitionen für alle Verzeichnisse}
%
% Einige Definitionen werden von unterschiedlichen Verzeichnissen
% verwendet. Diese sind hier zu finden.
%
% \changes{v3.06}{2010/06/02}{einschalten des \texttt{tocbasic}-Features
%   \texttt{chapteratlist} in die Datei \texttt{scrkliof.dtx} verschoben}
% Bei Büchern wird für jedes Verzeichnis des Besitzers \texttt{float} das
% Feature \texttt{chapteratlist} gesetzt. Das gilt auch für solche
% Verzeichnisse, die noch gar nicht definiert sind.
%    \begin{macrocode}
%<*book|report>
\doforeachtocfile[float]{%
  \setuptoc{\@currext}{chapteratlist}%
}
\AtAddToTocList[float]{%
  \setuptoc{\@currext}{chapteratlist}%
}
%</book|report>
%    \end{macrocode}
% \begin{macro}{\numberline}
%   \changes{v2.3c}{1995/08/06}{\cs{numberline} umdefiniert}
%   \changes{v3.06}{2010/05/18}{Verwendung von \cs{numberline@prefix} und
%     \cs{numberline@postfix}}
% Dieses Makro wird indirekt im Inhaltsverzeichnis verwendet und muss
% umdefiniert werden, um Duden, 20.~Auflage, Regel~5 und Regel~6 zu
% implementieren.
%    \begin{macrocode}
\renewcommand*{\numberline}[1]{%
  \numberline@box{%
    \numberline@prefix\numberline@numberformat{#1}\numberline@postfix
  }%
}
%    \end{macrocode}
% \begin{macro}{\numberline@prefix}
%   \changes{v3.06}{2010/05/18}{neu (intern)}
% Das ist in der Voreinstellung einfach leer. Es könnte verwendet werden, um
% etwas vor die Nummer zu setzen oder die Nummer rechtsbündig zu setzen.
%    \begin{macrocode}
\newcommand*{\numberline@prefix}{}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\numberline@postfix}
%   \changes{v3.06}{2010/05/18}{neu (intern)} 
% Das ist in der Voreinstellung einfach \cs{hfil} und dient dazu die Nummer
% linksbündig zu platzieren.
%    \begin{macrocode}
\newcommand*{\numberline@postfix}{\hfil}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\numberline@numberformat}
%   \changes{v3.06}{2010/05/18}{neu (intern)}
% Das dient in der Voreinstellung dazu, Regel~5 und 6 aus der 20.~Auflage des
% DUDENs umzusetzen.
%    \begin{macrocode}
\newcommand*{\numberline@numberformat}[1]{#1\autodot}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\numberline@box}
%   \changes{v3.06}{2010/05/18}{neu (intern)} 
% Das dient in der Voreinstellung dazu, die Gliederungsnummer in eine Box zu
% setzen.
%    \begin{macrocode}
\newcommand*{\numberline@box}[1]{\hb@xt@\@tempdima{#1}}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
%  \begin{macro}{\@pnumwidth}
%  \begin{macro}{\@tocrmarg}
%  \begin{macro}{\@dotsep}
% Einige Makros für die Formatierung der Verzeichniseinträge:
% \begin{description}
% \item[\cs{@pnumwidth}] ist der Platz für die Seitenzahl.
% \item[\cs{@tocrmarg}] ist der rechte Rand bei mehrzeiligen
%   Verzeichniseinträgen. Dieser wird hier größer als \cs{@pnumwidth}
%   gewählt.
% \item[\cs{\@dotsep}] ist der Abstand zwischen den einzelnen
%   Punkten.
% \end{description}
%    \begin{macrocode}
\newcommand*\@pnumwidth{1.55em}
\newcommand*\@tocrmarg {2.55em}
\newcommand*\@dotsep{4.5}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%
%  \begin{macro}{\before@starttoc}
%    \changes{v2.8q}{2001/11/14}{neu (intern)}
% Dieses Makro führt im Falle von \texttt{tocleft} oder
% \texttt{listsleft} am Anfang eines Verzeichnisses alle notwendigen
% Änderungen durch, um das Verzeichnis entsprechend zu handhaben.
% \begin{macro}{\scr@dottedtocline}
%   \changes{v2.9k}{2003/01/03}{auch das dritte Argument wird ge"andert}
% \begin{macro}{\scr@numberline}
%   \changes{v3.06}{2010/05/18}{nicht länger benötigt}
% \begin{macro}{\last@l@number}
% Dafür werden ein paar Hilfsmakros benötigt, die vorsichtshalber
% global vordefiniert werden.
%    \begin{macrocode}
\newcommand*{\scr@dottedtocline}{}
\newcommand*{\last@l@number}{}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \begin{macro}{\@l@number}
%    \changes{v2.8q}{2001/11/14}{neu (intern)}
% In diesem Makro wird während der Erstellung eines Verzeichnisses
% Inhaltsverzeichnisses die aktuelle Breite der Nummer gespeichert.
%  \begin{macro}{\set@l@number}
%    \changes{v2.8q}{2001/11/14}{neu (intern)}
% Dieses Makro ist dafür verantwortlich, dass zum einen \cs{@tempdima}
% für den Aufruf von \cs{numberline@box} auf den richtigen Wert gesetzt
% wird, zum anderen wird die aktuelle größte Breite der Nummer hier
% angepasst.
%    \begin{macrocode}
\newcommand*{\@l@number}{}
\newcommand*{\set@l@number}[1]{%
  \settowidth{\@tempdima}{#1\enskip}%
  \ifdim\@tempdima >\@l@number
    \xdef\@l@number{\the\@tempdima}%
  \fi%
  \ifdim\@tempdima >\last@l@number \else
    \setlength{\@tempdima}{\last@l@number}%
  \fi%
}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
% Kommen wir endlich zu \cs{before@starttoc}:
%   \changes{v2.95a}{2006/07/12}{Initialisierung im \cs{@empty}-Fall}
%   \changes{v3.06}{2010/05/18}{statt \cs{numberline} wird \cs{numberline@box}
%     umdefiniert} 
%    \begin{macrocode}
\newcommand*{\before@starttoc}[1]{
  \let\scr@dottedtocline=\@dottedtocline
  \renewcommand*{\@dottedtocline}[3]{%
    \scr@dottedtocline{##1}{\z@}{\last@l@number}}%
  \renewcommand*{\numberline@box}[1]{%
    \set@l@number{##1}\hb@xt@\@tempdima{##1}}%
  \gdef\@l@number{\z@}%
  \@ifundefined{#1@l@number}{%
    \def\last@l@number{2em}%
  }{%
    \expandafter\ifx\csname #1@l@number\endcsname\@empty
      \let\last@l@number\z@
    \else
      \expandafter\let\expandafter\last@l@number
      \expandafter=\csname#1@l@number\endcsname
    \fi
  }%
}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\after@starttoc}
%    \changes{v2.8q}{2001/11/14}{neu (intern)}
% Dieses Makro schreibt am Ende den entsprechenden Eintrag in die
% \texttt{aux}-Datei.
%    \begin{macrocode}
\newcommand*{\after@starttoc}[1]{%
  \protected@write\@auxout{}{%
    \string\gdef\expandafter\string\csname#1@l@number\endcsname{%
      \@l@number}}%
  }
%    \end{macrocode}
%  \end{macro}
%
% Dafür sorgen, dass die Verzeichnisse von \textsf{tocbasic} so gesetzt
% werden, wie wir das gerne hätten (wird über einen Trick auch für das
% Inhaltsverzeichnis verwendet):
%    \begin{macrocode}
\g@addto@macro\tocbasic@@before@hook{%
  \if@dynlist\expandafter\before@starttoc\expandafter{\@currext}\fi
}
\g@addto@macro\tocbasic@@after@hook{%
  \if@dynlist\expandafter\after@starttoc\expandafter{\@currext}\fi
}
%    \end{macrocode}
%
%
% \subsection{Definitionen für das Inhaltsverzeichnis}
%
% \begin{macro}{\contentsname}
% \begin{macro}{\listoftocname}
%   \changes{v3.00}{2008/07/03}{neu für Paket \textsf{tocbasic}}
% Der Name des Verzeichnisses.
%    \begin{macrocode}
\newcommand*\contentsname{Contents}
\newcommand*\listoftocname{\contentsname}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
%  \begin{Counter}{tocdepth}
% Der Zähler gibt an, bis zu welcher Gliederungebene Einträge in das
% Inhaltsverzeichnis aufgenommen werden. Da \textsf{scrartcl} eine
% Ebene tiefer beginnt, wird auch eine Ebene tiefer eingetragen. Damit
% finden sich -- abgesehen von \cs{part} -- immer drei Ebenen im
% Inhaltsverzeichnis.
%    \begin{macrocode}
%<book|report>\setcounter{tocdepth}{2}
%<article>\setcounter{tocdepth}{3}
%    \end{macrocode}
%  \end{Counter}
%
% \begin{macro}{\toc@heading}
%   \changes{v2.3h}{1995/01/21}{neu (intern)}
%   \changes{v2.95}{2002/06/28}{auch für \textsf{scrreprt} und
%     \textsf{scrbook}}
%   \changes{v3.00}{2008/07/04}{Verwendung von \cs{toc@heading} ist nicht
%     länger empfohlen}
%   \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}%
%   Befehl, zum Setzen der Überschrift des Inhaltsverzeichnisses. Eigentlich
%   ist das überflüssig, weil es nur einmal verwendet wird. Aus Gründen der
%   Konsistenz mit den anderen Verzeichnissen machen wir das hier aber
%   genauso.
%    \begin{macrocode}
\newcommand*\toc@heading{%
  \ClassWarning{\KOMAClassName}{%
    usage of deprecated \string\toc@heading!\MessageBreak
    You should use the features of package `tocbasic'\MessageBreak
    instead of \string\toc@heading.\MessageBreak
    Definition of \string\toc@heading\space my be removed from\MessageBreak
    KOMA-Script soon, so it should not be used
  }%
%<article>  \section*{\contentsname}%
%<book|report>  \chapter*{\contentsname}%
  \@mkboth{\MakeMarkcase{\contentsname}}{\MakeMarkcase{\contentsname}}%
}
%    \end{macrocode}
% \end{macro}
%
%  \begin{macro}{\toc@l@number}
%    \changes{v2.8q}{2001/11/14}{neu}
% Dieses Makro wird innerhalb von \cs{tableofcontents} über
% \cs{before@starttoc} und \cs{after@starttoc} in der
% \texttt{aux}-Datei global definiert. Aus Sicherheitsgründen wird es
% hier global vordefiniert.
%    \begin{macrocode}
\newcommand*{\toc@l@number}{}
%    \end{macrocode}
%  \end{macro}
%
% \begin{macro}{\tableofcontents}
%   \changes{v2.3h}{1995/01/21}{Verwendung von \cs{toc@heading}}
%   \changes{v2.8l}{2001/08/16}{Gruppe eingefügt und \cs{parskip} auf
%     0 gesetzt}
%   \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}%
%     \cs{@parskip@indent}}
%   \changes{v2.8q}{2001/11/14}{\cs{if@tocleft} bearbeiten}
%   \changes{v2.95}{2002/06/28}{\textsf{article} beachtet ebenfalls
%     \texttt{tocleft}}
%   \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent}
%     ersetzt}
%   \changes{v3.00}{2008/07/04}{auf \textsf{tocbasic} umgestellt}
% Die Ausgabe des Inhaltsverzeichnisses.
%    \begin{macrocode}
\newcommand*{\tableofcontents}{%
  \begingroup\let\if@dynlist\if@tocleft\listoftoc{toc}\endgroup
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\addtocentrydefault}
%   \changes{v3.08}{2010/11/01}{Neu}
% Seit Version~3.08 werden Einträge ins Inhaltsverzeichnis in der
% Voreinstellung über diese Anweisung vorgenommen. Das erste Argument ist
% dabei die Gliederungsebene. Das zweite Argument ist die (formatierte)
% Gliederungsnummer oder leer, falls die Überschrift nicht nummeriert
% wird. Das dritte Argument ist der Überschriftentext, der in das
% Inhaltsverzeichnis soll.
%    \begin{macrocode}
\newcommand{\addtocentrydefault}[3]{%
  \ifstr{#2}{}{%
    \addcontentsline{toc}{#1}{#3}%
  }{%
    \addcontentsline{toc}{#1}{\protect\numberline{#2}#3}%
  }%
}
%    \end{macrocode}
% \end{macro}
%
%
% \subsection{Definitionen für die Verzeichnisse der
%   Gleitumgebungen}
%
% \begin{macro}{\float@listhead}
%   \changes{v2.8b}{2001/06/26}{neu (für alle Paketautoren)}%
%   \changes{v2.8g}{2001/07/18}{\cs{float@headings} umbenannt in
%     \cs{float@listhead}}%
%   \changes{v2.98c}{2008/03/05}{\cs{float@@listhead} wird verwendet}%
%   \changes{v3.00}{2008/07/04}{Verwendung von \cs{float@listhead} ist nicht
%     länger empfohlen}%
%   \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}%
%   In Absprache mit Anselm Lingnau, dem Autor des Pakets \textsf{float}, wird
%   ab Version 2.8b \cs{float@headings} zum Setzen des Kolumnentitels bei den
%   Verzeichnissen verwendet, die \textsf{float} für neu definierte floats zur
%   Verfügung stellt. Dabei definiert \textsf{float} die Anweisung nur, wenn
%   sie nicht bereits existiert. Die Zusammenarbeit wird dadurch
%   verbessert. Da Anselm sich in letzter Minute entschlossen hat, das Makro
% \cs{float@listhead} zu nennen, wurde dies in Version 2.8g angepasst.
%    \begin{macrocode}
\newcommand*{\float@listhead}[1]{%
  \scr@float@listhead@warning
  \float@@listhead{#1}%
  \@mkboth{\MakeMarkcase{#1}}{\MakeMarkcase{#1}}%
%    \end{macrocode}
%    \changes{v2.8q}{2001/11/14}{dynamische Anpassung an die Nummer}
% Dies ist der passende Ort, um die Breite, die für die Nummer des
% Gleitobjekts benötigt wird zu ermitteln und anzupassen, falls dies
% geünscht wird. Dazu findet eine lokale Umdefinierung von
% \cs{@starttoc} statt. Die Umdefinierung ist deshalb lokal, weil alle
% mir bekannten Verzeichnisse von Gleitobjekten innerhalb einer Gruppe
% ausgegeben werden.
%    \begin{macrocode}
  \if@dynlist%
    \newcommand*{\scr@starttoc}{}%
    \let\scr@starttoc=\@starttoc
    \renewcommand*{\@starttoc}[1]{%
      \before@starttoc{##1}\scr@starttoc{##1}\after@starttoc{##1}%
    }%
  \fi
}
%    \end{macrocode}
% \begin{macro}{\scr@float@listhead@warning}
%   \changes{v3.01}{2008/11/13}{Neu (intern)}
% Die Warnung für die Verwendung von \cs{float@listhead}, dessen Definition
% irgendwann aus den Klassen verschwinden wird.
%    \begin{macrocode}
\newcommand*{\scr@float@listhead@warning}{%
  \ClassWarning{\KOMAClassName}{%
    Usage of deprecated \string\float@listhead!\MessageBreak
    You should use the features of package `tocbasic'\MessageBreak
    instead of \string\float@listhead.\MessageBreak
    Definition of \string\float@listhead\space my be removed from\MessageBreak
    `\KOMAClassName' soon, so it should not be used
  }%
}
%    \end{macrocode}
%  \end{macro}
% \begin{macro}{\scr@float@addtolists@warning}
%   \changes{v3.01}{2008/11/13}{Neu (intern)}
% Die Warning für die Verwendung von \cs{float@addtolists}, dessen
% Unterstützung irgendwann aus den Klassen verschwinden wird.
%    \begin{macrocode}
\newcommand*{\scr@float@addtolists@warning}{%
  \ClassWarningNoLine{\KOMAClassName}{%
    \string\float@addtolists\space detected!\MessageBreak
    You should use the features of package `tocbasic'\MessageBreak
    instead of \string\float@addtolists.\MessageBreak
    Support for \string\float@addtolists\space may be removed
    from\MessageBreak
    `\KOMAClassName' soon
  }%
  \global\let\scr@float@addtolists@warning\relax
}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%
% \begin{macro}{\listfigurename}
% \begin{macro}{\listtablename}
% \begin{macro}{\listoflofname}
%   \changes{v3.00}{2008/07/03}{neu für Paket \textsf{tocbasic}}
% \begin{macro}{\listotlofname}
%   \changes{v3.00}{2008/07/03}{neu für Paket \textsf{tocbasic}}
% Die Namen der Verzeichnisse auch für das Paket \textsf{tocbasic}.
%    \begin{macrocode}
\newcommand*\listfigurename{List of Figures}
\newcommand*\listoflofname{\listfigurename}
\newcommand*\listoflofentryname{\figurename}
\newcommand*\listtablename{List of Tables}
\newcommand*\listoflotname{\listtablename}
\newcommand*\listoflotentryname{\tablename}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\listoffigures}
%   \changes{v2.3h}{1995/01/21}{Verwendung von \cs{lof@heading}}
%   \changes{v2.4k}{1996/12/13}{\cs{lof@heading} nicht nur bei
%     \textsf{scrartcl}}
%   \changes{v2.8l}{2001/08/16}{Gruppe eingefügt und \cs{parskip} auf
%     0 gesetzt}
%   \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}%
%     \cs{@parskip@indent}}
%   \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent}
%     ersetzt}
%   \changes{v3.00}{2008/07/04}{Verwendung von \textsf{tocbasic}}
% Die Ausgabe des Abbildungsverzeichnisses.
%    \begin{macrocode}
\newcommand*\listoffigures{\listoftoc{lof}}
%    \end{macrocode}
%
%  \begin{macro}{\l@figure}
% Befehl zur Formatierung eines Verzeichniseintrags.
%    \begin{macrocode}
\newcommand*\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%
% \begin{macro}{\listoftables}
%   \changes{v2.3h}{1995/01/21}{Verwendung von \cs{lot@heading}}
%   \changes{v2.4k}{1996/12/13}{\cs{lot@heading} nicht nur bei
%     \textsf{scrartcl}}
%   \changes{v2.8l}{2001/08/16}{Gruppe eingefügt und \cs{parskip} auf
%     0 gesetzt}
%   \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}%
%     \cs{@parskip@indent}}
%   \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent}
%     ersetzt}
%   \changes{v3.00}{2008/07/04}{Verwendung von \textsf{tocbasic}}
% Die Ausgabe des Tabellenverzeichnisses.
%    \begin{macrocode}
\newcommand*\listoftables{\listoftoc{lot}}
%    \end{macrocode}
%
% \begin{macro}{\l@table}
% Befehl zur Formatierung eines Verzeichniseintrags.
%    \begin{macrocode}
\let\l@table\l@figure
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
%
% \iffalse
%</body>
% \fi
%
% \iffalse
%</!letter>
% \fi
%
%
% \Finale
%
\endinput
%
% end of file `scrkliof.dtx'
%%% Local Variables:
%%% mode: doctex
%%% TeX-master: t
%%% End:
