summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/koma-script/source/scrhack.dtx
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-07-05 03:01:03 +0000
committerNorbert Preining <norbert@preining.info>2022-07-05 03:01:03 +0000
commitf1e3d1ca3738aac0ba720e4c1d87795d5d0cdcd9 (patch)
treee8caf076081509f7dd667c7c608bbf660b35baac /macros/latex/contrib/koma-script/source/scrhack.dtx
parent1c10375ec46d7d83b2f1efc2a71b7ea114c889f0 (diff)
CTAN sync 202207050301
Diffstat (limited to 'macros/latex/contrib/koma-script/source/scrhack.dtx')
-rw-r--r--macros/latex/contrib/koma-script/source/scrhack.dtx1954
1 files changed, 0 insertions, 1954 deletions
diff --git a/macros/latex/contrib/koma-script/source/scrhack.dtx b/macros/latex/contrib/koma-script/source/scrhack.dtx
deleted file mode 100644
index dc1ea8b087..0000000000
--- a/macros/latex/contrib/koma-script/source/scrhack.dtx
+++ /dev/null
@@ -1,1954 +0,0 @@
-% \iffalse meta-comment
-% ======================================================================
-% scrhack.dtx
-% Copyright (c) Markus Kohm, 2008-2022
-%
-% This file is part of the LaTeX2e KOMA-Script bundle.
-%
-% This work may be distributed and/or modified under the conditions of
-% the LaTeX Project Public License, version 1.3c of the license.
-% The latest version of this license is in
-% http://www.latex-project.org/lppl.txt
-% and version 1.<3c or later is part of all distributions of LaTeX
-% version 2005/12/01 or later and of this work.
-%
-% This work has the LPPL maintenance status "author-maintained".
-%
-% The Current Maintainer and author of this work is Markus Kohm.
-%
-% This work consists of all files listed in manifest.txt.
-%
-% To create `scrhack.sty' run `tex scrhack.dtx'. Using LaTeX instead
-% of TeX would generate the implementation documentation.
-% ======================================================================
-%%% From File: $Id: scrhack.dtx 3690 2022-02-10 09:59:31Z kohm $
-%<package&identify>%%% using: package,identify
-%<package&option>%%% using: package,option
-%<package&body>%%% using: package,body
-%<package&identity>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
-%<*dtx>
-\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
-\begingroup
- \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2022-02-10 10:59:31 +0100 (Do, 10. Feb 2022) $
- \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 3690 $
-\endgroup
-\ProvidesFile{scrhack.dtx}[\filedate\space\filerevision\space
-%</dtx>
-%<package&identify>\ProvidesPackage{scrhack}[%
-%<hyperref&identify>\ProvidesFile{hyperref.hak}[%
-%<float&identify>\ProvidesFile{float.hak}[%
-%<floatrow&identify>\ProvidesFile{floatrow.hak}[%
-%<listings&identify>\ProvidesFile{listings.hak}[%
-%<setspace&identify>\ProvidesFile{setspace.hak}[%
-%<lscape&identify>\ProvidesFile{lscape.hak}[%
-%<nomencl&identify>\ProvidesFile{nomencl.hak}[%
-%<standardsections&identify>\ProvidesFile{standardsections.hak}[%
-%<*dtx|identify>
-%!KOMAScriptVersion
-%<*dtx>
- source of
-%</dtx>
-%<*dtx|package>
- package (hacking other packages)%
-%</dtx|package>
-%<*hack>
-%<hack> scrhack part
-%<!standardsections> (hacking package
-%<hyperref&identify> hyperref)%
-%<float&identify> float)%
-%<floatrow&identify> floatrow)%
-%<listings&identify> listings)%
-%<setspace&identify> setspace)%
-%<lscape&identify> lscape)%
-%<nomencl&identify> nomencl)%
-%<standardsections&identify> (defining standard LaTeX class section headings)%
-%</hack>
-]
-%</dtx|identify>
-%<*dtx>
-\ifx\documentclass\undefined
- \input scrdocstrip.tex
- \@@input scrkernel-version.dtx
- \@@input scrstrip.inc
- \KOMAdefVariable{COPYRIGHTFROM}{2008}
- \generate{\usepreamble\defaultpreamble
- \file{scrhack.sty}{%
- \from{scrkernel-version.dtx}{package,scrhack}%
- \from{scrhack.dtx}{package,identify}%
- \from{scrkernel-basics.dtx}{load}%
- \from{scrhack.dtx}{package,option}%
- \from{scrhack.dtx}{package,body}%
- \from{scrlogo.dtx}{logo}%
- }%
- \file{hyperref.hak}{%
- \from{scrkernel-version.dtx}{file,hyperref.hak}%
- \from{scrhack.dtx}{hack,hyperref,identify}%
- \from{scrhack.dtx}{hack,hyperref,body}%
- }%
- \file{float.hak}{%
- \from{scrkernel-version.dtx}{file,float.hak}%
- \from{scrhack.dtx}{hack,float,identify}%
- \from{scrhack.dtx}{hack,float,body}%
- }%
- \file{floatrow.hak}{%
- \from{scrkernel-version.dtx}{file,floatrow.hak}%
- \from{scrhack.dtx}{hack,floatrow,identify}%
- \from{scrhack.dtx}{hack,floatrow,body}%
- }%
- \file{listings.hak}{%
- \from{scrkernel-version.dtx}{file,listings.hak}%
- \from{scrhack.dtx}{hack,listings,identify}%
- \from{scrhack.dtx}{hack,listings,body}%
- }%
- \file{setspace.hak}{%
- \from{scrkernel-version.dtx}{file,setspace.hak}%
- \from{scrhack.dtx}{hack,setspace,identify}%
- \from{scrhack.dtx}{hack,setspace,body}%
- }%
- \file{lscape.hak}{%
- \from{scrkernel-version.dtx}{file,lscape.hak}%
- \from{scrhack.dtx}{hack,lscape,identify}%
- \from{scrhack.dtx}{hack,lscape,body}%
- }%
- \file{nomencl.hak}{%
- \from{scrkernel-version.dtx}{file,nomencl.hak}%
- \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
- \let\endbatchfile\relax
-\fi
-\endbatchfile
-\documentclass[USenglish]{koma-script-source-doc}
-\usepackage{babel}
-\setcounter{StandardModuleDepth}{2}
-\begin{document}
- \DocInput{scrhack.dtx}
-\end{document}
-%</dtx>
-%\fi
-%
-% \changes{v3.03}{2009/03/12}{first version ever}
-% \changes{v3.36}{2022/02/08}{switch over from \cls*{scrdoc} to
-% \cls*{koma-script-source-doc}}
-% \changes{v3.36}{2022/02/08}{require package \pkg*{scrlogo} instead of
-% defining \cs{KOMAScript}}
-% \changes{v3.36}{2022/02/08}{whole implementation documentation in English}
-%
-% \GetFileInfo{scrhack.dtx}
-% \title{Patching Third-Party Packages using
-% \href{https://komascript.de}{\KOMAScript} Package \pkg*{scrhack}}
-% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
-% \date{Revision \fileversion{} of \filedate}
-% \maketitle
-% \begin{abstract}
-% Some packages from other authors may have problems with \KOMAScript{}. In
-% my opinion some packages could be improved. With some packages this makes
-% only sense, if \KOMAScript{} was used. With some other packages the
-% package author has another opinion. Sometimes proposals was never
-% answered. Package \pkg*{scrhack} contains all those improvement proposals
-% for other packages. This means, \pkg*{scrhack} redefines macros of packages
-% from other authors! The redefinitions are only activated, if those
-% packages were loaded. Users may prevent \pkg*{scrhack} from redefining
-% macros of individual packages.
-% \end{abstract}
-% \tableofcontents
-%
-% \section{User Manual}
-%
-% You can find the user manuals of \pkg*{scrhack} in the \KOMAScript{} manual,
-% either the German \file{scrguide} or the English \file{scrguien}.
-%
-% \MaybeStop{\PrintIndex}
-%
-% \section{Implementation of \pkg*{scrhack}}
-%
-% \changes{v3.04b}{2009/08/05}{order of commands/macros and options changed}
-%
-% \subsection{Optionen}
-%
-% The package uses \cs{KOMAoptions} of \pkg*{scrkbase}, which is loaded by
-% (virtual) \file{scrkbase.ins}.
-%
-% The options allow the selection of the used manipulations of other
-% packages. But all these options are valid only until both \pkg*{scrhack} and
-% the other package has been loaded. Later settings are invalid.
-%
-%
-% \subsection{Used Macros and Commands}
-% \label{sec:macros}
-% \begin{macrocode}
-%<*package&body>
-% \end{macrocode}
-%
-% \begin{macro}{\scr@ifexpected}
-% Mentioned to do (re)definitions only, if local execution of code does not
-% change a command. Concrete, if (local) execution of \marg{test code} of
-% \begin{quote}
-% \cs{scr@ifexpected}\marg{command}\marg{test code}\marg{then
-% code}\marg{else code}
-% \end{quote}
-% would not result in a change of \cs{\meta{command}}, the \marg{then code}
-% will be executed, otherwise the \marg{else code}.
-% \begin{description}\item[Note:] \meta{test code} must not have any global
-% side effect!\end{description}
-% \begin{macrocode}
-\newcommand{\scr@ifexpected}[2]{%
- \begingroup
- \let\@tempa#1
- #2
- \ifx\@tempa#1
- \aftergroup\@firstoftwo
- \else
- \aftergroup\@secondoftwo
- \fi
- \endgroup
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\scr@hack@load}
-% Conditionally loading of a hack file.
-% \begin{quote}
-% \cs{scr@hack@load}\marg{extension}\marg{basename}\marg{hack}%
-% \marg{true code}\marg{false code}
-% \end{quote}
-% The first two arguments \marg{} and \marg{extension} and \marg{basename} are
-% same to the internal\LaTeX{} kernel command \cs{@ifl@aded}. With \LaTeX{}
-% from 2021/11/15 we even could use \cs{@ifl@aded} for the test, because it is
-% not restricted to the preamble any more. But because it is restricted with
-% older \LaTeX{} kernels, we test the definition of
-% \cs{ver@}\meta{basename}\texttt{.}\meta{extension}. If it is defined, we
-% also test the definition of \cs{ver@}\meta{basename}\texttt{.hak}. If this
-% is not defined, \file{\meta{hack}.hak} is loaded and \meta{true code} is
-% executed. Otherwise \meta{false code} is executed. This means: A hack file
-% is only loaded, if a class or package (or other file with version) has
-% already been loaded, but the hack file has not already been loaded.
-% \begin{macrocode}
-\newcommand*{\scr@hack@load}[2]{%
- \expandafter\ifx\csname ver@#2.#1\endcsname\relax
- \expandafter\@secondoftwo
- \else
-% \end{macrocode}
-% Load a hack only once.
-% \begin{macrocode}
- \expandafter\ifx\csname ver@#2.hak\endcsname\relax
- \expandafter\expandafter\expandafter\@firstoftwo
- \else
- \expandafter\expandafter\expandafter\@secondoftwo
- \fi
- \fi
- {%
- \PackageInfo{scrhack}{loading #2 hack}%
- \edef\reserved@a{%
- \noexpand\makeatletter\noexpand\input{#2.hak}%
- \noexpand\catcode`\noexpand\@\the\catcode`\@\relax
- }\reserved@a
- }{%
- \PackageInfo{scrhack}{ignorring #2 hack}%
- }%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macrocode}
-%</package&body>
-% \end{macrocode}
-%
-% \subsection{The \pkg*{hyperref} hack}
-%
-% Package \pkg{hyperref} places the anchor of the star variant of a heading
-% after the heading, but the anchor of the normal variant before the heading
-% even if the heading is not numbered because of the value of
-% \cnt{secnumdepth}. The hack changes this to more consistent placing always
-% before the heading.
-%
-% \begin{option}{hyperref}
-% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyStateProcessed}}
-% \changes{v3.17}{2015/03/09}{defaults by \cs{KOMAExecuteOptions}}
-% \begin{macrocode}
-%<*package&option>
-\KOMA@ifkey{hyperref}{@scrhack@hyperref}%
-\KOMAExecuteOptions{hyperref=true}%
-%</package&option>
-% \end{macrocode}
-% \changes{v3.04b}{2009/11/09}{loading \pkg{hyperref} hack earlier}
-% \changes{v3.17}{2015/03/09}{auto deactivation for newer versions of
-% \pkg{hyperref}}
-% \changes{v3.18}{2015/05/22}{newer versions of \KOMAScript{} classes also
-% deactivate the the hack}
-% This is a little bit tricky, because \pkg{hyperref} loads the driver file
-% via \cs{AtEndOfPackage} and the hack cannot be loaded before loading the
-% driver file. Using \cs{AfterPackage*} would not be good enough therefore,
-% because it would load the hack before the driver file. But using
-% \cs{AtEndOfPackage} inside \cs{AfterPackage*} should delay the loading
-% enough. This also works, if \pkg{hyperref} has already been loaded. In this
-% case the code will be executed at the end of \pkg*{scrhack} instead of
-% \pkg{hyperref}. This is no problem.
-% \begin{macrocode}
-%<*package&body>
-\BeforePackage{hyperref}{%
- \scr@ifundefinedorrelax{hy@insteadofrefstepcounter}{}{%
- \PackageInfo{scrhack}{hyperref hack deactivated because of\MessageBreak
- detection of KOMA-Script class, that doesn't\MessageBreak
- need that hack,}%
- \KOMAExecuteOptions[.scrhack.sty]{hyperref=false}%
- }%
-}
-\AfterPackage*{hyperref}{%
- \if@scrhack@hyperref
- \@ifpackagelater{hyperref}{2009/11/24}{%
- \PackageInfo{scrhack}{hyperref hack deactivated because of\MessageBreak
- detection of hyperref version, that doesn't\MessageBreak
- need that hack,}%
- \KOMAExecuteOptions[.scrhack.sty]{hyperref=false}%
- }{%
- \AtEndOfPackage{%
- \KOMA@key[.scrhack.sty]{hyperref}{%
- \PackageWarning{scrhack}{option `hyperref=#1' ignored}%
- \FamilyKeyStateProcessed
- }%
- \if@scrhack@hyperref\scr@hack@load\@pkgextension{hyperref}\fi
- }%
- }%
- \fi
-}
-%</package&body>
-% \end{macrocode}
-% \end{option}
-%
-%
-% \begin{macro}{\@schapter,\@spart,\@ssect}
-% We do not hack \pkg{hyperref} itself, but the driver files. After loading
-% \pkg{hyperref} the driver file is also loaded. Moreover, all driver files
-% that re-define these commands have to be patched also. So the patch is
-% related to the loading of \pkg{hyperref} instead of every single driver
-% file. This have already been tested by \cs{scr@hack@load}. So we just have
-% to test, whether the definition of these commands are the expected one.
-% derzeit den erwarteten Inhalt haben.
-% \begin{macrocode}
-%<*hyperref&body>
-\scr@ifexpected\@schapter{%
- \def\@schapter#1{%
- \H@old@schapter{#1}%
- \begingroup
- \let\@mkboth\@gobbletwo
- \Hy@GlobalStepCount\Hy@linkcounter
- \xdef\@currentHref{\Hy@chapapp*.\the\Hy@linkcounter}%
- \Hy@raisedlink{%
- \hyper@anchorstart{\@currentHref}\hyper@anchorend
- }%
- \endgroup
- }%
-}{%
- \PackageInfo{scrhack}{redefining \string\@schapter}%
- \def\@schapter#1{%
- \begingroup
- \let\@mkboth\@gobbletwo
- \Hy@GlobalStepCount\Hy@linkcounter
- \xdef\@currentHref{\Hy@chapapp*.\the\Hy@linkcounter}%
- \Hy@raisedlink{%
- \hyper@anchorstart{\@currentHref}\hyper@anchorend
- }%
- \endgroup
- \H@old@schapter{#1}%
- }%
-}{%
- \scr@ifexpected\@schapter{%
- \def\@schapter#1{%
- \begingroup
- \let\@mkboth\@gobbletwo
- \Hy@GlobalStepCount\Hy@linkcounter
- \xdef\@currentHref{\Hy@chapapp*.\the\Hy@linkcounter}%
- \Hy@raisedlink{%
- \hyper@anchorstart{\@currentHref}\hyper@anchorend
- }%
- \endgroup
- \H@old@schapter{#1}%
- }%
- }{}{%
- \PackageWarningNoLine{scrhack}{unknown \string\@schapter\space
- definition found!\MessageBreak
- Maybe you are using a unsupported hyperref version}%
- }%
-}
-\scr@ifexpected\@spart{%
- \def\@spart#1{%
- \H@old@spart{#1}%
- \Hy@GlobalStepCount\Hy@linkcounter
- \xdef\@currentHref{part*.\the\Hy@linkcounter}%
- \Hy@raisedlink{%
- \hyper@anchorstart{\@currentHref}\hyper@anchorend
- }%
- }%
-}{%
- \PackageInfo{scrhack}{redefining \string\@spart}%
- \def\@spart#1{%
- \Hy@GlobalStepCount\Hy@linkcounter
- \xdef\@currentHref{part*.\the\Hy@linkcounter}%
- \Hy@raisedlink{%
- \hyper@anchorstart{\@currentHref}\hyper@anchorend
- }%
- \H@old@spart{#1}%
- }%
-}{%
- \scr@ifexpected\@spart{%
- \def\@spart#1{%
- \Hy@GlobalStepCount\Hy@linkcounter
- \xdef\@currentHref{part*.\the\Hy@linkcounter}%
- \Hy@raisedlink{%
- \hyper@anchorstart{\@currentHref}\hyper@anchorend
- }%
- \H@old@spart{#1}%
- }%
- }{}{%
- \PackageWarningNoLine{scrhack}{unknown \string\@spart\space
- definition found!\MessageBreak
- 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}%
- \phantomsection
- }%
-}{%
- \PackageInfo{scrhack}{redefining \string\@ssect}%
- \def\@ssect#1#2#3#4#5{%
- \H@old@ssect{#1}{#2}{#3}{#4}{\phantomsection\ignorespaces#5}%
- }%
-}{%
- \scr@ifexpected\@ssect{%
- \def\@ssect#1#2#3#4#5{%
- \H@old@ssect{#1}{#2}{#3}{#4}{\phantomsection\ignorespaces#5}%
- }%
- }{}{%
- \PackageWarningNoLine{scrhack}{unknown \string\@ssect\space
- definition found!\MessageBreak
- Maybe you are using a unsupported hyperref version}%
- }%
-}
-%</hyperref&body>
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \subsection{The \pkg*{floatrow} hack}
-%
-% Package \pkg{floatrow} insists in using \cs{float@listhead} for the setting
-% of the headings. This is not recommended any longer since \KOMAScript~2.95
-% from July 2006! The \KOMAScript{} classes will remove the support for
-% this very limited approach. Recommended is the usage of \pkg*{tocbasic}. The
-% effort to do so, it very small and I do not understand, why package authors
-% are not willing to use it. Because the benefit would be a lot.
-%
-% This hack adds \pkg*{tocbasic} usage to \pkg{floatrow}. Nevertheless it is
-% more complicated than adding \pkg*{tocbasic} support into \pkg{floatrow}.
-%
-% \begin{option}{floatrow}
-% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyStateProcessed}}
-% \changes{v3.17}{2015/03/09}{using \cs{KOMAExecuteOptions}}
-% \changes{v3.34}{2021/06/03}{deactivation of the \pkg{float} hack}
-% \begin{macrocode}
-%<*package&option>
-\KOMA@ifkey{floatrow}{@scrhack@floatrow}
-\KOMAExecuteOptions{floatrow=true}
-%</package&option>
-%<*package&body>
-\AfterPackage*{floatrow}{%
- \KOMAoptions{float=false}%
- \PackageInfo{scrhack}{option `float' deactivated}%
- \KOMA@key[.scrhack.sty]{floatrow}{%
- \PackageWarning{scrhack}{option `floatrow' ignored}%
- \FamilyKeyStateProcessed
- }%
- \if@scrhack@floatrow\scr@hack@load\@pkgextension{floatrow}\fi
-}
-%</package&body>
-% \end{macrocode}
-% \end{option}
-%
-%
-% \begin{command}{\DeclareNewFloatType,\listof}
-% \changes{v3.25}{2018/03/16}{using \cs{DeclareTOCStyleEntry}}
-% Command \cs{DeclareNewFloatType} is used to define a new float
-% environment. We have to add registration of the file extension (third
-% argument) with \pkg*{tocbasic}.
-% Command \cs{listof} outputs the list of the float environments. Here we
-% just use the corresponding macro of \pkg*{tocbasic}.
-% \begin{macro}{\float@addtolists}
-% The deprecated macro \cs{float@addtolists} is not needed any longer an will
-% be reset to the original definition.
-% \begin{macrocode}
-%<*floatrow&body>
-\scr@ifexpected{\DeclareNewFloatType}{%
- \long\def\DeclareNewFloatType#1#2{\def\FB@captype{#1}%
- \expandafter\edef\csname ftype@#1\endcsname{\the\c@float@type}%
- \addtocounter{float@type}{\value{float@type}}%
- \@namedef{#1name}{#1}\newcounter{#1}%
- \expandafter\edef\csname fnum@#1\endcsname
- {\expandafter\noexpand\csname #1name\endcsname\nobreakspace
- \expandafter\noexpand\csname the#1\endcsname}%
- \@namedef{the#1}{\arabic{#1}}\flnew@ext{lo#1}\@namedef{fps@#1}{tbp}%
- \@namedef{l@#1}{\@dottedtocline{1}{1.5em}{2.3em}}%
- \caption@setkeys[floatrow]{newfloat}{#2}\let\FR@tmp=\relax
- \xdef\@tempa{\noexpand\flrow@types{\the\flrow@types \FR@tmp{#1}}}%
- \@tempa}%
-}{%
- \scr@ifexpected{\listof}{%
- \def\listof#1#2{%
- \@ifundefined{ext@#1}{\flrow@error{Unknown float style `#1'}}{%
- \expandafter\providecommand\csname l@#1\endcsname
- {\@dottedtocline{1}{1.5em}{2.3em}}%
- \float@listhead{#2}%
- \begingroup\setlength{\parskip}{\z@}%
- \@starttoc{\@nameuse{ext@#1}}%
- \endgroup}}%
- }{%
- \RequirePackage{tocbasic}%
- \PackageInfo{scrhack}{redefining \string\DeclareNewFloatType}%
-% \end{macrocode}
-% \begin{description}
-% \item[Note:] It would be better to first test, if the new extension is
-% already in use like done at the \pkg{float} hack. But I don't know the
-% \pkg{floatrow} code good enough to make such a change!
-% \end{description}
-% \begin{macrocode}
- \renewcommand\DeclareNewFloatType[2]{\def\FB@captype{#1}%
- \expandafter\edef\csname ftype@#1\endcsname{\the\c@float@type}%
- \addtocounter{float@type}{\value{float@type}}%
- \@namedef{#1name}{#1}\newcounter{#1}%
- \expandafter\edef\csname fnum@#1\endcsname
- {\expandafter\noexpand\csname #1name\endcsname\nobreakspace
- \expandafter\noexpand\csname the#1\endcsname}%
- \@namedef{the#1}{\arabic{#1}}\flnew@ext{lo#1}\@namedef{fps@#1}{tbp}%
- \DeclareTOCStyleEntry[level=1,numwidth=2.3em,indent=1.5em]{default}{#1}%
- \caption@setkeys[floatrow]{newfloat}{#2}\let\FR@tmp=\relax
- \xdef\@tempa{\noexpand\flrow@types{\the\flrow@types \FR@tmp{#1}}}%
- \@tempa
- \xdef\@tempa{\noexpand\addtotoclist[float]{\@nameuse{ext@\FB@captype}}%
- \noexpand\setuptoc{\@nameuse{ext@\FB@captype}}{chapteratlist}%
- }%
- \@tempa
- }%
- \PackageInfo{scrhack}{redefining \string\listof}%
- \renewcommand*\listof[2]{%
- \@ifundefined{ext@#1}{\flrow@error{Unknown float style `#1'}}{%
- \@ifundefined{l@#1}{\expandafter\let\csname l@#1\endcsname\l@figure
- \@ifundefined{l@#1}{%
- \DeclareTOCStyleEntry[level=1,numwidth=2.3em,indent=1.5em]
- {default}{#1}%
- }{}%
- }{}%
- \listoftoc[{#2}]{\csname ext@#1\endcsname}%
- }%
- }%
- \scr@ifexpected{\float@addtolists}{%
- \long\def\float@addtolists#1{%
- \def\float@do##1{\addtocontents{##1}{#1}} \the\float@exts}%
- }{%
- \PackageInfo{scrhack}{undefining \string\float@addtolists}%
- \let\float@addtolists\relax
- }{%
- \PackageWarningNoLine{scrhack}{unkown \string\float@addtolists\space
- definition found!\MessageBreak
- Maybe you are using a unsupported floatrow version}%
- }%
- }{%
- \PackageWarningNoLine{scrhack}{unknown \string\listof\space
- definition found!\MessageBreak
- Maybe you are using a unsupported floatrow version}%
- }%
-}{%
- \PackageWarningNoLine{scrhack}{unknown \string\DeclareNewFloatType\space
- definition found!\MessageBreak
- Maybe you are using a unsupported floatrow version}%
-}
-%</floatrow&body>
-% \end{macrocode}
-% \end{macro}
-% \end{command}
-%
-%
-% \subsection{The \pkg*{float} hack}
-%
-% Package \pkg{float} insists in using \cs{float@listhead} for the setting
-% of the headings. This is not recommended any longer since \KOMAScript~2.95
-% from July 2006! The \KOMAScript{} classes will remove the support for
-% this very limited approach. Recommended is the usage of \pkg*{tocbasic}. The
-% effort to do so, it very small and I do not understand, why package authors
-% are not willing to use it. Because the benefit would be a lot.
-%
-% This hack adds \pkg*{tocbasic} usage to \pkg{float}. Nevertheless it is
-% more complicated than adding \pkg*{tocbasic} support into \pkg{float}.
-%
-% \begin{option}{float}
-% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyStateProcessed}}
-% \changes{v3.17}{2015/03/09}{using \cs{KOMAExecuteOptions}}
-% \begin{macrocode}
-%<*package&option>
-\KOMA@ifkey{float}{@scrhack@float}%
-\KOMAExecuteOptions{float=true}%
-%</package&option>
-%<*package&body>
-\AfterPackage*{float}{%
- \KOMA@key[.scrhack.sty]{float}{%
- \PackageWarning{scrhack}{option `float' ignored}%
- \FamilyKeyStateProcessed
- }%
- \if@scrhack@float\scr@hack@load\@pkgextension{float}\fi
-}
-%</package&body>
-% \end{macrocode}
-% \end{option}
-%
-%
-% \begin{command}{\newfloat}
-% \changes{v3.28}{2019/11/19}{\cs{ifattoclist} replaced by
-% \cs{Ifattoclist}}
-% \changes{v3.25}{2018/03/16}{using \cs{DeclareTOCStyleEntry}}
-% We have to add registration of the file extension (third argument of
-% \cs{newfloat}) with \pkg*{tocbasic}.
-% \begin{command}{\listof}
-% Command \cs{listof} outputs the list of the float environments. Here we
-% just use the corresponding macro of \pkg*{tocbasic}.
-% \begin{macro}{\float@addtolists}
-% The deprecated macro \cs{float@addtolists} is not needed any longer an will
-% be reset to the original definition.
-% \begin{macrocode}
-%<*float&body>
-\scr@ifexpected{\newfloat}{%
- \long\def\newfloat#1#2#3{\@namedef{ext@#1}{#3}
- \let\float@do=\relax
- \xdef\@tempa{\noexpand\float@exts{\the\float@exts \float@do{#3}}}%
- \@tempa
- \floatplacement{#1}{#2}%
- \@ifundefined{fname@#1}{\floatname{#1}{#1}}{}
- \expandafter\edef\csname ftype@#1\endcsname{\value{float@type}}%
- \addtocounter{float@type}{\value{float@type}}
- \restylefloat{#1}%
- \expandafter\edef\csname fnum@#1\endcsname%
- {\expandafter\noexpand\csname fname@#1\endcsname{}
- \expandafter\noexpand\csname the#1\endcsname}
- \@ifnextchar[%]
- {\float@newx{#1}}%
- {\@ifundefined{c@#1}{\newcounter{#1}\@namedef{the#1}{\arabic{#1}}}%
- {}}}%
-}{%
- \scr@ifexpected{\listof}{%
- \def\listof#1#2{%
- \@ifundefined{ext@#1}{\float@error{#1}}{%
- \@namedef{l@#1}{\@dottedtocline{1}{1.5em}{2.3em}}%
- \float@listhead{#2}%
- \begingroup\setlength{\parskip}{\z@}%
- \@starttoc{\@nameuse{ext@#1}}%
- \endgroup}}%
- }{%
- \RequirePackage{tocbasic}%
- \PackageInfo{scrhack}{redefining \string\newfloat}%
- \renewcommand\newfloat[3]{%
- \Ifattoclist{#3}{%
- \PackageError{scrhack}{extension `#3' already in use}{%
- Each extension may be used only once.\MessageBreak
- You, the class, or another package already uses extension
- `#3'.\MessageBreak
- \string\newfloat\space command will be ignored!}%
- }{%
- \addtotoclist[float]{#3}%
- \setuptoc{#3}{chapteratlist}%
- \@namedef{ext@#1}{#3}%
- \let\float@do=\relax
- \xdef\@tempa{\noexpand\float@exts{\the\float@exts \float@do{#3}}}%
- \@tempa
- \floatplacement{#1}{#2}%
- \@ifundefined{fname@#1}{\floatname{#1}{#1}}{}%
- \expandafter\edef\csname ftype@#1\endcsname{\value{float@type}}%
- \addtocounter{float@type}{\value{float@type}}
- \restylefloat{#1}%
- \expandafter\edef\csname fnum@#1\endcsname%
- {\expandafter\noexpand\csname fname@#1\endcsname{}
- \expandafter\noexpand\csname the#1\endcsname}%
- \@ifnextchar[%]
- {\float@newx{#1}}%
- {\@ifundefined{c@#1}{\newcounter{#1}\@namedef{the#1}{\arabic{#1}}}%
- {}}}%
- }%
- \PackageInfo{scrhack}{redefining \string\listof}%
- \renewcommand*\listof[2]{%
- \@ifundefined{ext@#1}{\float@error{#1}}{%
- \@ifundefined{l@#1}{\expandafter\let\csname l@#1\endcsname\l@figure
- \@ifundefined{l@#1}{%
- \DeclareTOCStyleEntry[level=1,numwidth=2.3em,indent=1.5em]
- {default}{#1}%
- }{}%
- }{}%
- \listoftoc[{#2}]{\csname ext@#1\endcsname}%
- }%
- }%
- \scr@ifexpected{\float@addtolists}{%
- \long\def\float@addtolists#1{%
- \def\float@do##1{\addtocontents{##1}{#1}} \the\float@exts}%
- }{%
- \PackageInfo{scrhack}{undefining \string\float@addtolists}%
- \let\float@addtolists\relax
- }{%
- \PackageWarningNoLine{scrhack}{unkown \string\float@addtolists\space
- definition found!\MessageBreak
- Maybe you are using a unsupported float version}%
- }%
- }{%
- \PackageWarningNoLine{scrhack}{unknown \string\listof\space
- definition found!\MessageBreak
- Maybe you are using a unsupported float version}%
- }%
-}{%
- \PackageWarningNoLine{scrhack}{unknown \string\newfloat\space
- definition found!\MessageBreak
- Maybe you are using a unsupported float version}%
-}
-%</float&body>
-% \end{macrocode}
-% \end{macro}
-% \end{command}
-% \end{command}
-%
-%
-% \subsection{The \pkg*{listings} hack}
-%
-% Package \pkg{listing} insists in using \cs{float@listhead} for the setting
-% of the headings. This is not recommended any longer since \KOMAScript~2.95
-% from July 2006! The \KOMAScript{} classes will remove the support for
-% this very limited approach. Recommended is the usage of \pkg*{tocbasic}. The
-% effort to do so, it very small and I do not understand, why package authors
-% are not willing to use it. Because the benefit would be a lot.
-%
-% This hack adds \pkg*{tocbasic} usage to \pkg{listings}. Nevertheless it is
-% more complicated than adding \pkg*{tocbasic} support into \pkg{listings}.
-%
-% \begin{option}{listings}
-% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyStateProcessed}}
-% \changes{v3.17}{2015/03/09}{using \cs{KOMAExecuteOptions}}
-% \begin{macrocode}
-%<*package&option>
-\KOMA@ifkey{listings}{@scrhack@listings}
-\KOMAExecuteOptions{listings=true}
-%</package&option>
-%<*package&body>
-\AfterPackage*{listings}{%
- \KOMA@key[.scrhack.sty]{listings}{%
- \PackageWarning{scrhack}{option `listings' ignored}%
- \FamilyKeyStateProcessed
- }%
- \if@scrhack@listings\scr@hack@load\@pkgextension{listings}\fi
-}
-%</package&body>
-% \end{macrocode}
-% \end{option}
-%
-%
-% \begin{macro}{\scr@do@hack@listings}
-% \begin{command}{\lstlistoflistings}
-% \cs{scr@do@hack@listings} patches \pkg{listings} to use \pkg*{tocbasic} for
-% the whole output of the list of listings. This adds several new features to
-% \pkg{listings}.
-% \begin{macro}{\float@addtolists}
-% The deprecated macro \cs{float@addtolists} is not needed any longer an will
-% be reset to the original definition. But, because \pkg{listings} delays the
-% redefinition with \cs{AtBeginDocument} we have to do the same here.
-% \begin{macrocode}
-%<*listings&body>
-\newcommand*{\scr@do@hack@listings}{%
- \RequirePackage{tocbasic}%
- \addtotoclist[float]{lol}%
- \setuptoc{lol}{chapteratlist}%
- \PackageInfo{scrhack}{redefining \string\lstlistoflistings}%
- \renewcommand*{\lstlistoflistings}{\listoftoc[{\lstlistlistingname}]{lol}}%
- \AtBeginDocument{%
- \scr@ifexpected{\float@addtolists}{%
- \def\float@addtolists##1{\addtocontents{lol}{##1}}%
- }{%
- \PackageInfo{scrhack}{undefining \string\float@addtolists}%
- \let\float@addtolists\relax
- }{%
- \scr@ifexpected{\float@addtolists}{%
- \def\float@addtolists##1{\addtocontents{lol}{##1}%
- \orig@float@addtolists{##1}}%
- }{%
- \PackageInfo{scrhack}{setting \string\float@addtolists\MessageBreak
- to \string\orig@float@addtolists}%
- \let\float@addtolists\orig@float@addtolists
- }{%
- \PackageWarningNoLine{scrhack}{unkown \string\float@addtolists\space
- definition found!\MessageBreak
- Maybe you are using a unsupported listings version}%
- }%
- }%
- }%
-% \end{macrocode}
-% \begin{macro}{\lst@makecaption}
-% \changes{v3.30}{2020/04/01}{setting of \cs{@captype} added}
-% From version~3.30 setting of \cs{@captype} to \texttt{lstlisting} is added
-% to \cs{lst@makecaption}. This adds support for usage of
-% \cs{raggedlstlistingcaption} (if the user or a package author defines
-% it). The change is a little bit dangerous, because it will break, if
-% \pkg{listings} would add an argument to \cs{lst@makecaption}.
-% \begin{macrocode}
- \expandafter\def\expandafter\lst@makecaption\expandafter{%
- \expandafter\def\expandafter\@captype\expandafter{%
- \expandafter l\expandafter s\expandafter t\expandafter l%
- \expandafter i\expandafter s\expandafter t\expandafter i%
- \expandafter n\expandafter g\expandafter}\lst@makecaption
- }%
- \let\scr@do@hack@listings\relax
-}
-\scr@ifexpected{\lstlistoflistings}{%
- \def\lstlistoflistings{\bgroup
- \let\contentsname\lstlistlistingname
- \let\lst@temp\@starttoc \def\@starttoc##1{\lst@temp{lol}}%
- \tableofcontents \egroup}%
-}{%
- \scr@do@hack@listings
-}{%
- \scr@ifexpected{\lstlistoflistings}{%
- \def\lstlistoflistings{%
- \begingroup
- \@ifundefined{@restonecoltrue}{}{%
- \if@twocolumn
- \@restonecoltrue\onecolumn
- \else
- \@restonecolfalse
- \fi
- }%
- \float@listhead{\lstlistlistingname}%
- \parskip\z@\parindent\z@\parfillskip \z@ \@plus 1fil%
- \@starttoc{lol}%
- \@ifundefined{@restonecoltrue}{}{%
- \if@restonecol\twocolumn\fi
- }%
- \endgroup
- }%
- }{%
- \scr@do@hack@listings
- }{%
- \PackageWarningNoLine{scrhack}{unknown \string\lstlistoflistings\space
- definition found!\MessageBreak
- Maybe you are using a unsupported listings version}%
- }%
-}
-%</listings&body>
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{command}
-% \end{macro}
-%
-%
-%
-% \subsection{The \pkg*{nomencl} hack}
-%
-% With package \pkg{nomencl} and the \KOMAScript{} classes there is only a
-% small disharmony between relating the ToC entry. Nevertheless the package
-% can benefit from using \pkg*{tocbasic}.
-%
-% This hack adds \pkg*{tocbasic} usage to \pkg{nomencl}. This is done using
-% \pkg{xpatch} Nevertheless it is much more complicated than adding real
-% \pkg*{tocbasic} support into \pkg{nomencl}. The mess is, that every new
-% release of \pkg{nomencl} changes the kind of ``support'' of
-% \pkg*{tocbasic}. For some versions there isn't any such support. Other
-% versions use \pkg*{tocbasic} if it has been loaded. Other versions need an
-% option to activate usage of \pkg*{tocbasic}. So don't expect that the
-% following hack does the correct thing for every version of \pkg{nomencl}!
-%
-% \begin{option}{nomencl}
-% \changes{v3.23}{2017/03/31}{added}
-% \begin{macrocode}
-%<*package&option>
-\RequirePackage{xpatch}%
-\KOMA@ifkey{nomencl}{@scrhack@nomencl}
-\KOMAExecuteOptions{nomencl=true}
-%</package&option>
-%<*package&body>
-\AfterPackage*{nomencl}{%
- \KOMA@key[.scrhack.sty]{nomencl}{%
- \PackageWarning{scrhack}{option `nomencl' ignored}%
- \FamilyKeyStateProcessed
- }%
- \if@scrhack@nomencl\scr@hack@load\@pkgextension{nomencl}\fi
-}
-%</package&body>
-% \end{macrocode}
-% \end{option}^^A nomencl
-%
-% \begin{command}{\thenomenclature}
-% \changes{v3.23}{2017/03/31}{added}
-% Instead of using the several definitions by cases of the several versions of
-% \pkg{nomencl} we use a patch, that should remove all such cases and use
-% \pkg*{tocbasic} always.
-% \begin{macrocode}
-%<*nomencl&body>
-\RequirePackage{tocbasic}
-% \end{macrocode}
-% With \pkg{nomencl} > 5.0 this should be all.
-% Unfortunately is isn't, because newer versions of \pkg{nomencl} need option
-% \opt{tocbasic} to be set. Good luck: It is the default. So the chances
-% are good, that with new versions of \pkg{nomencl} usage of \pkg*{tocbasic} is
-% the default.
-% \begin{macrocode}
-\@ifpackagelater{nomencl}{2019/01/01}{%
- \PackageInfo{scrhack}{only `tocbasic' loaded for `nomencl'}%
- \expandafter\endinput
-}{}
-% \end{macrocode}
-% Otherwise we have to patch it.
-% \begin{macrocode}
-\addtotoclist[nomencl]{nlo}
-\addtotoclist[nomencl]{nls}
-\xpatchcmd{\thenomenclature}{%
- \@ifundefined{chapter}%
- {
- \section*{\nomname}
- \if@intoc\addcontentsline{toc}{section}{\nomname}\fi%
- }%
- {
- \chapter*{\nomname}
- \if@intoc\addcontentsline{toc}{chapter}{\nomname}\fi%
- }%
-}{%
- \scr@hack@nomencl@head
-}{%
- \PackageInfo{scrhack}{\string\thenomenclature\space successfully patched}%
-}{%
-% \end{macrocode}
-% \changes{v3.26b}{2019/01/23}{new \pkg{nomencl} 5.0}
-% From \pkg{nomencl} 5.0 another code is used if the nomenclature is a
-% chapter. So we need another patch:
-% \begin{macrocode}
- \xpatchcmd{\thenomenclature}{%
- \@ifundefined{chapter}%
- {
- \section*{\nomname}
- \if@intoc\addcontentsline{toc}{section}{\nomname}\fi%
- }%
- {
- \chapter*{\nomname}
- \markboth{\nomname}{\nomname}%
- \if@intoc\addcontentsline{toc}{chapter}{\nomname}\fi%
- }%
- }{%
- \scr@hack@nomencl@head
- }{%
- \PackageInfo{scrhack}{\string\thenomenclature\space successfully patched}%
- }{%
-% \end{macrocode}
-% \changes{v3.26b}{2019/01/23}{prepared for hoply comming \pkg{nomencl}}
-% 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:
-% \begin{macrocode}
- \xpatchcmd{\thenomenclature}{%
- \@ifundefined{chapter}%
- {
- \section*{\nomname}
- \if@intoc\addcontentsline{toc}{section}{\nomname}\fi%
- }%
- {
- \chapter*{\nomname}
- \@mkboth{\nomname}{\nomname}%
- \if@intoc\addcontentsline{toc}{chapter}{\nomname}\fi%
- }%
- }{%
- \scr@hack@nomencl@head
- }{%
- \PackageInfo{scrhack}{\string\thenomenclature\space successfully patched}%
- }{%
-% \end{macrocode}
-% \changes{v3.25}{2019/01/23}{emergency patch added}
-% \changes{v3.30}{2020/02/25}{spurious space in warning message removed}
-% If this also does not work, we try an emergency patch, that could break
-% things.
-% \begin{macrocode}
- \xpatchcmd{\thenomenclature}{%
- \@ifundefined{chapter}%
- }{%
- \scr@hack@nomencl@head
- \@gobbletwo
- }{%
- \PackageWarning{scrhack}{%
- using emergency patch of \string\thenomenclature.\MessageBreak
- This could happen if you are using an unknown\MessageBreak
- release of package `nomencl'.\MessageBreak
- Mostly this patch does work too, but it also could\MessageBreak
- break `nomencl`. If this happens, please deactivate\MessageBreak
- the `nomencl` hack of `scrhack`%
- }%
- }{%
- \PackageWarning{scrhack}{%
- cannot patch \string\thenomenclature.\MessageBreak
- This could happen if you are using an unknown\MessageBreak
- release of package `nomencl'%
- }%
- }%
- }%
- }%
-}
-%</nomencl&body>
-% \end{macrocode}
-% \end{command}^^A \thenomenclature
-%
-% \begin{macro}{\scr@hack@nomencl@head}
-% \changes{v3.23}{2017/03/31}{heading of \env{thenomenclature} by
-% \pkg*{tocbasic}}
-% \changes{v3.31}{2020/07/08}{internal \cs{list@fname} eliminated}
-% We don't need an extra group, because \env{thenomenclature} already adds the
-% group.
-% \begin{macrocode}
-%<*nomencl&body>
-\newcommand*{\scr@hack@nomencl@head}{%
- \providecommand*{\listofnlsname}{\nomname}%
- \def\@currext{nls}%
- \tocbasic@listhead{\nomname}%
-}
-%</nomencl&body>
-% \end{macrocode}
-% \begin{description}
-% \item[Note:] Only the heading hooks of \pkg*{tocbasic} are used. The other
-% hooks can be set, but would never be used!
-% \end{description}
-% \end{macro}^^A \scr@hack@nomencl@head
-%
-% \begin{macro}{\if@intoc}
-% \changes{3.23}{2017/03/31}{support of \cs{if@intoc}}
-% Generally we have to support \pkg{nomencl}'s option \opt{intoc} and the
-% switch \cs{if@intoc}. This is done by (un-)setting \pkg*{tocbasic} feature
-% \texttt{totoc}. So additional changes of the feature can be done at first
-% after loading both, \pkg{nomencl} and \pkg*{scrhack}. Moreover, later changes
-% of \cs{if@intoc} are not recognized.
-% \begin{macrocode}
-%<*nomencl&body>
-\if@intoc
- \setuptoc{nls}{totoc}
-\fi
-%</nomencl&body>
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \subsection{The \pkg*{setspace} hack}
-%
-% Package \pkg{setspace} internally uses \cs{@ptsize} in a way, that only
-% works as long as \cs{@ptsize} is an integer. But because \KOMAScript{}
-% supports non integer font sizes, \cs{@ptsize} can also contain non-integer
-% values. Moreover for \opt{11pt}, \LaTeX{} does not use a 11\,pt font but
-% a 10.95\,pt font with a \len{baselineskip} of 13.6\,pt, the correct factor
-% for, e.g., \cs{onehalfspacing} would be:
-% \[ 10{,}95\,\mathrm{pt} \dot 1{,5} / 13{,}6\,\mathrm{pt} \equiv 1{,}208 \]
-% But \pkg{setspace} uses 1.213, which would be correct for 11\,pt. Moreover
-% the factor is always relative to the base font size and not the current font
-% size. Because of this
-% \begin{verbatim}
-% \documentclass[10pt]{article}
-% \usepackage{setspace}
-% \begin{document}
-% \large\onehalfspacing\raggedright
-% Fontsize: \csname f@size\endcsname pt\\
-% Normal baselineskip: \csname f@baselineskip\endcsname\\
-% baselineskip: \the\baselineskip
-% \end{document}
-% \end{verbatim}
-% results in another \len{baselineskip} than:
-% \begin{verbatim}
-% \documentclass[11pt]{article}
-% \usepackage{setspace}
-% \begin{document}
-% \large\onehalfspacing\raggedright
-% Fontsize: \csname f@size\endcsname pt\\
-% Normal baselineskip: \csname f@baselineskip\endcsname\\
-% baselineskip: \the\baselineskip
-% \end{document}
-% \end{verbatim}
-% despite both examples use the same font size. So, to make it absolutely
-% correct, the factor would have to change with every change of the font
-% size. But the hack also does not do so. It just calculates the factor
-% depending on the base font size an the current font size. This is enough to
-% have the same \len{baselineskip} with both of the examples above.
-%
-% \begin{option}{setspace}
-% \changes{v3.17}{2015/04/16}{added}
-% \begin{macrocode}
-%<*package&option>
-\KOMA@ifkey{setspace}{@scrhack@setspace}
-\KOMAExecuteOptions{setspace=true}
-%</package&option>
-%<*package&body>
-\AfterPackage*{setspace}{%
- \KOMA@key[.scrhack.sty]{setspace}{%
- \PackageWarning{scrhack}{option `setspace' ignored}%
- \FamilyKeyStateProcessed
- }%
- \if@scrhack@setspace\scr@hack@load\@pkgextension{setspace}\fi
-}
-%</package&body>
-% \end{macrocode}
-% \end{option}
-%
-%
-% \begin{command}{\onehalfspacing}
-% \changes{v3.17}{2015/04/16}{added}
-% This selects the one half line spacing. I think, a factor with three digits
-% for the decimals should be enough.
-% \begin{macrocode}
-%<*setspace&body>
-\scr@ifexpected{\onehalfspacing}{%
- \long\def\onehalfspacing{%
- \setstretch{1.25}% default
- \ifcase \@ptsize \relax % 10pt
- \setstretch {1.25}%
- \or % 11pt
- \setstretch {1.213}%
- \or % 12pt
- \setstretch {1.241}%
- \fi
- }%
-}{%
- \renewcommand*{\onehalfspacing}{%
- \@tempdima=\dimexpr (\f@size pt)*1500/
- (\dimexpr \f@baselineskip\relax)*\p@/1000\relax
- \expandafter\setstretch\expandafter{\strip@pt\@tempdima}%
- }%
-}{%
- \PackageWarning{scrhack}{unknown \string\onehalfspacing\space
- definition found!\MessageBreak
- Maybe you are using a unsupported setpace version}%
-}
-% \end{macrocode}
-% \end{command}
-% \begin{command}{\doublespacing}
-% \changes{v3.17}{2015/04/16}{new}
-% This selects the double line spacing. I think, a factor with three digits
-% for the decimals should be enough.
-% \begin{macrocode}
-\scr@ifexpected{\doublespacing}{%
- \long\def\doublespacing{%
- \setstretch{1.667}% default
- \ifcase \@ptsize \relax % 10pt
- \setstretch {1.667}%
- \or % 11pt
- \setstretch {1.618}%
- \or % 12pt
- \setstretch {1.655}%
- \fi
- }%
-}{%
- \renewcommand*{\doublespacing}{%
- \@tempdima=\dimexpr (\f@size pt)*2000/
- (\dimexpr \f@baselineskip\relax)*\p@/1000\relax
- \expandafter\setstretch\expandafter{\strip@pt\@tempdima}%
- }%
-}{%
- \PackageWarning{scrhack}{unknown \string\doublespacing\space
- definition found!\MessageBreak
- Maybe you are using a unsupported setpace version}%
-}
-%</setspace&body>
-% \end{macrocode}
-% \end{command}
-%
-%
-% \subsection{The \pkg*{lscape} hack}
-% \changes{v3.18a}{2015/07/07}{\pkg{lscape} hack added}
-%
-% The package does change \len{textheight} inside \env{landscape} to the prior
-% value of \len{textwidth}, nevertheless is does not change \len{textwidth} to
-% the prior value of \len{textheight}. This is at least inconsistent. After
-% asking him, David~Carlisle answered, that he does not change
-% \len{textwidth}, because this could result in problems. Therefore it is very
-% strange, that he does change \cs{textheight}, despite this also to problems,
-% e.g., with packages \pkg{showframe} or \pkg*{scrlayer}. So the patch here
-% also keeps \len{textheight} unchanged. This also has to take care for
-% \pkg{pdflscape}. The patches are done using \pkg{xpatch}.
-%
-%
-% \begin{option}{lscape}
-% \changes{v3.18a}{2015/07/07}{added}
-% \changes{v3.20}{2016/05/07}{loading \pkg{xpatch} in option part already}
-% \begin{macrocode}
-%<*package&option>
-\RequirePackage{xpatch}%
-\KOMA@ifkey{lscape}{@scrhack@lscape}%
-\KOMAExecuteOptions{lscape=true}%
-%</package&option>
-%<*package&body>
-\AfterPackage*{lscape}{%
- \if@scrhack@lscape\scr@hack@load\@pkgextension{lscape}\else
- \KOMA@key[.scrhack.sty]{lscape}{%
- \PackageWarning{scrhack}{option `lscape' ignored}%
- \FamilyKeyStateProcessed
- }%
- \fi
-}
-%</package&body>
-% \end{macrocode}
-% \end{option}
-%
-% \begin{command}{\landscape}
-% \changes{v3.18a}{2015/07/07}{added}
-% \changes{v3.20}{2016/05/07}{loading \pkg{xpatch} in option part already}
-% This command is the beginning of environment \env{landscape}. This has to be
-% patched using \pkg{xpatch}.
-% \begin{description}
-% \item[Note:] This is a load time option and cannot be changed after loading
-% the package!
-% \end{description}
-% \begin{macrocode}
-%<*lscape&body>
-\xpatchcmd{\landscape}{\textheight=\vsize}{%
- \if@scrhack@lscape
-% \end{macrocode}
-% \begin{macro}{\@outputpage}
-% \changes{v3.18a}{2015/08/11}{added}
-% Here the changed value of \len{textheight} is needed for initialization of
-% \cs{@colht}. So we patch it to use the new internal \len{scr@LT@textheight}
-% instead of \len{textheight}.
-% \begin{macrocode}
- \scrh@LT@textheight=\vsize
- \let\scrh@LT@outputpage\@outputpage
- \def\@outputpage{\scrh@LT@outputpage\global\@colht\scrh@LT@textheight}%
- \else
- \textheight=\vsize
- \fi
-}{%
- \PackageInfo{scrhack}{\string\landscape\space patched to make
- \string\textheight\space change optional}%
-}{%
- \PackageWarning{scrhack}{Cannot patch \string\landscape!\MessageBreak
- Maybe you are using a unsupported lscape version}%
- \@scrhack@lscapefalse
-}
-% \end{macrocode}
-% \begin{ilength}{\scrh@LT@textheight}
-% \changes{v3.18a}{2015/08/11}{new}
-% \begin{macrocode}
-\newlength{\scrh@LT@textheight}
-%</lscape&body>
-% \end{macrocode}
-% \end{ilength}^^A \scrh@LT@textheight
-% \end{macro}^^A \@outputpage
-% \end{command}^^A \landscape
-%
-%
-% \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{command}{\part,\chapter,
-% \section,\subsection,\subsubsection,
-% \paragraph,\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
-% \href{http://mirrors.ctan.org/macros/latex/base/classes.dtx}{\cls*{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{command}
-%
-% \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,\@ssect,\@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,\@ssect,\@sect
-%
-% \begin{command}{\DeclareSectionCommand,\RedeclareSectionCommand,
-% \DeclareNewSectionCommand,\ProvideSectionCommand,
-% \DeclareSectionCommands,\RedeclareSectionCommands,
-% \DeclareNewSectionCommands,\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,
-% \scr@chapter@after@hyperref@patch}
-% Now, definitions without respecting \pkg{hyperref} are used, so
-% \pkg{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{command}
-%
-% \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{command}{\partformat,\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{command}^^A \chapterformat,\partformat
-%
-% \begin{command}{\sectionformat,\subsectionformat,\subsubsectionformat,
-% \paragraphformat,\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{command}
-%
-% \begin{command}{\partlineswithprefixformat,
-% \chapterlineswithprefixformat,\chapterlinesformat,
-% \sectionlinesformat,\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{command}^^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 \pkg{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
-%
-% \subsection{Executing options}
-%
-% Last but not least the options have to be processed. In the generated
-% package this will be done before the commands of \autoref{sec:macros}.
-% \begin{macrocode}
-%<*package&option>
-\KOMAProcessOptions\relax
-%</package&option>
-% \end{macrocode}
-%
-% \Finale
-% \PrintChanges
-%
-\endinput
-% Local Variables:
-% mode: doctex
-% ispell-local-dictionary: "en_US"
-% eval: (flyspell-mode 1)
-% TeX-master: t
-% TeX-engine: luatex-dev
-% eval: (setcar (or (cl-member "Index" (setq-local TeX-command-list (copy-alist TeX-command-list)) :key #'car :test #'string-equal) (setq-local TeX-command-list (cons nil TeX-command-list))) '("Index" "mkindex %s" TeX-run-index nil t :help "makeindex for dtx"))
-% End: