% \CheckSum{316}
% \iffalse meta-comment
% ======================================================================
% scrkernel-listsandtabulars.dtx
% Copyright (c) Markus Kohm, 2002-2017
%
% This file is part of the LaTeX2e KOMA-Script bundle.
%
% This work may be distributed and/or modified under the conditions of
% the LaTeX Project Public License, version 1.3c of the license.
% The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions of LaTeX
% version 2005/12/01 or later and of this work.
%
% This work has the LPPL maintenance status "author-maintained".
%
% The Current Maintainer and author of this work is Markus Kohm.
%
% This work consists of all files listed in manifest.txt.
% ----------------------------------------------------------------------
% scrkernel-listsandtabulars.dtx
% Copyright (c) Markus Kohm, 2002-2017
%
% 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-listsandtabulars.dtx 2640 2017-05-08 09:36:55Z kohm $
%
%<*body>
%<*class>
% \fi
%
%
% \subsection{Ränder in Listen}
%
% \begin{Length}{leftmargini}
% \begin{Length}{leftmarginii}
% \begin{Length}{leftmarginiii}
% \begin{Length}{leftmarginiv}
% \begin{Length}{leftmarginv}
% \begin{Length}{leftmarginvi}
% \begin{Length}{leftmargin}
% \begin{Length}{labelsep}
% \begin{Length}{labelwidth}
% Für die Listenumgebungen in verschiedenen Stufen müssen Ränder
% definiert werden. Hinzu kommen noch die Breite eines Labels und der
% Abstand nach einem Label.
% \begin{macrocode}
%<*!letter>
\if@twocolumn
\setlength{\leftmargini}{2em}
\else
%!letter>
\setlength{\leftmargini}{2.5em}
%\fi
\setlength{\leftmarginii}{2.2em}
\setlength{\leftmarginiii}{1.87em}
\setlength{\leftmarginiv}{1.7em}
%<*!letter>
\if@twocolumn
\setlength{\leftmarginv}{.5em}
\setlength{\leftmarginvi}{.5em}
\else
%!letter>
\setlength{\leftmarginv}{1em}
\setlength{\leftmarginvi}{1em}
%\fi
\setlength{\leftmargin}{\leftmargini}
\setlength{\labelsep}{.5em}
\setlength{\labelwidth}{\leftmargini}
\addtolength{\labelwidth}{-\labelsep}
% \end{macrocode}
% \end{Length}
% \end{Length}
% \end{Length}
% \end{Length}
% \end{Length}
% \end{Length}
% \end{Length}
% \end{Length}
% \end{Length}
%
% Weil die Gelegenheit so günstig ist, setzen wir hier auch gleich
% noch ein paar \emph{penalties} (Erlaubsnispunkte).
% \begin{macrocode}
\@beginparpenalty=-\@lowpenalty
\@endparpenalty =-\@lowpenalty
\@itempenalty =-\@lowpenalty
% \end{macrocode}
%
%
% \subsection{Verschiedene Längen für Tabellen, Arrays und Tabulatoren}
%
% Vorbemerkung: Arrays sind im Prinzip Tabellen zur Verwendung im
% mathemathischen Modus.
%
% \begin{Length}{arraycolsep}
% \begin{Length}{tabcolsep}
% \begin{Length}{arrayrulewidth}
% \begin{Length}{doublerulewidth}
% \begin{Length}{tabbingsep}
% Bei diesen Längen handelt es sich um die Abstände der Spalten in
% \texttt{array}- und \texttt{tabular}-Umgebungen, sowie um die Breite
% und den Abstand der Trennlinien. Hinzu kommt noch der \cs{'} Abstand
% in \texttt{tabbing}-Umgebungen.
% \begin{macrocode}
\setlength\arraycolsep{5\p@}
\setlength\tabcolsep{6\p@}
\setlength\arrayrulewidth{.4\p@}
\setlength\doublerulesep{2\p@}
\setlength\tabbingsep{\labelsep}
% \end{macrocode}
% \end{Length}
% \end{Length}
% \end{Length}
% \end{Length}
% \end{Length}
%
%
% \subsection{Marken in Listen}
%
% \begin{macro}{\theenumi}
% \begin{macro}{\theenumii}
% \begin{macro}{\theenumiii}
% \begin{macro}{\theenumiv}
% \begin{macro}{\labelenumi}
% \begin{macro}{\labelenumii}
% \changes{v2.4m}{1997/02/28}{öffnende Klammer entsprechend Doku
% entfernt}^^A
% \begin{macro}{\labelenumiii}
% \begin{macro}{\labelenumiv}
% \begin{macro}{\p@enumii}
% \begin{macro}{\p@enumiii}
% \begin{macro}{\p@enumiv}
% \begin{macro}{\labelitemi}
% \changes{v2.5g}{1999/10/09}{Mathemodus eliminiert}^^A
% \begin{macro}{\labelitemii}
% \changes{v2.5g}{1999/10/09}{\cs{textendash} verwendet}
% \begin{macro}{\labelitemiii}
% \changes{v2.5g}{1999/10/09}{Mathemodus eliminiert}^^A
% \begin{macro}{\labelitemiv}
% \changes{v2.5g}{1999/10/09}{Mathemodus eliminiert}^^A
% Für die numerierten Listenumgebungen müssen Marken bzw. Numerierungen
% festgelegt werden. Dazu wird eine Darstellung der Zähler, ihr Prefix
% und ihre Labeldarstellung neu definiert.
% \begin{macrocode}
\renewcommand*\theenumi{\@arabic\c@enumi}
\renewcommand*\theenumii{\@alph\c@enumii}
\renewcommand*\theenumiii{\@roman\c@enumiii}
\renewcommand*\theenumiv{\@Alph\c@enumiv}
\newcommand*\labelenumi{\theenumi.}
\newcommand*\labelenumii{\theenumii)}
\newcommand*\labelenumiii{\theenumiii.}
\newcommand*\labelenumiv{\theenumiv.}
\renewcommand*\p@enumii{\theenumi}
\renewcommand*\p@enumiii{\p@enumii(\theenumii)}
\renewcommand*\p@enumiv{\p@enumiii\theenumiii}
\newcommand*\labelitemi{\textbullet}
\newcommand*\labelitemii{\normalfont\bfseries\textendash}
\newcommand*\labelitemiii{\textasteriskcentered}
\newcommand*\labelitemiv{\textperiodcentered}
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
%
% \subsection{Definition der Umgebungen}
%
% \begin{environment}{description}
% Die \texttt{description}-Umgebung dient der Beschreibung von
% einzelnen Begriffen. Der Begriff aus dem optionalen Argument des
% \cs{item}-Befehls wird in einem speziellen Font, dem \cs{descfont},
% gesetzte.
% \begin{macrocode}
\newenvironment{description}{%
\list{}{\labelwidth\z@ \itemindent-\leftmargin
\let\makelabel\descriptionlabel}%
}{%
\endlist
}
\newcommand*{\descriptionlabel}[1]{%
\hspace{\labelsep}\descfont #1%
}
% \end{macrocode}
% \end{environment}
%
% \begin{environment}{labeling}
% \begin{macro}{\labelinglabel}
% \changes{v3.02}{2009/01/01}{Neue Elemente \texttt{labelinglabel} und
% \texttt{labelingseparator} werden verwendet}
% \changes{v3.02c}{2009/01/28}{\texttt{labelinglabel} und
% \texttt{labelingseparator} werden nun auch zur Berechnung der Breite
% verwendet}
% \changes{v3.03a}{2009/04/02}{Argumente in der Berechnung der Label-Breite
% korrigiert}^^A
% Die \cs{labeling}-Umgebung ist eine Erweiterung des \textsf{Script}
% Pakets. Sie erwartet ein optionales und ein normales Argument. Das
% optionale Argument beschreibt einen speziellen Trenntext zwischen
% \cs{item}-Marke und \cs{item}-Beschreibung. Das eigentliche Argument
% wird für die Ermittlung der Einrückung des Beschreibungstextes
% bzw. des Trenntextes benötigt.
% \begin{macrocode}
%
\newenvironment{labeling}[2][]{%
\def\sc@septext{#1}%
\list{}{\settowidth{\labelwidth}{{%
\usekomafont{labelinglabel}{#2%
\usekomafont{labelingseparator}{\sc@septext}}%
}}%
\leftmargin\labelwidth \advance\leftmargin by \labelsep
\let\makelabel\labelinglabel
}%
}{%
\endlist
}
\newcommand\labelinglabel[1]{%
\usekomafont{labelinglabel}{#1\hfil
\usekomafont{labelingseparator}{\sc@septext}}%
}
%<*class>
% \end{macrocode}
% \end{macro}
% \end{environment}
%
% \begin{environment}{verse}
% \changes{v2.3g}{1996/01/14}{\cs{item} muss keine "`[]"'-Klammern
% mehr verarbeiten}
% Die Verse-Umgebung ist für Zitate in Gedichtform und ähnliches
% gedacht.
% \begin{macrocode}
\newenvironment{verse}{%
\let\\=\@centercr
\list{}{\itemsep=\z@
\itemindent=-1.5em
\listparindent=\itemindent
\rightmargin=\leftmargin
\advance\leftmargin by1.5em
}%
\item\relax
}{%
\endlist
}
% \end{macrocode}
% \end{environment}
%
% \begin{environment}{quotation}
% \changes{v2.3g}{1996/01/14}{\cs{item} muss keine "`[]"'-Klammern
% mehr verarbeiten}
% \begin{environment}{quote}
% \changes{v2.3g}{1996/01/14}{\cs{item} muss keine "`[]"'-Klammern
% mehr verarbeiten}
% Die \texttt{quotation}- und die \texttt{quote}-Umgebung erlauben
% rechts und links eingerückte Passagen. Absätze werden entweder in
% der ersten Zeile zusätzlich eingerückt oder durch vertikalen Abstand
% markiert.
% \begin{macrocode}
\newenvironment{quotation}{%
\list{}{\listparindent 1em%
\itemindent \listparindent
\rightmargin \leftmargin
\parsep \z@ \@plus\p@
}%
\item\relax
}{%
\endlist
}
\newenvironment{quote}{%
\list{}{\rightmargin\leftmargin}%
\item\relax
}{%
\endlist
}
% \end{macrocode}
% \end{environment}
% \end{environment}
%
% \begin{environment}{addmargin}
% \changes{v2.8q}{2001/11/29}{neue Umgebung}^^A
% \changes{v2.95a}{2006-07-20}{\cs{@listdepth} korrigiert}^^A
% \begin{environment}{addmargin*}
% \changes{v2.8q}{2001/11/29}{neue Umgebung}^^A
% \changes{v2.95a}{2006-07-20}{\cs{@listdepth} korrigiert}^^A
% \changes{v3.17}{2015/03/23}{robuster gegen Umbrüche am Anfang}^^A
% \changes{v3.22}{2016/08/02}{Umbruchtest nur für doppelseitige
% Dokumente}^^A
% Diese beiden Umgebungen ähneln \texttt{quote} und
% \texttt{quotation}. Dabei werden Absatzeinzug und Absatzabstand
% nicht verändert. Die einzige Veränderung besteht in den Rändern. Wie
% stark die Ränder verändert werden, hängt dabei von den Parametern
% ab. Ist nur der obligatorische Parameter angegeben, werden die
% Ränder auf beiden Seiten um diesen Wert vergrößert. Ist ein
% optionaler Parameter angegeben, so ist dies bei \texttt{addmargin}
% der linke und bei \texttt{addmargin*} der innere Rand. Der
% obligatorische Parameter ist dann der andere Rand. Diese
% Entscheidung ist das einzige, was die Umgebungen selbst erledigen
% müssen.
% \begin{macro}{\@addmargin}
% \changes{v2.8q}{2001/11/29}{neu (intern)}^^A
% \changes{v2.95}{2002/07/01}{\cs{item} muss keine "`[]"'-Klammern
% mehr verarbeiten}^^A
% \changes{v2.9q}{2003/03/24}{\cs{labelsep} bleibt unverändert}^^A
% \changes{v2.95a}{2006/07/20}{\cs{@tmpcnta} bleibt unverändert}^^A
% \changes{v3.05b}{2010/04/29}{\cs{partopsep} muss auf 0 statt \cs{parskip}
% gesetzt werden, weil es zu \cs{topsep} addiert wird}^^A
% \changes{v3.17}{2015/03/23}{robuster gegen Umbrüche am Anfang}^^A
% Der Rest wird von diesem Makro erledigt.
% \begin{macro}{\scr@addmargin@startpage}
% \changes{v3.12}{2013/10/26}{neu (intern, lokal)}^^A
% \changes{v3.12}{2013/10/26}{Test auf Seitenumbruch in
% \texttt{addmargin*}}^^A
% \changes{v3.22}{2016/10/21}{\cs{topsep} und \cs{partopsep} werden
% erhalten}^^A
% \begin{macrocode}
%
\newenvironment{addmargin}{%
\@tempswafalse\@addmargin
}{%
\advance\@listdepth\@ne
\endlist
}
\newenvironment{addmargin*}{%
\@tempswafalse
\if@twoside\is@thispageodd[]\ifthispagewasodd\else\@tempswatrue\fi
\edef\scr@addmargin@startpage{\csname tpo@\scr@tpo\endcsname}\fi
\@addmargin
}{%
\if@twoside
\unskip\nobreak\ifthispageodd{}{}%
\expandafter\ifx\csname tpo@\scr@tpo\endcsname\scr@addmargin@startpage\else
% \ClassWarning{\KOMAClassName}{%
% \PackageWarning{scrextend}{%
page break inside `addmargin*' environment.\MessageBreak
A `addmargin*' environment starting on page
\scr@addmargin@startpage\MessageBreak
ends on page \csname tpo@\scr@tpo\endcsname.\MessageBreak
This will result in potential wrong margins on\MessageBreak
every other page.\MessageBreak
So maybe you should change the `addmargin*'\MessageBreak
environment, that ends%
}%
\fi
\fi
\advance\@listdepth\@ne
\endlist
}
\newcommand*{\@addmargin}[2][\@tempa]{%
\list{}{%
\if@tempswa
\def\@tempa{\leftmargin}%
\setlength{\leftmargin}{#2}%
\setlength{\rightmargin}{#1}%
\else
\def\@tempa{\rightmargin}%
\setlength{\rightmargin}{#2}%
\setlength{\leftmargin}{#1}%
\fi
\setlength{\listparindent}{\parindent}%
\setlength{\itemsep}{\parskip}%
\setlength{\itemindent}{\z@}%
\setlength{\@tempskipa}{\topsep}%
\setlength{\topsep}{\z@}%
\setlength{\parsep}{\parskip}%
\setlength{\@tempskipb}{\partopsep}%
\setlength{\partopsep}{\z@}%
\let\makelabel\@gobble
\setlength{\labelwidth}{\z@}%
\advance\@listdepth\m@ne
}%
\expandafter\ifnum\scr@v@is@ge{3.22}%
\setlength{\topsep}{\@tempskipa}%
\setlength{\partopsep}{\@tempskipb}%
\fi
\item\is@thispageodd@setlabel\nobreak\ignorespaces
}
%<*class>
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{environment}
% \end{environment}
%
%
% \subsection{Schriftarten für Listen}
%
% \begin{macro}{\descfont}
% \changes{v3.20}{2016/01/29}{\cs{sffamily} durch \cs{@gr@gsffamily}
% ersetzt}^^A
% Dies ist die Schriftart, in der das Label der Einträge in eine
% \texttt{description}-Umgebung gesetzt wird. Das Makro ist als intern
% zu betrachten. Anwender habe stattdessen das entsprechende Element
% zu verwenden.
% \begin{macrocode}
\newcommand*\descfont{\@gr@gsffamily\bfseries}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\scr@fnt@descriptionlabel}
% \changes{v2.8o}{2001/09/14}{neues Element \texttt{descriptionlabel}}
% Das Element auf das \cs{descfont} angewandt wird:
% \begin{macrocode}
\newcommand*{\scr@fnt@descriptionlabel}{\descfont}
% \end{macrocode}
% \end{macro}
%
% \begin{KOMAfont}{labelinglabel}
% \changes{v3.02}{2009/01/01}{neues Element}^^A
% \begin{KOMAfont}{labelingseparator}
% \changes{v3.02}{2009/01/01}{neues Element}^^A
% Das Label einer \texttt{labeling}-Umgebung wird in eigener Schrift
% gesetzt. Innerhalb des Labels wird dann das Trennzeichen ebenfalls mit
% eigener Schrift gesetzt. Voreingestellt ist in beiden Fällen keine Änderung.
% \begin{macrocode}
%
\newkomafont{labelinglabel}{}
\newkomafont{labelingseparator}{}
%<*class>
% \end{macrocode}
% \end{KOMAfont}
% \end{KOMAfont}
%
%
% \iffalse
%
%
% \fi
%
% \Finale
%
\endinput
%
% end of file `scrkernel-listsandtabulars.dtx'
%%% Local Variables:
%%% mode: doctex
%%% TeX-master: t
%%% End: