From ed8702df3768e21a3ef87a2eec9ca8341aad9b7a Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 13 Oct 2019 21:40:52 +0000 Subject: koma-script (13oct19) git-svn-id: svn://tug.org/texlive/trunk@52369 c570f23f-e606-0410-a88d-b1316a301751 --- .../source/latex/koma-script/scrhack.dtx | 1057 +++++++++++++++++--- 1 file changed, 894 insertions(+), 163 deletions(-) (limited to 'Master/texmf-dist/source/latex/koma-script/scrhack.dtx') diff --git a/Master/texmf-dist/source/latex/koma-script/scrhack.dtx b/Master/texmf-dist/source/latex/koma-script/scrhack.dtx index 7c89acf9ce6..ab3d507d526 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrhack.dtx +++ b/Master/texmf-dist/source/latex/koma-script/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 $ %%%% using: package,identify %%%% using: package,option %%%% 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 @@ %\ProvidesFile{setspace.hak}[% %\ProvidesFile{lscape.hak}[% %\ProvidesFile{nomencl.hak}[% +%\ProvidesFile{standardsections.hak}[% %<*dtx|identify> %!KOMAScriptVersion - package %<*dtx> - source + source of % -%<*!identify> - (hacking other packages)% -% -% -% (hacking package +%<*dtx|package> + package (hacking other packages)% +% +%<*hack> +% scrhack part +% (hacking package % hyperref)% % float)% % floatrow)% @@ -103,7 +104,8 @@ % setspace)% % lscape)% % nomencl)% -%<*dtx|identify> +% (defining standard LaTeX class section headings)% +% ] % %<*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&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 @@ } % % \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 @@ } % % \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 @@ % % \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} % % \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&body> +\AtEndOfPackage{% + \if@scrhack@standardsections + \PackageInfo{scrhack}{loading standard classes sections hack}% + \input{standardsections.hak}% + \fi +} +% +% \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% + }% +} +% +% \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: -- cgit v1.2.3