% \CheckSum{721} % \iffalse meta-comment % ====================================================================== % scrkernel-paragraphs.dtx % Copyright (c) Markus Kohm, 2002-2019 % % 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-paragraphs.dtx % Copyright (c) Markus Kohm, 2002-2019 % % 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-paragraphs.dtx 3262 2019-10-10 08:25:29Z kohm $ % %<*body> % \fi % % % \subsection{Abatzformatierung} % % \changes{v2.8i}{2001/07/22}{\cs{baselinestretch} wird nicht % umdefiniert} % \begin{Length}{lineskip} % \begin{Length}{normallineskip} % Minimaler Zeilenabstand: % \begin{macrocode} \setlength{\lineskip}{\p@} \setlength{\normallineskip}{\p@} % \end{macrocode} % \end{Length} % \end{Length} % % \begin{Length}{columnsep} % \begin{Length}{columnseprule} % Spaltenabstand und Spaltentrennlinie (nicht bei Briefen): % \begin{macrocode} %<*!letter> \setlength{\columnsep}{10\p@} \setlength{\columnseprule}{\z@} % % \end{macrocode} % \end{Length} % \end{Length} % % \begin{macro}{\selectfont} % \changes{v2.95}{2004/11/05}{neue Änderung}%^^A % Spätestens ab Version~3.0 soll die Möglichkeit bestehen, |\parskip|, % |\parindent| und |\parfillskip| mit der Schriftgröße automatisch % anzupassen. Dazu muss |\selectfont| entsprechend erweitert werden. % \begin{macro}{\scr@selectfont} % \changes{v2.95}{2006/04/14}{neue Erweiterung}%^^A % \changes{v3.10}{2010/09/28}{\textsf{everysel}-Behandlung korrigiert} % \changes{v3.10}{2010/09/28}{\textsf{tracefnt}-Behandlung hinzugefügt} % \begin{macro}{\scr@new@selectfont} % \changes{v2.95}{2006/04/14}{neue Erweiterung}%^^A % \changes{v3.10}{2010/09/28}{\textsf{everysel}-Behandlung korrigiert} % \changes{v3.10}{2010/09/28}{\textsf{tracefnt}-Behandlung hinzugefügt} % \changes{v3.10b}{2011/03/13}{\textsf{everysel} kann jetzt auch während % \cs{begin}\marg{document} geladen werden} % Damit das auch bei Verwendung des \textsf{everysel}-Pakets funktioniert, % wird hier zusätzliche Vorsorge getroffen. % \begin{macrocode} \newcommand*{\scr@selectfont}{} \expandafter\let\expandafter\scr@selectfont\csname selectfont \endcsname \BeforePackage{everysel}{% \AtBeginDocument{% \expandafter\ifx\csname selectfont \endcsname\scr@new@selectfont\else \ClassWarningNoLine{\KOMAClassName}{discard change of \string\selectfont}% \fi \expandafter\let\csname selectfont \endcsname\scr@selectfont }% } \AfterPackage{everysel}{% \scr@ifundefinedorrelax{@EverySelectfont@Init}{% % \end{macrocode} % Jetzt gibt es zwei Möglichkeiten: Entweder wurde ein \textsf{everysel} % verwendet, bei dem alles anders funktioniert, oder es wurde während % \cs{begin}\marg{document} geladen. In beiden Fällen versuchen wir einen % direkten Patch: % \begin{macrocode} \expandafter\ifx\csname selectfont \endcsname\scr@new@selectfont \ClassWarningNoLine{\KOMAClassName}{% \string\selectfont\space already changed}% \else \expandafter\g@addto@macro\csname selectfont \endcsname{\par@update}% \expandafter\let\expandafter\scr@new@selectfont \csname selectfont \endcsname \fi }{% % \end{macrocode} % In diesem Fall muss hingegen indirekt gepatcht werden. % \begin{macrocode} \g@addto@macro\@EverySelectfont@Init{% \expandafter\g@addto@macro\csname selectfont \endcsname{\par@update}% \expandafter\let\expandafter\scr@new@selectfont \csname selectfont \endcsname }% }% } \AfterPackage{tracefnt}{% \expandafter\let\expandafter\scr@selectfont\csname selectfont \endcsname \expandafter\g@addto@macro\csname selectfont \endcsname{\par@update}% \expandafter\let\expandafter\scr@new@selectfont\csname selectfont \endcsname } \expandafter\g@addto@macro\csname selectfont \endcsname{\par@update} \newcommand*{\scr@new@selectfont}{} \expandafter\let\expandafter\scr@new@selectfont\csname selectfont \endcsname % \end{macrocode} % \end{macro} % \end{macro} % \begin{macro}{\par@updaterelative} % \changes{v2.95}{2004/11/05}{neues internes Macro}%^^A % Die eigentliche Änderung verbirgt sich in |\par@updaterelative|. Ggf. wird % |\par@update| zu |\par@updaterelative|. % \begin{macrocode} \newcommand*{\par@updaterelative}{% % \end{macrocode} % Die neuen Werte werden nur gesetzt, wenn die bisherigen Werten den % erwarteten Werten entsprechen. Sonst lassen wir lieber die Finger davon, % weil wir dann davon ausgehen, dass der Anwender die so setzen wollte. % \begin{macrocode} \begingroup \edef\@tempa{\the\parindent}\ifx\@tempa\f@parindent \aftergroup\parindent@update %<*trace> \else \ClassInfo{\KOMAClassName}{\string\parindent\space not changed}% % \fi \edef\@tempa{\the\parskip}\ifx\@tempa\f@parskip \aftergroup\parskip@update %<*trace> \else \ClassInfo{\KOMAClassName}{\string\parskip\space not changed}% % \fi \edef\@tempa{\the\parfillskip}\ifx\@tempa\f@parfillskip \aftergroup\parfillskip@update %<*trace> \else \ClassInfo{\KOMAClassName}{\string\parfillskip\space not changed}% % \fi \endgroup } % \end{macrocode} % \begin{macro}{\parindent@update} % \changes{v2.95}{2004/11/05}{neues internes Macro}%^^A % \begin{macro}{\parskip@update} % \changes{v2.95}{2004/11/05}{neues internes Macro}%^^A % \begin{macro}{\parfillskip@update} % \changes{v2.95}{2004/11/05}{neues internes Macro}%^^A % Ein paar Hilfsmakros. % \begin{macrocode} \newcommand*{\parindent@update}{% \scr@defaultunits\parindent\scr@parindent \begingroup \let\@tempb\endgroup \edef\@tempa{\the\parindent}\ifx\@tempa\f@parindent\else \def\@tempb{\endgroup\edef\f@parindent{\the\parindent}}% % \ClassInfo{\KOMAClassName}{\string\parindent=\the\parindent}% \fi \@tempb } \newcommand*{\parskip@update}{% \scr@defaultunits\parskip\scr@parskip \begingroup \let\@tempb\endgroup \edef\@tempa{\the\parskip}\ifx\@tempa\f@parskip\else \def\@tempb{\endgroup\edef\f@parskip{\the\parskip}}% % \ClassInfo{\KOMAClassName}{\string\parskip=\the\parskip}% \fi \@tempb } \newcommand*{\parfillskip@update}{% \scr@defaultunits\parfillskip\scr@parfillskip \begingroup \let\@tempb\endgroup \edef\@tempa{\the\parfillskip}\ifx\@tempa\f@parfillskip\else \def\@tempb{\endgroup\edef\f@parfillskip{\the\parfillskip}}% % \ClassInfo{\KOMAClassName}{\string\parfillskip=\the\parfillskip}% \fi \@tempb } % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\scr@defaultunits} % \changes{v2.95}{2004/11/05}{neues internes Macro}%^^A % \changes{v3.19}{2015/08/22}{\cs{setlength} wegen \textsf{tikz} % eliminiert}%^^A % \begin{macro}{\scr@@defaultunits} % \changes{v2.95}{2004/11/05}{neues internes Macro}%^^A % \begin{macro}{\scr@@@defaultunits} % \changes{v2.95}{2004/11/05}{neues internes Macro}%^^A % \changes{v3.19}{2015/08/22}{\cs{setlength} und \cs{addtolength} wegen % \textsf{tikz} eliminiert}%^^A % Damit |\par@updaterelative| überhaupt funktionieren kann, wird % |\scr@defaultunits| benötigt. Dieses Makro arbeitet prinzipiell wie % |\@defaultunits| bekommt aber Dimension bzw. Skip als erstes und den Wert % als zweites Argument. Als Besonderheit dürften im Wert auch andere % Dimensions bzw. Skips vor und nach \texttt{plus} und \texttt{minus} % verwendet werden. Es sind also auch Angaben der Art "`\texttt{12 plus 1 % minus 2}"' sowie % "`\texttt{\string\baselineskip\string\@plus.1\string\baselineskip}"' % gültig. % \begin{macrocode} \newcommand*{\scr@defaultunits}[2]{% \begingroup \edef\@tempa{#2}% \expandafter\scr@@defaultunits\expandafter#1\@tempa plusplus\@nnil \edef\@tempa{\noexpand\endgroup\noexpand#1\the\glueexpr #1\relax}% \@tempa } \newcommand*{\scr@@defaultunits}{} \def\scr@@defaultunits#1#2plus#3plus#4\@nnil{% \ifx\relax#3\relax \scr@@@defaultunits#1{}#2minusminus\@nnil \else \scr@@@defaultunits#1{#2}#3minusminus\@nnil \fi } \newcommand*{\scr@@@defaultunits}{} \def\scr@@@defaultunits#1#2#3minus#4minus#5\@nnil{% \ifx\relax#2\relax \@defaultunits\@tempskipa#3pt\relax\@nnil #1\@tempskipa \else \@defaultunits\@tempskipa\z@\@plus#3pt\relax\@nnil #1\@tempskipa \@defaultunits\@tempskipa#2pt\relax\@nnil \advance#1\@tempskipa \fi \ifx\relax#4\relax\else \@defaultunits\@tempskipa\z@\@minus #4pt\relax\@nnil \advance#1\@tempskipa \fi } % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % Absatzabstand und Absatzeinzug: % \begin{macro}{\@list@extra} % \changes{v2.8q}{2001/11/06}{neu (intern)}%^^A % \changes{v2.95c}{2006/08/03}{\cs{parsep} fixed} % \begin{macro}{\add@extra@listi} % \changes{v2.9h}{2002/09/03}{neu (intern)}%^^A % Ab Version 2.8i wird hier optionsabhängig gearbeitet. Dabei müssen % auch die Befehle bei der Umschaltung der Schriftgröße für \cs{small} % und \cs{footnotesize} geändert werden. % \begin{macrocode} \newcommand*{\@list@extra}{% \ifdim\parskip>\z@\topsep\z@\parsep\parskip\itemsep\z@\fi } \newcommand*{\add@extra@listi}[1]{% \expandafter\let\csname #1@listi\endcsname=\@listi \def\@listi{\csname #1@listi\endcsname\@list@extra}% } % \end{macrocode} % \end{macro} % \end{macro} % % \selectlanguage{english} % \begin{macro}{\deferred@thm@head}%^^A % \changes{v3.27}{2019/02/10}{new patch of \textsf{amsthm}}%^^A % Unfortunatly \Package{amsthm} has a problem if a class handles \cs{topsep} % this way, because it is only prepared for the case, that \cs{parskip} and % \cs{parsep} are changed manually without influence to \cs{topsep}. So the % initial distance is missing. To avoid this problem, we need to patch the % package's internal command \cs{deferred@thm@head}. This is not nice, but % unfortunaltly needed. % \begin{macrocode} \AfterPackage{amsthm}{% \RequirePackage{xpatch}% \xpatchcmd{\deferred@thm@head}{\addvspace{-\parskip}}{}{% \ClassInfoNoLine{\KOMAClassName}{% amsthm's \string\deferred@thm@head\space patched}% }{% \ClassWarningNoLine{\KOMAClassName}{% cannot patch amsthm's \string\deferred@thm@head.\MessageBreak This could result in wrong spacing before theorem\MessageBreak environments defined by package `amsthm'% }% }% } % \end{macrocode} % \end{macro} % \selectlanguage{ngerman} % \iffalse % % %<*class|clo> %<*body|10pt|11pt|12pt> % \fi % \changes{v2.98c}{2008/03/26}{Umstellung für die pt-Dateien}%^^A % \changes{v3.17}{2015/03/25}{Aktualisierung der Absatzeinstellungen}%^^A % \begin{macro}{\@listi} % \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} durch \cs{l@addto@macro} % ersetzt} % \changes{v3.01}{2008/11/13}{\cs{@listi} wird auf jeden Fall ausgeführt} % \begin{macro}{\@listI} % \begin{macro}{\@listii} % \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} durch \cs{l@addto@macro} % ersetzt} % \begin{macro}{\@listiii} % \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} durch \cs{l@addto@macro} % ersetzt} % \begin{macro}{\footnotesize} % \changes{v2.9h}{2002/09/03}{etwas robuster}%^^A % \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} durch \cs{l@addto@macro} % ersetzt} % \begin{macro}{\small} % \changes{v2.9h}{2002/09/03}{etwas robuster}%^^A % \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} durch \cs{l@addto@macro} % ersetzt} % \begin{macrocode} %<10pt|11pt|12pt>\@ifundefined{@list@extra}{}{% %<10pt|11pt|12pt> \expandafter\ifnum\scr@v@is@ge{3.17}\par@updaterelative\fi \l@addto@macro{\@listi}{\@list@extra}% \let\@listI=\@listi \l@addto@macro{\@listii}{\@list@extra}% \l@addto@macro{\@listiii}{\@list@extra}% \l@addto@macro{\footnotesize}{\protect\add@extra@listi{ftns}}% \l@addto@macro{\small}{\protect\add@extra@listi{sml}}% %<10pt|11pt|12pt>} %<10pt|11pt|12pt>\@listi % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \iffalse % % %<*class> %<*body> % \fi % % % \subsection{Umbruchsteuerung} % % Für die Umbruchsteuerung sind einige Penalties zuständig. Diese sind % im \LaTeX-Kern definiert. Leider sind \cs{@lowpenalty}, % \cs{@medpenalty} und \cs{@highpenalty} aber nicht mit % Voreinstellungen versehen, besitzen einheitlich die Voreinstellung % 0. Hier werden deshalb die Werte aus den Standardklassen übernommen: % \begin{macrocode} \@lowpenalty = 51 \@medpenalty =151 \@highpenalty =301 % \end{macrocode} % % % \iffalse % % % \fi % % \Finale % \endinput % % end of file `scrkernel-paragraphs.dtx' %%% Local Variables: %%% mode: doctex %%% TeX-master: t %%% End: