summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/koma-script/source/scrhack.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/koma-script/source/scrhack.dtx')
-rw-r--r--macros/latex/contrib/koma-script/source/scrhack.dtx1057
1 files changed, 894 insertions, 163 deletions
diff --git a/macros/latex/contrib/koma-script/source/scrhack.dtx b/macros/latex/contrib/koma-script/source/scrhack.dtx
index 7c89acf9ce..ab3d507d52 100644
--- a/macros/latex/contrib/koma-script/source/scrhack.dtx
+++ b/macros/latex/contrib/koma-script/source/scrhack.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{941}
+% \CheckSum{1855}
% \iffalse meta-comment
% ======================================================================
% scrhack.dtx
@@ -10,7 +10,7 @@
% 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
+% 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".
@@ -62,7 +62,7 @@
% Right brace \} Tilde \~}
%
% \iffalse
-%%% From File: $Id: scrhack.dtx 3063 2019-02-01 07:39:11Z kohm $
+%%% From File: $Id: scrhack.dtx 3262 2019-10-10 08:25:29Z kohm $
%<package&identify>%%% using: package,identify
%<package&option>%%% using: package,option
%<package&body>%%% using: package,body
@@ -71,7 +71,7 @@
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2019-02-01 08:39:11 +0100 (Fri, 01 Feb 2019) $
+ \filedate$Date: 2019-10-10 10:25:29 +0200 (Thu, 10 Oct 2019) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
\filerevision$Revision: 1962 $
\endgroup
@@ -85,17 +85,18 @@
%<setspace&identify>\ProvidesFile{setspace.hak}[%
%<lscape&identify>\ProvidesFile{lscape.hak}[%
%<nomencl&identify>\ProvidesFile{nomencl.hak}[%
+%<standardsections&identify>\ProvidesFile{standardsections.hak}[%
%<*dtx|identify>
%!KOMAScriptVersion
- package
%<*dtx>
- source
+ source of
%</dtx>
-%<*!identify>
- (hacking other packages)%
-%</!identify>
-%</dtx|identify>
-%<hack&identify> (hacking package
+%<*dtx|package>
+ package (hacking other packages)%
+%</dtx|package>
+%<*hack>
+%<hack> scrhack part
+%<!standardsections> (hacking package
%<hyperref&identify> hyperref)%
%<float&identify> float)%
%<floatrow&identify> floatrow)%
@@ -103,7 +104,8 @@
%<setspace&identify> setspace)%
%<lscape&identify> lscape)%
%<nomencl&identify> nomencl)%
-%<*dtx|identify>
+%<standardsections&identify> (defining standard LaTeX class section headings)%
+%</hack>
]
%</dtx|identify>
%<*dtx>
@@ -156,6 +158,11 @@
\from{scrhack.dtx}{hack,nomencl,identify}%
\from{scrhack.dtx}{hack,nomencl,body}%
}%
+ \file{standardsections.hak}{%
+ \from{scrkernel-version.dtx}{file,standardsections.hak}%
+ \from{scrhack.dtx}{hack,standardsections,identify}%
+ \from{scrhack.dtx}{hack,standardsections,body}%
+ }%
}
\@@input scrstrop.inc
\else
@@ -163,7 +170,6 @@
\fi
\endbatchfile
\documentclass[parskip=half-]{scrdoc}
-\usepackage[latin1]{inputenc}
\usepackage[english,ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
@@ -207,13 +213,13 @@
%
% \selectlanguage{ngerman}
% \StopEventually{\PrintIndex\PrintChanges}
-% \changes{v3.03}{2009/03/12}{erste Version des Pakets}^^A
+% \changes{v3.03}{2009/03/12}{erste Version des Pakets}%^^A
%
% \section{Implementation of \Package{scrhack}}
%
% \changes{v3.04b}{2009/08/05}{Die Reihenfolge von Anweisungen und Optionen
-% grundlegend geändert, um das Paket \textsf{scrhack} unabhängiger von der
-% Reihenfolge beim Laden von Paketen zu machen.}^^A
+% grundlegend geändert, um das Paket \textsf{scrhack} unabhängiger von der
+% Reihenfolge beim Laden von Paketen zu machen.}%^^A
%
% \subsection{Optionen}
%
@@ -222,12 +228,12 @@
% \fi
%
% Das Paket bedient sich \cs{KOMAoptions} etc. aus \textsf{scrkbase} (dieses
-% wird übrigens direkt per \texttt{scrkbase.dtx} geladen).
+% wird übrigens direkt per \texttt{scrkbase.dtx} geladen).
%
-% Per Option kann gewählt werden, welche Manipulationen geladen werden
-% sollen. Alle diese Optionen können jedoch nur bis zum Laden des
+% Per Option kann gewählt werden, welche Manipulationen geladen werden
+% sollen. Alle diese Optionen können jedoch nur bis zum Laden des
% entsprechenden Pakets oder dem Laden von \textsf{scrhack} gesetzt
-% werden (es zählt, was später kommt). Anschließend sind sie wirkungslos.
+% werden (es zählt, was später kommt). Anschließend sind sie wirkungslos.
%
% \subsection{Verwendete Anweisungen}
%
@@ -237,9 +243,9 @@
% \fi
%
% \begin{macro}{\scr@ifexpected}
-% Wenn die im ersten Argument angegebene Anweisung nach Ausführung der im
-% zweiten Argument angegebenen Anweisungen unverändert ist, dann soll das
-% dritte Argument ausgeführt werden, sonst das vierte.
+% Wenn die im ersten Argument angegebene Anweisung nach Ausführung der im
+% zweiten Argument angegebenen Anweisungen unverändert ist, dann soll das
+% dritte Argument ausgeführt werden, sonst das vierte.
% \begin{macrocode}
\newcommand{\scr@ifexpected}[2]{%
\begingroup
@@ -258,7 +264,7 @@
% \begin{macro}{\scr@hack@load}
% Wenn die Datei mit dem Namen des zweiten Arguments und der Endung des ersten
% Arguments so geladen wurde, dass \LaTeX{} eine Versionsinfo dazu gespeichert
-% hat, dann soll zusätzlich der entsprechende Hack geladen werden.
+% hat, dann soll zusätzlich der entsprechende Hack geladen werden.
% \begin{macrocode}
\newcommand*{\scr@hack@load}[2]{%
\expandafter\ifx\csname ver@#2.#1\endcsname\relax
@@ -292,17 +298,17 @@
%
% \subsection{Der \textsf{hyperref}-Hack}
%
-% \textsf{hyperref} setzt den Anker zu der Stern-Variante einer Überschrift
-% hinter die Überschrift, während es bei der nicht Stern-Variante den Anker
-% auch dann vor die Überschrift setzt, wenn die Überschrift aufgrund von
+% \textsf{hyperref} setzt den Anker zu der Stern-Variante einer Ãœberschrift
+% hinter die Überschrift, während es bei der nicht Stern-Variante den Anker
+% auch dann vor die Ãœberschrift setzt, wenn die Ãœberschrift aufgrund von
% \texttt{secnumdepth} nicht nummeriert wird. Der Hack setzt den Anker
-% einheitlich vor die Überschrift.
+% einheitlich vor die Ãœberschrift.
%
% \begin{option}{hyperref}
-% \changes{v3.12}{2013/03/05}{Signalisierung mit
-% \cs{FamilyKeyStateProcessed}}^^A
-% \changes{v3.17}{2015/03/09}{Defaulteinstellung mit
-% \cs{KOMAExecuteOptions}}^^A
+% \changes{v3.12}{2013/03/05}{Signalisierung mit
+% \cs{FamilyKeyStateProcessed}}%^^A
+% \changes{v3.17}{2015/03/09}{Defaulteinstellung mit
+% \cs{KOMAExecuteOptions}}%^^A
% \begin{macrocode}
%<*package&option>
\KOMA@ifkey{hyperref}{@scrhack@hyperref}%
@@ -310,20 +316,20 @@
%</package&option>
%<*package&body>
% \end{macrocode}
-% \changes{v3.04b}{2009/11/09}{\textsf{hyperref}-Hack wird früher geladen}^^A
+% \changes{v3.04b}{2009/11/09}{\textsf{hyperref}-Hack wird früher geladen}%^^A
% \changes{v3.17}{2015/03/09}{Neuere \textsf{hyperref}-Version deaktiviert
-% ggf. Option \texttt{hyperref}}^^A
+% ggf. Option \texttt{hyperref}}%^^A
% \changes{v3.18}{2015/05/22}{Neuere \KOMAScript-Versionen deaktivieren
-% ggf. Option \texttt{hyperref}}^^A
+% ggf. Option \texttt{hyperref}}%^^A
% Hier muss ein wenig trickreicher gearbeitet werden, weil \textsf{hyperref}
-% die Treiberdatei per \cs{AtEndOfPackage} lädt und der Hack erst danach
-% installiert werden darf. Mit \cs{AfterPackage*} alleine, würde der Hack aber
-% vor dem Laden der Treiberdatei installiert. Dafür können wir aber sicher
+% die Treiberdatei per \cs{AtEndOfPackage} lädt und der Hack erst danach
+% installiert werden darf. Mit \cs{AfterPackage*} alleine, würde der Hack aber
+% vor dem Laden der Treiberdatei installiert. Dafür können wir aber sicher
% sein, dass ein innerhalb von \cs{AfterPackage*} aufgerufenes
-% \cs{AtEndOfPackage} garantiert nach dem Laden der Treiberdatei ausgeführt
+% \cs{AtEndOfPackage} garantiert nach dem Laden der Treiberdatei ausgeführt
% wird. Das funktioniert auch noch, wenn \textsf{hyperref} bereits geladen
% wurde. In dem Fall wird der Code einfach nach dem Ende von \textsf{scrhack}
-% statt nach dem Ende von \textsf{hyperref} ausgeführt.
+% statt nach dem Ende von \textsf{hyperref} ausgeführt.
% \begin{macrocode}
\BeforePackage{hyperref}{%
\scr@ifundefinedorrelax{hy@insteadofrefstepcounter}{}{%
@@ -359,10 +365,10 @@
% \begin{macro}{\@schapter}
% \begin{macro}{\@spart}
% \begin{macro}{\@ssect}
-% Eigentlich wird hier gar nicht \texttt{hyperref.sty} verändert, sondern
+% Eigentlich wird hier gar nicht \texttt{hyperref.sty} verändert, sondern
% diverse Treiberdateien. Sobald das Paket \textsf{hyperref} geladen ist, ist
-% auch die passende Treiberdatei geladen und außerdem sind alle
-% Treiberdateien, die entsprechende Definitionen vornehmen, gleichermaßen
+% auch die passende Treiberdatei geladen und außerdem sind alle
+% Treiberdateien, die entsprechende Definitionen vornehmen, gleichermaßen
% betroffen. Also kann der entsprechende Patch einfach erfolgen, wenn hyperref
% geladen ist (was bereits von \cs{scr@hack@load} getestet wurde). Es muss
% also nur noch sichergestellt werden, dass die umzudefinierenden Macros
@@ -413,7 +419,6 @@
Maybe you are using a unsupported hyperref version}%
}%
}
-
\scr@ifexpected\@spart{%
\def\@spart#1{%
\H@old@spart{#1}%
@@ -449,7 +454,6 @@
Maybe you are using a unsupported hyperref version}%
}%
}
-
\scr@ifexpected\@ssect{%
\def\@ssect#1#2#3#4#5{%
\H@old@ssect{#1}{#2}{#3}{#4}{#5}%
@@ -481,19 +485,19 @@
% \subsection{Der \textsf{float}-Hack}
%
% Das \textsf{float}-Paket verwendet das Makro \cs{float@listhead} zum
-% Setzen der Überschriften. Dies wird seit \KOMAScript~3 nicht mehr empfohlen
-% und fliegt demnächst komplett aus der Unterstützung. Stattdessen wird
-% empfohlen, dass Pakete \textsf{tocbasic} unterstützen. Der Aufwand dafür ist
-% sehr gering und wird mit vielen neuen Möglichkeiten belohnt.
+% Setzen der Ãœberschriften. Dies wird seit \KOMAScript~3 nicht mehr empfohlen
+% und fliegt demnächst komplett aus der Unterstützung. Stattdessen wird
+% empfohlen, dass Pakete \textsf{tocbasic} unterstützen. Der Aufwand dafür ist
+% sehr gering und wird mit vielen neuen Möglichkeiten belohnt.
%
-% Dieser Hack rüstet die \textsf{tocbasic}-Unterstützung für \textsf{float}
+% Dieser Hack rüstet die \textsf{tocbasic}-Unterstützung für \textsf{float}
% nach.
%
% \begin{option}{float}
-% \changes{v3.12}{2013/03/05}{Signalisierung mit
-% \cs{FamilyKeyStateProcessed}}^^A
-% \changes{v3.17}{2015/03/09}{Defaulteinstellung mit
-% \cs{KOMAExecuteOptions}}^^A
+% \changes{v3.12}{2013/03/05}{Signalisierung mit
+% \cs{FamilyKeyStateProcessed}}%^^A
+% \changes{v3.17}{2015/03/09}{Defaulteinstellung mit
+% \cs{KOMAExecuteOptions}}%^^A
% \begin{macrocode}
%<*package&option>
\KOMA@ifkey{float}{@scrhack@float}%
@@ -513,16 +517,16 @@
%
%
% \begin{macro}{\newfloat}
-% Über die Anweisung \cs{newfloat} wird eine neue Gleitumgebung
+% Ãœber die Anweisung \cs{newfloat} wird eine neue Gleitumgebung
% definiert. Hier muss die neue Erweiterung aus dem dritten Argument
% \textsf{tocbasic} bekannt gemacht werden.
% \begin{macro}{\listof}
-% Über die Anweisung \cs{listof} wird ein Verzeichnis für Gleitumgebungen
+% Über die Anweisung \cs{listof} wird ein Verzeichnis für Gleitumgebungen
% ausgegeben. Hier muss schlicht die entsprechende Anweisung von
% \textsf{tocbasic} verwendet werden.
% \begin{macro}{\float@addtolists}
-% Diese Anweisung wird nicht länger benötigt und daher auf die ursprüngliche
-% Definition zurückgesetzt.
+% Diese Anweisung wird nicht länger benötigt und daher auf die ursprüngliche
+% Definition zurückgesetzt.
% \begin{macrocode}
%<*float&body>
\scr@ifexpected{\newfloat}{%
@@ -587,14 +591,14 @@
\@ifundefined{l@#1}{\expandafter\let\csname l@#1\endcsname\l@figure
\@ifundefined{l@#1}{%
% \end{macrocode}
-% \changes{v3.25}{2018/03/16}{Verwendung von \cs{DeclareTOCStyleEntry}}^^A
-% Bis Version 3.24 wurde hier nun wie üblich |\l@#1| unter Verwendung von
+% \changes{v3.25}{2018/03/16}{Verwendung von \cs{DeclareTOCStyleEntry}}%^^A
+% Bis Version 3.24 wurde hier nun wie üblich |\l@#1| unter Verwendung von
% \cs{@dottedtocline} definiert:
% \begin{verbatim}
% \@namedef{l@#1}{\@dottedtocline{1}{1.5em}{2.3em}}%
% \end{verbatim}
-% Da aber \Package{tocbasic} inzwischen diese schöne Schnittstelle für die
-% Verzeichniseinträge bietet, verwenden wir die hier nun auch:
+% Da aber \Package{tocbasic} inzwischen diese schöne Schnittstelle für die
+% Verzeichniseinträge bietet, verwenden wir die hier nun auch:
% \begin{macrocode}
\DeclareTOCStyleEntry[level=1,numwidth=2.3em,indent=1.5em]
{default}{#1}%
@@ -634,19 +638,19 @@
% \subsection{Der \textsf{floatrow}-Hack}
%
% Das \textsf{floatrow}-Paket verwendet das Makro \cs{float@listhead} zum
-% Setzen der Überschriften. Dies wird seit \KOMAScript~3 nicht mehr empfohlen
-% und fliegt demnächst komplett aus der Unterstützung. Stattdessen wird
-% empfohlen, dass Pakete \textsf{tocbasic} unterstützen. Der Aufwand dafür ist
-% sehr gering und wird mit vielen neuen Möglichkeiten belohnt.
+% Setzen der Ãœberschriften. Dies wird seit \KOMAScript~3 nicht mehr empfohlen
+% und fliegt demnächst komplett aus der Unterstützung. Stattdessen wird
+% empfohlen, dass Pakete \textsf{tocbasic} unterstützen. Der Aufwand dafür ist
+% sehr gering und wird mit vielen neuen Möglichkeiten belohnt.
%
-% Dieser Hack rüstet die \textsf{tocbasic}-Unterstützung für \textsf{floatrow}
+% Dieser Hack rüstet die \textsf{tocbasic}-Unterstützung für \textsf{floatrow}
% nach.
%
% \begin{option}{floatrow}
-% \changes{v3.12}{2013/03/05}{Signalisierung mit
-% \cs{FamilyKeyStateProcessed}}^^A
-% \changes{v3.17}{2015/03/09}{Defaulteinstellung mit
-% \cs{KOMAExecuteOptions}}^^A
+% \changes{v3.12}{2013/03/05}{Signalisierung mit
+% \cs{FamilyKeyStateProcessed}}%^^A
+% \changes{v3.17}{2015/03/09}{Defaulteinstellung mit
+% \cs{KOMAExecuteOptions}}%^^A
% \begin{macrocode}
%<*package&option>
\KOMA@ifkey{floatrow}{@scrhack@floatrow}
@@ -666,16 +670,16 @@
%
%
% \begin{macro}{\DeclareNewFloatType}
-% Über die Anweisung \cs{DeclareNewFloatType} wird eine neue Gleitumgebung
+% Ãœber die Anweisung \cs{DeclareNewFloatType} wird eine neue Gleitumgebung
% definiert. Hier muss die neue Erweiterung aus dem dritten Argument
% \textsf{tocbasic} bekannt gemacht werden.
% \begin{macro}{\listof}
-% Über die Anweisung \cs{listof} wird ein Verzeichnis für Gleitumgebungen
+% Über die Anweisung \cs{listof} wird ein Verzeichnis für Gleitumgebungen
% ausgegeben. Hier muss schlicht die entsprechende Anweisung von
% \textsf{tocbasic} verwendet werden.
% \begin{macro}{\float@addtolists}
-% Diese Anweisung wird nicht länger benötigt und daher auf die ursprüngliche
-% Definition zurückgesetzt.
+% Diese Anweisung wird nicht länger benötigt und daher auf die ursprüngliche
+% Definition zurückgesetzt.
% \begin{macrocode}
%<*floatrow&body>
\scr@ifexpected{\DeclareNewFloatType}{%
@@ -705,9 +709,9 @@
\RequirePackage{tocbasic}%
\PackageInfo{scrhack}{redefining \string\DeclareNewFloatType}%
% \end{macrocode}
-% Eigentlich wäre es besser, wie im \textsf{float}-Hack einen Test
-% vorzuschalten, ob die Dateiendung bereits in Gebrauch ist. Aber das würde
-% voraussetzen, dass die Reihenfolge der Anweisungen geändert wird. Dazu
+% Eigentlich wäre es besser, wie im \textsf{float}-Hack einen Test
+% vorzuschalten, ob die Dateiendung bereits in Gebrauch ist. Aber das würde
+% voraussetzen, dass die Reihenfolge der Anweisungen geändert wird. Dazu
% stecke ich aber im Code von \textsf{floatrow} zu wenig
% drin. (\emph{\foreignlanguage{english}{Note: It would be better to first
% test, if the new extension is already in use like done at the
@@ -723,14 +727,14 @@
\expandafter\noexpand\csname the#1\endcsname}%
\@namedef{the#1}{\arabic{#1}}\flnew@ext{lo#1}\@namedef{fps@#1}{tbp}%
% \end{macrocode}
-% \changes{v3.25}{2018/03/16}{Verwendung von \cs{DeclareTOCStyleEntry}}^^A
-% Bis Version 3.24 wurde hier nun wie üblich |\l@#1| unter Verwendung von
+% \changes{v3.25}{2018/03/16}{Verwendung von \cs{DeclareTOCStyleEntry}}%^^A
+% Bis Version 3.24 wurde hier nun wie üblich |\l@#1| unter Verwendung von
% \cs{@dottedtocline} definiert:
% \begin{verbatim}
% \@namedef{l@#1}{\@dottedtocline{1}{1.5em}{2.3em}}%
% \end{verbatim}
-% Da aber \Package{tocbasic} inzwischen diese schöne Schnittstelle für die
-% Verzeichniseinträge bietet, verwenden wir die hier nun auch:
+% Da aber \Package{tocbasic} inzwischen diese schöne Schnittstelle für die
+% Verzeichniseinträge bietet, verwenden wir die hier nun auch:
% \begin{macrocode}
\DeclareTOCStyleEntry[level=1,numwidth=2.3em,indent=1.5em]{default}{#1}%
\caption@setkeys[floatrow]{newfloat}{#2}\let\FR@tmp=\relax
@@ -787,19 +791,19 @@
% \subsection{Der \textsf{listings}-Hack}
%
% Das \textsf{listings}-Paket verwendet das Makro \cs{float@listhead} zum
-% Setzen der Überschriften. Dies wird seit \KOMAScript~3 nicht mehr empfohlen
-% und fliegt demnächst komplett aus der Unterstützung. Stattdessen wird
-% empfohlen, dass Pakete \textsf{tocbasic} unterstützen. Der Aufwand dafür ist
-% sehr gering und wird mit vielen neuen Möglichkeiten belohnt.
+% Setzen der Ãœberschriften. Dies wird seit \KOMAScript~3 nicht mehr empfohlen
+% und fliegt demnächst komplett aus der Unterstützung. Stattdessen wird
+% empfohlen, dass Pakete \textsf{tocbasic} unterstützen. Der Aufwand dafür ist
+% sehr gering und wird mit vielen neuen Möglichkeiten belohnt.
%
-% Dieser Hack rüstet die \textsf{tocbasic}-Unterstützung für \textsf{listings}
+% Dieser Hack rüstet die \textsf{tocbasic}-Unterstützung für \textsf{listings}
% nach.
%
% \begin{option}{listings}
-% \changes{v3.12}{2013/03/05}{Signalisierung mit
-% \cs{FamilyKeyStateProcessed}}^^A
-% \changes{v3.17}{2015/03/09}{Defaulteinstellung mit
-% \cs{KOMAExecuteOptions}}^^A
+% \changes{v3.12}{2013/03/05}{Signalisierung mit
+% \cs{FamilyKeyStateProcessed}}%^^A
+% \changes{v3.17}{2015/03/09}{Defaulteinstellung mit
+% \cs{KOMAExecuteOptions}}%^^A
% \begin{macrocode}
%<*package&option>
\KOMA@ifkey{listings}{@scrhack@listings}
@@ -820,12 +824,12 @@
%
% \begin{macro}{\scr@do@hack@listings}
% \begin{macro}{\lstlistoflistings}
-% Über dieses Macro wird das Verzeichnis der Listings gesetzt. Die gesamte
-% Funktionalität dafür kann \Package{tocbasic} überlassen werden.
+% Ãœber dieses Macro wird das Verzeichnis der Listings gesetzt. Die gesamte
+% Funktionalität dafür kann \Package{tocbasic} überlassen werden.
% \begin{macro}{\float@addtolists}
-% Diese Anweisung wird nicht länger benötigt und daher auf die ursprüngliche
-% Definition zurückgesetzt. Da \Package{listings} ihre Definition mit
-% \Macro{AtBeginDocument} verzögert, muss dies hier ebenfalls geschehen.
+% Diese Anweisung wird nicht länger benötigt und daher auf die ursprüngliche
+% Definition zurückgesetzt. Da \Package{listings} ihre Definition mit
+% \Macro{AtBeginDocument} verzögert, muss dies hier ebenfalls geschehen.
% \begin{macrocode}
%<*listings&body>
\newcommand*{\scr@do@hack@listings}{%
@@ -902,15 +906,15 @@
% \subsection{Der \textsf{nomencl}-Hack}
%
% Das \textsf{nomencl}-Paket harmoniert eigentlich nur in einer Kleinigkeit
-% bezüglich des Eintrags in das Inhaltsverzeichnis nicht sehr gut mit
+% bezüglich des Eintrags in das Inhaltsverzeichnis nicht sehr gut mit
% \KOMAScript-Klassen bzw. Paket \textsf{tocbasic}. Allerdings kann es von den
% Vorteilen von \textsf{tocbasic} auch in weiterer Hinsicht profitieren.
%
-% Dieser Hack rüstet weitgehende \textsf{tocbasic}-Unterstützung für
-% \textsf{nomencl} nach. Dafür wird Paket \textsf{xpatch} verwendet.
+% Dieser Hack rüstet weitgehende \textsf{tocbasic}-Unterstützung für
+% \textsf{nomencl} nach. Dafür wird Paket \textsf{xpatch} verwendet.
%
% \begin{option}{nomencl}
-% \changes{v3.23}{2017/03/31}{neue Option für neuen Hack}^^A
+% \changes{v3.23}{2017/03/31}{neue Option für neuen Hack}%^^A
% \begin{macrocode}
%<*package&option>
\RequirePackage{xpatch}%
@@ -927,11 +931,11 @@
}
%</package&body>
% \end{macrocode}
-% \end{option}^^A nomencl
+% \end{option}%^^A nomencl
%
% \begin{macro}{\thenomenclature}
-% \changes{v3.23}{2017/03/31}{Umgebung \texttt{thenomenclature} wird
-% gepatcht}^^A
+% \changes{v3.23}{2017/03/31}{Umgebung \texttt{thenomenclature} wird
+% gepatcht}%^^A
% Statt die Fallunterscheidung aus der Originaldefinition direkt hier
% nachzubilden, patchen wir diese komplett heraus und ersetzen sie durch eine
% neue Anweisung.
@@ -966,7 +970,7 @@
\PackageInfo{scrhack}{\string\thenomenclature\space successfully patched}%
}{%
% \end{macrocode}
-% \changes{v3.26b}{2019/01/23}{new \textsf{nomencl} 5.0}^^A
+% \changes{v3.26b}{2019/01/23}{new \textsf{nomencl} 5.0}%^^A
% From \textsf{nomencl} 5.0 another code is used if the nomenclature is a
% chapter. So we need another patch:
% \begin{macrocode}
@@ -987,7 +991,7 @@
\PackageInfo{scrhack}{\string\thenomenclature\space successfully patched}%
}{%
% \end{macrocode}
-% \changes{v3.26b}{2019/01/23}{prepared for hoply comming \textsf{nomencl}}^^A
+% \changes{v3.26b}{2019/01/23}{prepared for hoply comming \textsf{nomencl}}%^^A
% But this code is also wrong, because it breaks manual running heads, e.g.,
% of page style \texttt{myheadings}. So I hope, there will be another code,
% that needs a somehow different patch:
@@ -1009,7 +1013,7 @@
\PackageInfo{scrhack}{\string\thenomenclature\space successfully patched}%
}{%
% \end{macrocode}
-% \changes{v3.25}{2019/01/23}{emergency patch added}^^A
+% \changes{v3.25}{2019/01/23}{emergency patch added}%^^A
% If this also does not work, we try an emergency patch, that could break
% things.
% \begin{macrocode}
@@ -1039,12 +1043,12 @@
}
%</nomencl&body>
% \end{macrocode}
-% \end{macro}^^A \thenomenclature
+% \end{macro}%^^A \thenomenclature
%
% \begin{macro}{\scr@hack@nomencl@head}
-% \changes{v3.23}{2017/03/31}{Überschrift für \texttt{thenomenclature} unter
-% Verwendung von \textsf{tocbasic}}^^A
-% Im Gegensatz zu Gleitumgebungen benötigen wir hier keine Gruppe, weil
+% \changes{v3.23}{2017/03/31}{Überschrift für \texttt{thenomenclature} unter
+% Verwendung von \textsf{tocbasic}}%^^A
+% Im Gegensatz zu Gleitumgebungen benötigen wir hier keine Gruppe, weil
% \texttt{thenomenclature} bereits die Gruppe bereitstellt.
% \begin{macrocode}
%<*nomencl&body>
@@ -1057,19 +1061,19 @@
%</nomencl&body>
% \end{macrocode}
% Es ist ggf. noch zu beachten, dass von den ganzen Haken, die
-% \textsf{tocbasic} bereitstellt, für dieses Verzeichnis natürlich nur die
-% Überschriftenhaken zum Einsatz kommen. Verzeichnishaken können zwar
+% \textsf{tocbasic} bereitstellt, für dieses Verzeichnis natürlich nur die
+% Überschriftenhaken zum Einsatz kommen. Verzeichnishaken können zwar
% definiert werden, kommen aber nie zur Anwendung.
-% \end{macro}^^A \scr@hack@nomencl@head
+% \end{macro}%^^A \scr@hack@nomencl@head
%
% \begin{macro}{\if@intoc}
-% \changes{3.23}{2017/03/31}{Reaktion auf \cs{if@intoc}}
-% Natürlich muss jetzt noch auf \textsf{nomencl}'s Option \texttt{intoc}
+% \changes{3.23}{2017/03/31}{Reaktion auf \cs{if@intoc}}
+% Natürlich muss jetzt noch auf \textsf{nomencl}'s Option \texttt{intoc}
% reagiert werden, also entsprechend der Option das \textsf{tocbasic}
-% Feature \texttt{totoc} passend gesetzt werden. Etwaige Änderungen des
+% Feature \texttt{totoc} passend gesetzt werden. Etwaige Änderungen des
% Features sind also erst nach dem Laden von \textsf{nomencl} und
-% \textsf{scrhack} möglich. Spätere Änderungen von \cs{if@intoc} werden
-% außerdem nicht berücksichtigt.
+% \textsf{scrhack} möglich. Spätere Änderungen von \cs{if@intoc} werden
+% außerdem nicht berücksichtigt.
% \begin{macrocode}
%<*nomencl&body>
\if@intoc
@@ -1082,17 +1086,17 @@
%
% \subsection{Der \textsf{setspace}-Hack}
%
-% Das \textsf{setspace}-Paket verwendet \cs{@ptsize} auf ungünstige Art, indem
-% es davon ausgeht, dass es immer eine ganze Zahl enthält. Das ist aber bei
-% \KOMAScript{} keineswegs zwingend. Außerdem ist der Wert für \texttt{11pt}
-% falsch, weil \LaTeX{} in diesem Fall tatsächlich eine 10,95\,pt-Schrift mit
-% einem Zeilenabstand von 13,6\,pt einstellt. Damit wäre der korrekte Wert für
+% Das \textsf{setspace}-Paket verwendet \cs{@ptsize} auf ungünstige Art, indem
+% es davon ausgeht, dass es immer eine ganze Zahl enthält. Das ist aber bei
+% \KOMAScript{} keineswegs zwingend. Außerdem ist der Wert für \texttt{11pt}
+% falsch, weil \LaTeX{} in diesem Fall tatsächlich eine 10,95\,pt-Schrift mit
+% einem Zeilenabstand von 13,6\,pt einstellt. Damit wäre der korrekte Wert für
% \cs{onehalfspacing} beispielsweise:
% \[ 10{,}95\,\mathrm{pt} \dot 1{,5} / 13{,}6\,\mathrm{pt} \equiv 1{,}208 \]
-% Tatsächlich stellt \textsf{setspace} aber einen Wert von 1,213 ein, was
-% einer effektiven Schriftgröße von 11\,pt entsprechen würde. Ebenso stellt es
+% Tatsächlich stellt \textsf{setspace} aber einen Wert von 1,213 ein, was
+% einer effektiven Schriftgröße von 11\,pt entsprechen würde. Ebenso stellt es
% den aktuellen Abstand bei \cs{onehalfspacing} nicht relativ zur aktuellen
-% Schriftgröße ein, sondern zur Grundschriftgröße. Damit erhält man bei
+% Schriftgröße ein, sondern zur Grundschriftgröße. Damit erhält man bei
% \begin{verbatim}
% \documentclass[10pt]{article}
% \usepackage{setspace}
@@ -1114,15 +1118,15 @@
% baselineskip: \the\baselineskip
% \end{document}
% \end{verbatim}
-% obwohl beide Male dieselbe Schriftgröße verwendet wird. Streng genommen
-% müsste also bei jeder Änderung der Schriftgröße der Wert Abstand angepasst
-% werden. So weit geht dieser Hack nicht. Stattdessen wird der Wert abhängig
-% von der tatsächlichen Schriftgröße und dem tatsächlichen Basisabstand beim
+% obwohl beide Male dieselbe Schriftgröße verwendet wird. Streng genommen
+% müsste also bei jeder Änderung der Schriftgröße der Wert Abstand angepasst
+% werden. So weit geht dieser Hack nicht. Stattdessen wird der Wert abhängig
+% von der tatsächlichen Schriftgröße und dem tatsächlichen Basisabstand beim
% Aufruf der Anweisungen eingestellt. Das ergibt immerhin in den obigen
% Beispielen gleiche Ergebnisse.
%
% \begin{option}{setspace}
-% \changes{v3.17}{2015/04/16}{Neu}^^A
+% \changes{v3.17}{2015/04/16}{Neu}%^^A
% \begin{macrocode}
%<*package&option>
\KOMA@ifkey{setspace}{@scrhack@setspace}
@@ -1142,8 +1146,8 @@
%
%
% \begin{macro}{\onehalfspacing}
-% \changes{v3.17}{2015/04/16}{Neu}^^A
-% Über diese Anweisung wird der eineinhalbzeilige Satz eingestellt. Ein auf
+% \changes{v3.17}{2015/04/16}{Neu}%^^A
+% Ãœber diese Anweisung wird der eineinhalbzeilige Satz eingestellt. Ein auf
% drei Nachkommastellen genauer Wert erscheint mir ausreichend genau.
% \begin{macrocode}
%<*setspace&body>
@@ -1172,8 +1176,8 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\doublespacing}
-% \changes{v3.17}{2015/04/16}{Neu}^^A
-% Über diese Anweisung wird der zweizeilige Satz eingestellt. Ein auf
+% \changes{v3.17}{2015/04/16}{Neu}%^^A
+% Ãœber diese Anweisung wird der zweizeilige Satz eingestellt. Ein auf
% drei Nachkommastellen genauer Wert erscheint mir ausreichend genau.
% \begin{macrocode}
\scr@ifexpected{\doublespacing}{%
@@ -1204,24 +1208,24 @@
%
%
% \subsection{Der \textsf{lscape}-Hack}
-% \changes{v3.18a}{2015/07/07}{Neuer \textsf{lscape}-Hack}^^A
+% \changes{v3.18a}{2015/07/07}{Neuer \textsf{lscape}-Hack}%^^A
%
% Das \textsf{lscape}-Paket setzt innerhalb der
-% \texttt{landscape}-Umgebung die Länge \cs{textheight} auf den Wert
+% \texttt{landscape}-Umgebung die Länge \cs{textheight} auf den Wert
% von \cs{textwidth} obwohl es auf der anderen Seite \cs{textwidth}
% nicht auf den Wert von \cs{textheight} setzt. Das ist inkonsequent. Da
-% David~Carlisle außerdem angibt, dass \cs{textwidth} nicht verändert wird,
-% weil das zu Problemen führen konnte, ist es unverständlich, dass
-% \cs{textheight} verändert wird, obwohl das ebenfalls zu Problemen führen
-% kann, beispielsweise für \textsf{showframe} oder \textsf{scrpage}. Daher
-% verändere ich die Definition so, dass auch \cs{textheight} unverändert
-% bleibt. Dabei muss allerdings auch \textsf{pdflscape} berücksichtigt
+% David~Carlisle außerdem angibt, dass \cs{textwidth} nicht verändert wird,
+% weil das zu Problemen führen konnte, ist es unverständlich, dass
+% \cs{textheight} verändert wird, obwohl das ebenfalls zu Problemen führen
+% kann, beispielsweise für \textsf{showframe} oder \textsf{scrpage}. Daher
+% verändere ich die Definition so, dass auch \cs{textheight} unverändert
+% bleibt. Dabei muss allerdings auch \textsf{pdflscape} berücksichtigt
% werden. Das ist am einfachsten mit \textsf{xpatch}.
%
% \begin{option}{lscape}
-% \changes{v3.18a}{2015/07/07}{Neue Option für neuen Hack}^^A
-% \changes{v3.20}{2016/05/07}{\textsf{xpatch} wird bereits im Optionenteil
-% geladen}^^A
+% \changes{v3.18a}{2015/07/07}{Neue Option für neuen Hack}%^^A
+% \changes{v3.20}{2016/05/07}{\textsf{xpatch} wird bereits im Optionenteil
+% geladen}%^^A
% \begin{macrocode}
%<*package&option>
\RequirePackage{xpatch}%
@@ -1242,22 +1246,22 @@
% \end{option}
%
% \begin{macro}{\landscape}
-% \changes{v3.18a}{2015/07/07}{Neu}^^A
-% \changes{v3.20}{2016/05/07}{\textsf{xpatch} wird bereits im Optionenteil
-% geladen}^^A
-% Über diese Anweisung wird die \texttt{landscape}-Umgebung von
-% \textsf{lscape} gestartet. Genau diese muss gepatcht werden. Dafür wird das
-% Paket \textsf{xpatch} benötigt. Da der Patch nur geladen wird, wenn die
-% Option dafür gesetzt ist, kann die Option daher nur ein- und ausgeschaltet
+% \changes{v3.18a}{2015/07/07}{Neu}%^^A
+% \changes{v3.20}{2016/05/07}{\textsf{xpatch} wird bereits im Optionenteil
+% geladen}%^^A
+% Ãœber diese Anweisung wird die \texttt{landscape}-Umgebung von
+% \textsf{lscape} gestartet. Genau diese muss gepatcht werden. Dafür wird das
+% Paket \textsf{xpatch} benötigt. Da der Patch nur geladen wird, wenn die
+% Option dafür gesetzt ist, kann die Option daher nur ein- und ausgeschaltet
% werden, wenn sie bis zum Laden des Pakets aktiviert wurde.
% \begin{macrocode}
%<*lscape&body>
\xpatchcmd{\landscape}{\textheight=\vsize}{%
\if@scrhack@lscape
% \end{macrocode}
-% \changes{v3.18a}{2015/08/11}{Patchen von \cs{@outputpage}}^^A
-% Es gibt allerdings in der Tat eine Stelle, an der ein verändertet Wert von
-% \cs{textheight} benötigt wird. Das ist wenn innerhalb von \cs{@outputpage}
+% \changes{v3.18a}{2015/08/11}{Patchen von \cs{@outputpage}}%^^A
+% Es gibt allerdings in der Tat eine Stelle, an der ein verändertet Wert von
+% \cs{textheight} benötigt wird. Das ist wenn innerhalb von \cs{@outputpage}
% der Wert von \cs{@colht} reinitialisiert wird. Also wird das entsprechend
% auch noch hinein gepatcht.
% \begin{macrocode}
@@ -1277,20 +1281,747 @@
}
% \end{macrocode}
% \begin{Length}{\scrh@LT@textheight}
-% \changes{v3.18a}{2015/08/11}{neue Länge (intern)}^^A
+% \changes{v3.18a}{2015/08/11}{neue Länge (intern)}%^^A
% \begin{macrocode}
\newlength{\scrh@LT@textheight}
%</lscape&body>
% \end{macrocode}
-% \end{Length}^^A \scrh@LT@textheight
-% \end{macro}^^A \landscape
+% \end{Length}%^^A \scrh@LT@textheight
+% \end{macro}%^^A \landscape
+%
+%
+% \selectlanguage{english}
+% \subsection{The standard classes sections hack}
+% \label{sec:standardsections}
+% The \emph{standard classes sections hack} differs from each other
+% hack. First of all it does not patch a specific package but the class
+% definitions of section commands from \cs{part} till
+% \cs{subparagraph}. Additionally it resets several internal \LaTeX{} macros
+% which are changed by \KOMAScript{} classes to their original
+% definition. Last but not least it is not activated by default, but the user
+% has to activate it, if he needs it. The hack has more potential to break
+% things than to make things better. Because of this, there is not any support
+% for using this hack and the hack shows several warning messages.
+%
+% \begin{option}{standardsections}
+% \begin{macrocode}
+%<*package&option>
+\KOMA@ifkey{standardsections}{@scrhack@standardsections}
+\KOMAExecuteOptions{standardsections=false}
+%</package&option>
+%<*package&body>
+\AtEndOfPackage{%
+ \if@scrhack@standardsections
+ \PackageInfo{scrhack}{loading standard classes sections hack}%
+ \input{standardsections.hak}%
+ \fi
+}
+%</package&body>
+% \end{macrocode}
+% \end{option}%^^A standardsections
+%
+% \begin{macro}{\part}
+% \begin{macro}{\chapter}
+% \begin{macro}{\section}
+% \begin{macro}{\subsection}
+% \begin{macro}{\subsubsection}
+% \begin{macro}{\paragraph}
+% \begin{macro}{\subparagraph}
+% The hack redefines all these commands to a definition copied from the
+% standard \LaTeX{} classes version v1.4i. Copyright of this code is by the
+% \LaTeX3{} Project. The complete, unmodified code can be found on
+% \url{https://ctan.org/tex-archive/macros/latex/base/classes.dtx}.
+% \begin{macrocode}
+%<*standardsections&body>
+\PackageWarningNoLine{scrhack}{%
+ You are loosing every kind of support because of\MessageBreak
+ using the dangerous standard classes sections hack!\MessageBreak
+ This hack can break several classes and packages.\MessageBreak
+ However, sometimes it is needed to make a\MessageBreak
+ package work%
+}%
+\PackageInfo{scrhack}{%
+ Using code from the standard LaTeX classes.\MessageBreak
+ For more information about this code and the\MessageBreak
+ license of this code, please see:\MessageBreak
+ https://ctan.org/tex-archive/macros/latex/base/classes.dtx
+}%
+\@ifpackageloaded{hyperref}{%
+ \PackageWarning{scrhack}{this hack should not be loaded after `hyperref'}%
+}{}
+\@ifpackageloaded{titlesec}{%
+ \PackageWarning{scrhack}{this hack should not be loaded after `titlesec'}%
+}{}
+\@ifpackageloaded{sectsty}{%
+ \PackageWarning{scrhack}{this hack should not be loaded after `sectsty'}%
+}{}
+\@ifpackageloaded{sectsty}{%
+ \PackageWarning{scrhack}{this hack should not be loaded after `sectsty'}%
+}{}
+\scr@ifundefinedorrelax{chapter}{%
+% \end{macrocode}
+% It seems to be an article class, so we use the code from \textsf{article}.
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{c@part}{\newcounter{part}}{}%
+ \scr@ifundefinedorrelax{c@section}{\newcounter{section}}{}%
+ \scr@ifundefinedorrelax{c@subsection}{\newcounter{subsection}[section]}{}%
+ \scr@ifundefinedorrelax{c@subsubsection}{%
+ \newcounter{subsubsection}[subsection]}{}%
+ \scr@ifundefinedorrelax{c@paragraph}{%
+ \newcounter{paragraph}[subsubsection]}{}%
+ \scr@ifundefinedorrelax{c@subparagraph}{%
+ \newcounter{subparagraph}[paragraph]}{}%
+ \renewcommand\thepart {\@Roman\c@part}%
+ \renewcommand\thesection {\@arabic\c@section}%
+ \renewcommand\thesubsection {\thesection.\@arabic\c@subsection}%
+ \renewcommand\thesubsubsection{\thesubsection.\@arabic\c@subsubsection}%
+ \renewcommand\theparagraph {\thesubsubsection.\@arabic\c@paragraph}%
+ \renewcommand\thesubparagraph {\theparagraph.\@arabic\c@subparagraph}%
+ \def\part{%
+ \if@noskipsec \leavevmode \fi
+ \par
+ \addvspace{4ex}%
+ \@afterindentfalse
+ \secdef\@part\@spart}%
+ \def\@part[#1]#2{%
+ \ifnum \c@secnumdepth >\m@ne
+ \refstepcounter{part}%
+ \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
+ \else
+ \addcontentsline{toc}{part}{#1}%
+ \fi
+ {\parindent \z@ \raggedright
+ \interlinepenalty \@M
+ \normalfont
+ \ifnum \c@secnumdepth >\m@ne
+ \Large\bfseries \partname\nobreakspace\thepart
+ \par\nobreak
+ \fi
+ \huge \bfseries #2%
+ \markboth{}{}\par}%
+ \nobreak
+ \vskip 3ex
+ \@afterheading}%
+ \def\@spart#1{%
+ {\parindent \z@ \raggedright
+ \interlinepenalty \@M
+ \normalfont
+ \huge \bfseries #1\par}%
+ \nobreak
+ \vskip 3ex
+ \@afterheading}%
+ \def\section{\@startsection {section}{1}{\z@}%
+ {-3.5ex \@plus -1ex \@minus -.2ex}%
+ {2.3ex \@plus.2ex}%
+ {\normalfont\Large\bfseries}}%
+ \def\subsection{\@startsection{subsection}{2}{\z@}%
+ {-3.25ex\@plus -1ex \@minus -.2ex}%
+ {1.5ex \@plus .2ex}%
+ {\normalfont\large\bfseries}}%
+ \def\subsubsection{\@startsection{subsubsection}{3}{\z@}%
+ {-3.25ex\@plus -1ex \@minus -.2ex}%
+ {1.5ex \@plus .2ex}%
+ {\normalfont\normalsize\bfseries}}%
+ \def\paragraph{\@startsection{paragraph}{4}{\z@}%
+ {3.25ex \@plus1ex \@minus.2ex}%
+ {-1em}%
+ {\normalfont\normalsize\bfseries}}%
+ \def\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
+ {3.25ex \@plus1ex \@minus .2ex}%
+ {-1em}%
+ {\normalfont\normalsize\bfseries}}%
+}{%
+% \end{macrocode}
+% It seems to be either a book or report class.
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{c@part}{\newcounter{part}}{}%
+ \scr@ifundefinedorrelax{c@chapter}{\newcounter{chapter}}{}%
+ \scr@ifundefinedorrelax{c@section}{\newcounter{section}[chapter]}{}%
+ \scr@ifundefinedorrelax{c@subsection}{\newcounter{subsection}[section]}{}%
+ \scr@ifundefinedorrelax{c@subsubsection}{%
+ \newcounter{subsubsection}[subsection]}{}%
+ \scr@ifundefinedorrelax{c@paragraph}{%
+ \newcounter{paragraph}[subsubsection]}{}%
+ \scr@ifundefinedorrelax{c@subparagraph}{%
+ \newcounter{subparagraph}[paragraph]}{}%
+ \def\@chapapp{\chaptername}%
+ \scr@ifundefinedorrelax{frontmatter}{%
+% \end{macrocode}
+% It seems not to be a book class.
+% \begin{macrocode}
+ \def\part{%
+ \if@openright
+ \cleardoublepage
+ \else
+ \clearpage
+ \fi
+ \thispagestyle{plain}%
+ \if@twocolumn
+ \onecolumn
+ \@tempswatrue
+ \else
+ \@tempswafalse
+ \fi
+ \null\vfil
+ \secdef\@part\@spart}
+
+ \def\@part[#1]#2{%
+ \ifnum \c@secnumdepth >-2\relax
+ \refstepcounter{part}%
+ \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
+ \else
+ \addcontentsline{toc}{part}{#1}%
+ \fi
+ \markboth{}{}%
+ {\centering
+ \interlinepenalty \@M
+ \normalfont
+ \ifnum \c@secnumdepth >-2\relax
+ \huge\bfseries \partname\nobreakspace\thepart
+ \par
+ \vskip 20\p@
+ \fi
+ \Huge \bfseries #2\par}%
+ \@endpart}
+ \def\@spart#1{%
+ {\centering
+ \interlinepenalty \@M
+ \normalfont
+ \Huge \bfseries #1\par}%
+ \@endpart}
+ \def\@endpart{\vfil\newpage
+ \if@twoside
+ \if@openright
+ \null
+ \thispagestyle{empty}%
+ \newpage
+ \fi
+ \fi
+ \if@tempswa
+ \twocolumn
+ \fi}
+ \def\chapter{\if@openright\cleardoublepage\else\clearpage\fi
+ \thispagestyle{plain}%
+ \global\@topnum\z@
+ \@afterindentfalse
+ \secdef\@chapter\@schapter}
+ \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
+ \refstepcounter{chapter}%
+ \typeout{\@chapapp\space\thechapter.}%
+ \addcontentsline{toc}{chapter}%
+ {\protect\numberline{\thechapter}#1}%
+ \else
+ \addcontentsline{toc}{chapter}{#1}%
+ \fi
+ \chaptermark{#1}%
+ \addtocontents{lof}{\protect\addvspace{10\p@}}%
+ \addtocontents{lot}{\protect\addvspace{10\p@}}%
+ \if@twocolumn
+ \@topnewpage[\@makechapterhead{#2}]%
+ \else
+ \@makechapterhead{#2}%
+ \@afterheading
+ \fi}
+ \def\@makechapterhead#1{%
+ \vspace*{50\p@}%
+ {\parindent \z@ \raggedright \normalfont
+ \ifnum \c@secnumdepth >\m@ne
+ \huge\bfseries \@chapapp\space \thechapter
+ \par\nobreak
+ \vskip 20\p@
+ \fi
+ \interlinepenalty\@M
+ \Huge \bfseries #1\par\nobreak
+ \vskip 40\p@
+ }}
+ \def\@schapter#1{\if@twocolumn
+ \@topnewpage[\@makeschapterhead{#1}]%
+ \else
+ \@makeschapterhead{#1}%
+ \@afterheading
+ \fi}
+ \def\@makeschapterhead#1{%
+ \vspace*{50\p@}%
+ {\parindent \z@ \raggedright
+ \normalfont
+ \interlinepenalty\@M
+ \Huge \bfseries #1\par\nobreak
+ \vskip 40\p@
+ }}
+ \def\section{\@startsection {section}{1}{\z@}%
+ {-3.5ex \@plus -1ex \@minus -.2ex}%
+ {2.3ex \@plus.2ex}%
+ {\normalfont\Large\bfseries}}%
+ \def\subsection{\@startsection{subsection}{2}{\z@}%
+ {-3.25ex\@plus -1ex \@minus -.2ex}%
+ {1.5ex \@plus .2ex}%
+ {\normalfont\large\bfseries}}%
+ \def\subsubsection{\@startsection{subsubsection}{3}{\z@}%
+ {-3.25ex\@plus -1ex \@minus -.2ex}%
+ {1.5ex \@plus .2ex}%
+ {\normalfont\normalsize\bfseries}}%
+ \def\paragraph{\@startsection{paragraph}{4}{\z@}%
+ {3.25ex \@plus1ex \@minus.2ex}%
+ {-1em}%
+ {\normalfont\normalsize\bfseries}}%
+ \def\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
+ {3.25ex \@plus1ex \@minus .2ex}%
+ {-1em}%
+ {\normalfont\normalsize\bfseries}}%
+ }{%
+% \end{macrocode}
+% It seems to be a book class.
+% \begin{macrocode}
+ \scr@ifundefinedorrelax{if@mainmatter}{%
+ \expandafter\newif\csname if@mainmatter\endcsname
+ }{}%
+ \def\frontmatter{%
+ \cleardoublepage
+ \@mainmatterfalse
+ \pagenumbering{roman}}%
+ \def\mainmatter{%
+ \cleardoublepage
+ \@mainmattertrue
+ \pagenumbering{arabic}}%
+ \def\backmatter{%
+ \if@openright
+ \cleardoublepage
+ \else
+ \clearpage
+ \fi
+ \@mainmatterfalse}%
+ \def\part{%
+ \if@openright
+ \cleardoublepage
+ \else
+ \clearpage
+ \fi
+ \thispagestyle{plain}%
+ \if@twocolumn
+ \onecolumn
+ \@tempswatrue
+ \else
+ \@tempswafalse
+ \fi
+ \null\vfil
+ \secdef\@part\@spart}%
+
+ \def\@part[#1]#2{%
+ \ifnum \c@secnumdepth >-2\relax
+ \refstepcounter{part}%
+ \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
+ \else
+ \addcontentsline{toc}{part}{#1}%
+ \fi
+ \markboth{}{}%
+ {\centering
+ \interlinepenalty \@M
+ \normalfont
+ \ifnum \c@secnumdepth >-2\relax
+ \huge\bfseries \partname\nobreakspace\thepart
+ \par
+ \vskip 20\p@
+ \fi
+ \Huge \bfseries #2\par}%
+ \@endpart}%
+ \def\@spart#1{%
+ {\centering
+ \interlinepenalty \@M
+ \normalfont
+ \Huge \bfseries #1\par}%
+ \@endpart}%
+ \def\@endpart{\vfil\newpage
+ \if@twoside
+ \if@openright
+ \null
+ \thispagestyle{empty}%
+ \newpage
+ \fi
+ \fi
+ \if@tempswa
+ \twocolumn
+ \fi}%
+ \def\chapter{\if@openright\cleardoublepage\else\clearpage\fi
+ \thispagestyle{plain}%
+ \global\@topnum\z@
+ \@afterindentfalse
+ \secdef\@chapter\@schapter}%
+ \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \refstepcounter{chapter}%
+ \typeout{\@chapapp\space\thechapter.}%
+ \addcontentsline{toc}{chapter}%
+ {\protect\numberline{\thechapter}#1}%
+ \else
+ \addcontentsline{toc}{chapter}{#1}%
+ \fi
+ \else
+ \addcontentsline{toc}{chapter}{#1}%
+ \fi
+ \chaptermark{#1}%
+ \addtocontents{lof}{\protect\addvspace{10\p@}}%
+ \addtocontents{lot}{\protect\addvspace{10\p@}}%
+ \if@twocolumn
+ \@topnewpage[\@makechapterhead{#2}]%
+ \else
+ \@makechapterhead{#2}%
+ \@afterheading
+ \fi}%
+ \def\@makechapterhead#1{%
+ \vspace*{50\p@}%
+ {\parindent \z@ \raggedright \normalfont
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \huge\bfseries \@chapapp\space \thechapter
+ \par\nobreak
+ \vskip 20\p@
+ \fi
+ \fi
+ \interlinepenalty\@M
+ \Huge \bfseries #1\par\nobreak
+ \vskip 40\p@
+ }}%
+ \def\@schapter#1{\if@twocolumn
+ \@topnewpage[\@makeschapterhead{#1}]%
+ \else
+ \@makeschapterhead{#1}%
+ \@afterheading
+ \fi}%
+ \def\@makeschapterhead#1{%
+ \vspace*{50\p@}%
+ {\parindent \z@ \raggedright
+ \normalfont
+ \interlinepenalty\@M
+ \Huge \bfseries #1\par\nobreak
+ \vskip 40\p@
+ }}%
+ \def\section{\@startsection {section}{1}{\z@}%
+ {-3.5ex \@plus -1ex \@minus -.2ex}%
+ {2.3ex \@plus.2ex}%
+ {\normalfont\Large\bfseries}}%
+ \def\subsection{\@startsection{subsection}{2}{\z@}%
+ {-3.25ex\@plus -1ex \@minus -.2ex}%
+ {1.5ex \@plus .2ex}%
+ {\normalfont\large\bfseries}}%
+ \def\subsubsection{\@startsection{subsubsection}{3}{\z@}%
+ {-3.25ex\@plus -1ex \@minus -.2ex}%
+ {1.5ex \@plus .2ex}%
+ {\normalfont\normalsize\bfseries}}%
+ \def\paragraph{\@startsection{paragraph}{4}{\z@}%
+ {3.25ex \@plus1ex \@minus.2ex}%
+ {-1em}%
+ {\normalfont\normalsize\bfseries}}%
+ \def\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
+ {3.25ex \@plus1ex \@minus .2ex}%
+ {-1em}%
+ {\normalfont\normalsize\bfseries}}%
+ }%
+}% End of the derived code.
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@startsection}
+% \KOMAScript{} classes redefine this internal \LaTeX{} kernel macro. In this
+% case \cs{scr@saved@startsection} is defined, differs from
+% \cs{@startsection} and has the definition found before redefining the
+% original macro. We do nothing else but resetting \cs{@startsection} to this
+% saved definition.
+% \begin{macrocode}
+\scr@ifundefinedorrelax{scr@saved@startsection}{}{%
+ \ifx\@startsection\scr@saved@startsection\else
+ \PackageWarningNoLine{scrhack}{%
+ Resetting \string\@startsection,\MessageBreak
+ because of loading standard classes sections hack%
+ }%
+ \let\@startsection\scr@saved@startsection
+ \fi
+}
+% \end{macrocode}
+% \end{macro}%^^A \@startsection
+%
+% \begin{macro}{\@sect}
+% \begin{macro}{\@ssect}
+% \begin{macro}{\@xsect}
+% All these should be resetted to their original definitions stored in
+% \cs{scr@latex@\dots}.
+% \begin{macrocode}
+\scr@ifundefinedorrelax{scr@latex@sect}{}{%
+ \ifx\@sect\scr@latex@sect\else
+ \PackageWarningNoLine{scrhack}{%
+ Resetting \string\@sect,\MessageBreak
+ because of loading standard classes sections hack%
+ }%
+ \let\@sect\scr@latex@sect
+ \fi
+}
+\scr@ifundefinedorrelax{scr@latex@ssect}{}{%
+ \ifx\@ssect\scr@latex@ssect\else
+ \PackageWarningNoLine{scrhack}{%
+ Resetting \string\@ssect,\MessageBreak
+ because of loading standard classes sections hack%
+ }%
+ \let\@sect\scr@latex@ssect
+ \fi
+}
+\scr@ifundefinedorrelax{scr@latex@xsect}{}{%
+ \ifx\@xsect\scr@latex@xsect\else
+ \PackageWarningNoLine{scrhack}{%
+ Resetting \string\@xsect,\MessageBreak
+ because of loading standard classes sections hack%
+ }%
+ \let\@sect\scr@latex@sect
+ \fi
+}
+% \end{macrocode}
+% \end{macro}%^^A \@xsect
+% \end{macro}%^^A \@ssect
+% \end{macro}%^^A \@sect
+%
+% \begin{macro}{\DeclareSectionCommand}
+% \begin{macro}{\RedeclareSectionCommand}
+% \begin{macro}{\DeclareNewSectionCommand}
+% \begin{macro}{\ProvideSectionCommand}
+% \begin{macro}{\DeclareSectionCommands}
+% \begin{macro}{\RedeclareSectionCommands}
+% \begin{macro}{\DeclareNewSectionCommands}
+% \begin{macro}{\ProvideSectionCommands}
+% These \KOMAScript{} commands do not make sense any longer after forced
+% redefinition of \cs{part} \dots{} \cs{subparagraph}. They even would not
+% work correctly after resetting, e.g., \cs{@startsection}. So best reaction
+% is to \emph{undefine} them.
+% \begin{macrocode}
+\scr@ifundefinedorrelax{DeclareSectionCommand}{}{%
+ \PackageWarningNoLine{scrhack}{%
+ \string\DeclareSectionCommand\space
+ and all derivates deactivated,\MessageBreak
+ because of loading standard classes sections hack%
+ }%
+ \let\DeclareSectionCommand\undefined
+ \let\DeclareSectionCommands\undefined
+ \let\RedeclareSectionCommand\undefined
+ \let\RedeclareSectionCommands\undefined
+ \let\DeclareNewSectionCommand\undefined
+ \let\DeclareNewSectionCommands\undefined
+ \let\ProvideSectionCommand\undefined
+ \let\ProvideSectionCommands\undefined
+}
+% \end{macrocode}
+% \begin{macro}{\scr@chapter@before@hyperref@patch}
+% \begin{macro}{\scr@chapter@after@hyperref@patch}
+% Now, definitions without respecting \textsf{hyperref} are used, so
+% \textsf{hyperref} should again be able to patch them. So the hack should
+% deactivate the patch deactivation of the \KOMAScript{} classes.
+% \begin{macrocode}
+\let\scr@chapter@before@hyperref@patch\relax
+\let\scr@chapter@after@hyperref@patch\relax
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}%^^A \DeclareSectionCommand
+%
+% \begin{macro}{\scr@osectarg}
+% The \KOMAScript{} classes use this macro to store how to use the optional
+% argument of section commands. But with the standard class definition the
+% only possibility is to use it as running head and write it into the table of
+% contents without any extended handling. So the only value, that makes sense
+% is 0.
+% \begin{macrocode}
+\scr@ifundefinedorrelax{scr@osectarg}{}{%
+ \def\reserved@a{0}%
+ \ifx\scr@osectarg\reserved@a\else
+ \let\scr@osectarg\reserved@a
+ \PackageWarningNoLine{scrhack}{%
+ Extended option handling for section commands deactivated,\MessageBreak
+ because of loading standard classes sections hack%
+ }%
+ \fi
+}%
+% \end{macrocode}
+% \begin{macro}{\scr@activate@xsection}
+% Further changing of the value has to be deactivated.
+% \begin{macrocode}
+\scr@ifundefinedorrelax{scr@activate@xsection}{}{%
+ \renewcommand*{\scr@activate@xsection}[1]{%
+ \edef\scr@osectarg{#1}\def\reserved@a{0}%
+ \ifx\scr@osectarg\reserved@a
+ \else
+ \let\scr@osectarg\reserved@a
+ \PackageWarning{scrhack}{%
+ Because of loading the standard classes\MessageBreak
+ sections hack, the extended option handling\MessageBreak
+ of section commands failed%
+ }%
+ \fi
+ }%
+}
+% \end{macrocode}
+% \end{macro}%^^A \scr@activate@xsection
+% \end{macro}%^^A \scr@osectarg
+%
+% \begin{macro}{\partformat}
+% \begin{macro}{\chapterformat}
+% Most \cs{\dots format} macros of \KOMAScript{} are still used, because of
+% the redefinition of \cs{@seccntformat}. But \cs{part} and \cs{chapter} are
+% defined without using them.
+% \begin{macrocode}
+\scr@ifundefinedorrelax{partformat}{}{%
+ \PackageWarningNoLine{scrhack}{%
+ Usage of \string\partformat\space
+ deactivated,\MessageBreak
+ because of loading the standard classes sections hack%
+ }%
+}
+\scr@ifundefinedorrelax{chapterformat}{}{%
+ \PackageWarningNoLine{scrhack}{%
+ Usage of \string\chapterformat\space
+ deactivated,\MessageBreak
+ because of loading the standard classes sections hack%
+ }%
+}
+% \end{macrocode}
+% \end{macro}%^^A \chapterformat
+% \end{macro}%^^A \partformat
+%
+% \begin{macro}{\sectionformat}
+% \begin{macro}{\subsectionformat}
+% \begin{macro}{\subsubsectionformat}
+% \begin{macro}{\paragraphformat}
+% \begin{macro}{\subparagraphformat}
+% All these commands have to be resetted to not use the automatic dot and to
+% add a \cs{quad} instead of an \cs{enskip}.
+% \begin{macrocode}
+\scr@ifundefinedorrelax{sectionformat}{}{%
+ \PackageWarningNoLine{scrhack}{%
+ \string\sectionformat\space set to
+ `\string\thesection\string\quad',\MessageBreak
+ because of loading the standard classes sections hack%
+ }%
+ \renewcommand*{\sectionformat}{\thesection\quad}%
+}
+\scr@ifundefinedorrelax{subsectionformat}{}{%
+ \PackageWarningNoLine{scrhack}{%
+ \string\subsectionformat\space set to
+ `\string\thesubsection\string\quad'\MessageBreak
+ because of loading the standard classes sections hack%
+ }%
+ \renewcommand*{\subsectionformat}{\thesubsection\quad}%
+}
+\scr@ifundefinedorrelax{subsubsectionformat}{}{%
+ \PackageWarningNoLine{scrhack}{%
+ \string\subsubsectionformat\space set to
+ `\string\thesubsubsection\string\quad'\MessageBreak
+ because of loading the standard classes sections hack%
+ }%
+ \renewcommand*{\subsubsectionformat}{\thesubsubsection\quad}%
+}
+\scr@ifundefinedorrelax{paragraphformat}{}{%
+ \PackageWarningNoLine{scrhack}{%
+ \string\paragraphformat\space set to
+ `\string\theparagraph\string\quad'\MessageBreak
+ because of loading the standard classes sections hack%
+ }%
+ \renewcommand*{\paragraphformat}{\theparagraph\quad}%
+}
+\scr@ifundefinedorrelax{subparagraphformat}{}{%
+ \PackageWarningNoLine{scrhack}{%
+ \string\subparagraphformat\space set to
+ `\string\thesubparagraph\string\quad'\MessageBreak
+ because of loading the standard classes sections hack%
+ }%
+ \renewcommand*{\subparagraphformat}{\thesubparagraph\quad}%
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
+% \begin{macro}{\partlineswithprefixformat}
+% \begin{macro}{\chapterlineswithprefixformat}
+% \begin{macro}{\chapterlinesformat}
+% \begin{macro}{\sectionlinesformat}
+% \begin{macro}{\sectioncatchphraseformat}
+% These \KOMAScript{} commands are not used any longer.
+% \begin{macrocode}
+\scr@ifundefinedorrelax{partlineswithprefixformat}{}{%
+ \PackageWarningNoLine{scrhack}{%
+ Usage of \string\partlineswithprefixformat\space deactivated,\MessageBreak
+ because of loading the standard classes sections hack%
+ }%
+}
+\scr@ifundefinedorrelax{chapterlineswithprefixformat}{}{%
+ \PackageWarningNoLine{scrhack}{%
+ Usage of \string\chapterlineswithprefixformat\space and\MessageBreak
+ \string\chapterlinesformat\space deactivated,\MessageBreak
+ because of using standard classes sections hack%
+ }%
+}
+\scr@ifundefinedorrelax{sectionlinesformat}{}{%
+ \PackageWarningNoLine{scrhack}{%
+ Usage of \string\sectionlinesformat\space and\MessageBreak
+ \string\sectioncatchphraseformat\space deactivated,\MessageBreak
+ because of using standard classes sections hack%
+ }%
+}
+% \end{macrocode}
+% \end{macro}%^^A \sectioncatchphraseformat
+% \end{macro}%^^A \sectionlinesformat
+% \end{macro}%^^A \chapterlinesformat
+% \end{macro}%^^A \chapterlineswithprefixformat
+% \end{macro}%^^A \partlineswithprefixformat
+%
+% \begin{option}{headings}
+% The \KOMAScript{} option does not make sense any longer. So it is
+% deactivated and usage will throw an error.
+% \begin{macrocode}
+\scr@ifundefinedorrelax{KOMAClassName}{}{%
+ \PackageWarningNoLine{scrhack}{%
+ KOMA-Script option `headings' removed,\MessageBreak
+ because of loading standard classes sections hack%
+ }%
+ \RelaxFamilyKey[.\KOMAClassFileName]{KOMA}{headings}%
+ \KOMA@kav@removekey{.\KOMAClassFileName}{headings}%
+}
+% \end{macrocode}
+% \end{option}%^^A headings
+%
+% \begin{macro}{\scr@class@titlesec@warning}
+% The warning about loading \textsf{titlesec} has to be changes, because we do
+% not expect errors any longer.
+% \begin{macrocode}
+\def\scr@class@titlesec@warning{%
+ \PackageWarning{scrhack}{%
+ Usage of `titlesec' should work, because of\MessageBreak
+ loading the standard classes sections hack.\MessageBreak
+ However, you should know, there is not any\MessageBreak
+ support for this combination by the\MessageBreak
+ KOMA-Script author%
+ }%
+}
+%</standardsections&body>
+% \end{macrocode}
+% \end{macro}%^^A \scr@class@titlesec@warning
+% \selectlanguage{ngerman}%^^A
%
-% \subsection{Optionen ausführen}
+% \subsection{Optionen ausführen}
%
-% Zum Schluss noch die Optionen ausführen. Im Paket wird diese Anweisung
+% Zum Schluss noch die Optionen ausführen. Im Paket wird diese Anweisung
% allerdings vor den Anweisungen der Hacks und den Anweisungen aus dem
-% Abschnitt »Verwendete Anweisungen« stehen.
+% Abschnitt »Verwendete Anweisungen« stehen.
% \begin{macrocode}
%<*package&option>
\KOMAProcessOptions\relax
@@ -1306,7 +2037,7 @@
%%% Local Variables:
%%% mode: doctex
%%% mode: flyspell
-%%% coding: iso-latin-1
+%%% coding: utf-8
%%% ispell-local-dictionary: "en_GB"
%%% TeX-master: t
%%% End: