% \CheckSum{632}
% \iffalse meta-comment
% ======================================================================
% scrkpar.dtx
% Copyright (c) Markus Kohm, 2002-2012
%
% 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.
% ----------------------------------------------------------------------
% scrkpar.dtx
% Copyright (c) Markus Kohm, 2002-2012
%
% 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: scrkpar.dtx
%<*driver>
% \fi
\ProvidesFile{scrkpar.dtx}[2012/03/13 v3.10b KOMA-Script (paragraphs)]
% \iffalse
\documentclass[halfparskip-]{scrdoc}
\usepackage[english,ngerman]{babel}
\usepackage[latin1]{inputenc}
\CodelineIndex
\RecordChanges
\GetFileInfo{scrkpar.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/06/25}{%
%   erste Version aus der Aufteilung von \texttt{scrclass.dtx}}
%
% \section{Absatzformatierung und -umbruch}
%
% In diesen Bereich gehört alles, was die Absatzformatierung selbst
% betrifft. Dazu kommen dann noch einige Kleinigkeiten aus dem
% Seitenumbruch.
%
% \StopEventually{\PrintIndex\PrintChanges}
%
%
% \iffalse
%<*option>
% \fi
%
% \subsection{Optionen für das Absatzlayout}
%
% Ab Version 2.8i können wir auch mit Absatzlayouts umgehen, die einen
% Absatzabstand statt einem Absatzeinzug verlangen. Gesteuert wird
% dies über Optionen und Schalter.
%
%  \begin{macro}{\setparsizes}
%    \changes{v2.95}{2004/11/05}{neues Macro}
% Über dieses Makro wird die Änderung der Absatzparameter |\parskip|,
% |\parindent|, |\parfillskip| gesetzt. Das erste Argument ist der Einzug, das
% zweite der Abstand und das dritte die Füllung. Aktiviert werden die
% Änderungen wie bei |\fontsize| über |\selectfont|. Obwohl in der
% Voreinstellung absolut gearbeitet wird, wird hier intern
% |\par@updaterelative| verwendet.
%    \begin{macrocode}
\newcommand*{\setparsizes}[3]{%
  \edef\f@parindent{\the\parindent}%
  \edef\f@parskip{\the\parskip}%
  \edef\f@parfillskip{\the\parfillskip}%
  \def\scr@parindent{#1}%
  \def\scr@parskip{#2}%
  \def\scr@parfillskip{#3}%
  \def\par@update{\let\par@update\default@par@update\par@updaterelative}%
}
%    \end{macrocode}
%  \begin{macro}{\f@parindent}
%    \changes{v2.95}{2004/11/05}{neu (intern)}
% Eingestellter Absatzeinzug.
%  \begin{macro}{\f@parskip}
%    \changes{v2.8i}{2001/07/22}{neu (intern)}
%    \changes{v2.95}{2004/11/05}{Bedeutung geändert}
% Eingestellter Absatzabstand.
%  \begin{macro}{\f@parfillskip}
%    \changes{v2.8i}{2001/07/22}{neu (intern)}
%    \changes{v2.95}{2004/11/05}{Bedeutung geändert}
% Eingestellte Absatzfüllung.
%
% Diese drei Werte werden automatisch bei der Font-Initialisierung eingestellt
% und sind vorher ungültig!
%    \begin{macrocode}
\newcommand*{\f@parindent}{\the\parindent}
\newcommand*{\f@parskip}{\the\parskip}
\newcommand*{\f@parfillskip}{\the\parfillskip}
\AtEndOfClass{%
  \edef\f@parindent{\the\parindent}%
  \edef\f@parskip{\the\parskip}%
  \edef\f@parfillskip{\the\parfillskip}%
}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%
%  \begin{macro}{\par@update}
%    \changes{v2.95}{2004/11/05}{neues internes Macro}
% Dieses Makro wird später in |\selectfont| die Änderung vornehmen.
%  \begin{macro}{\default@par@update}
%    \changes{v2.95}{2004/11/05}{neues internes Macro}
% In der Voreinstellung findet keine Änderung statt. Dies wird jedoch durch
% die Auswahl einer entsprechenden Option geändert.
%    \begin{macrocode}
\newcommand*{\par@update}{}
\let\par@update\relax
\newcommand*{\default@par@update}{}
\let\default@par@update\relax
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%
% \begin{option}{parskip}
%   \changes{v2.8i}{2001/07/22}{neue Option}
%   \changes{v2.95}{2006/03/11}{primäre \textsf{keyval}-Option}
%   \changes{v3.08}{2010/12/14}{neuer Wert \texttt{never}}
% \begin{option}{parskip-}
%   \changes{v2.8l}{2001/08/16}{neue Option}
%   \changes{v2.95}{2006/03/11}{obsolet}
%   \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
%     ersetzt}
%   \changes{v3.01a}{2008/11/20}{deprecated}
% \begin{option}{parskip+}
%   \changes{v2.8i}{2001/07/22}{neue Option}
%   \changes{v2.95}{2006/03/11}{obsolet}
%   \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
%     ersetzt}
%   \changes{v3.01a}{2008/11/20}{deprecated}
% \begin{option}{parskip*}
%   \changes{v2.8i}{2001/07/22}{neue Option}
%   \changes{v2.95}{2006/03/11}{obsolet}
%   \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
%     ersetzt}
%   \changes{v3.01a}{2008/11/20}{deprecated}
% \begin{option}{halfparskip}
%   \changes{v2.8i}{2001/07/22}{neue Option}
%   \changes{v2.95}{2006/03/11}{obsolet}
%   \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
%     ersetzt}
%   \changes{v3.01a}{2008/11/20}{deprecated}
% \begin{option}{halfparskip-}
%   \changes{v2.8l}{2001/08/16}{neue Option}
%   \changes{v2.95}{2006/03/11}{obsolet}
%   \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
%     ersetzt}
%   \changes{v3.01a}{2008/11/20}{deprecated}
% \begin{option}{halfparskip+}
%   \changes{v2.8i}{2001/07/22}{neue Option}
%   \changes{v2.95}{2006/03/11}{obsolet}
%   \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
%     ersetzt}
%   \changes{v3.01a}{2008/11/20}{deprecated}
% \begin{option}{halfparskip*}
%   \changes{v2.8i}{2001/07/22}{neue Option}
%   \changes{v2.95}{2006/03/11}{obsolet}
%   \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
%     ersetzt}
%   \changes{v3.01a}{2008/11/20}{deprecated}
% \begin{option}{parindent}
%   \changes{v2.8i}{2001/07/22}{neue Option}
%   \changes{v2.95}{2006/03/11}{obsolet}
%   \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
%     ersetzt}
%   \changes{v3.01a}{2008/11/20}{deprecated}
% Diese neun Optionen steuern die Umschaltung zwischen den Modi. Dabei
% schalten alle \texttt{parskip}-Optionen einen Absatzabstand ein,
% wohingegen die \texttt{parindent}-Option den Absatzeinzug
% einschaltet. Die \texttt{+}-Variante sorgt außerdem dafür, dass
% die letzte Zeile eines Absatzes maximal zu zwei Dritteln gefüllt
% wird. Entsprechend sorgt die \texttt{*}-Variante für eine maximale
% Füllung von drei Vierteln. Die normale Variante sorgt lediglich
% für einen freien Raum von 1\,em. Die \texttt{-}-Variante sorgt für
% überhaupt nichts.
% \begin{macro}{\scr@parindent}
%   \changes{v2.95}{2004/11/05}{neu (intern)}
% Der einzustellende Absatzeinzug.
% \begin{macro}{\scr@parskip}
%   \changes{v2.8i}{2001/07/22}{neu (intern)}
%   \changes{v2.95}{2004/11/05}{Bedeutung geändert}
% Der einzustellende Absatzabstand.
% \begin{macro}{\scr@parfillskip}
%   \changes{v2.8i}{2001/07/22}{neu (intern)}
%   \changes{v2.95}{2004/11/05}{Bedeutung geändert}
% Die einzustellende Absatzfüllung.
%    \begin{macrocode}
\newcommand*{\scr@parindent}{1em}
\newcommand*{\scr@parskip}{\z@}
\newcommand*{\scr@parfillskip}{\z@ \@plus 1fil}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% Neu bei \KOMAScript-3 ist, dass die Optionen wie bei \textsf{scrlttr2} über
% eine eingzige \textsf{keyval} gesetzt werden können.
%    \begin{macrocode}
\KOMA@key{parskip}[true]{%
  \begingroup
    \KOMA@set@ncmdkey{parskip}{@tempa}{%
      {never}{0},%
      {false}{1},{off}{1},{no}{1},%
      {full-}{2},%
      {half-}{3},%
      {full}{4},{true}{4},{on}{4},{yes}{4},%
      {half}{5},%
      {full+}{6},%
      {half+}{7},%
      {full*}{8},%
      {half*}{9},%
      {relative}{10},%
      {absolute}{11}%
    }{#1}%
    \ifcase\number\@tempa% 0
      \endgroup
      \setparsizes{1em}{\z@}{\z@ \@plus 1fil}%
      \if@atdocument\AfterKOMAoptions{\selectfont}\fi
    \or% 1
      \endgroup
      \setparsizes{1em}{\z@ \@plus \p@}{\z@ \@plus 1fil}%
      \if@atdocument\AfterKOMAoptions{\selectfont}\fi
    \or% 2
      \endgroup
      \setparsizes{\z@}{\baselineskip \@plus .1\baselineskip}{%
        \z@ \@plus 1fil}%
      \if@atdocument\AfterKOMAoptions{\selectfont}\fi
    \or% 3
      \endgroup
      \setparsizes{\z@}{.5\baselineskip \@plus .5\baselineskip}{%
        \z@ \@plus 1fil}%
      \if@atdocument\AfterKOMAoptions{\selectfont}\fi
    \or% 4
      \endgroup
      \setparsizes{\z@}{\baselineskip \@plus .1\baselineskip}{%
        1em \@plus 1fil}%
      \if@atdocument\AfterKOMAoptions{\selectfont}\fi
    \or% 5
      \endgroup
      \setparsizes{\z@}{.5\baselineskip \@plus .5\baselineskip}{%
        1em \@plus 1fil}%
      \if@atdocument\AfterKOMAoptions{\selectfont}\fi
    \or% 6
      \endgroup
      \setparsizes{\z@}{\baselineskip \@plus .1\baselineskip}{%
        .3333\linewidth\@plus 1fil}%
      \if@atdocument\AfterKOMAoptions{\selectfont}\fi
    \or% 7
      \endgroup
      \setparsizes{\z@}{.5\baselineskip \@plus .5\baselineskip}{%
        .3333\linewidth \@plus 1fil}%
      \if@atdocument\AfterKOMAoptions{\selectfont}\fi
    \or% 8
      \endgroup
      \setparsizes{\z@}{\baselineskip \@plus .1\baselineskip}{%
        .25\linewidth \@plus 1fil}%
      \if@atdocument\AfterKOMAoptions{\selectfont}\fi
    \or% 9
      \endgroup
      \setparsizes{\z@}{.5\baselineskip \@plus .5\baselineskip}{%
        .25\linewidth \@plus 1fil}%
      \if@atdocument\AfterKOMAoptions{\selectfont}\fi
    \or% 10
      \endgroup
      \ifx\par@updaterelative\undefined
        \expandafter\AtEndOfClass
      \else
        \expandafter\@firstofone
      \fi
      {%
        \ifx\par@update\default@par@update
          \let\par@update\par@updaterelative
        \fi
        \let\default@par@update=\par@updaterelative
      }%
    \or%11
      \endgroup
      \ifx\par@updaterelative\undefined
        \expandafter\AtEndOfClass
      \else
        \expandafter\@firstofone
      \fi
      {%
        \ifx\par@update\default@par@update
          \let\par@update\relax
        \fi
        \let\default@par@update=\relax
      }%
    \else% sonst
      \endgroup
  \fi
}
\KOMA@DeclareDeprecatedOption{parskip-}{parskip=full-}
\KOMA@DeclareDeprecatedOption{parskip+}{parskip=full+}
\KOMA@DeclareDeprecatedOption{parskip*}{parskip=full*}
\KOMA@DeclareDeprecatedOption{halfparskip}{parskip=half}
\KOMA@DeclareDeprecatedOption{halfparskip-}{parskip=half-}
\KOMA@DeclareDeprecatedOption{halfparskip+}{parskip=half+}
\KOMA@DeclareDeprecatedOption{halfparskip*}{parskip=half*}
\KOMA@DeclareDeprecatedOption{parindent}{parskip=false}
%    \end{macrocode}
% \end{option}
% \end{option}
% \end{option}
% \end{option}
% \end{option}
% \end{option}
% \end{option}
% \end{option}
% \end{option}
%
% Hierfür\marginline{Geplant!} sollte eine keyval-Option mit Werten definiert
% werden. Dazu dann neue Werte für absolutes oder relatives Verhalten.
%
% \iffalse
%</option>
%<*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@}
%</!letter>
%    \end{macrocode}
%  \end{Length}
%  \end{Length}
%
%  \begin{macro}{\selectfont}
%    \changes{v2.95}{2004/11/05}{neue Änderung}
% 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}
%   \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}
%   \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}
% 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}%
%</trace>
    \fi
    \edef\@tempa{\the\parskip}\ifx\@tempa\f@parskip
      \aftergroup\parskip@update
%<*trace>
    \else
      \ClassInfo{\KOMAClassName}{\string\parskip\space not changed}%
%</trace>
    \fi
    \edef\@tempa{\the\parfillskip}\ifx\@tempa\f@parfillskip
      \aftergroup\parfillskip@update
%<*trace>
    \else
      \ClassInfo{\KOMAClassName}{\string\parfillskip\space not changed}%
%</trace>
    \fi
  \endgroup
}
%    \end{macrocode}
%  \begin{macro}{\parindent@update}
%    \changes{v2.95}{2004/11/05}{neues internes Macro}
%  \begin{macro}{\parskip@update}
%    \changes{v2.95}{2004/11/05}{neues internes Macro}
%  \begin{macro}{\parfillskip@update}
%    \changes{v2.95}{2004/11/05}{neues internes Macro}
% 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}}%
%<trace>      \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}}%
%<trace>      \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}}%
%<trace>      \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}
%  \begin{macro}{\scr@@defaultunits}
%    \changes{v2.95}{2004/11/05}{neues internes Macro}
%  \begin{macro}{\scr@@@defaultunits}
%    \changes{v2.95}{2004/11/05}{neues internes Macro}
% 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\setlength{\noexpand#1}{\the#1}}%
  \@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
    \setlength{#1}{\@tempskipa}%
  \else
    \@defaultunits\@tempskipa\z@\@plus#3pt\relax\@nnil
    \setlength{#1}{\@tempskipa}%
    \@defaultunits\@tempskipa#2pt\relax\@nnil
    \addtolength{#1}{\@tempskipa}%
  \fi
  \ifx\relax#4\relax\else
    \@defaultunits\@tempskipa\z@\@minus #4pt\relax\@nnil
    \addtolength{#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)}
%   \changes{v2.95c}{2006/08/03}{\cs{parsep} fixed}
% \begin{macro}{\add@extra@listi}
%   \changes{v2.9h}{2002/09/03}{neu (intern)}
% 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}
% \iffalse
%</body>
%<*body|10pt|11pt|12pt>
% \fi
% \changes{v2.98c}{2008/03/26}{Umstellung für die pt-Dateien}
% \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}
%   \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}
%   \changes{v2.98c}{2008/03/27}{\cs{g@addto@macro} durch \cs{l@addto@macro}
%     ersetzt}
%    \begin{macrocode}
%<10pt|11pt|12pt>\@ifundefined{@list@extra}{}{%
  \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
%</body|10pt|11pt|12pt>
%<*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
%</body>
% \fi
%
% \Finale
%
\endinput
%
% end of file `scrkpar.dtx'
%%% Local Variables:
%%% mode: doctex
%%% TeX-master: t
%%% End:
