diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrkernel-listsandtabulars.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/koma-script/scrkernel-listsandtabulars.dtx | 511 |
1 files changed, 511 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-listsandtabulars.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-listsandtabulars.dtx new file mode 100644 index 00000000000..16b7298b229 --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-listsandtabulars.dtx @@ -0,0 +1,511 @@ +% \CheckSum{293} +% \iffalse meta-comment +% ====================================================================== +% scrkernel-listsandtabulars.dtx +% Copyright (c) Markus Kohm, 2002-2013 +% +% 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-2013 +% +% 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 1502 2013-11-06 11:00:12Z mjk $ +%<*driver> +% \fi +\ProvidesFile{scrkernel-listsandtabulars.dtx}[2013/10/26 v3.12 KOMA-Script + (lists and tabulars)] +% \iffalse +\documentclass[halfparskip-]{scrdoc} +\usepackage[english,ngerman]{babel} +\usepackage[latin1]{inputenc} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrkernel-listsandtabulars.dtx} +\title{\KOMAScript{} \partname\ \texttt{\filename}% + \footnote{Dies ist Version \fileversion\ von Datei + \texttt{\filename}.}} +\date{\filedate} +\author{Markus Kohm} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +%</driver> +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.95}{2002/07/01}{% +% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} +% +% \section{Listen und Tabellen} +% +% \KOMAScript{} verfügt über einige zusätzliche Listenumgebungen. Ein +% Teil dieser Listenumgebungen ist nicht sofort auf den ersten Blick +% als solche zu erkennen, so wie dies schon bei den Standardklassen +% beispielsweise mit \texttt{quote} und \texttt{quotation} der Fall +% ist. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*option> +% \fi +% +% \subsection{Optionen} +% Diese Umgebungen werden nicht durch Optionen beeinflusst. +% +% +% \iffalse +%</option> +%<*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} +%<!letter>\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} +%<!letter>\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} +% \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} +% \begin{macro}{\labelitemii} +% \changes{v2.5g}{1999/10/09}{\cs{textendash} verwendet} +% \begin{macro}{\labelitemiii} +% \changes{v2.5g}{1999/10/09}{Mathemodus eliminiert} +% \begin{macro}{\labelitemiv} +% \changes{v2.5g}{1999/10/09}{Mathemodus eliminiert} +% 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} +% 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} +%</class> +\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} +% \changes{v2.95a}{2006-07-20}{\cs{@listdepth} korrigiert} +% \begin{environment}{addmargin*} +% \changes{v2.8q}{2001/11/29}{neue Umgebung} +% \changes{v2.95a}{2006-07-20}{\cs{@listdepth} korrigiert} +% 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)} +% \changes{v2.95}{2002/07/01}{\cs{item} muss keine "`[]"'-Klammern +% mehr verarbeiten} +% \changes{v2.9q}{2003/03/24}{\cs{labelsep} bleibt unverändert} +% \changes{v2.95a}{2006/07/20}{\cs{@tmpcnta} bleibt unverändert} +% \changes{v3.05b}{2010/04/29}{\cs{partopsep} muss auf 0 statt \cs{parskip} +% gesetzt werden, weil es zu \cs{topsep} addiert wird} +% Der Rest wird von diesem Makro erledigt. +% \begin{macro}{\scr@addmargin@startpage} +% \changes{v3.12}{2013/10/26}{neu (intern, lokal)} +% \changes{v3.12}{2013/10/26}{Test auf Seitenumbruch in \texttt{addmargin*}} +% \begin{macrocode} +%</class> +\newenvironment{addmargin}{% + \@tempswafalse\@addmargin +}{% + \advance\@listdepth\@ne + \endlist +} +\newenvironment{addmargin*}{% + \@tempswafalse + \if@twoside\ifthispageodd{}{\@tempswatrue}\fi + \edef\scr@addmargin@startpage{\csname tpo@\scr@tpo\endcsname}% + \@addmargin +}{% + \unskip\nobreak\ifthispageodd{}{}% + \expandafter\ifx\csname tpo@\scr@tpo\endcsname\scr@addmargin@startpage\else +%<class> \ClassWarning{\KOMAClassName}{% +%<package> \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 + \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{\topsep}{\z@}% + \setlength{\parsep}{\parskip}% + \setlength{\partopsep}{\z@}% + \let\makelabel\@gobble + \setlength{\labelwidth}{\z@}% + \advance\@listdepth\m@ne + }% + \item\relax% +} +%<*class> +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{environment} +% \end{environment} +% +% +% \subsection{Schriftarten für Listen} +% +% \begin{macro}{\descfont} +% 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{\sffamily\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} +% \begin{KOMAfont}{labelingseparator} +% \changes{v3.02}{2009/01/01}{neues Element} +% 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} +%</class> +\newkomafont{labelinglabel}{} +\newkomafont{labelingseparator}{} +%<*class> +% \end{macrocode} +% \end{KOMAfont} +% \end{KOMAfont} +% +% +% \iffalse +%</class> +%</body> +% \fi +% +% \Finale +% +\endinput +% +% end of file `scrkernel-listsandtabulars.dtx' +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: |