% \iffalse meta-comment % ====================================================================== % scrkernel-listsandtabulars.dtx % Copyright (c) Markus Kohm, 2002-2021 % % 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-2021 % % 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 3563 2021-02-15 18:40:44Z 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 % \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 % \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} % \changes{v3.33}{2021/02/15}{Usage of new font element % \texttt{labelitemi}} % \begin{macro}{\labelitemii} % \changes{v2.5g}{1999/10/09}{\cs{textendash} verwendet} % \changes{v3.33}{2021/02/15}{Usage of new font element % \texttt{labelitemii}} % \begin{macro}{\labelitemiii} % \changes{v2.5g}{1999/10/09}{Mathemodus eliminiert} % \changes{v3.33}{2021/02/15}{Usage of new font element % \texttt{labelitemiii}} % \begin{macro}{\labelitemiv} % \changes{v2.5g}{1999/10/09}{Mathemodus eliminiert} % \changes{v3.33}{2021/02/15}{Usage of new font element % \texttt{labelitemiv}} % 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{\usekomafont{labelitemi}{\textbullet}} \newcommand*\labelitemii{\usekomafont{labelitemii}{\textendash}} \newcommand*\labelitemiii{\usekomafont{labelitemiii}{\textasteriskcentered}} \newcommand*\labelitemiv{\usekomafont{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 % \changes{v3.28}{2019/11/19}{\cs{ifthispageodd} durch \cs{Ifthispageodd} % ersetzt}%^^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} % % \selectlanguage{english} % \begin{KOMAfont}{itemizelabel} % \changes{v3.33}{2021/02/15}{new font element} % \begin{KOMAfont}{labelitemi} % \changes{v3.33}{2021/02/15}{new font element} % \begin{KOMAfont}{labelitemii} % \changes{v3.33}{2021/02/15}{new font element} % \begin{KOMAfont}{labelitemiii} % \changes{v3.33}{2021/02/15}{new font element} % \begin{KOMAfont}{labelitemiv} % \changes{v3.33}{2021/02/15}{new font element} % \begin{macro}{\labelitemfont} % \changes{v3.33}{2021/02/15}{new} % Due to a change in the LaTeX kernel 2020/02/02 the \texttt{itemize} items % react on font changes. For this the standard classes have been changed to % set the item \emph{bullets} using \cs{labelitemfont} which is % \cs{normalfont} by default. I've adapted this using also \cs{labelitemfont} % for compatibility but only to store the font of font element % \texttt{itemizelabel} which is the default of the level depending font % elements. \texttt{itemlabelii} differs, because the default \cs{textendash} % should be bold. % \begin{macrocode} \newcommand*{\labelitemfont}{\normalfont} \newcommand*\scr@fnt@itemizelabel{\labelitemfont} \newkomafont{labelitemi}{\usekomafont{itemizelabel}} \newkomafont{labelitemii}{\usekomafont{itemizelabel}\bfseries} \newkomafont{labelitemiii}{\usekomafont{itemizelabel}} \newkomafont{labelitemiv}{\usekomafont{itemizelabel}} % \end{macrocode} % \end{macro} % \end{KOMAfont} % \end{KOMAfont} % \end{KOMAfont} % \end{KOMAfont} % \end{KOMAfont} % \selectlanguage{ngerman} % % \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: