summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/koma-script/doc/ngerman/tocbasic.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/doc/ngerman/tocbasic.tex')
-rw-r--r--Master/texmf-dist/source/latex/koma-script/doc/ngerman/tocbasic.tex936
1 files changed, 936 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/doc/ngerman/tocbasic.tex b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/tocbasic.tex
new file mode 100644
index 00000000000..795d6ff7fba
--- /dev/null
+++ b/Master/texmf-dist/source/latex/koma-script/doc/ngerman/tocbasic.tex
@@ -0,0 +1,936 @@
+% ======================================================================
+% tocbasic.tex
+% Copyright (c) Markus Kohm, 2002-2008
+%
+% 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.
+% ----------------------------------------------------------------------
+% tocbasic.tex
+% Copyright (c) Markus Kohm, 2002-2008
+%
+% 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.
+% ======================================================================
+%
+% Package tocbasic for Package and Class Authors
+% Maintained by Markus Kohm
+%
+% ----------------------------------------------------------------------
+%
+% Paket tocbasic für Paket- und Klassenautoren
+% Verwaltet von Markus Kohm
+%
+% ======================================================================
+
+\ProvidesFile{tocbasic.tex}[2008/07/31 KOMA-Script package tocbasic]
+
+\chapter{Verzeichnisse verwalten mit Hilfe von \Package{tocbasic}}
+\labelbase{tocbasic}
+
+\BeginIndex{Package}{tocbasic}%
+
+Das Paket \Package{tocbasic} ist neu in \KOMAScript~3.00. Sein Hauptzweck
+besteht darin, Paket- und Klassenautoren die Möglichkeit zu geben, eigene
+Verzeichnisse vergleichbar mit dem Abbildungs- und Tabellenverzeichnis zu
+erstellen und dabei Klassen und anderen Paketen einen Teil der Kontrolle über
+diese Verzeichnisse zu erlauben. Dabei sorgt das Paket \Package{tocbasic} auch
+dafür, dass diese Verzeichnisse von \Package{babel}\IndexPackage{babel} (siehe
+\cite{package:babel}) bei der Sprachumschaltung mit berücksichtigt
+werden. Durch Verwendung von \Package{tocbasic} soll dem Paketautor die Mühe
+genommen werden, selbst solche Anpassungen an andere Pakete oder an Klassen
+vornehmen zu müssen.
+
+\KOMAScript{} verwendet \Package{tocbasic} sowohl für das Inhaltsverzeichnis
+als auch für die bereits erwähnten Verzeichnisse für Abbildungen und Tabellen.
+
+
+\section{Grundlegende Anweisungen}
+\label{sec:tocbasic.basics}
+
+Die grundlegenden Anweisungen dienen in erster Linie dazu, eine Liste aller
+bekannten Dateierweiterungen, die für Verzeichnisse stehen, zu
+verwalten. Einträge in Dateien mit solchen Dateierweiterungen werden
+typischerweise mit \Macro{addtocontents} oder \Macro{addcontentsline}
+vorgenommen. Darüber hinaus gibt es Anweisungen, mit denen eine Aktion für
+all diese Dateierweiterungen durchgeführt werden können. Außerdem gibt es
+Anweisungen, um Einstellungen für die Datei vorzunehmen, die zu einer
+gegebenen Dateierweiterung gehört. Typischerweise hat so eine Dateierweiterung
+auch einen Besitzer. Dieser Besitzer kann eine Klasse oder ein Paket oder ein
+Bezeichner sein, den der Autor der Klasse oder des Pakets, das
+\Package{tocbasic} verwendet, selbst gewählt hat. \KOMAScript{} selbst
+verwendet beispielsweise den Besitzer \PValue{float} für die
+Dateierweiterungen \File{lof} und \File{lot}, die für das Abbildungs- und das
+Tabellenverzeichnis stehen. Für das Inhaltsverzeichnis verwendet \KOMAScript{}
+als Besitzer den Dateiname der Klasse.
+
+\begin{Declaration}
+ \Macro{ifattoclist}\Parameter{Dateierweiterung}\Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+\BeginIndex{Cmd}{ifattoclist}%
+Mit dieser Anweisung wird überprüft, ob die \PName{Dateierweiterung} bereits
+in der Liste der bekannten Dateierweiterungen vorhanden ist, oder nicht. Ist
+die \PName{Dateierweiterung} bereits über diese Liste bekannt, so wird der
+\PName{Dann-Teil} ausgeführt. Anderenfalls wird der \PName{Sonst-Teil}
+ausgeführt.
+\begin{Example}
+ Angenommen, Sie wollen wissen, ob die Dateierweiterung »\File{foo}« bereits
+ verwendet wird, um in diesem Fall einen Fehlermeldung auszugeben, weil diese
+ damit nicht mehr verwendet werden kann:
+ \begin{lstcode}
+ \ifattoclist{foo}{%
+ \PackageError{bar}{%
+ extension `foo' already in use%
+ }{%
+ Each extension may be used only
+ once.\MessageBreak
+ The class or another package already
+ uses extension `foo'.\MessageBreak
+ This error is fatal!\MessageBreak
+ You should not continue!}%
+ }{%
+ \PackageInfo{bar}{using extension `foo'}%
+ }
+ \end{lstcode}
+\end{Example}
+%
+\EndIndex{Package}{tocbasic}
+
+
+\begin{Declaration}
+ \Macro{addtotoclist}\OParameter{Besitzer}\Parameter{Dateierweiterung}
+\end{Declaration}
+\BeginIndex{Cmd}{addtotoclist}%
+Diese Anweisung fügt die \PName{Dateierweiterung} zu der Liste der bekannten
+Dateierweiterungen. Wenn das optionale Argument \OParameter{Besitzer}
+angegeben wurde, wird der angegebene \PName{Besitzer} für diese
+Dateierweiterung mit gespeichert. Wurde das optionale Argument weg gelassen,
+dann versucht \Package{tocbasic} den Dateinamen der aktuell abgearbeiteten
+Klasse oder des Pakets herauszufinden und als \PName{Besitzer} zu
+speichern. Dies funktioniert nur, wenn \Macro{addtotoclist} während des Ladens
+der Klasse oder des Pakets aufgerufen wird. Es funktioniert nicht, wenn
+\Macro{addtoclist} erst später Aufgrund der Verwendung einer Anweisung durch
+den Benutzer aufgerufen wird. In diesem Fall wird als \PName{Besitzer}
+»\PValue{.}« eingetragen. Beachten Sie, dass ein leeres Argument
+\PName{Besitzer} nicht das gleiche ist, wie das Weglassen des kompletten
+optionalen Arguments einschließlich der eckigen Klammern. Ein leeres Argument
+würde auch einen leeren \PName{Besitzer} ergeben.
+\begin{Example}
+ Angenommen, Sie wollen die Dateierweiterung »\File{foo}« zu der Liste der
+ bekannten Dateierweiterungen hinzufügen, während Ihr Paket mit dem
+ Dateinamen »\File{bar.sty}« geladen wird:
+ \begin{lstcode}
+ \addtotoclist{foo}
+ \end{lstcode}
+ Dies fügt die Dateierweiterung »\PValue{foo}« mit dem Besitzer
+ »\PValue{bar.sty}« zur Liste der bekannten Dateierweiterung, wenn diese
+ Erweiterung nicht bereits in der Liste ist. Wenn bereits die verwendete
+ Klasse oder ein anderes Paket diese Dateierweiterung angemeldet hat,
+ erhalten Sie den Fehler:
+ \begin{lstoutput}
+ Package tocbasic Error: file extension `#2' cannot be used twice
+
+ See the tocbasic package documentation for explanation.
+ Type H <return> for immediate help.
+ \end{lstoutput}
+ Wenn Sie dann tatsächlich die Taste »\texttt{H}« gefolgt von der
+ Return-Taste drücken, erhalten Sie als Hilfe:
+ \begin{lstoutput}
+ File extension `foo' is already used by a toc-file, while bar.sty
+ tried to use it again for a toc-file.
+ This may be either an incompatibility of packages, an error at a package,
+ or a mistake by the user.
+ \end{lstoutput}
+
+ Aber vielleicht stellt Ihr Paket auch eine Anweisung bereit, mit der ein
+ Verzeichnis dynamisch erzeugt werden kann. In diesem Fall sollten Sie das
+ optionale Argument von \Macro{addtotoclist} verwenden, um den
+ \PName{Besitzer} anzugeben:
+ \begin{lstcode}
+ \newcommand*{\createnewlistofsomething}[1]{%
+ \addtotoclist[bar.sty]{#1}%
+ % Weitere Aktionen, um dieses Verzeichnis
+ % verfügbar zu machen
+ }
+ \end{lstcode}
+ Wenn jetzt der Anwender diese Anweisung aufruft, beispielsweise mit
+ \begin{lstcode}
+ \createnewlistofsomething{foo}
+ \end{lstcode}
+ dann wird die Dateierweiterung »\PValue{foo}« ebenfalls mit dem Besitzer
+ »\PValue{bar.sty}« zur Liste der bekannten Dateierweiterungen hinzugefügt
+ oder aber ein Fehler gemeldet, wenn diese Dateierweiterung bereits verwendet
+ wird.
+\end{Example}
+Sie können als \PName{Besitzer} angeben, was immer Sie wollen, aber es sollte
+eindeutig sein! Wenn Sie beispielsweise der Autor des Pakets \Package{float}
+wären, könnten Sie als \PName{Besitzer} auch »\PValue{float}« an Stelle von
+»\PValue{float.sty}« angeben. In diesem Fall würden die \KOMAScript-Optionen
+für das Verzeichnis der Abbildungen und das Verzeichnis der Tabellen auch Ihre
+Verzeichnisse betreffen, die zum Zeitpunkt der Verwendung der Option bereits
+zur Liste der bekannten Dateierweiterungen hinzugefügt sind. Das liegt daran,
+dass \KOMAScript{} die Dateierweiterungen »\PValue{lof}« für das
+Abbildungsverzeichnis und »\PValue{lot}« für das Tabellenverzeichnis mit dem
+Besitzer »\PName{float}« anmeldet und die Optionen für diese Besitzer setzt.%
+%
+\EndIndex{Cmd}{addtotoclist}%
+
+
+\begin{Declaration}
+ \Macro{AtAddToTocList}\OParameter{Besitzer}\Parameter{Anweisungen}
+\end{Declaration}
+\BeginIndex{Cmd}{AtAddToTocList}%
+Auf diese Weise können die \Parameter{Anweisungen} zu einer internen Liste von
+Anweisungen hinzugefügt werden, die immer dann auszuführen sind, wenn eine
+Dateierweiterung mit dem angegebenen \PName{Besitzer} zur Liste der bekannten
+Dateierweiterungen hinzugefügt wird. Bezüglich des optionalen Argument wird wie
+in der Erklärung von \Macro{addtotoclist} beschrieben verfahren. Wird das
+optionale Argument leer gelassen, werden in diesem Fall die Aktionen unabhängig
+vom Besitzer immer ausgeführt, wenn die Dateierweiterung zu der Liste der
+bekannten Dateierweiterungen hinzugefügt wird. Während der Ausführung der
+\PName{Anweisungen} ist außerdem \Macro{@currext} die Dateierweiterung, die
+gerade hinzugefügt wird.
+\begin{Example}
+ \Package{tocbasic} selbst verwendet
+ % Umbruchkorrektur (schließende Klammer verschoben)
+ \begin{lstcode}
+ \AtAddToTocList[]{%
+ \expandafter\tocbasic@extend@babel
+ \expandafter{\@currext}}
+ \end{lstcode}
+ um jede Dateierweiterung zu der in \Package{tocbasic} vorhandenen
+ Erweiterung für das Paket \Package{babel} hinzuzufügen. Die zweimalige
+ Verwendung von \Macro{expandafter} ist an dieser Stelle erforderlich, weil
+ das Argument von \Macro{tocbasic@extend@babel} unbedingt expandiert sein
+ muss. Siehe dazu die Erklärung zu \Macro{tocbasic@extend@babel} in
+ \autoref{sec:tocbasic.internals},
+ \autopageref{desc:tocbasic.cmd.tocbasic@extend@babel}.
+\end{Example}
+%
+\EndIndex{Cmd}{AtAddToTocList}%
+
+
+\begin{Declaration}
+ \Macro{removefromtoclist}\OParameter{Besitzer}\Parameter{Dateierweiterung}
+\end{Declaration}
+\BeginIndex{Cmd}{removefromtoclist}%
+Man kann eine \PName{Dateierweiterung} auch wieder aus der Liste der bekannten
+Dateierweiterungen entfernen. Ist das optionale Argument \OParameter{Besitzer}
+angegeben, so wird die Dateierweiterung nur entfernt, wenn sie für den
+angegebenen \PName{Besitzer} angemeldet wurde. Wie der Besitzer beim Weglassen
+des optionalen Argument bestimmt wird, ist der Erklärung zu
+\Macro{addtotoclist} zu entnehmen. Wird ein leerer \PName{Besitzer} angegeben,
+findet kein Besitzertest statt, sondern die \PName{Dateierweiterung} wird
+unabhängig vom Besitzer entfernt.%
+\EndIndex{Cmd}{removefromtoclist}%
+
+
+\begin{Declaration}
+ \Macro{doforeachtocfile}\OParameter{Besitzer}\Parameter{Anweisungen}
+\end{Declaration}
+\BeginIndex{Cmd}{doforeachtocfile}%
+Bisher haben Sie nur Anweisungen kennen gelernt, die für Klassen- und
+Paketautoren eher zusätzlichen Aufwand bedeuten. Mit \Macro{doforeachtocfile}
+kann man die erste Ernte dafür einfahren. Diese Anweisung erlaubt es die
+angegebenen \PName{Anweisungen} für jede von dem \PName{Besitzer} angemeldete
+Dateierweiterung auszuführen. Während der Ausführung der \PName{Anweisungen}
+ist \Macro{@currext} die aktuell verarbeitete Dateierweiterung. Wird das
+optionale Argument \OParameter{Besitzer} weggelassen, so werden alle
+Dateierweiterungen unabhängig vom Besitzer abgearbeitet. Ein leeres optionales
+Argument würde hingegen nur die Dateierweiterungen mit leerem Besitzer
+verarbeiten.
+\begin{Example}
+ Wenn Sie die Liste aller bekannten Dateierweiterungen auf das Terminal und
+ in die \File{log}-Datei ausgeben wollen, ist dies einfach mit
+ \begin{lstcode}
+ \doforeachtocfile{\typeout{\@currext}}
+ \end{lstcode}
+ möglich. Wollen Sie hingegen nur die Dateierweiterungen des Besitzer
+ »\PValue{foo}«, dann geht das einfach mit:
+ \begin{lstcode}
+ \doforeachtocfile[foo]{\typeout{\@currext}}
+ \end{lstcode}
+\end{Example}
+Die \KOMAScript-Klassen \Class{scrbook} und \Class{scrreprt} verwenden diese
+Anweisung übrigens, um für jedes Verzeichnis, für das die Eigenschaft
+\PValue{chapteratlist} gesetzt ist, optional einen vertikalen Abstand oder die
+Kapitelüberschrift in dieses Verzeichnis einzutragen. Wie Sie diese
+Eigenschaft setzen können, ist in \autoref{sec:tocbasic.toc},
+\autopageref{desc:tocbasic.cmd.setuptoc} zu finden.%
+\EndIndex{Cmd}{doforeachtocfile}
+
+
+\begin{Declaration}
+ \Macro{tocbasicautomode}
+\end{Declaration}
+\BeginIndex{Cmd}{tocbasicautomode}%
+Diese Anweisung definiert die Anweisung \Macro{@starttoc}, die der \LaTeX-Kern
+bereit stellt, so um, dass bei jedem Aufruf von \Macro{@starttoc} die dabei
+angegebene Dateierweiterung in die Liste der bekannten Dateierweiterungen
+eingefügt wird, soweit sie dort noch nicht vorhanden ist. Außerdem wird dann
+\Macro{tocbasic@starttoc} an Stelle von \Macro{@starttoc} verwendet. Näheres
+zu \Macro{tocbasic@starttoc} und \Macro{@starttoc} ist
+\autoref{sec:tocbasic.internals},
+\autopageref{desc:tocbasic.cmd.tocbasic@starttoc} zu entnehmen.
+
+Mit Hilfe von \Macro{tocbasicautomode} wird also sozusagen jedes Verzeichnis,
+das mit Hilfe von \Macro{@starttoc} erstellt wird, automatisch zumindest
+teilweise unter die Kontrolle von \Package{tocbasic} gestellt. Ob das zum
+gewünschten Ergebnis führt, hängt jedoch sehr von den jeweiligen
+Verzeichnissen ab. Immerhin funktioniert damit schon einmal die Erweiterung
+für das \Package{babel}-Paket für alle Verzeichnisse. Es ist jedoch
+vorzuziehen, wenn der Paketautor selbst \Package{tocbasic} explizit
+verwendet. Er kann dann auch die weiteren Vorteile nutzen, die ihm das Paket
+bietet und die in den nachfolgenden Abschnitten beschrieben werden.%
+\EndIndex{Cmd}{tocbasicautomode}
+
+
+\section{Erzeugen eines Verzeichnisses}
+\label{sec:tocbasic.toc}
+
+Im vorherigen Abschnitt haben Sie erfahren, wie eine Liste bekannter
+Dateierweiterungen geführt werden kann und wie automatisch Anweisungen beim
+Hinzufügen von Dateierweiterungen zu dieser Liste ausgeführt werden
+können. Des Weiteren haben Sie eine Anweisung kennen gelernt, mit der man für
+jede einzelne bekannte Dateierweiterung oder einen spezifischen Teil davon
+Anweisungen ausführen kann. In diesem Abschnitt werden Sie Anweisungen kennen
+lernen, die sich auf die Datei beziehen, die mit dieser Dateierweiterung
+verbunden ist.
+
+
+\begin{Declaration}
+ \Macro{addtoeachtocfile}\OParameter{Besitzer}\Parameter{Inhalt}
+\end{Declaration}
+\BeginIndex{Cmd}{addtoeachtocfile}%
+Die Anweisung \Macro{addtoeachtocfile} arbeitet ähnlich zu
+\Macro{addtotocfile} aus dem \LaTeX-Kern mit dem Unterschied, dass
+es \Parameter{Inhalt} in jede Datei schreibt, die für den angegebenen
+\PName{Besitzer} in der Liste der bekannten Dateierweiterungen zu finden
+ist. Wird das optionale Argument weggelassen, wird in jede Datei aus der Liste
+der bekannten Dateierweiterungen geschrieben. Der konkrete Dateiname setzt
+sich dabei übrigens aus \Macro{jobname} und der Dateierweiterung
+zusammen. Während des Schreibens von \PName{Inhalt} ist \Macro{@currext} die
+Dateierweiterung der Datei, in die aktuell geschrieben wird.
+\begin{Example}
+ Sie wollen einen vertikalen Abstand von einer Zeile in alle Dateien aus der
+ Liste der bekannten Dateierweiterungen schreiben.
+ \begin{lstcode}
+ \addtoeachtocfile{%
+ \protect\addvspace{\protect\baselineskip}%
+ }%
+ \end{lstcode}
+ Wenn Sie das hingegen nur für die Dateien mit dem definierten Besitzer
+ »\PValue{foo}« machen wollen, verwenden Sie:
+ \begin{lstcode}
+ \addtoeachtocfile[foo]{%
+ \protect\addvspace{\protect\baselineskip}%
+ }
+ \end{lstcode}
+\end{Example}
+Anweisungen, die nicht bereits beim Schreiben expandiert werden sollen, sollte
+wie bei \Macro{addtotocfile} mit \Macro{protect} geschützt werden.
+\EndIndex{Cmd}{addtoeachtocfile}%
+
+
+\begin{Declaration}
+ \Macro{addcontentslinetoeachtocfile}\OParameter{Besitzer}\Parameter{Ebene}\Parameter{Inhalt}
+\end{Declaration}
+\BeginIndex{Cmd}{addcontentslinetoeachtocfile}%
+Diese Anweisung ist mit der \LaTeX-Kern-Anweisung \Macro{addcontentsline}
+vergleichbar. Der Unterschied besteht darin, dass auch diese Anweisung nicht
+nur in eine einzelne Datei, sondern in alle Dateien eines angegebenen
+Besitzers und bei Verzicht auf das optionale Argument in alle Dateien aus der
+Liste der bekannten Dateierweiterungen schreibt.
+\begin{Example}
+ Angenommen, Sie sind Klassen-Autor und wollen den Kapiteleintrag nicht nur in
+ das Inhaltsverzeichnis, sondern in alle Verzeichnisdateien schreiben. Nehmen
+ wir weiter an, dass aktuell \PName{\#1} den Titel enthält, der geschrieben
+ werden soll.
+ \begin{lstcode}
+ \addcontentslinetoeachtocfile{chapter}{%
+ \protect\numberline{\thechapter}#1}%
+ \end{lstcode}
+ In diesem Fall soll natürlich die aktuelle Kapitelnummer direkt beim
+ Schreiben in die Verzeichnisdatei expandiert werden, weshalb sie nicht mit
+ \Macro{protect} vor der Expansion geschützt wurde.
+\end{Example}
+%
+\EndIndex{Cmd}{addcontentslineroeachtocfile}%
+
+
+\begin{Declaration}
+ \Macro{listoftoc}\OParameter{Titel}\Parameter{Dateierweiterung}\\
+ \Macro{listoftoc*}\Parameter{Dateierweiterung}\\
+ \Macro{listofeachtoc}\OParameter{Besitzer}\\
+ \Macro{listof\PName{Dateierweiterung}name}
+\end{Declaration}
+\BeginIndex{Cmd}{listoftoc}%
+\BeginIndex{Cmd}{listoftoc*}%
+\BeginIndex{Cmd}{listofeachtoc}%
+\BeginIndex{Cmd}{listof\PName{Dateierweiterung}name}%
+Mit diesen Anweisungen werden die Verzeichnisse ausgegeben. Die Sternvariante
+\Macro{listoftoc*} benötigt als einziges Argument die \PName{Dateierweiterung}
+der Datei mit den Daten zu dem Verzeichnis. Die Anweisung setzt zunächst die
+vertikalen und horizontalen Abstände, die innerhalb von Verzeichnissen gelten
+sollen, führt die Anweisungen aus, die vor dem Einlesen der Datei ausgeführt
+werden sollen, liest dann die Datei und führt zum Schluss die Anweisungen aus,
+die nach dem Einlesen der Datei ausgeführt werden sollen. Damit kann
+\Macro{listoftoc*} als direkter Ersatz der \LaTeX-Kern-Anweisung
+\Macro{@starttoc} verstanden werden.
+
+Die Version von \Macro{listoftoc} ohne Stern setzt das komplette Verzeichnis
+und veranlasst auch einen optionalen Eintrag in das Inhaltsverzeichnis und den
+Kolumnentitel. Ist das optionale Argument \OParameter{Titel} gegeben, so wird
+diese Angabe sowohl als Überschrift als auch als optionaler Eintrag in
+Inhaltsverzeichnis und Kolumnentitel verwendet. Ist das Argument \PName{Titel}
+lediglich leer, so wird auch eine leere Angabe verwendet. Wird hingegen das
+komplette Argument einschließlich der eckigen Klammern weggelassen, so wird
+die Anweisung \Macro{listof\PName{Dateierweiterung}name} verwendet, wenn diese
+definiert ist. Ist sie nicht definiert, wird ein Standard-Ersatzname verwendet
+und eine Warnung ausgegeben.
+
+Die Anweisung \Macro{listofeachtoc} gibt alle Verzeichnisse des angegebenen
+Besitzers oder alle Verzeichnisse aller bekannten Dateinamenerweiterungen
+aus. Dabei sollte \Macro{listof\PName{Dateierweiterung}name} definiert sein,
+damit der korrekte Titel ausgegeben werden kann. Da eventuell auch der
+Anwender selbst die Anweisungen \Macro{listoftoc*} und \Macro{listofeachtoc}
+verwenden könnte, wird empfohlen \Macro{listof\PName{Dateierweiterung}name}
+immer passend zu definieren.
+\begin{Example}
+ Angenommen, Sie haben ein neues »Verzeichnis der Algorithmen« mit der
+ Dateierweiterung »\PValue{loa}« und wollen dieses anzeigen lassen:
+ \begin{lstcode}
+ \listoftoc[Verzeichnis der Algorithmen]{loa}
+ \end{lstcode}
+ erledigt das für Sie. Wollen Sie das Verzeichnis hingegen ohne Überschrift
+ ausgegeben haben, dann genügt:
+ \begin{lstcode}
+ \listoftoc*{loa}
+ \end{lstcode}
+ In diesem Fall würde natürlich auch ein optional aktivierter Eintrag in das
+ Inhaltsverzeichnis nicht gesetzt. Näheres zur Eigenschaft des Eintrags in
+ das Inhaltsverzeichnis ist bei der Anweisung \Macro{setuptoc},
+ \autopageref{desc:tocbasic.cmd.setuptoc} zu finden.
+\end{Example}
+%
+\EndIndex{Cmd}{listof\PName{Dateierweiterung}name}%
+\EndIndex{Cmd}{listofeachtoc}%
+\EndIndex{Cmd}{listoftoc*}%
+\EndIndex{Cmd}{listoftoc}%
+
+
+\begin{Declaration}
+ \Macro{BeforeStartingTOC}\OParameter{Dateierweiterung}\Parameter{Anweisungen}\\
+ \Macro{AfterStartingTOC}\OParameter{Dateierweiterung}\Parameter{Anweisungen}
+\end{Declaration}
+\BeginIndex{Cmd}{BeforeStartingTOC}%
+\BeginIndex{Cmd}{AfterStartingTOC}%
+Manchmal ist es nützlich, wenn unmittelbar vor dem Einlesen der Datei mit den
+Verzeichnisdaten \PName{Anweisungen} ausgeführt werden können. Mit Hilfe von
+\Macro{BeforeStartingTOC} können Sie genau solche \PName{Anweisungen}
+wahlweise für eine einzelne \PName{Dateierweiterung} oder alle Dateien, die
+mit Hilfe von \Macro{listoftoc*}, \Macro{listoftoc} oder \Macro{listofeachtoc}
+eingelesen werden, erreichen. Ebenso können Sie \PName{Anweisungen} nach dem
+Einlesen der Datei ausführen, wenn Sie diese mit \Macro{AfterStartingTOC}
+definieren. Während der Ausführung der \PName{Anweisungen} ist
+\Macro{@currext} die Dateierweiterung der Datei, die eingelesen wird
+bzw. gerade eingelesen wurde.%
+\EndIndex{Cmd}{AfterStartingTOC}%
+\EndIndex{Cmd}{BeforeStartingTOC}%
+
+
+\begin{Declaration}
+ \Macro{BeforeTOCHead}\OParameter{Dateierweiterung}\Parameter{Anweisungen}\\
+ \Macro{AfterTOCHead}\OParameter{Dateierweiterung}\Parameter{Anweisungen}
+\end{Declaration}
+\BeginIndex{Cmd}{BeforeTOCHead}%
+\BeginIndex{Cmd}{AfterTOCHead}%
+Es können auch \PName{Anweisungen} definiert werden, die unmittelbar vor oder
+nach dem Setzen der Überschrift bei Verwendung von \Macro{listoftoc} oder
+\Macro{listofeachtoc}, ausgeführt werden. Bezüglich des optionalen Arguments
+und der Bedeutung von \Macro{@currext} gilt, was bereits bei
+\Macro{BeforeStartingTOC} und \Macro{AfterStartingTOC} oben erklärt wurde.%
+\EndIndex{Cmd}{AfterTOCHead}%
+\EndIndex{Cmd}{BeforeTOCHead}%
+
+
+\begin{Declaration}
+ \Macro{MakeMarkcase}
+\end{Declaration}
+\BeginIndex{Cmd}{MakeMarkcase}%
+Wenn das Paket \Package{tocbasic} eine Marke für einen Kolumnentitel setzt,
+dann setzt sie diese immer als Argument der Anweisung
+\Macro{MakeMarkcase}. Diese Anweisung ist dazu gedacht, bei Bedarf die
+Groß-/Kleinschreibung des Kolumnentitels zu ändern. In der Voreinstellung ist
+diese Anweisung bei Verwendung einer \KOMAScript-Klasse \Macro{@firstofone}
+und bei Verwendung einer anderen Klasse \Macro{MakeUppercase}. Die Anweisung
+wird von \Package{tocbasic} jedoch nur definiert, wenn sie noch nicht bereits
+definiert ist. Sie kann also in einer Klasse in der gewünschten Weise
+vorbelegt werden und wird dann von \Package{tocbasic} nicht umdefiniert,
+sondern verwendet wie vorgefunden.
+\begin{Example}
+ Sie wollen aus unerfindlichen Gründen, dass die Kolumnentitel in Ihrer
+ Klasse in Kleinbuchstaben ausgegeben werden. Damit dies auch für die
+ Kolumnentitel gilt, die von \Package{tocbasic} gesetzt werden, definieren
+ Sie:
+ \begin{lstcode}
+ \let\MakeMarkcase\MakeLowercase
+ \end{lstcode}
+\end{Example}
+%
+\EndIndex{Cmd}{MakeMarkcase}%
+
+
+\begin{Declaration}
+ \Macro{deftocheading}\Parameter{Dateierweiterung}\Parameter{Definition}
+\end{Declaration}
+\BeginIndex{Cmd}{deftocheading}%
+Das Paket \Package{tocbasic} enthält eine Standarddefinition für das Setzen
+von Überschriften von Verzeichnissen. Diese Standarddefinition ist durch
+verschiedene Eigenschaften, die bei der Anweisung \Macro{setuptoc} erläutert
+werden, konfigurierbar. Sollte diese Möglichkeit einmal nicht ausreichen, so
+besteht die Möglichkeit, mit \Macro{deftocheading} eine alternative
+Überschriftenanweisung für ein Verzeichnis mit einer bestimmten
+\PName{Dateierweiterung} zu definieren. Die Definition kann als einzigen
+Parameter \PName{\#1} enthalten. Beim Aufruf der Anweisung innerhalb von
+\Macro{listoftoc} oder \Macro{listofeachtoc} wird als dieses Argument dann der
+Titel für das Verzeichnis übergeben.
+%
+\EndIndex{Cmd}{deftocheading}%
+
+
+\begin{Declaration}
+ \Macro{setuptoc}\Parameter{Dateierweiterung}\Parameter{Liste von
+ Eigenschaften}\\
+ \Macro{unsettoc}\Parameter{Dateierweiterung}\Parameter{Liste von
+ Eigenschaften}
+\end{Declaration}
+\BeginIndex{Cmd}{setuptoc}%
+\BeginIndex{Cmd}{unsettoc}%
+Mit diesen Anweisungen können \PName{Eigenschaften} für eine
+\PName{Dateierweiterung} bzw. das Verzeichnis, das dazu gehört, gesetzt
+werden. Die \PName{Liste von Eigenschaften} ist dabei eine durch Komma
+getrennte Aneinanderreihung von \PName{Eigenschaften}. Das Paket
+\Package{tocbasic} wertet folgende Eigenschaften aus:
+\begin{description}
+\item[\PValue{totoc}] bedeutet, dass der Titel des Verzeichnisses in das
+ Inhaltsverzeichnis aufgenommen werden soll. Diese Eigenschaft wird von der
+ internen Überschriftenanweisung ausgewertet. Wird hingegen eine eigene
+ Überschriftenanweisung mit \Macro{deftocheading} definiert, liegt die
+ Auswertung der Eigenschaft in der Verantwortung dessen, der die Definition
+ vornimmt. Die \KOMAScript-Klassen setzen diese Eigenschaft bei Verwendung
+ der Option \OptionValue{listof}{totoc} für alle Dateierweiterungen des
+ Besitzers \Package{float}.
+\item[\PValue{numbered}] bedeutet, dass das Verzeichnis nummeriert und damit
+ ebenfalls in das Inhaltsverzeichnis aufgenommen werden soll. Diese
+ Eigenschaft wird von der internen Überschriftenanweisung ausgewertet. Wird
+ hingegen eine eigene Überschriftenanweisung mit \Macro{deftocheading}
+ definiert, liegt die Auswertung der Eigenschaft in der Verantwortung dessen,
+ der die Definition vornimmt. Die \KOMAScript-Klassen setzen diese
+ Eigenschaft bei Verwendung der Option \OptionValue{listof}{numbered} für
+ alle Dateierweiterungen des Besitzers \Package{float}.
+\item[\PValue{leveldown}] bedeutet, dass das Verzeichnis nicht mit der
+ obersten Gliederungsebene (wenn vorhanden \Macro{chapter}, sonst
+ \Macro{section}) erstellt wird, sondern mit einer Überschrift der nächst
+ tieferen Gliederungsebene. Diese Eigenschaft wird von der internen
+ Überschriftenanweisung ausgewertet. Wird hingegen eine eigene
+ Überschriftenanweisung mit \Macro{deftocheading} definiert, liegt die
+ Auswertung der Eigenschaft in der Verantwortung dessen, der die Definition
+ vornimmt. Die \KOMAScript-Klassen setzen diese Eigenschaft bei Verwendung
+ der Option \OptionValue{listof}{leveldown} für alle Dateierweiterungen des
+ Besitzers \Package{float}.
+\item[\PValue{nobabel}] bedeutet, dass die normalerweise automatisch
+ verwendete Erweiterung für die Sprachumschaltung mit \Package{babel} für
+ diese Dateierweiterung nicht verwendet wird. Diese Eigenschaft sollte nur
+ für Verzeichnisse verwendet werden, die nur in einer festen Sprache erstellt
+ werden, in denen also Sprachumschaltungen im Dokument nicht zu
+ berücksichtigen sind.
+\end{description}
+Die \KOMAScript-Klassen kennen eine weitere Eigenschaft:
+\begin{description}
+\item[\PValue{chapteratlist}] sorgt dafür, dass in dieses Verzeichnis bei
+ jedem neuen Kapitel eine optionale Gliederung eingefügt wird. In der
+ Voreinstellung ist diese Untergliederung dann ein vertikaler
+ Abstand. Näheres zu den Möglichkeiten ist Option \Option{listof} in
+ \autoref{sec:maincls.floats}, \autopageref{desc:maincls.option.listof} zu
+ entnehmen.
+\end{description}
+\begin{Example}
+ Da \KOMAScript{} für das Abbildungs- und das Tabellenverzeichnis auf
+ \Package{tocbasic} aufbaut, gibt es nun eine weitere Möglichkeit, jegliche
+ Kapiteluntergliederung dieser Verzeichnisse zu verhindern:
+ \begin{lstcode}
+ \unsettoc{lof}{chapteratlist}
+ \unsettoc{lot}{chapteratlist}
+ \end{lstcode}
+
+ Wollen Sie hingegen, dass das von Ihnen definierte Verzeichnis mit der
+ Dateierweiterung »\PName{loa}« ebenfalls von der Kapiteluntergliederung der
+ \KOMAScript-Klassen betroffen ist, so verwenden Sie
+ \begin{lstcode}
+ \setuptoc{loa}{chapteratlist}
+ \end{lstcode}
+ Sollte Ihr Paket mit einer anderen Klasse verwendet werden, so schadet es
+ trotzdem nicht, dass Sie diese Eigenschaft setzen, im Gegenteil: wertet eine
+ andere Klasse diese Eigenschaft ebenfalls aus, so nutzt Ihr Paket dann eben
+ automatisch die Möglichkeiten jener Klasse.
+\end{Example}
+Wie Sie hier sehen, unterstützt ein Paket, das \Package{tocbasic} verwendet,
+bereits ohne nennenswerten Aufwand diverse Möglichkeiten für die dadurch
+realisierten Verzeichnisse, die sonst einigen Implementierungsaufwand
+bedeuteten und deshalb in vielen Paketen leider fehlen.%
+\EndIndex{Cmd}{unsettoc}%
+\EndIndex{Cmd}{setuptoc}%
+
+
+\begin{Declaration}
+ \Macro{iftocfeature}\Parameter{Dateierweiterung}\Parameter{Eigenschaft}\Parameter{Dann-Teil}\Parameter{Sonst-Teil}
+\end{Declaration}
+\BeginIndex{Cmd}{iftocfeature}%
+Mit dieser Anweisung können Sie feststellen, ob eine bestimmte
+\PName{Eigenschaft} für eine \PName{Dateierweiterung} gesetzt ist. Ist sie
+gesetzt, so wird der \PName{Dann-Teil} ausgeführt, anderenfalls der
+\PName{Sonst-Teil}. Dies ist beispielsweise dann nützlich, wenn Sie eigene
+Überschriftenanweisungen mit \Macro{deftocheading} definieren, aber die oben
+beschriebene Eigenschaft \PValue{totoc}, \PValue{numbered} oder
+\PValue{leveldown} ebenfalls unterstützen wollen.
+%
+\EndIndex{Cmd}{iftocfeature}%
+
+
+\section{Interne Anweisungen für Klassen- und Paketautoren}
+\label{sec:tocbasic.internals}
+
+Das Paket \Package{tocbasic} bietet einige interne Anweisungen, deren Benutzung
+durch Klassen- und Paketautoren freigegeben ist. Diese Anweisungen
+beginnen alle mit \Macro{tocbasic@}. Aber auch Klassen- und Paketautoren
+sollten diese Anweisungen nur verwenden und nicht etwas umdefinieren! Ihre
+interne Funktion kann jederzeit geändert oder erweitert werden, so dass
+Umdefinierung der Anweisungen die Funktion von \Package{tocbasic} erheblich
+beschädigen könnte!
+
+
+\begin{Declaration}
+ \Macro{tocbasic@extend@babel}\Parameter{Dateierweiterung}
+\end{Declaration}
+\BeginIndex{Cmd}{tocbasic@extend@babel}%
+Das Paket \Package{babel}\IndexPackage{babel} (siehe \cite{package:babel})
+bzw. ein \LaTeX-Kern, der um die Sprachverwaltung von \Package{babel}
+erweitert wurde, schreibt bei jeder Sprachumschaltung am Anfang oder innerhalb
+eines Dokuments in die Dateien mit den Dateierweiterungen \File{toc},
+\File{lof} und \File{lot} Anweisungen, um diese Sprachumschaltung in diesen
+Dateien mit zu führen. \Package{tocbasic} erweitert diesen Mechanismus so,
+dass mit Hilfe von \Macro{tocbasic@extend@babel} auch andere
+\PName{Dateierweiterungen} davon profitieren. Das Argument
+\PName{Dateierweiterung} sollte dabei vollständig expandiert sein!
+Anderenfalls besteht die Gefahr, dass etwa die Bedeutung eines Makros zum
+Zeitpunkt der tatsächlichen Auswertung bereits geändert wurde.
+
+Normalerweise wird diese Anweisung für alle \PName{Dateierweiterungen}, die mit
+\Macro{addtotoclist} zur Liste der bekannten Dateierweiterungen hinzugefügt
+werden, aufgerufen. Über die Eigenschaft \PValue{nobabel} (siehe
+\Macro{setuptoc}, \autoref{sec:tocbasic.toc},
+\autopageref{desc:tocbasic.cmd.setuptoc}) kann dies unterdrückt werden. Für
+die Dateinamenerweiterungen \File{toc},
+\File{lof} und \File{lot} unterdrückt \Package{tocbasic} dies bereits selbst,
+damit die Umschaltung nicht mehrfach in die zugehörigen Dateien eingetragen
+wird.
+
+Normalerweise gibt es keinen Grund, diese Anweisung selbst aufzurufen. Es sind
+allerdings Verzeichnisse denkbar, die nicht unter der Kontrolle von
+\Package{tocbasic} stehen, also nicht in der Liste der bekannten
+Dateierweiterungen geführt werden, aber trotzdem die Spracherweiterung für
+\Package{babel} nutzen sollen. Für diese ist die Anweisung explizit
+aufzurufen. Bitte achten Sie jedoch darauf, dass dies für jede Dateierweiterung
+nur einmal geschieht!
+%
+\EndIndex{Cmd}{tocbasic@extend@babel}%
+
+
+\begin{Declaration}
+ \Macro{tocbasic@starttoc}\Parameter{Dateierweiterung}
+\end{Declaration}
+\BeginIndex{Cmd}{tocbasic@starttoc}%
+Diese Anweisung ist der eigentlich Ersatz der Anweisung \Macro{@starttoc} aus
+dem \LaTeX-Kern. Es ist die Anweisung, die sich hinter \Macro{listoftoc*}
+verbirgt. Klassen- oder Paketautoren, die Vorteile von \Package{tocbasic}
+nutzen wollen, sollten zumindest diese Anweisung, besser jedoch
+\Macro{listoftoc} verwenden. Die Anweisung baut selbst auf \Macro{@starttoc}
+auf, setzt allerdings zuvor \Length{parskip} und \Length{parindent} auf 0 und
+\Length{parfillskip} auf 0 bis unendlich. Außerdem wird \Macro{@currext} auf
+die aktuelle Dateierweiterung gesetzt, damit diese in den nachfolgend
+ausgeführten Haken ausgewertet werden können.
+%
+\EndIndex{Cmd}{tocbasic@starttoc}%
+
+
+\begin{Declaration}
+ \Macro{tocbasic@@before@hook}\\
+ \Macro{tocbaisc@@after@hook}
+\end{Declaration}
+\BeginIndex{Cmd}{tocbasic@@before@hook}%
+\BeginIndex{Cmd}{tocbasic@@after@hook}%
+Der Haken \Macro{tocbasic@@before@hook} wird unmittelbar vor dem Einlesen der
+Verzeichnisdatei, aber noch vor den mit \Macro{BeforeStartingTOC} definierten
+Anweisungen ausgeführt. Es ist erlaubt, diesen Haken mit Hilfe von
+\Macro{g@addto@macro} zu erweitern.
+
+Ebenso wird \Macro{tocbaisc@@after@hook} unmittelbar nach der Verzeichnisdatei
+aber noch vor den mit \Macro{AfterStartingTOC} definieren Anweisungen
+ausgeführt. Es ist erlaubt, diesen Haken mit Hilfe von \Macro{g@addto@macro}
+zu erweitern.
+
+\KOMAScript{} nutzt diese Haken, um die Verzeichnisse mit dynamischer
+Anpassung an die Breite der Gliederungsnummern zu ermöglichen. Ihre Verwendung
+ist Klassen und Paketen vorbehalten. Anwender sollten sich auf
+\Macro{BeforeStartingTOC} und \Macro{AfterStartingTOC} beschränken. Paketautoren
+sollten ebenfalls vorzugsweise diese beiden Anwenderanweisungen verwenden!
+Ausgaben innerhalb der beiden Haken sind nicht gestattet!
+
+Werden für die Ausgabe der Verzeichnisse die Anweisungen \Macro{listoftoc},
+\Macro{listoftoc*} und \Macro{listofeachtoc} nicht verwendet, sollten die
+beiden Anweisungen für die Haken trotzdem aufgerufen werden.
+%
+\EndIndex{Cmd}{tocbasic@@after@hook}%
+\EndIndex{Cmd}{tocbasic@@before@hook}%
+
+
+\begin{Declaration}
+ \Macro{tb@\PName{Dateierweiterung}@before@hook}\\
+ \Macro{tb@\PName{Dateierweiterung}@after@hook}
+\end{Declaration}
+\BeginIndex{Cmd}{tb@\PName{Dateierweiterung}@before@hook}%
+\BeginIndex{Cmd}{tb@\PName{Dateierweiterung}@after@hook}%
+Diese Anweisungen werden unmittelbar nach \Macro{tocbasic@@before@hook}
+bzw. vor \Macro{tocbaisc@@after@hook} für die einzelnen
+\PName{Dateierweiterungen} ausgeführt. Sie dürfen keinesfalls von Klassen- und
+Paketautoren verändert werden. Werden für die Ausgabe der Verzeichnisse die
+Anweisungen \Macro{listoftoc}, \Macro{listoftoc*} und \Macro{listofeachtoc}
+nicht verwendet, sollte diese die beiden Anweisungen für die Haken trotzdem
+aufgerufen werden, soweit sie definiert sind. Die Anweisungen können auch
+undefiniert sein.
+%
+\EndIndex{Cmd}{tb@\PName{Dateierweiterung}@after@hook}%
+\EndIndex{Cmd}{tb@\PName{Dateierweiterung}@before@hook}%
+
+
+\begin{Declaration}
+ \Macro{tocbasic@listhead}\Parameter{Titel}
+\end{Declaration}
+\BeginIndex{Cmd}{tocbasic@listhead}%
+Diese Anweisung wird von \Macro{listoftoc} und \Macro{listofeachtoc}
+verwendet, um die Anweisung zum Setzen der Überschrift eines Verzeichnisses
+aufzurufen. Das kann entweder die vordefinierte Anweisung des Pakets
+\Package{tocbasic} oder eine individuelle Anweisung sein. Wenn Sie Ihre eigene
+Anweisung für die Überschrift definieren, können Sie ebenfalls
+\Macro{tocbasic@listhead} verwenden. In diesem Fall sollte vor dem Aufruf von
+\Macro{tocbasic@listhead} die Anweisung \Macro{@currext} auf die
+Dateinamenerweiterung, die zu diesem Verzeichnis gehört, gesetzt werden.
+%
+\EndIndex{Cmd}{tocbasic@listhead}
+
+
+\begin{Declaration}
+ \Macro{tocbasic@listhead@\PName{Dateierweiterung}}\Parameter{Titel}
+\end{Declaration}
+\BeginIndex{Cmd}{tocbasic@listhead@\PName{Dateierweiterung}}%
+Ist diese individuelle Anweisung für das Setzen einer Verzeichnisüberschrift
+definiert, so verwendet \Macro{tocbasic@listhead} diese. Anderenfalls
+definiert \Macro{tocbasic@listhead} diese und ruft sie dann auf.
+%
+\EndIndex{Cmd}{tocbasic@listhead@\PName{Dateierweiterung}}
+
+
+\section{Ein komplettes Beispiel}
+\label{sec:tocbasic.example}
+
+In diesem Abschnitt finden Sie ein komplettes Beispiel, wie eine eigene
+Gleitumgebung einschließlich Verzeichnis und \KOMAScript-Integration mit Hilfe
+von \Package{tocbasic} definiert werden kann. In diesem Beispiel werden
+interne Anweisungen, also solche mit »\texttt{@}« im Namen verwendet. Das
+bedeutet, dass die Anweisungen entweder in einem eigenen Paket, einer Klasse
+oder zwischen \Macro{makeatletter} und \Macro{makeatother} verwendet werden
+müssen.
+
+Als erstes wird eine Umgebung benötigt, die diese neue Gleitumgebung
+bereitstellt. Das geht ganz einfach mit:
+% Umbruchkorrektur: listings korrigiert!
+\begin{lstcode}[belowskip=\dp\strutbox]
+ \newenvironment{remarkbox}{%
+ \@float{remarkbox}%
+ }{%
+ \end@float
+ }
+\end{lstcode}
+Die neue Umgebung heißt also \Environment{remarkbox}.
+
+Jede Gleitumgebung hat eine Standardplatzierung. Diese setzt sich aus
+bekannten Platzierungsoptionen zusammen:
+% Umbruchkorrektur: listings korrigiert!
+\begin{lstcode}[belowskip=\dp\strutbox]
+ \newcommand*{\fps@remarkbox}{tbp}
+\end{lstcode}
+Die neue Gleitumgebung soll also in der Voreinstellung nur oben, unten oder
+auf einer eigenen Seite platziert werden dürfen.
+
+Gleitumgebungen haben außerdem einen nummerischen Gleittyp. Umgebungen, bei
+denen das gleiche Bit im Gleittyp gesetzt ist, dürfen sich nicht gegenseitig
+überholen. Abbildungen und Tabellen haben normalerweise den Typ~1 und 2. Sie
+dürfen sich also gegenseitig überholen.
+% Umbruchkorrektur: listings korrigiert!
+\begin{lstcode}[belowskip=\dp\strutbox]
+ \newcommand*{\ftype@remarkbox}{4}
+\end{lstcode}
+Die neue Umgebung hat den Typ~4, darf also Tabellen und Abbildungen überholen
+und von diesen überholt werden.
+
+Gleitumgebungen haben außerdem eine Nummer.
+% Umbruchkorrektur: listings korrigiert!
+\begin{lstcode}[belowskip=\dp\strutbox]
+ \newcounter{remarkbox}
+ \newcommand*{\remarkboxformat}{%
+ Merksatz~\theremarkbox\csname autodot\endcsname}
+ \newcommand*{\fnum@remarkbox}{\remarkboxformat}
+\end{lstcode}
+Hier wird zunächst ein neuer Zähler definiert, der unabhängig von Kapiteln
+oder sonstigen Gliederungszählern ist. Dabei definiert \LaTeX{} auch gleich
+\Macro{theremarkbox} mit der Standardausgabe als arabische Zahl. Diese wird
+dann in der Definition der formatierten Ausgabe verwendet. Die formatierte
+Ausgabe wird wiederum als Gleitumgebungsnummer für die Verwendung in
+\Macro{caption} definiert.
+
+Gleitumgebungen haben Verzeichnisse und diese haben eine Datei mit dem Namen
+\Macro{jobname} und einer Dateierweiterung.
+% Umbruchkorrektur: listings korrigiert!
+\begin{lstcode}[belowskip=\dp\strutbox]
+ \newcommand*{\ext@remarkbox}{lor}
+\end{lstcode}
+Als Dateierweiterung verwenden wir also »\File{lor}«.
+
+Die Umgebung selbst steht damit. Es fehlt allerdings das Verzeichnis. Damit
+wir dabei möglichst wenig selbst machen müssen, verwenden wir das Paket
+\Package{tocbasic}. Dieses wird in Dokumenten mit
+% Umbruchkorrektur: listings korrigiert!
+\begin{lstcode}[belowskip=\dp\strutbox]
+ \usepackage{tocbasic}
+\end{lstcode}
+geladen. Ein Klassen- oder Paketautor würde hingegen
+% Umbruchkorrektur: listings korrigiert!
+\begin{lstcode}[belowskip=\dp\strutbox]
+ \RequirePackage{tocbasic}
+\end{lstcode}
+verwenden.
+
+Nun machen wir die neue Dateierweiterung dem Paket \Package{tocbasic}
+bekannt.
+% Umbruchkorrektur: listings korrigiert!
+\begin{lstcode}[belowskip=\dp\strutbox]
+ \addtotoclist[float]{lor}
+\end{lstcode}
+Dabei verwenden wir als Besitzer \PValue{float}, damit sich alle
+anschließend aufgerufenen Optionen von \KOMAScript, die sich auf Verzeichnisse
+von Gleitumgebungen beziehen, auch auf das neue Verzeichnis beziehen.
+
+Jetzt definieren wir noch einen Titel für dieses Verzeichnis:
+% Umbruchkorrektur: listings korrigiert!
+\begin{lstcode}[belowskip=\dp\strutbox]
+ \newcommand*{\listoflorname}{Verzeichnis der Merksätze}
+\end{lstcode}
+Normalerweise würde man in einem Paket übrigens zunächst einen englischen
+Titel definieren und dann beispielsweise mit Hilfe des Pakets
+\Package{scrbase} Titel für andere Sprachen.
+
+Jetzt müssen wir nur noch definieren, wie ein einzelner Eintrag in dem
+Verzeichnis aussehen soll:
+% Umbruchkorrektur: listings korrigiert!
+\begin{lstcode}[belowskip=\dp\strutbox]
+ \newcommand*{\l@remarkbox}{\l@figure}
+\end{lstcode}
+Weil das die einfachste Lösung ist, wurde hier festgelegt, dass Einträge in
+das Verzeichnis der Merksätze genau wie Einträge in das Abbildungsverzeichnis
+aussehen sollen. Man hätte auch eine explizite Festlegung wie
+% Umbruchkorrektur: listings korrigiert!
+\begin{lstcode}[belowskip=\dp\strutbox]
+ \newcommand*{\l@remarkbox}{\@dottedtocline{1}{1em}{1.5em}}
+\end{lstcode}
+verwenden können.
+
+Außerdem wollen Sie, das Kapiteleinträge sich auf das Verzeichnis auswirken.
+% Umbruchkorrektur: listings korrigiert!
+\begin{lstcode}[belowskip=\dp\strutbox]
+ \setuptoc{lor}{chapteratlist}
+\end{lstcode}
+Das Setzen dieser Eigenschaft ermöglicht dies bei Verwendung einer
+\KOMAScript-Klasse und jeder anderen Klasse, die diese Eigenschaft
+unterstützt. Leider gehören die Standardklassen nicht dazu.
+
+Das genügt bereits. Der Anwender kann nun bereits wahlweise mit Hilfe der
+Optionen einer \KOMAScript-Klasse oder \Macro{setuptoc} verschiedene Formen
+der Überschrift (ohne Inhaltsverzeichniseintrag, mit
+Inhaltsverzeichniseintrag, mit Nummerierung) wählen und das Verzeichnis mit
+\Macro{listoftoc}\PParameter{lor} ausgeben. Mit einem schlichten
+% Umbruchkorrektur: listings korrigiert!
+\begin{lstcode}[belowskip=\dp\strutbox]
+ \newcommand*{\listofremarkboxes}{\listoftoc{lor}}
+\end{lstcode}
+kann man die Anwendung noch etwas vereinfachen.
+
+Wie Sie gesehen haben, beziehen sich gerade einmal fünf einzeilige
+Anweisungen, von denen nur drei bis vier wirklich notwendig sind, auf das
+Verzeichnis selbst. Trotzdem bietet dieses Verzeichnis bereits die
+Möglichkeit, es zu nummerieren oder auch nicht nummeriert in das
+Inhaltsverzeichnis aufzunehmen. Es kann sogar per Eigenschaft bereits eine
+tiefere Gliederungsebene gewählt werden. Kolumnentitel werden für \KOMAScript,
+die Standardklassen und alle Klassen, die \Package{tocbasic} explizit
+unterstützen angepasst gesetzt. Unterstützende Klassen beachten das neue
+Verzeichnis sogar beim Wechsel zu einem neuen Kapitel. Sprachumschaltungen
+durch Babel werden in dem Verzeichnis ebenfalls berücksichtigt.
+
+Natürlich kann ein Paketautor weiteres hinzufügen. So könnte er explizit
+Optionen anbieten, um die Verwendung von \Macro{setuptoc} vor dem Anwender zu
+verbergen. Andererseits kann er auch auf diese Anleitung zu \Package{tocbasic}
+verweisen, wenn es darum geht, die entsprechenden Möglichkeiten zu
+erklären. Vorteil ist dann, dass der Anwender automatisch von etwaigen
+zukünftigen Erweiterungen von \Package{tocbasic} profitiert. Soll der Anwender
+aber nicht mit der Tatsache belastet werden, dass für die Merksätze die
+Dateierweiterung \File{lor} verwendet wird, so genügt
+% Umbruchkorrektur: listings korrigiert!
+\begin{lstcode}[belowskip=\dp\strutbox]
+ \newcommand*{\setupremarkboxes}{\setuptoc{lor}}
+\end{lstcode}
+um eine als Argument an \Macro{setupremarkboxes} übergebene Liste von
+Eigenschaften direkt als Liste von Eigenschaften für \File{lor} zu setzen.
+%
+\EndIndex{Package}{tocbasic}%
+
+
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: iso-latin-1
+%%% TeX-master: "guide.tex"
+%%% End:
+