From ce1c001f7db86ff8f09c1203b965ed9f44531d7a Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Sun, 8 May 2022 03:00:48 +0000
Subject: CTAN sync 202205080300

---
 .../koma-script/source/scrkernel-listsof.dtx       | 995 +++++++++++----------
 1 file changed, 531 insertions(+), 464 deletions(-)

(limited to 'macros/latex/contrib/koma-script/source/scrkernel-listsof.dtx')

diff --git a/macros/latex/contrib/koma-script/source/scrkernel-listsof.dtx b/macros/latex/contrib/koma-script/source/scrkernel-listsof.dtx
index b7ff8d719e..21db04d92b 100644
--- a/macros/latex/contrib/koma-script/source/scrkernel-listsof.dtx
+++ b/macros/latex/contrib/koma-script/source/scrkernel-listsof.dtx
@@ -1,8 +1,7 @@
-% \CheckSum{673}
 % \iffalse meta-comment
 % ======================================================================
 % scrkernel-listsof.dtx
-% Copyright (c) Markus Kohm, 2002-2020
+% Copyright (c) Markus Kohm, 2002-2022
 %
 % This file is part of the LaTeX2e KOMA-Script bundle.
 %
@@ -18,55 +17,18 @@
 % The Current Maintainer and author of this work is Markus Kohm.
 %
 % This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrkernel-listsof.dtx
-% Copyright (c) Markus Kohm, 2002-2020
-%
-% 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: $Id: scrkernel-listsof.dtx 3477 2020-04-11 07:26:26Z kohm $
+%%% From File: $Id: scrkernel-listsof.dtx 3733 2022-03-01 08:20:43Z kohm $
 %<prepare>%%%            (run: prepare)
 %<option>%%%            (run: option)
 %<body>%%%            (run: body)
 %<*dtx>
-% \fi
 \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
 \begingroup
   \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
-  \filedate$Date: 2020-04-11 09:26:26 +0200 (Sat, 11 Apr 2020) $
+  \filedate$Date: 2022-03-01 09:20:43 +0100 (Di, 01. Mär 2022) $
   \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
-  \filerevision$Revision: 3477 $
+  \filerevision$Revision: 3733 $
   \edef\reserved@a{%
     \noexpand\endgroup
     \noexpand\ProvidesFile{scrkernel-listsof.dtx}%
@@ -75,52 +37,60 @@
                            (lists of)]%
   }%
 \reserved@a
-% \iffalse
-\documentclass[parskip=half-]{scrdoc}
-\usepackage[english,ngerman]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrkernel-listsof.dtx}
-\title{\KOMAScript{} \partname\ \texttt{\filename}%
-  \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}}
-\date{\filedate}
-\author{Markus Kohm}
-
+\documentclass[USenglish]{koma-script-source-doc}
+\usepackage{babel}
+\usepackage{hvlogos}
+\setcounter{StandardModuleDepth}{2}
 \begin{document}
-  \maketitle
-  \tableofcontents
-  \DocInput{\filename}
+\DocInput{scrkernel-listsof.dtx}
 \end{document}
 %</dtx>
 % \fi
 %
-% \selectlanguage{ngerman}
+% \changes{v2.95}{2002/06/28}{first version after splitting \file{scrclass.dtx}}
+% \changes{v3.36}{2022/02/28}{switch over from \cls*{scrdoc} to
+%   \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/02/28}{whole implementation documentation in English}
 %
-% \changes{v2.95}{2002/06/28}{%
-%   erste Version aus der Aufteilung von \texttt{scrclass.dtx}}
+% \GetFileInfo{scrkernel-listsof.dtx}
+% \title{Table of Contents, List of Figures, and List of Tables Within
+%   \href{https://komascript.de}{\KOMAScript} Classes}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+%   \LaTeX{} classes provides a number of directories like the table of
+%   contents, list of figures, and list of
+%   tables. \file{scrkernel-listsof.dtx} provides parts of the implementation
+%   of them. But note: Since the \KOMAScript{} classes use \pkg*{tocbasic} for
+%   all these tables and lists, most of the code has been moved to
+%   \file{tocbasic.dtx} and \file{scrkernel-tocstyle.dtx}.
+% \end{abstract}
+% \tableofcontents
 %
-% \section{Verzeichnisse}
+% \section{User Manual}
 %
-% \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.
+% You can find the user documentation the commands implemented here in the
+% \KOMAScript{} manual, either the German \file{scrguide} or the English
+% \file{scrguien}.
 %
-% Briefe verfügen über keine Verzeichnisse.
+% \MaybeStop{\PrintIndex}
 %
-% \StopEventually{\PrintIndex\PrintChanges}
+% \section{Implementation of the table of contents and similar lists in the
+%   \KOMAScript{} classes}
 %
-% \iffalse
-%<*!letter>
-% \fi
+% Only \cls*{scrartcl}, \cls*{scrbook} and \cls{scrreprt} provide floats and
+% headings. So only these need to provide tables and lists of such
+% elements. Especially the letter class \cls*{scrlttr2} does not need any of
+% this code.
 %
-% \subsection{Gemeinsamer Code von Inhaltsverzeichnis und Verzeichnissen der
-%   Gleitumgebungen}
+%    \begin{macrocode}
+%<*!letter>
+%    \end{macrocode}
+% 
+% \subsection{Code used by all of the tables and lists of content}
 %
-% \selectlanguage{english}%^^A
-% Before doing anything with the tocs we need package \Package{tocbasic}:
+% Before doing anything with the tocs we need package \pkg*{tocbasic}:
 %    \begin{macrocode}
 %<*prepare>
 \RequirePackage{tocbasic}[%
@@ -130,9 +100,13 @@
 %    \end{macrocode}
 %
 % \begin{macro}{\numberline@numberpostfix}
-% \changes{v3.20}{2016/03/15}{\cs{autodot} wird darüber eingefügt}
-% Auch in den Verzeichnissen soll ggf. \cs{autodot} quasi als Bestandteil der
-% Nummer ausgegeben werden.
+% \changes{v3.20}{2016/03/15}{used to add \cs{autodot}}
+% We extend this macro of \pkg*{tocbasic} to add the \cs{autodot} to the
+% numbers.
+% \begin{description}
+% \item[ToDo:] Replace this by any kind of \emph{addto hook command}, maybe
+%   even by a generic \LaTeX{} hook.
+% \end{description}
 %    \begin{macrocode}
 %<*body>
 \g@addto@macro{\numberline@numberpostfix}{\autodot}
@@ -140,10 +114,10 @@
 %    \end{macrocode}
 % \end{macro}%^^A \numberline@numberpostfix
 %
-% \begin{macro}{\numberline}
-% \changes{v3.20}{2016/03/15}{Definition von \textsf{tocbasic} verwenden}
-% Unabhängig vom Stil soll immer die Definition von \textsf{tocbasic}
-% verwendet werden.
+% \begin{command}{\numberline}
+% \changes{v3.20}{2016/03/15}{using definition of \pkg*{tocbasic}}
+% Just activate the usage of the \pkg*{tocbasic} definition of
+% \cs{numberline}.
 %    \begin{macrocode}
 %<*body>
 \usetocbasicnumberline[%
@@ -151,13 +125,16 @@
 ]
 %</body>  
 %    \end{macrocode}
-% \end{macro}%^^A \numberline
+% \end{command}%^^A \numberline
 %
-% \changes{v3.06}{2010/06/02}{einschalten des \texttt{tocbasic}-Features
-%   \texttt{chapteratlist} in die Datei \texttt{scrkernel-listsof.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.
+% \changes{v3.06}{2010/06/02}{activating \pkg*{tocbasic} feature
+%   \texttt{chapteratlist}}
+% For classes with chapters we use the \pkg*{tocbasic} feature
+% \texttt{chapteratlist} for all directories of category/owner
+% \texttt{float}. This is done not only for already existing directories for
+% also for those, that will be added later (using \pkg*{tocbasic}). Note: By
+% default this feature is used to add a vertical distance to, e.g., the list
+% of figures and the list of tables with each new chapter.
 %    \begin{macrocode}
 %<*body&(book|report)>
 \doforeachtocfile[float]{%
@@ -169,36 +146,48 @@
 %</body&(book|report)>
 %    \end{macrocode}
 %
-% \begin{macro}{\before@starttoc}
-% \changes{v2.8q}{2001/11/14}{neu (intern)}%^^A
-% 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}{\before@starttoc,\after@starttoc}
+% \changes{v2.8q}{2001/11/14}{added}
+% If either \texttt{tocleft} or \texttt{listsleft} is used, we need to collect
+% additional information about the natural width of the numbers and also have
+% to change the used width of the numbers. So we have two macros, that will be
+% added to the \pkg*{tocbasic} hooks. \cs{before@starttoc} does some internal
+% changes before \cs{@starttoc} to collect and use the
+% information. \cs{after@starttoc} writes the information to the \file{aux}
+% file after \cs{@starttoc}.
 % \begin{macro}{\scr@dottedtocline}
-% \changes{v2.9k}{2003/01/03}{auch das dritte Argument wird ge"andert}%^^A
+% \changes{v2.9k}{2003/01/03}{also change the third argument}^^A
 % \begin{macro}{\scr@numberline}
-% \changes{v3.06}{2010/05/18}{nicht länger benötigt}%^^A
+% \changes{v3.06}{2010/05/18}{removed}^^A
 % \end{macro}
 % \begin{macro}{\last@l@number}
-% Dafür werden ein paar Hilfsmakros benötigt, die vorsichtshalber
-% global vordefiniert werden.
+% The \KOMAScript{} classes themselves use the \pkg*{tocbasic} entry style
+% \texttt{tocline}. However other packages may use the \LaTeX{} kernel command
+% \cs{@dottedtocline}. Currently we support these too. But to do so, we need
+% to locally redefine \cs{@dottedtocline} to change the second and third
+% argument. The second is the \meta{indent} and has always to be 0 (with
+% \texttt{listsleft}). The third is the number width and has to be
+% \cs{last@l@number}. I do not like to redefine \LaTeX{} kernel macros, so
+% maybe the support for list entries, which use \cs{@dottedtocline}, will be
+% removed in future. However, in this case we still would need some of the
+% code or similar code to initialize values and features of \pkg*{tocbasic}.
+% At loading time we only need to \emph{reserve} the macros. The real
+% definition will be done when reading the auxiliary files of the lists or the
+% main \file{aux} file.
 %    \begin{macrocode}
 %<*body>
 \newcommand*{\scr@dottedtocline}{}
 \newcommand*{\last@l@number}{}
 %    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\@l@number}
-% \changes{v2.8q}{2001/11/14}{neu (intern)}%^^A
-% 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)}%^^A
-% 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.
+% \end{macro}^^A \last@l@number
+% \end{macro}^^A \scr@dottedtocline
+% \begin{macro}{\@l@number,\set@l@number}
+% \changes{v2.8q}{2001/11/14}{added}
+% We also need local macros to store the currently maximal number width while
+% reading an auxiliary file. \cs{set@l@number} not only has to update
+% \cs{@l@number} but also to set \len{@temdima} to the real maximum. It is
+% used inside \cs{numberline@box}, which is used inside \cs{numberline}, if
+% the \pkg*{tocbasic} definition of \cs{numberline} is used.
 %    \begin{macrocode}
 \newcommand*{\@l@number}{}
 \newcommand*{\set@l@number}[1]{%
@@ -211,15 +200,15 @@
   \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} 
+% \end{macro}^^A \@l@number,\set@l@number
+% \changes{v2.95a}{2006/07/12}{empty case initialization}
+% \changes{v3.06}{2010/05/18}{re-defining \cs{numberline} instead of
+%   \cs{numberline@box}}
+% The usage of all these local macros has to be initialized in
+% \cs{before@starttoc}.
 %    \begin{macrocode}
 \newcommand*{\before@starttoc}[1]{%
-  \let\scr@dottedtocline=\@dottedtocline
+  \let\scr@dottedtocline=\@dottedtoclilne
   \renewcommand*{\@dottedtocline}[3]{%
     \scr@dottedtocline{##1}{\z@}{\last@l@number}}%
   \renewcommand*{\numberline@box}[1]{%
@@ -236,8 +225,9 @@
     \fi
   }%
 %    \end{macrocode}
-% \changes{v3.20}{2015/11/26}{Vorbereitungen für Verzeichniseintragsstile
-%     via \texttt{scrkernel-tocstyle}}%^^A
+% \changes{v3.20}{2015/11/26}{initialization of \pkg*{tocbasic} values}
+% We also have to locally change the indent and number width values of the
+% \pkg*{tocbasic} styles.
 %    \begin{macrocode}
   \begingroup
     \def\do@endgroup{\endgroup}%
@@ -264,27 +254,22 @@
     \@nameuse{scr@dte@donumwidth}%
   \do@endgroup
 }
-%    \end{macrocode}
-% \end{macro}
-% \begin{macro}{\after@starttoc}
-% \changes{v2.8q}{2001/11/14}{neu (intern)}%^^A
-% 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}}%
 }
-%</body>
 %    \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):
+% Last but not least we have to add the code to the \pkg*{tocbasic} hooks
+% before and after \cs{@starttoc}. Note: This is also used for the table of
+% contents, but in this case \cs{if@dynlist} will be used different.
+% \begin{description}
+% \item[ToDo:] A better suggestion could be to use \meta{category} dependent
+%   code here to use \cs{if@dynlist} only for \meta{category} \texttt{float}
+%   but \cs{if@tocleft} for \meta{category} \texttt{ToC}. So the support for
+%   things like \emph{table of appendix contents} could be benefit.
+% \end{description}
 %    \begin{macrocode}
-%<*body>
 \g@addto@macro\tocbasic@@before@hook{%
   \if@dynlist\expandafter\before@starttoc\expandafter{\@currext}\fi
 }
@@ -293,13 +278,13 @@
 }
 %</body>
 %    \end{macrocode}
+% \end{macro}^^A \@dottedtocline
 %
 %
-% \subsection{Das Inhaltsverzeichnis}
+% \subsection{The table of contents}
 %
-% \selectlanguage{english}%^^A
-% \changes{v3.27}{2019/05/11}{init code moved from \texttt{tocbasic.dtx}}%^^A
-% \changes{v1.0a}{2008/11/13}{auto-activation of feature \texttt{onecolumn}}
+% \changes{v3.27}{2019/05/11}{init code moved from \file{tocbasic.dtx}}
+% \changes{v3.01}{2008/11/13}{auto-activation of feature \texttt{onecolumn}}
 % Set feature \texttt{onecolumn} for every ToC file.
 %    \begin{macrocode}
 %<*prepare&(book|report)>
@@ -308,9 +293,9 @@
 %</prepare&(book|report)>
 %    \end{macrocode}
 % Tell the package, what files are used:
-% \changes{v3.27}{2019/05/11}{use owner \texttt{ToC} for the table of
-%   contents}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
+% \changes{v3.27}{2019/05/11}{use category \texttt{ToC} for the table of
+%   contents}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}%^^A
 %    \begin{macrocode}
 %<*prepare>
 \addtotoclist[ToC]{toc}
@@ -321,84 +306,163 @@
 }
 %</prepare>
 %    \end{macrocode}
-% \selectlanguage{ngerman}%^^A
 %
-% \begin{macro}{\if@tocleft}
-% \changes{v2.8q}{2001/11/14}{neuer Schalter}%^^A
-% \changes{v2.98c}{2008/03/05}{wird früher definiert}%^^A
-% \begin{macro}{\@toclefttrue}
-% \begin{macro}{\@tocleftfalse}
-% Die Wahl der Darstellungsart für das Inhaltsverzeichnis wird in einem
-% Schalter gespeichert.
+% \begin{macro}{\@tocleftfalse,\@tocleftrue,\if@tocleft}
+% \changes{v2.8q}{2001/11/14}{added}
+% \changes{v2.98c}{2008/03/05}{earlier definition}
+% The switch is used to store the information whether to use a flat
+% (\cs{@toclefttrue}) or a graduated (\cs{@tocleftalse}) table of contents.
 %    \begin{macrocode}
 %<*option>
 \newif\if@tocleft
 %</option>
 %    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A … \if@tocleft
 %
 % \begin{option}{toc}
-% \changes{v2.98c}{2008/03/04}{Neue Option}%^^A
-% \changes{v3.12}{2013/03/05}{Nutzung der Status-Signalisierung mit
-%   \cs{FamilyKeyStateProcessed}}%^^A
-% \changes{v3.12}{2013/08/26}{\cs{KOMA@options} durch
-%   \cs{KOMAExecuteOptions} ersetzt}%^^A
-% \changes{v3.12a}{2014/01/17}{\cs{KOMAExecuteOptions} durch
-%   \cs{KOMAoptions} ersetzt}%^^A
-% \changes{v3.18}{2015/06/15}{neuer Wert \texttt{indexnumbered}}%^^A
-% Dies ist die zentrale Option für Einstellungen des Inhaltsverzeichnisses.
+% \changes{v2.98c}{2008/03/04}{added}
+% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyState}}
+% \changes{v3.12}{2013/08/26}{\cs{KOMA@options} replaced by
+%   \cs{KOMAExecuteOptions}}
+% \changes{v3.12a}{2014/01/17}{\cs{KOMAExecuteOptions} replaced by
+%   \cs{KOMAoptions}}
+% \changes{v3.18}{2015/06/15}{value \opt{\quotechar=indexnumbered} added}
+% The main features of the table of contents can be configured by this
+% option.
 %    \begin{macrocode}
 %<*option>
 \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.
-% \changes{v3.28}{2019/10/21}{zusätzliche Werte}%^^A
-% Für Index und Gleitumgebungen gibt es ab Version~3.28 einige zusätzliche
-% Werte. Die \dots\texttt{listof}\dots-Werte sind allerdings nicht offiziell,
-% sondern fangen nur häufige Tippfehler auf.
+% \changes{v3.28}{2019/10/21}{several alias values added}
+% The provided values are (aliases are also available):
+% \begin{description}
+% \item[\opt{=noindex}:] (default) for the index neither add an entry to the
+%   table of contents nor number the heading of the index.
+% \end{description}
 %    \begin{macrocode}
     {noindex}{0},{noidx}{0},%
+%    \end{macrocode}
+% \begin{description}
+% \item[\opt{=index}:] for the index add an entry to the table of contents,
+%   but do not number the index.
+% \end{description}
+%    \begin{macrocode}
     {index}{1},{idx}{1},%
+%    \end{macrocode}
+% \begin{description}
+% \item[\opt{=indexnumbered}:] number the index and therefore also add an
+%   entry to the table of contents.
+% \end{description}
+%    \begin{macrocode}
     {indexnumbered}{2},{idxnumbered}{2},{numberedindex}{2},{numberedidx}{2},%
+%    \end{macrocode}
+% \begin{description}
+% \item[\opt{=nolistof}:] (default) for any list with category/owner
+%   \texttt{float} neither add an entry to the table of contents, nor
+%   number the heading of the list of the floats.
+% \end{description}
+%    \begin{macrocode}
     {nolistof}{3},{nolistsof}{3},%
+%    \end{macrocode}
+% \begin{description}
+% \item[\opt{=listof}:] for each list with category/owner \texttt{float} add an
+%   entry to the table of contents, but do not number the list of the floats.
+% \end{description}
+%    \begin{macrocode}
     {listof}{4},{listsof}{4},%
+%    \end{macrocode}
+% \begin{description}
+% \item[\opt{=listofnumbered}:] for each list of category/owner \texttt{float}
+% number the list of floats and therefore add an entry to table of contents.
+% \end{description}
+%    \begin{macrocode}
     {listofnumbered}{5},{numberedlistof}{5},%
     {listsofnumbered}{5},{numberedlistsof}{5},%
+%    \end{macrocode}
+% \begin{description}
+% \item[\opt{=nobibliography}:] (default) for the bibliography neither add an
+%   entry to the table if contents nor number the heading.
+% \end{description}
+%    \begin{macrocode}
     {nobibliography}{6},{nobib}{6},%
+%    \end{macrocode}
+% \begin{description}
+% \item[\opt{=bibliography}:] for the bibliography add an entry to the table
+%   of contents, but do not number the bibliography.
+% \end{description}
+%    \begin{macrocode}
     {bibliography}{7},{bib}{7},%
+%    \end{macrocode}
+% \begin{description}
+% \item[\opt{=bibliographynumbered}:] number the bibliography and therefore
+%   add an entry to the table of contents.
+% \end{description}
+%    \begin{macrocode}
     {bibliographynumbered}{8},{bibnumbered}{8},{numberedbibliography}{8},%
     {numberedbib}{8},%
 %    \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{description}
+% \item[\opt{=flat}:] use the flat version of the table of contents (all
+%   numbers are at one column, all texts in another one).
+% \end{description}
 %    \begin{macrocode}
     {flat}{9},{left}{9},%
+%    \end{macrocode}
+% \begin{description}
+% \item[\opt{=graduated}:] (default) use a hierarchical indented table of
+%   contents similar to the standard classes.
+% \end{description}
+%    \begin{macrocode}
     {graduated}{10},{indent}{10},{indented}{10},%
 %    \end{macrocode}
-% \changes{v3.12}{2014/09/24}{neue Werte \texttt{numberline} und
-%     \texttt{nonumberline}}%^^A
-% Außerdem können die nicht nummerierten Einträge ggf. ebenfalls mit
-% \cs{numberline} eingerückt werden. Das geht über ein Feature von
-% \textsf{tocbasic}.
+% \changes{v3.12}{2014/09/24}{values \opt{\quotechar=numberline} and
+%   \opt{\quotechar=nonumberline} etc. added}
+% \begin{description}
+% \item[\opt{=numberline}:] indent entries without number like entries with
+%   number.
+% \end{description}
 %    \begin{macrocode}
     {indenttextentries}{11},{indentunnumbered}{11},{numberline}{11},%
+%    \end{macrocode}
+%    \begin{macrocode}
+% \begin{description}
+% \item[\opt{nonumberline}:] (default) do not indent the first line of an
+%   entry without number
+% \end{description}
+%    \begin{macrocode}
     {leftaligntextentries}{12},{leftalignunnumbered}{12},{nonumberline}{12},%
 %    \end{macrocode}
-% Mit Version~3.15 kommt neu die Möglichkeit hinzu, Kapiteleinträge mit
-% Pünktchen zu versehen.
+% \changes{v3.15}{2015/01/14}{values \opt{\quotechar=chapterentrywithdots},
+%   \opt{\quotechar=chapterentrywithoutdot} resp.
+%   \opt{\quotechar=sectionentrywithdots},
+%   \opt{\quotechar=sectionentrywithoutdot} added}
+% \begin{description}
+% \item[\opt{=chapterentrywithdots}:] classes with \cs{chapter} provide a dot
+%   filler also for chapter entries.
+% \end{description}
 %    \begin{macrocode}
 %<book|report>    {chapterentrywithdots}{13},{chapterentrydotfill}{13},
+%    \end{macrocode}
+% \begin{description}
+% \item[\opt{=chapterentrywithoutdots}:] (default) classes with \cs{chapter} use
+%   a space filler for chapter entries.
+% \end{description}
+%    \begin{macrocode}
 %<book|report>    {chapterentrywithoutdots}{14},{chapterentryfill}{14}%
+%    \end{macrocode}
+% \begin{description}
+% \item[\opt{=sectionentrywithdots}:] classes without \cs{chapter} use
+%  dot filler also for section entries.
+% \end{description}
+%    \begin{macrocode}
 %<article>    {sectionentrywithdots}{13},{sectionentrydotfill}{13},
+%    \end{macrocode}
+% \begin{description}
+% \item[\opt{=sectionentrywithoutdots}:] (default) classes without
+%   \cs{chapter} use a space filler for section entries.
+% \end{description}
+%    \begin{macrocode}
 %<article>    {sectionentrywithoutdots}{14},{sectionentryfill}{14}%
   }{#1}%
   \ifx\FamilyKeyState\FamilyKeyStateProcessed
@@ -453,30 +517,23 @@
 %    \end{macrocode}
 % \end{option}
 %
-% \begin{option}{tocleft}
-% \changes{v2.8q}{2001/11/14}{neue Option}%^^A
-% \changes{v2.98c}{2008/03/05}{obsolet}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
-% \begin{option}{tocindent}
-% \changes{v2.8q}{2001/11/14}{neue Option}%^^A
-% \changes{v2.98c}{2008/03/05}{obsolet}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
+% \begin{option}{tocleft,tocindent}
+% \changes{v2.8q}{2001/11/14}{added}
+% \changes{v2.98c}{2008/03/05}{obsolet}
+% \changes{v3.01a}{2008/11/20}{deprecated}
 %    \begin{macrocode}
 %<*option>
 \KOMA@DeclareDeprecatedOption{tocleft}{toc=flat}
 \KOMA@DeclareDeprecatedOption{tocindent}{toc=graduated}
 %</option>
 %    \end{macrocode}
-% \end{option}
-% \end{option}
-%
-% \subsection{Definitionen für das Inhaltsverzeichnis}
+% \end{option}^^A tocleft,tocindent
 %
-% \begin{macro}{\contentsname}
-% \begin{macro}{\listoftocname}
-% \changes{v3.00}{2008/07/03}{neu für Paket \textsf{tocbasic}}%^^A
-% \changes{v3.27}{2019/05/11}{auch als sprachabhängiger Bezeichner}%^^A
-% Der Name des Verzeichnisses.
+% \begin{command}{\contentsname}
+% \begin{command}{\listoftocname}
+% \changes{v3.00}{2008/07/03}{added to be used by \pkg*{tocbasic}}
+% \changes{v3.27}{2019/05/11}{language dependency added}
+% The name of the  table of contents.
 %    \begin{macrocode}
 %<*body>
 \newcommand*\contentsname{Contents}
@@ -485,35 +542,31 @@
   UKenglish,ukenglish,USenglish,usenglish}\contentsname{Contents}%
 %</body>
 %    \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{command}^^A \listoftocname
+% \end{command}^^A \contentsname
 %
-% \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{counter}{tocdepth}
+% The counter is used to define, down to which level the entries are shown in
+% the table of contents (resp. list of floats, because the same value is used
+% there). Note: We don't use symbolic values here, because usage of symbolic
+% values would add an additional order dependency with the corresponding
+% \cs{DeclareSecionCommand}.
 %    \begin{macrocode}
 %<*body>
 %<book|report>\setcounter{tocdepth}{2}
 %<article>\setcounter{tocdepth}{3}
 %</body>
 %    \end{macrocode}
-% \end{Counter}
+% \end{counter}^^A tocdepth
 %
 % \begin{macro}{\toc@heading}
-% \changes{v2.3h}{1995/01/21}{neu (intern)}%^^A
-% \changes{v2.95}{2002/06/28}{auch für \textsf{scrreprt} und
-%   \textsf{scrbook}}%^^A
-% \changes{v3.00}{2008/07/04}{Verwendung von \cs{toc@heading} ist nicht
-%   länger empfohlen}%^^A
-% \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}%^^A
-% \changes{v3.30}{2020/02/24}{Leerzeichen am Ende der Warnung entfernt}%^^A
-% 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.
+% \changes{v2.3h}{1995/01/21}{added for \cls*{scrartcl}}
+% \changes{v2.95}{2002/06/28}{added for \cls*{scrreprt}and \cls*{scrbook}}
+% \changes{v3.00}{2008/07/04}{deprecated}
+% \changes{v3.10}{2011/08/31}{using \cs{MakeMarkcase}}
+% \changes{v3.30}{2020/02/24}{white space at end of warning removed}
+% This has been defined before usage of \pkg*{tocbasic}. Internally it is not
+% used any longer.
 %    \begin{macrocode}
 %<*body>
 \newcommand*\toc@heading{%
@@ -530,34 +583,29 @@
 }
 %</body>
 %    \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \toc@heading
 %
 % \begin{macro}{\toc@l@number}
-% \changes{v2.8q}{2001/11/14}{neu}%^^A
-% 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.
+% \changes{v2.8q}{2001/11/14}{added}
+% The number length storage used by \cs{before@starttoc} for \meta{extension}
+% \texttt{toc}. For safety we just \emph{reserve} it.
 %    \begin{macrocode}
 %<*body>
 \newcommand*{\toc@l@number}{}
 %</body>
 %    \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \toc@l@number
 %
-% \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{command}{\tableofcontents}
+% \changes{v2.3h}{1995/01/21}{using \cs{toc@heading}}
+% \changes{v2.8l}{2001/08/16}{group added an \len{parskip} set to 0}
+% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse} and \cs{@parskip@indent}}
+% \changes{v2.8q}{2001/11/14}{\cs{if@tocleft} changed}
+% \changes{v2.95}{2002/06/28}{\cls*{scrartcl} also uses \cs{if@tocleft}}
+% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} and \cs{@parskip@indent} replaced}
+% \changes{v3.00}{2008/07/04}{re-implementation using \pkg*{tocbasic}}
+% The table of contents. See the note above about the local change of
+% \cs{if@dynlist}.
 %    \begin{macrocode}
 %<*body>
 \newcommand*{\tableofcontents}{%
@@ -568,18 +616,27 @@
 }
 %</body>
 %    \end{macrocode}
-% \end{macro}
+% \end{command}^^A \tableofcontents
 %
-% \begin{macro}{\addtocentrydefault}
-% \changes{v3.08}{2010/11/01}{Neu}%^^A
-% \changes{v3.12}{2013/09/24}{Verwendung der neuen
-%     \texttt{tocbasic}-Anweisung \cs{tocbasic@addxcontentsline}}
-% 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{command}{\addtocentrydefault}
+% \changes{v3.08}{2010/11/01}{added}
+% \changes{v3.12}{2013/09/24}{using new \pkg*{tocbasic} macro
+%   \cs{tocbasic@addxcontentsline}}
+% Instead of making the entries into the table of contents directly with
+% the \LaTeX{} low level command \cs{addcontentsline} we provide a class
+% specific low level user command
+% \begin{quote}
+%   \cs{addtocentrydefault}\marg{level name}\marg{formatted number}\marg{entry text}
+% \end{quote}
+% that uses the \pkg*{tocbasic} package author command
+% \cs{tocbasic@addctontentsline}. We cannot use \cs{addxcontentsline} because
+% this will run \cs{add\meta{level name}\meta{toc}entry} if available and
+% \cs{addtocentrydefault} is used by the entry commands
+% \cs{addchaptertocentry}, \cs{addsectiontocentry}. So \cs{addtoentrydefault}
+% is a helper for the callbacks from \cs{addxcontentsline} and needs to use
+% the package author interface instead of the user interface. For not numbered
+% entries the \meta{formatted number} should be empty (not only expand to no
+% output). Note: Entries with empty \meta{entry text} will be omitted.
 %    \begin{macrocode}
 %<*body>
 \newcommand{\addtocentrydefault}[3]{%
@@ -587,36 +644,33 @@
 }
 %</body>
 %    \end{macrocode}
-% \end{macro}
+% \end{command}
 %
 %
-% \subsection{Die Verzeichnisse der Gleitumgebungen}
+% \subsection{The lists of floats (or similar environments)}
 %
-% Die Verzeichnisse der Gleitumgebungen ähneln dem Inhaltsverzeichnis, stellen
-% jedoch eine eigene Klasse dar und werden daher auch über eigene Optionen
-% gesteuert.
+% The list of tables, list of figures and similar lists of environments with
+% category/owner \texttt{float} are very similar to the table of contents. But
+% they use a own set of options and also some commands.
 %
-% \selectlanguage{english}%^^A
-% \changes{v3.25}{2017/10/10}{extension \texttt{lof} not added explicitely}%^^A
-% \changes{v3.25}{2017/10/10}{extension \texttt{lot} not added explicitely}%^^A
+% \changes{v3.25}{2017/10/10}{extension \texttt{lof} not added explicitely}
+% \changes{v3.25}{2017/10/10}{extension \texttt{lot} not added explicitely}
 % Note: We must not add extensions \texttt{lof} and \texttt{lot} explicitely,
 % because these files will be prepared using \cs{DeclareNewTOC} that also
 % registers the extension.
 %
-% \changes{v1.00}{auto-activation of feature \texttt{onecolumn}}
+% \changes{v3.01}{2008/11/13}{auto-activation of feature \texttt{onecolumn}}
 % Set feature \texttt{onecolumn} for every float list file.
 %    \begin{macrocode}
 %<*prepare&(book|report)>
 \AtAddToTocList[float]{\setuptoc{\@currext}{onecolumn}}%
 %</prepare&(book|report)>
 %    \end{macrocode}
-% \selectlanguage{ngerman}%^^A
 %
 % \begin{macro}{\float@@listhead}
-% \changes{v2.98c}{2008/03/05}{neu (intern)}%^^A
-% \changes{v3.01}{2008/11/14}{deprecated}%^^A
-% Setzt nur die Überschrift und sonst nichts. Dabei wird die Überschrift als
-% einziges Argument übergeben.
+% \changes{v2.98c}{2008/03/05}{added}
+% \changes{v3.01}{2008/11/14}{deprecated}
+% Prints only the heading, nothing else. The heading text is the argument.
 %    \begin{macrocode}
 %<*option>
 \newcommand*{\float@@listhead}{%
@@ -625,89 +679,143 @@
 }
 %</option>
 %    \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \float@@listhead
 %
-% \begin{macro}{\if@dynlist}
-% \changes{v2.8q}{2001/11/14}{neuer Schalter}%^^A
-% \begin{macro}{\@dynlisttrue}
-% \begin{macro}{\@dynlistfalse}
-% Die Wahl der Darstellungsart wird in einem Schalter gespeichert.
+% \begin{macro}{\@dynlistfalse,\@dynlisttrue,\if@dynlist}
+% \changes{v2.8q}{2001/11/14}{added}
+% The switch to select the flat (\cs{@dynlisttrue}) or graduated
+% (\cs{@dynlistfalse)} list type.
 %    \begin{macrocode}
 %<*option>
 \newif\if@dynlist
 %</option>
 %    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A … \if@dynlist
 %
 % \begin{option}{listof}
-% \changes{v2.98c}{2008/03/05}{Neue Option}%^^A
-% \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.}%^^A
-% \changes{v3.12}{2013/03/05}{Nutzung der Status-Signalisierung mit
-%     \cs{FamilyKeyStateProcessed}}%^^A
-% \changes{v3.12}{2013/06/26}{\cs{KOMA@options} durch
-%     \cs{KOMAExecuteOptions} ersetzt}%^^A
-% \changes{v3.12a}{2014/01/17}{\cs{KOMAExecuteOptions} durch
-%     \cs{KOMAoptions} ersetzt}%^^A
-% Dies ist die zentrale Option für die Gleitumgebungsverzeichnisse.
+% \changes{v2.98c}{2008/03/05}{added}
+% \changes{v3.06}{2010/06/02}{options for \pkg*{tocbasic} features do not only
+%   work for the currently defined lists but all future lists of category
+%   \texttt{float}}
+% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyState}}
+% \changes{v3.12}{2013/06/26}{\cs{KOMA@options} replaced by
+%   \cs{KOMAExecuteOptions}}
+% \changes{v3.12a}{2014/01/17}{\cs{KOMAExecuteOptions} replaced by
+%   \cs{KOMAoptions}}
+% The main features of the lists of floats can be configured by this option.
 %    \begin{macrocode}
 %<*option>
 \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.
+% The provided values are (aliases are also available):
+% \begin{description}
+% \item[\opt{=notoc}:] (default) neither number the lists of floats nor add
+%   entries to them into the table of contents.
+% \end{description}
 %    \begin{macrocode}
     {notoc}{0},{nottotoc}{0},{plainheading}{0},%
+%    \end{macrocode}
+% \begin{description}
+% \item[\opt{=totoc}:] do not number the lists of floats but nevertheless add
+%   an entry for each of them to the table of contents.
+% \end{description}
+%    \begin{macrocode}
     {totoc}{1},{toc}{1},{notnumbered}{1},%
+%    \end{macrocode}
+% \begin{description}
+% \item[\opt{=numbered}:] number the lists of floats and therefore also add an
+%   for each of them to the table of contents.
+% \end{description}
+%    \begin{macrocode}
     {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{description}
+% \item[\opt{=flat}:] use the flat version of the lists of floats (all
+%   numbers are at one column, all texts in another one). Usually this only
+%   removes the indent and calculates the needed width of the numbers. But,
+%   e.g., if chapters are added, it does work over all levels.
+% \end{description}
 %    \begin{macrocode}
     {flat}{3},{left}{3},%
+% \item[\opt{=graduated}:] (default) use hierarchical indented lists of
+%   floats similar to the standard classes.
+% \end{description}
+%    \begin{macrocode}
     {graduated}{4},{indent}{4},{indented}{4},%
 %    \end{macrocode}
-% Dann gibt es eine Option, mit der die Gliederungsebene der Verzeichnisse
-% verändert werden kann.
-% \changes{v3.25}{2017/12/04}{neuer Wert \texttt{standardlevel}}%^^A
+% \begin{description}
+% \item[\opt{=leveldown}:] Use for the lists of floats a section hierarchy one
+%   level below the standard level.
+% \end{description}
 %    \begin{macrocode}
     {leveldown}{5},
+%    \end{macrocode}
+% \changes{v3.25}{2017/12/04}{value \opt{\quotechar=standardlevel} added}
+% \begin{description}
+% \item[\opt{=standardlevel}:] (default) Use for the lists of floats the
+%   standard hierarchy.
+% \end{description}
+%    \begin{macrocode}
     {standardlevel}{6},
 %    \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}.
