You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
797 lines
28 KiB
797 lines
28 KiB
% \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 $
|
|
%<option>%%% (run: option)
|
|
%<body>%%% (run: body)
|
|
%<*dtx>
|
|
% \fi
|
|
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
|
|
\begingroup
|
|
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
|
|
\filedate$Date: 2019-10-10 10:25:29 +0200 (Thu, 10 Oct 2019) $
|
|
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
|
|
\filerevision$Revision: 1872 $
|
|
\edef\reserved@a{%
|
|
\noexpand\endgroup
|
|
\noexpand\ProvidesFile{scrkernel-paragraphs.dtx}%
|
|
[\filedate\space\filerevision\space
|
|
KOMA-Script
|
|
(paragraphs)]
|
|
}%
|
|
\reserved@a
|
|
% \iffalse
|
|
\documentclass[parskip=half-]{scrdoc}
|
|
\usepackage[english,ngerman]{babel}
|
|
\CodelineIndex
|
|
\RecordChanges
|
|
\GetFileInfo{scrkernel-paragraphs.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}
|
|
%</dtx>
|
|
% \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
|
|
%<*class>
|
|
%<*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}%^^A
|
|
% \changes{v3.17}{2015/03/10}{löscht diverse \texttt{parskip}-Einstellungen
|
|
% aus der internen Liste}%^^A
|
|
% \changes{v3.19}{2015/07/29}{\cs{par@update} darf erst nach
|
|
% \cs{begin{document}} wieder \cs{default@par@update} werden}%^^A
|
|
% Ü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{%
|
|
\if@atdocument\let\par@update\default@par@update\fi
|
|
\par@updaterelative
|
|
}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{false}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{never}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{full}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{full-}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{full+}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{full*}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{half}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{half-}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{half+}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{half*}%
|
|
}
|
|
% \end{macrocode}
|
|
% \begin{macro}{\f@parindent}
|
|
% \changes{v2.95}{2004/11/05}{neu (intern)}%^^A
|
|
% Eingestellter Absatzeinzug.
|
|
% \begin{macro}{\f@parskip}
|
|
% \changes{v2.8i}{2001/07/22}{neu (intern)}%^^A
|
|
% \changes{v2.95}{2004/11/05}{Bedeutung geändert}%^^A
|
|
% Eingestellter Absatzabstand.
|
|
% \begin{macro}{\f@parfillskip}
|
|
% \changes{v2.8i}{2001/07/22}{neu (intern)}%^^A
|
|
% \changes{v2.95}{2004/11/05}{Bedeutung geändert}%^^A
|
|
% 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}%^^A
|
|
% \changes{v3.20}{2016/02/22}{wird möglichst früh \cs{AtBeginDocument}
|
|
% ausgeführt}%^^A
|
|
% Dieses Makro wird später in |\selectfont| die Änderung vornehmen.
|
|
% \begin{macro}{\default@par@update}
|
|
% \changes{v2.95}{2004/11/05}{neues internes Macro}%^^A
|
|
% 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
|
|
\AtBeginDocument{\par@update}
|
|
% \end{macrocode}
|
|
% \end{macro}
|
|
% \end{macro}
|
|
%
|
|
% \begin{option}{parskip}
|
|
% \changes{v2.8i}{2001/07/22}{neue Option}%^^A
|
|
% \changes{v2.95}{2006/03/11}{primäre \textsf{keyval}-Option}%^^A
|
|
% \changes{v3.08}{2010/12/14}{neuer Wert \texttt{never}}%^^A
|
|
% \changes{v3.12}{2013/03/05}{Nutzung der Status-Signalisierung mit
|
|
% \cs{FamilyKeyState}.}%^^A
|
|
% \changes{v3.17}{2015/03/10}{Wert wird gespeichert}%^^A
|
|
% \changes{v3.26b}{2019/02/01}{\cs{baselineskip} durch 1\cs{baselineskip}
|
|
% ersetzt}%^^A
|
|
% \begin{option}{parskip-}
|
|
% \changes{v2.8l}{2001/08/16}{neue Option}%^^A
|
|
% \changes{v2.95}{2006/03/11}{obsolet}%^^A
|
|
% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
|
|
% ersetzt}%^^A
|
|
% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
|
|
% \begin{option}{parskip+}
|
|
% \changes{v2.8i}{2001/07/22}{neue Option}%^^A
|
|
% \changes{v2.95}{2006/03/11}{obsolet}%^^A
|
|
% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
|
|
% ersetzt}%^^A
|
|
% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
|
|
% \begin{option}{parskip*}
|
|
% \changes{v2.8i}{2001/07/22}{neue Option}%^^A
|
|
% \changes{v2.95}{2006/03/11}{obsolet}%^^A
|
|
% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
|
|
% ersetzt}%^^A
|
|
% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
|
|
% \begin{option}{halfparskip}
|
|
% \changes{v2.8i}{2001/07/22}{neue Option}%^^A
|
|
% \changes{v2.95}{2006/03/11}{obsolet}%^^A
|
|
% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
|
|
% ersetzt}%^^A
|
|
% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
|
|
% \begin{option}{halfparskip-}
|
|
% \changes{v2.8l}{2001/08/16}{neue Option}%^^A
|
|
% \changes{v2.95}{2006/03/11}{obsolet}%^^A
|
|
% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
|
|
% ersetzt}%^^A
|
|
% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
|
|
% \begin{option}{halfparskip+}
|
|
% \changes{v2.8i}{2001/07/22}{neue Option}%^^A
|
|
% \changes{v2.95}{2006/03/11}{obsolet}%^^A
|
|
% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
|
|
% ersetzt}%^^A
|
|
% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
|
|
% \begin{option}{halfparskip*}
|
|
% \changes{v2.8i}{2001/07/22}{neue Option}%^^A
|
|
% \changes{v2.95}{2006/03/11}{obsolet}%^^A
|
|
% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
|
|
% ersetzt}%^^A
|
|
% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
|
|
% \begin{option}{parindent}
|
|
% \changes{v2.8i}{2001/07/22}{neue Option}%^^A
|
|
% \changes{v2.95}{2006/03/11}{obsolet}%^^A
|
|
% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
|
|
% ersetzt}%^^A
|
|
% \changes{v3.01a}{2008/11/20}{deprecated}%^^A
|
|
% 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)}%^^A
|
|
% Der einzustellende Absatzeinzug.
|
|
% \begin{macro}{\scr@parskip}
|
|
% \changes{v2.8i}{2001/07/22}{neu (intern)}%^^A
|
|
% \changes{v2.95}{2004/11/05}{Bedeutung geändert}%^^A
|
|
% Der einzustellende Absatzabstand.
|
|
% \begin{macro}{\scr@parfillskip}
|
|
% \changes{v2.8i}{2001/07/22}{neu (intern)}%^^A
|
|
% \changes{v2.95}{2004/11/05}{Bedeutung geändert}%^^A
|
|
% 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.
|
|
% \changes{v3.25}{2017/09/27}{typo fix in \cs{FamilyKeyStateUnknownValue}}
|
|
% \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}%
|
|
\ifx\FamilyKeyState\FamilyKeyStateProcessed
|
|
\aftergroup\FamilyKeyStateProcessed
|
|
\ifcase\number\@tempa% 0
|
|
\endgroup
|
|
\setparsizes{1em}{\z@}{\z@ \@plus 1fil}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{never}%
|
|
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
|
|
\or% 1
|
|
\endgroup
|
|
\setparsizes{1em}{\z@ \@plus \p@}{\z@ \@plus 1fil}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{false}%
|
|
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
|
|
\or% 2
|
|
\endgroup
|
|
\setparsizes{\z@}{1\baselineskip \@plus .1\baselineskip}{%
|
|
\z@ \@plus 1fil}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{full-}%
|
|
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
|
|
\or% 3
|
|
\endgroup
|
|
\setparsizes{\z@}{.5\baselineskip \@plus .5\baselineskip}{%
|
|
\z@ \@plus 1fil}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{half-}%
|
|
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
|
|
\or% 4
|
|
\endgroup
|
|
\setparsizes{\z@}{1\baselineskip \@plus .1\baselineskip}{%
|
|
1em \@plus 1fil}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{full}%
|
|
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
|
|
\or% 5
|
|
\endgroup
|
|
\setparsizes{\z@}{.5\baselineskip \@plus .5\baselineskip}{%
|
|
1em \@plus 1fil}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{half}%
|
|
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
|
|
\or% 6
|
|
\endgroup
|
|
\setparsizes{\z@}{1\baselineskip \@plus .1\baselineskip}{%
|
|
.3333\linewidth\@plus 1fil}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{full+}%
|
|
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
|
|
\or% 7
|
|
\endgroup
|
|
\setparsizes{\z@}{.5\baselineskip \@plus .5\baselineskip}{%
|
|
.3333\linewidth \@plus 1fil}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{half+}%
|
|
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
|
|
\or% 8
|
|
\endgroup
|
|
\setparsizes{\z@}{1\baselineskip \@plus .1\baselineskip}{%
|
|
.25\linewidth \@plus 1fil}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{full*}%
|
|
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
|
|
\or% 9
|
|
\endgroup
|
|
\setparsizes{\z@}{.5\baselineskip \@plus .5\baselineskip}{%
|
|
.25\linewidth \@plus 1fil}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{half*}%
|
|
\if@atdocument\AfterKOMAoptions{\selectfont}\fi
|
|
\or% 10
|
|
\endgroup
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{absolute}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{relative}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{relative}%
|
|
\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
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{absolute}%
|
|
\KOMA@kav@remove{.\KOMAClassFileName}{parskip}{relative}%
|
|
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{absolute}%
|
|
\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% should never be
|
|
\endgroup
|
|
\fi
|
|
\else
|
|
\endgroup
|
|
\FamilyKeyStateUnknownValue
|
|
\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}
|
|
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{false}
|
|
\KOMA@kav@add{.\KOMAClassFileName}{parskip}{absolute}
|
|
% \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}%^^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}%
|
|
%</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}%^^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}}%
|
|
%<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}%^^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
|
|
%</body>
|
|
%</class>
|
|
%<*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
|
|
%</body|10pt|11pt|12pt>
|
|
%</class|clo>
|
|
%<*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
|
|
%</body>
|
|
%</class>
|
|
% \fi
|
|
%
|
|
% \Finale
|
|
%
|
|
\endinput
|
|
%
|
|
% end of file `scrkernel-paragraphs.dtx'
|
|
%%% Local Variables:
|
|
%%% mode: doctex
|
|
%%% TeX-master: t
|
|
%%% End:
|
|
|