+% \changes{v3.06}{2010/05/18}{value \opt{\quotechar=entryprefix} added}
+% \begin{description}
+% \item[\opt{=entryprefix}:] Prefix the number of each entry with
+%   \cs{listof\meta{toc}entryprefix}. Note: This is more or less senseless and
+%   does not work correctly with chapter entries in the lists of floats. It is
+%   recommended to reconfigure the entries, e.g., using
+%   \cs{DeclareTOCStyleEntry} or redefining \cs{add\meta{level
+%   name}\meta{toc}entry} instead. Note: \opt{listof=entryprefix} also
+%   activates \opt{listof=flat}.
+% \end{description}
 %    \begin{macrocode}
     {entryprefix}{7},
 %    \end{macrocode}
-% \changes{v3.12}{2014/09/24}{neue Werte \texttt{numberline} und
-%     \texttt{nonumberline}}%^^A
-% Außerdem können die nicht nummerierten Einträge ggf. ebenfalls mit
-% \cs{numberline} eingerückt werden. Das geht über ein Feature von
-% \textsf{tocbasic}.
+% \changes{v3.12}{2014/09/24}{values \opt{\quotechar=numberline} and
+%   \opt{\quotechar=nonumberline} etc. added}
+% \begin{description}
+% \item[\opt{=numberline}:] indent entries without number like entries with
+%   number.
+% \end{description}
 %    \begin{macrocode}
     {indenttextentries}{8},{indentunnumbered}{8},{numberline}{8},%
+%    \end{macrocode}
+%    \begin{macrocode}
+% \begin{description}
+% \item[\opt{=nonumberline}:] (default) do not indent the first line of an
+%   entry without number
+% \end{description}
+%    \begin{macrocode}
     {leftaligntextentries}{9},{leftalignunnumbered}{9},{nonumberline}{9}%
 %    \end{macrocode}
-% Dann gibt es Optionen, für die Unterteilung auf Kapitelebene. Allerdings nur
-% für \textsf{scrbook} und \textsf{scrreprt}.
+% \begin{description}
+% \item[\opt{=chapterentry}:] \cls*{scrbook} and \cls*{scrreprt} provides
+%   chapter entries into the lists of floats.
+% \end{description}
 %    \begin{macrocode}
 %<*book|report>
     ,{chapterentry}{10},{withchapterentry}{10},%
+%    \end{macrocode}
+% \begin{description}
+% \item[\opt{=nochaptergap}:] Alternatively the lists of floats can ignore chapters.
+% \end{description}
+%    \begin{macrocode}
     {nochaptergap}{11},{ignorechapter}{11},%
+%    \end{macrocode}
+% \begin{description}
+% \item[\opt{=chaptergapsmall}:] (default) chapters can add a small
+%   vertical distance into the lists of floats.
+% \end{description}
+%    \begin{macrocode}
     {chaptergapsmall}{12},{smallchaptergap}{12},%
+%    \end{macrocode}
+% \begin{description}
+% \item[\opt{=chaptergapline}:] chapters can add an empty line to the lists of
+%   floats.
+% \end{description}
+%    \begin{macrocode}
     {chaptergapline}{13},{onelinechaptergap}{13}%
 %</book|report>
   }{#1}%
@@ -863,73 +971,61 @@
 \KOMA@kav@add{.\KOMAClassFileName}{listof}{leftaligntextentries}
 %</option>
 %    \end{macrocode}
-% \end{option}
+% \end{option}^^A listof
 %
 % \begin{option}{liststotoc}
-% \changes{v2.3h}{1995/01/21}{neue Option}%^^A
-% \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
+% \changes{v2.3h}{1995/01/21}{added}
+% \changes{v2.8b}{2001/06/26}{using \cs{float@headings}}
+% \changes{v2.4a}{1996/03/13}{\cs{listtabelname} relaces by \cs{listtablename}}
+% \changes{v2.8g}{2001/07/18}{\cs{float@headings} renamed to
 %     \cs{float@listhead}} 
-% \changes{v2.98c}{2008/03/05}{obsolet}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
+% \changes{v2.98c}{2008/03/05}{obsolet}
+% \changes{v3.01a}{2008/11/20}{deprecated}
 %    \begin{macrocode}
 %<*option>
 \KOMA@DeclareDeprecatedOption{liststotoc}{listof=totoc}
 %</option>
 %    \end{macrocode}
-% \end{option}
+% \end{option}^^A liststotoc
 %
 % \begin{option}{liststotocnumbered}
-% \changes{v2.8q}{2002/04/08}{dem langjährigen Druck nachgegeben}%^^A
-% \changes{v2.9p}{2003/07/07}{Nummerierung im Kolumnentitel}%^^A
-% \changes{v2.98c}{2008/03/05}{obsolet}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
+% \changes{v2.8q}{2002/04/08}{added}
+% \changes{v2.9p}{2003/07/07}{number also in the running head}
+% \changes{v2.98c}{2008/03/05}{obsolet}
+% \changes{v3.01a}{2008/11/20}{deprecated}
 %    \begin{macrocode}
 %<*option>
 \KOMA@DeclareDeprecatedOption{liststotocnumbered}{listof=numbered}
 %</option>
 %    \end{macrocode}
-% \end{option}
+% \end{option}^^A liststotocnumbered
 %
 %
-% \begin{option}{listsleft}
-% \changes{v2.8q}{2001/11/14}{neue Option}%^^A
-% \changes{v2.98c}{2008/03/05}{obsolet}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
-% \begin{option}{listsindent}
-% \changes{v2.8q}{2001/11/14}{neue Option}%^^A
-% \changes{v2.98c}{2008/03/05}{obsolet}%^^A
-% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
+% \begin{option}{listsleft,listsindent}
+% \changes{v2.8q}{2001/11/14}{added}
+% \changes{v2.98c}{2008/03/05}{obsolet}
+% \changes{v3.01a}{2008/11/20}{deprecated}
 %    \begin{macrocode}
 %<*option>
 \KOMA@DeclareDeprecatedOption{listsleft}{listof=flat}
 \KOMA@DeclareDeprecatedOption{listsindent}{listof=graduated}
 %</option>
 %    \end{macrocode}
-% \end{option}
-% \end{option}
+% \end{option}^^A listsleft,listsindent
 %
 % \begin{option}{chapteratlists}
-% \changes{v2.96a}{2006/12/03}{neue Option}%^^A
-% \changes{v2.98c}{2008/03/05}{nicht mehr bei \textsf{scrartcl}}%^^A
-% \changes{v3.12a}{2014/01/17}{fehlendes \cs{FamilyKeyStateProcessed}%^^A
-%     ergänzt}%^^A
-% \changes{v3.17}{2015/03/12}{interne Speicherung der Werte}%^^A
-% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A
-% \begin{macro}{\if@chaptertolists}
-% \changes{v2.96a}{2006/12/03}{neuer Schalter}%^^A
-% \changes{v3.12}{2013/09/24}{Verzeichnisse werden nicht in Verzeichnisse
-%     eingetragen}%^^A
+% \changes{v2.96a}{2006/12/03}{added}
+% \changes{v2.98c}{2008/03/05}{not with \cls*{scrartcl}}
+% \changes{v3.12a}{2014/01/17}{missing \cs{FamilyKeyStateProcessed} added}
+% \changes{v3.17}{2015/03/12}{internal value storage}
+% \changes{v3.28}{2019/11/18}{\cs{ifstr} renamed to \cs{Ifstr}}
+% \begin{macro}{\@chaptertolistsfalse,\@chaptertoliststrue,\if@chaptertolists}
+% \changes{v2.96a}{2006/12/03}{added}
+% \changes{v3.12}{2013/09/24}{don't add lists to lists}
 % \begin{macro}{\@chapterlistsgap}
-% \changes{v2.96a}{2006/12/03}{neues Macro (intern)}%^^A
-% 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.
+% \changes{v2.96a}{2006/12/03}{added}
+% We can do several special treatments inside the lists of floats, when a new
+% chapter starts.
 %    \begin{macrocode}
 %<*option&(book|report)>
 \newcommand*{\@chapterlistsgap}{10\p@}
@@ -940,11 +1036,23 @@
   \KOMA@kav@remove{.\KOMAClassFileName}{listof}{chaptergap}%
   \KOMA@kav@remove{.\KOMAClassFileName}{listof}{chaptergapsmall}%
   \KOMA@kav@remove{.\KOMAClassFileName}{listof}{chaptergapline}%
+%    \end{macrocode}
+% \begin{description}
+% \item[\opt{=entry}:] add the chapter heading also to the lists of
+% float. \cs{@chaptertolisttrue} is used and the distance \cs{@chapterlistgap}
+% is set to \len{z@}.
+% \end{description}
+%    \begin{macrocode}
   \Ifstr{#1}{entry}{%
     \@chaptertoliststrue\renewcommand*{\@chapterlistsgap}{\z@}%
     \KOMA@kav@replacevalue{.\KOMAClassFileName}{chapteratlists}{entry}%
     \KOMA@kav@add{.\KOMAClassFileName}{listof}{chapterentry}%
   }{%
+%    \end{macrocode}
+% \begin{description}
+% \item[\opt{=\meta{distance}}:] use a vertical \meta{distance}.
+% \end{description}
+%    \begin{macrocode}
     \@chaptertolistsfalse\renewcommand*{\@chapterlistsgap}{#1}%
     \KOMA@kav@replacevalue{.\KOMAClassFileName}{chapteratlists}%
                                                {\@chapterlistsgap}%
@@ -969,26 +1077,26 @@
 \KOMA@kav@add{.\KOMAClassFileName}{listof}{chaptergapsmall}%
 %</option&(book|report)>
 %    \end{macrocode}
-% \end{macro}  
-% \end{macro}  
-% \end{option}
+% \end{macro}^^A \@chapterlistgap
+% \end{macro}^^A \if@chaptertolists
+% \end{option}^^A chapteratlists
 %
 %
 % \begin{macro}{\float@listhead}
-% \changes{v2.8b}{2001/06/26}{neu (für alle Paketautoren)}%^^A
-% \changes{v2.8g}{2001/07/18}{\cs{float@headings} umbenannt in
-%   \cs{float@listhead}}%^^A
-% \changes{v2.98c}{2008/03/05}{\cs{float@@listhead} wird verwendet}%^^A
-% \changes{v3.00}{2008/07/04}{Verwendung von \cs{float@listhead} ist nicht
-%   länger empfohlen}%^^A
-% \changes{v3.10}{2011/08/31}{\cs{MakeMarkcase} wird beachtet}%^^A
-% 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.
+% \changes{v2.8b}{2001/06/26}{added}
+% \changes{v2.8g}{2001/07/18}{\cs{float@headings} renamed to
+%   \cs{float@listhead}}
+% \changes{v2.98c}{2008/03/05}{using \cs{float@@listhead}}
+% \changes{v3.00}{2008/07/04}{deprecated}
+% \changes{v3.10}{2011/08/31}{using\cs{MakeMarkcase}}
+% In 2001 I've designed an interface to allow other package authors to set the
+% headings of lists of floats the same way \KOMAScript{} classes do. Anselm
+% Lingnau accepted this interface (but did not like may macro names, so these
+% were changed in \KOMAScript{} 2.8g). But for \KOMAScript{} 3 I've needed a
+% more powerful interface. So this became deprecated. Unfortunately Anselm is
+% not willing to use the new \pkg*{tocbasic} for \pkg{float}. See
+% \pkg*{scrhack} for a solution and how \pkg{float} could benefit from using
+% \pkg*{tocbasic}.
 %    \begin{macrocode}
 %<*body>
 \newcommand*{\float@listhead}[1]{%
@@ -996,13 +1104,8 @@
   \float@@listhead{#1}%
   \@mkboth{\MakeMarkcase{#1}}{\MakeMarkcase{#1}}%
 %    \end{macrocode}
-% \changes{v2.8q}{2001/11/14}{dynamische Anpassung an die Nummer}%^^A
-% 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.
+% \changes{v2.8q}{2001/11/14}{support for dynamic number width}
+% This is the best occasion to also add the code for the dynamic number width.
 %    \begin{macrocode}
   \if@dynlist%
     \newcommand*{\scr@starttoc}{}%
@@ -1013,14 +1116,13 @@
   \fi
 }
 %    \end{macrocode}
-% \begin{macro}{\scr@float@listhead@warning}
-% \changes{v3.01}{2008/11/13}{Neu (intern)}%^^A
-% \changes{v3.12}{2013/09/25}{Text geändert}%^^A
-% \changes{v3.12a}{2014/03/05}{Text korrigiert}%^^A
+% \begin{macro}{\scr@float@listhead@warning,\scr@float@addtolists@warning}
+% \changes{v3.01}{2008/11/13}{added}
+% \changes{v3.12}{2013/09/25}{text changed}
+% \changes{v3.12a}{2014/03/05}{text corrected}
 % \changes{v3.30}{2020/02/25}{spurious space at end of warning message
-%   removed}%^^A
-% Die Warnung für die Verwendung von \cs{float@listhead}, dessen Definition
-% irgendwann aus den Klassen verschwinden wird.
+%   removed}
+% Here the warning messages, that are used for using the deprecated interface.
 %    \begin{macrocode}
 \newcommand*{\scr@float@listhead@warning}{%
   \ClassWarning{\KOMAClassName}{%
@@ -1037,16 +1139,6 @@
     deprecated \string\float@listhead\space interface%
   }%
 }
-%    \end{macrocode}
-% \end{macro}
-% \begin{macro}{\scr@float@addtolists@warning}
-% \changes{v3.01}{2008/11/13}{Neu (intern)}%^^A
-% \changes{v3.12}{2013/09/25}{Text geändert}%^^A
-% \changes{v3.12a}{2014/03/05}{Text korrigiert}%^^A
-% \changes{v3.30}{2020/02/24}{Leerzeichen am Ende der Warnung entfernt}%^^A
-% Die Warnung 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
@@ -1067,28 +1159,15 @@
 }
 %</body>
 %    \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{macro}^^A \scr@float@listhead@warning,scr@float@addtolists@warning
+% \end{macro}^^A \float@listhead
 %
-% \begin{macro}{\listfigurename}
-% \changes{v3.25}{2017/10/10}{\cs{renewcommand} statt \cs{newcommand}}%^^A
-% \changes{v3.27}{2019/05/11}{auch als sprachabhängiger Bezeichner}%^^A
-% \begin{macro}{\listtablename}
+% \begin{command}{\listfigurename,\listtablename}
+% \begin{command}{\listoflofname,\listoflotname,
+%                 \listoflofentryname,\listoflotentryname}
+% \changes{v3.00}{2008/07/03}{neu für Paket \pkg*{tocbasic}}
 % \changes{v3.25}{2017/10/10}{\cs{renewcommand} statt \cs{newcommand}}%^^A
-% \changes{v3.27}{2019/05/11}{auch als sprachabhängiger Bezeichner}%^^A
-% \begin{macro}{\listoflofname}
-% \changes{v3.00}{2008/07/03}{neu für Paket \textsf{tocbasic}}
-% \changes{v3.25}{2017/10/10}{\cs{renewcommand} statt \cs{newcommand}}%^^A
-% \begin{macro}{\listoflotname}
-% \changes{v3.00}{2008/07/03}{neu für Paket \textsf{tocbasic}}
-% \changes{v3.25}{2017/10/10}{\cs{renewcommand} statt \cs{newcommand}}%^^A
-% \begin{macro}{\listoflofentryname}
-% \changes{v3.00}{2008/07/03}{neu für Paket \textsf{tocbasic}}
-% \changes{v3.25}{2017/10/10}{\cs{renewcommand} statt \cs{newcommand}}%^^A
-% \begin{macro}{\listoflotentryname}
-% \changes{v3.00}{2008/07/03}{neu für Paket \textsf{tocbasic}}
-% \changes{v3.25}{2017/10/10}{\cs{renewcommand} statt \cs{newcommand}}%^^A
-% Die Namen der Verzeichnisse auch für das Paket \textsf{tocbasic}.
+% The names used by \pkg*{tocbasic}.
 %    \begin{macrocode}
 %<*body>
 \renewcommand*\listfigurename{List of Figures}
@@ -1103,71 +1182,59 @@
 \renewcommand*\listoflotentryname{\tablename}
 %</body>
 %    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}^^A \listoflofname … \listoflotentryname
+% \end{command}^^A \listfigurename,\listtablename
 %
-% \begin{macro}{\listoffigures}
-% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{lof@heading}}%^^A
-% \changes{v2.4k}{1996/12/13}{\cs{lof@heading} nicht nur bei
-%   \textsf{scrartcl}}%^^A
-% \changes{v2.8l}{2001/08/16}{Gruppe eingefügt und \cs{parskip} auf
-%   0 gesetzt}%^^A
-% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}%^^A
-% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent}
-%   ersetzt}%^^A
-% \changes{v3.00}{2008/07/04}{Verwendung von \textsf{tocbasic}}%^^A
-% \changes{v3.23}{2017/03/24}{Verwendung von \cs{ext@figure} statt
-%   \texttt{lof}}%^^A
-% \changes{v3.25}{2017/10/10}{Wird bereits implizit von \cs{DeclareNewTOC}
-%   definiert}%^^A
-% Die Ausgabe des Abbildungsverzeichnisses.
-% \end{macro}
+% \begin{command}{\listoffigures}
+% \changes{v2.3h}{1995/01/21}{using \cs{lof@heading}}
+% \changes{v2.4k}{1996/12/13}{\cs{lof@heading} for all classes}
+% \changes{v2.8l}{2001/08/16}{group added an \len{parskip} set to 0}
+% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}
+% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} and \cs{@parskip@indent}
+%   replaced}
+% \changes{v3.00}{2008/07/04}{using \pkg*{tocbasic}}
+% \changes{v3.23}{2017/03/24}{using \cs{ext@figure} instead of \file{lof}}
+% \changes{v3.25}{2017/10/10}{implicit definition by \cs{DeclareNewTOC}}
+% The list of figures.
+% \end{command}^^A \listoffigures
 %
 % \begin{macro}{\l@figure}
-% \changes{v3.25}{2017/10/10}{Wird bereits implizit von \cs{DeclareNewTOC}
-%   im \texttt{default}-Stil definiert}%^^A
-% Befehl zur Formatierung eines Verzeichniseintrags.
-% \end{macro}
+% \changes{v3.25}{2017/10/10}{implicit definition by \cs{DeclareNewTOC}}
+% Entry command for the list of figures.
+% \end{macro}^^A \l@figure
 %
-% \begin{macro}{\listoftables}
-% \changes{v2.3h}{1995/01/21}{Verwendung von \cs{lot@heading}}%^^A
-% \changes{v2.4k}{1996/12/13}{\cs{lot@heading} nicht nur bei
-%     \textsf{scrartcl}}%^^A
-% \changes{v2.8l}{2001/08/16}{Gruppe eingefügt und \cs{parskip} auf
-%     0 gesetzt}%^^A
-% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}%
-%     \cs{@parskip@indent}}%^^A
-% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} und \cs{@parskip@indent}
-%     ersetzt}%^^A
-% \changes{v3.00}{2008/07/04}{Verwendung von \textsf{tocbasic}}%^^A
-% \changes{v3.23}{2017/03/24}{Verwendung von \cs{ext@table} statt
-%     \texttt{lot}}%^^A
-% \changes{v3.25}{2017/10/10}{Wird bereits implizit von \cs{DeclareNewTOC}
-%   definiert}%^^A
-% Die Ausgabe des Tabellenverzeichnisses.
-% \end{macro}
+% \begin{command}{\listoftables}
+% \changes{v2.3h}{1995/01/21}{using \cs{lot@heading}}
+% \changes{v2.4k}{1996/12/13}{\cs{lot@heading} for all classes}
+% \changes{v2.8l}{2001/08/16}{group added an \len{parskip} set to 0}
+% \changes{v2.8q}{2001/11/13}{\cs{@parskipfalse}\cs{@parskip@indent}}
+% \changes{v2.95}{2004/11/05}{\cs{@parskipfalse} and \cs{@parskip@indent}
+%   replaced}
+% \changes{v3.00}{2008/07/04}{using \pkg*{tocbasic}}
+% \changes{v3.23}{2017/03/24}{using \cs{ext@table} instead of \file{lot}}
+% \changes{v3.25}{2017/10/10}{implicit definition by \cs{DeclareNewTOC}}
+% The list of figures.
+% \end{command}^^A \listoftables
 %
 % \begin{macro}{\l@table}
-% \changes{v3.25}{2017/10/10}{Wird bereits implizit von \cs{DeclareNewTOC}
-%   im \texttt{default}-Stil definiert}%^^A
-% \end{macro}
+% \changes{v3.25}{2017/10/10}{implicit definition by \cs{DeclareNewTOC}}
+% Entry command for the list of tables.
+% \end{macro}^^A \l@table
 %
-%
-% \iffalse
+%    \begin{macrocode}
 %</!letter>
-% \fi
-%
+%    \end{macrocode}
+% 
 %
 % \Finale
-%
+% \PrintChanges
+% 
 \endinput
-%
-% end of file `scrkernel-listsof.dtx'
-%%% Local Variables:
-%%% mode: doctex
-%%% TeX-master: t
-%%% End:
+% Local Variables:
+% mode: doctex
+% ispell-local-dictionary: "en_US"
+% eval: (flyspell-mode 1)
+% TeX-master: t
+% TeX-engine: luatex-dev
+% eval: (setcar (or (cl-member "Index" (setq-local TeX-command-list (copy-alist TeX-command-list)) :key #'car :test #'string-equal) (setq-local TeX-command-list (cons nil TeX-command-list))) '("Index" "mkindex %s" TeX-run-index nil t :help "makeindex for dtx"))
+% End:
-- 
cgit v1.2.3

