From 52752914d310303b349c70869c5ae25c6d3436de Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Sat, 7 May 2022 20:39:25 +0000
Subject: koma-script (7may22)

git-svn-id: svn://tug.org/texlive/trunk@63250 c570f23f-e606-0410-a88d-b1316a301751
---
 .../latex/koma-script/scrkernel-miscellaneous.dtx  | 1206 ++++++++------------
 1 file changed, 500 insertions(+), 706 deletions(-)

(limited to 'Master/texmf-dist/source/latex/koma-script/scrkernel-miscellaneous.dtx')

diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-miscellaneous.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-miscellaneous.dtx
index 5c5f5ee4a16..aeac05df999 100644
--- a/Master/texmf-dist/source/latex/koma-script/scrkernel-miscellaneous.dtx
+++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-miscellaneous.dtx
@@ -1,7 +1,7 @@
 % \iffalse meta-comment
 % ======================================================================
 % scrkernel-miscellaneous.dtx
-% Copyright (c) Markus Kohm, 2002-2021
+% Copyright (c) Markus Kohm, 2002-2022
 %
 % This file is part of the LaTeX2e KOMA-Script bundle.
 %
@@ -17,56 +17,19 @@
 % The Current Maintainer and author of this work is Markus Kohm.
 %
 % This work consists of all files listed in manifest.txt.
-% ----------------------------------------------------------------------
-% scrkernel-miscellaneous.dtx
-% Copyright (c) Markus Kohm, 2002-2021
-%
-% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
-% Version 1.3c, verteilt und/oder veraendert werden.
-% Die neuste Version dieser Lizenz ist
-%   http://www.latex-project.org/lppl.txt
-% und Version 1.3c ist Teil aller Verteilungen von LaTeX
-% Version 2005/12/01 oder spaeter und dieses Werks.
-%
-% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
-% (allein durch den Autor verwaltet).
-%
-% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
-% 
-% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
 % ======================================================================
-% \fi
-%
-% \CharacterTable
-%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-%   Digits        \0\1\2\3\4\5\6\7\8\9
-%   Exclamation   \!     Double quote  \"     Hash (number) \#
-%   Dollar        \$     Percent       \%     Ampersand     \&
-%   Acute accent  \'     Left paren    \(     Right paren   \)
-%   Asterisk      \*     Plus          \+     Comma         \,
-%   Minus         \-     Point         \.     Solidus       \/
-%   Colon         \:     Semicolon     \;     Less than     \<
-%   Equals        \=     Greater than  \>     Question mark \?
-%   Commercial at \@     Left bracket  \[     Backslash     \\
-%   Right bracket \]     Circumflex    \^     Underscore    \_
-%   Grave accent  \`     Left brace    \{     Vertical bar  \|
-%   Right brace   \}     Tilde         \~}
-%
-% \iffalse
-%%% From File: $Id: scrkernel-miscellaneous.dtx 3554 2021-01-28 15:40:05Z kohm $
+%%% From File: $Id: scrkernel-miscellaneous.dtx 3743 2022-03-04 16:27:15Z kohm $
 %<init>%%%            (run: init)
 %<option>%%%            (run: option)
 %<execoption>%%%            (run: execoption)
 %<body>%%%            (run: body)
 %<*dtx>
-% \fi
 \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
 \begingroup
   \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
-  \filedate$Date: 2021-01-28 16:40:05 +0100 (Thu, 28 Jan 2021) $
+  \filedate$Date: 2022-03-04 17:27:15 +0100 (Fr, 04. Mär 2022) $
   \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
-  \filerevision$Revision: 3554 $
+  \filerevision$Revision: 3743 $
   \edef\reserved@a{%
     \noexpand\endgroup
     \noexpand\ProvidesFile{scrkernel-miscellaneous.dtx}%
@@ -75,89 +38,53 @@
                            (miscellaneous, maybe everything or nothing)]
   }%
 \reserved@a
-% \iffalse
-\documentclass[parskip=half-]{scrdoc}
-\usepackage[english,ngerman]{babel}
-\CodelineIndex
-\RecordChanges
-\GetFileInfo{scrkernel-miscellaneous.dtx}
-\title{\KOMAScript{} \partname\ \texttt{\filename}%
-  \footnote{Dies ist Version \fileversion\ von Datei
-    \texttt{\filename}.}}
-\date{\filedate}
-\author{Markus Kohm}
-
+\documentclass[USenglish]{koma-script-source-doc}
+\usepackage{babel}
+\setcounter{StandardModuleDepth}{2}
 \begin{document}
-  \maketitle
-  \tableofcontents
-  \DocInput{\filename}
+\DocInput{scrkernel-miscellaneous.dtx}
 \end{document}
 %</dtx>
 % \fi
 %
-% \selectlanguage{ngerman}
-%
-% \changes{v2.95}{2002/07/01}{%
-%   erste Version aus der Aufteilung von \texttt{scrclass.dtx}}
-%
-% \section{Verschiedenes}
-%
-% Es gibt eine ganze Menge für das sich einzeln keine eigene Datei
-% lohnt oder eine Einordnunge schwierig ist. All das nennen wird
-% "`Verschiedenes"'.
-%
-% \subsection{Erweiterung der Internationalisierung}
-%
-% \changes{v2.2c}{1995/05/25}{Anpassung an CJK von Werner Lemberg.}%^^A
-%
-% Die Standardnamen wie \cs{figurename} etc. sind nicht immer
-% ausreichend, da manche Sprachen Zählwörter vor oder nach dem
-% jeweiligen Zähler einfügen  müssen (man denke da sogar im
-% Deutschen an "`Abbildung~1"' und "`Erste Abbildung"'). Desweiteren
-% werden bei manchen Sprachen die Zwischenräume anders gesetzt
-% bzw. sogar ganz unterdrückt. 
-%
-% Es gibt drei Ebenen, die man modifizieren kann, um verschiedenste
-% Sprachen zu implementieren: Ebene~1 besteht aus den hinl"anglich
-% bekannten Makros wie \cs{figurename} und alle weiteren Makros, die
-% z.\,B. \textsf{german} modifiziert. Desweiteren können die Makros
-% \cs{sectfont} etc. etwaige zusätzliche Fonts aktivieren. Ebene~2 ist
-% die zusätzliche Adaptierung von den Zählern selbst (\cs{thesection}
-% könnte z.\,B. chinesische Schriftzeichen ansprechen anstelle von
-% arabischen Ziffern). Die allgemeinste Form der dritten Ebene
-% besteht aus den Makros \cs{chaptermarkformat},
-% \cs{sectionmarkformat} etc. welche die Änderung der Reihenfolge von
-% Zähler und Titel sowie die genaue Kontrolle der Zwischenräume
-% etc. ermöglichen.
-%
-% Für die gängigen Sprachen können alle Makros für die dritte
-% Ebene identisch definiert werden. Bei Verwendung von "`exotischen"'
-% Sprachen, aber auch speziellen Darstellungen in den gängigen
-% Sprachen können diese Makros umdefiniert werden.
-%
-% Das Konzept für der Internationalisierung mit der dritten Ebene
-% wurde ursprünglich von Werner Lemberg\footnote{Werner Lemberg ist im
-% InterNet unter \texttt{a7621gac@awiuni11.bitnet} zu erreichen.}
-% entwickelt. Die "`caption files"' seines CJK-Pakets
-% (\textbf{C}hinesisch, \textbf{J}apanisch, \textbf{K}oreanisch) bauen
-% auf diesem Konzept auf. Damit ist \KOMAScript{} für alle möglichen
-% Sprachanpassungen bestens gerüstet. In der dritten Ebene wird
-% übrigens auch die Einhaltung der DUDEN-Regeln für die
-% Gliederungsnummern realisiert.
-%
-% \StopEventually{\PrintIndex\PrintChanges}
-%
-% \iffalse
-%<*init>
-% \fi
-% \subsection{Test auf die eine \KOMAScript-Klasse}
-%
-% Hier haben wir zunächst ein paar Definitionen speziell für das Paket
-% \textsf{scrletter}, die genau dann benötigt werden, wenn das Paket nicht mit
-% einer \KOMAScript-Klasse verwendet wird.
-%
+% \changes{v2.95}{2002/07/01}{first version after splitting \file{scrclass.dtx}}
+% \changes{v3.36}{2022/03/01}{switch over from \cls*{scrdoc} to
+%   \cls*{koma-script-source-doc}}
+% \changes{v3.36}{2022/03/01}{whole implementation documentation in English}
+%
+% \GetFileInfo{scrkernel-miscellaneous.dtx}
+% \title{All the Code of
+%   \href{https://komascript.de}{\KOMAScript} not Fitting into another File}
+% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}}
+% \date{Revision \fileversion{} of \filedate}
+% \maketitle
+% \begin{abstract}
+%   Currently \file{scrkernel-miscellaneous.dtx} is a mess of miscellaneous
+%   code. There is a big, fat \textbf{ToDo} to change this!
+% \end{abstract}
+% \tableofcontents
+%
+% \section{User Manual}
+%
+% You can find the user documentation the commands implemented here in the
+% \KOMAScript{} manual, either the German \file{scrguide} or the English
+% \file{scrguien}.
+%
+% \MaybeStop{\PrintIndex}
+%
+%
+% \section{Implementation of Special Requirements of Package \pkg*{scrletter}}
+%
+% The \pkg*{scrletter} depends on some features of the \KOMAScript{}
+% classes. However, a special user request was to make it work with the
+% standard classes too. So we need additional code to detect not using a
+% \KOMAScript{} class and to make this work.
+% \begin{description}
+% \item[ToDo:] Can we move this code into a letter file or use a new file only
+%   used for package \pkg*{scrletter}?
+% \end{description}
 %    \begin{macrocode}
-%<*package&letter>
+%<*package&letter&init>
 \scr@ifundefinedorrelax{KOMAClassName}{%
   \PackageWarningNoLine{scrletter}{%
     Cannot detect any KOMA-Script class.\MessageBreak
@@ -175,13 +102,22 @@
   \RequirePackage{scrextend}%
 %    \end{macrocode}
 %
-% \begin{macro}{\setparsizes}
-% \changes{v3.23}{2017/02/22}{wird notfalls vereinfacht definiert}%^^A
+% \begin{command}{\setparsizes}
+% \changes{v3.23}{2017/02/22}{simple fallback definition}
 % \begin{macro}{\par@updaterelative}
-% \changes{v3.23}{2017/02/22}{wird notfalls vereinfacht definiert}%^^A
-%   Diese beiden Befehle werden normalerweise von den \KOMAScript-Klassen
-%   definiert. Wird das Paket mit einer anderen Klasse verwendet, existieren
-%   sie nicht. Es wird dann eine vereinfachte Definition verwendet.
+% \changes{v3.23}{2017/02/22}{empty fallback definition}
+% If \pkg*{scrletter} is not used with a \KOMAScript{} class \cs{setparsizes}
+% would not be available. But it is used in \cs{vb@t@z}, \cs{@addrfield},
+% \cs{@datefield}, \cs{@makelettertitle}, \cs{@subjfield}, \cs{opening},
+% \cs{closing}. Instead of changing the implementation of all these commands
+% and macros, we define a very simple version of \cs{setparsizes}. And in case
+% of using this simple version \cs{par@updaterelative} would become a
+% do-nothing macro. This does work in case of the commands and macros listed
+% above. But maybe it does not work in other cases.
+% \begin{description}
+% \item[ToDo:] Can we move this code into \file{scrkernel-paragraphs.dtx} or
+%   use a new file only for package \pkg*{scrletter}?
+% \end{description}
 %    \begin{macrocode}
   \providecommand*{\setparsizes}[3]{%
     \setlength{\parindent}{#1}%
@@ -190,62 +126,45 @@
   }
   \providecommand*{\par@updaterelative}{}
 %    \end{macrocode}
-% \end{macro}%^^A \par@updaterelative
-% \end{macro}%^^A \setparsizes
+% \end{macro}^^A \par@updaterelative
+% \end{command}^^A \setparsizes
 %    \begin{macrocode}
 }{}
+%</package&letter&init>
 %    \end{macrocode}
 %
-% \begin{macro}{\scr@renewforletter}
-% \changes{v3.20}{2014/04/10}{neu Anweisung}%^^A
-% \changes{v3.25}{2017/11/15}{als unbenutzt entfernt}%^^A
-% Wird wie \cs{renewcommand} verwendet, verzögert die Umdefinierung aber bis
-% zu einem optionalen Zeitpunkt. Dazu wird intern
-% \cs{scrletter@extra@\meta{macro}} definiert.
-% \begin{macro}{\@renewforletter}
-% \changes{v3.20}{2014/04/10}{neu Anweisung (intern)}%^^A
-% \changes{v3.25}{2017/11/15}{als unbenutzt entfernt}%^^A
-% \begin{macro}{\do@renewforletter@list}
-% \changes{v3.20}{2014/04/10}{neu Anweisung (intern)}%^^A
-% \changes{v3.25}{2017/11/15}{als unbenutzt entfernt}%^^A
-% Die do-Liste der später umzudefinierenden Anweisungen.
-% \begin{macro}{\do@renewforletter}
-% \changes{v3.20}{2014/04/10}{neu Anweisung (intern)}%^^A
-% \changes{v3.25}{2017/11/15}{als unbenutzt entfernt}%^^A
-% Definiert die in der do-Liste gespeicherten Anweisungen um.
-%    \begin{macrocode}
-%</package&letter>
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \begin{macro}{\scr@renewforletter,\@renewforletter,\do@renewforletter@list,
+%               \do@renewforletter}
+% \changes{v3.20}{2014/04/10}{added}
+% \changes{v3.25}{2017/11/15}{removed}
 % \end{macro}
 %
-% \iffalse
-%</init>
-%<*option>
-% \fi
 %
-% \subsection{Optionen für Entwürfe}
+% \section{Implementation of the Draft Mode}
+%
+% The \KOMAScript{} classes provide two draft options, the general one and a
+% more specific.
+% \begin{description}
+% \item[ToDo:] Should we move this to \file{scrkernel-paragraphs.dtx}?
+% \end{description}
 % 
 % \begin{option}{draft}
-% \changes{v2.95}{2002/12/05}{mit \textsl{keyval} reimplementiert}%^^A
-% \changes{v3.17}{2015/03/12}{interne Speicherung der Werte}%^^A
-% \changes{v3.25}{2017/11/21}{Beachtung von Option \texttt{overfullrule}}%^^A
+% \changes{v2.95}{2002/12/05}{re-implemented using \pkg{keyval}}
+% \changes{v3.17}{2015/03/12}{using internal value storage}
+% \changes{v3.25}{2017/11/21}{respect option \opt{overfullrule}}
+% \changes{v3.12}{2013/03/05}{using \cs{FamilyKeyState}}
 % \begin{option}{final}
-% \changes{v2.95}{2002/12/05}{obsolete Option}%^^A
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
-%   ersetzt}
-% \changes{v3.01a}{2008/11/21}{standard statt obsolet}%^^A
-% \changes{v3.02c}{2008/02/17}{optionales Argument im Fall von
-%   \textsf{scrextend} gesetzt}
-% \changes{v3.12}{2013/03/05}{Nutzung der Status-Signalisierung mit
-% \cs{FamilyKeyStateProcessed}}%
-% Der einzige Unterschied zwischen Entwürfen und Endversionen ist aus
-% Sicht der Klassen, ob Zeilenüberhänge mit einem schwarzen Balken
-% angezeigt werden sollen oder nicht.
+% \changes{v2.95}{2002/12/05}{obsolete}
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by
+%   \cs{PackageInfoNoLine}}
+% \changes{v3.01a}{2008/11/21}{standard instead of obsolete}
+% \changes{v3.02c}{2008/02/17}{explicit optional argument for \pkg*{scrextend}}
+% In draft mode classes usually show a rule for overfull boxes. Despite this
+% is usually already handled by the class, package \pkg*{scrextend} also
+% provides the option, because of correct setting of the internal value
+% storage also of option \opt{overfullrule}.
 %    \begin{macrocode}
-%<*class|extend>
+%<*(class|extend)&option>
 \KOMA@key{draft}[true]{%
   \KOMA@set@ifkey{draft}{@tempswa}{#1}%
   \ifx\FamilyKeyState\FamilyKeyStateProcessed
@@ -281,16 +200,13 @@
 \KOMA@DeclareStandardOption
 %<package&extend>[scrextend]
 {final}{draft=false}
-%</class|extend>
 %    \end{macrocode}
 % \begin{option}{overfullrule}
-% \changes{v3.25}{2017/11/21}{new option}%^^A
-% \selectlanguage{english}%^^A
-% Because option \texttt{draft} can result in unwanted effects I've added a
+% \changes{v3.25}{2017/11/21}{added}
+% Because option \opt{draft} can result in unwanted effects I've added a
 % new option to explicite only change the overfull rule setting. However for
 % \textsf{scrextend} and the \KOMAScript{} classes the result is the same.
 %    \begin{macrocode}
-%<*class|extend>
 \KOMA@key{overfullrule}[true]{%
   \KOMA@set@ifkey{overfullrule}{@tempswa}{#1}%
   \ifx\FamilyKeyState\FamilyKeyStateProcessed
@@ -323,94 +239,124 @@
   \ifdim\overfullrule>\z@ true\else false\fi
 }
 %</package&extend>
-%</class|extend>
+%</(class|extend)&option>
 %    \end{macrocode}
-% \selectlanguage{ngerman}%^^A
-% \end{option}%^^A overfullrule
-% \end{option}%^^A final
-% \end{option}%^^A draft
+% \end{option}^^A overfullrule
+% \end{option}^^A final
+% \end{option}^^A draft
 %
 %
-% \subsection{Optionen für Gleichungen}
+% \section{Implementations for the Math Mode}
 %
-% Briefe haben derzeit keine Gleichungen.
-% \iffalse
-%<*!letter>
-% \fi
+% \KOMAScript{} does not make something special for the math mode.
+% \begin{description}
+% \item[ToDo:] Should we move this to the special treatment of \pkg{amsmath}
+%   in \file{scrkernel-basics.dtx} or move it with the special treatment of
+%   \pkg{amsmath} in \file{scrkernel-basics.dtx} to a new file
+%   \file{scrkernel-math.dtx}?
+% \end{description}
 %
-% \begin{option}{leqno}
-% \begin{option}{fleqno}
-% Es können Gleichungsnummern links oder linksbündige Gleichungen
-% eingestellt werden.
+% \begin{option}{leqno,fleqno}
+% The \KOMAScript{} classes but \cls*{scrlttr2} do support the standard
+% class options \opt{leqno} and \opt{fleqn}.
 %    \begin{macrocode}
-%<*!extend>
+%<*class&!letter&option>
 \DeclareOption{leqno}{\input{leqno.clo}}
 \DeclareOption{fleqn}{\input{fleqn.clo}}
-%</!extend>
+%</class&!letter&option>
 %    \end{macrocode}
 % \end{option}
-% \end{option}
-%
-% \iffalse
-%</!letter>
-% \fi
-%
-% \subsection{Optionen für \texttt{egreg}}
 %
-% \texttt{egreg} hat in einem Kommentar zu
-% \url{https://tex.stackexchange.com/questions/289853} verlauten lassen, dass
-% er \KOMAScript{} u.\,a. deshalb nicht verwendet, weil \KOMAScript{}
-% serifenlose Fonts für Überschriften voreingestellt hat. Er hätte lieber die
-% hässlichen, fetten Antiqua-Fonts. Außerdem reicht es ihm nicht, dass man das
-% einfach per \cs{setkomafont} ändern kann. Er will eine Option dafür. Nun,
-% die soll er haben:
+% \begin{command}{\theequation}
+% \changes{v2.97e}{2007/11/23}{chapter numbers only in main matter}
+% \changes{v3.27}{2022/03/01}{\cs{relax} replaced by percent because of
+%   \pkg*{hyperref}}
+% The \KOMAScript{} classes \cls*{scrbook} and \cls*{scrreprt} have a special
+% treatment for equation numbers. For \cls*{scrreprt} the number just depends
+% on the chapter number. But for \cls*{scrbook} it also depends on the active
+% matter.
+% \begin{description}
+% \item[ToDo:] With \cs{counterwidth} the \cls*{scrreprt} code could be very
+%   simple. But currently we still support old \LaTeX{} kernels without
+%   \cs{counterwithin}.
+% \item[ToDo:] Should we also add a definition for \cls*{scrartcl} as done for
+%   \cls*{article}, though the same definition is already the default of the
+%   \LaTeX{} kernel?
+% \end{description}
+%    \begin{macrocode}
+%<*(book|report)&body>
+\renewcommand*{\theequation}{%
+%<*book>
+  \expandafter\ifnum\scr@v@is@gt{2.97d}%
+    \if@mainmatter\thechapter.\fi
+  \else
+%</book>
+    \thechapter.%
+%<book>  \fi
+  \@arabic\c@equation
+}
+%</(book|report)&body>
+%    \end{macrocode}
+% \end{command}
+%
+% \section{Implementation of Special Handling of Sans-Serif Defaults}
+%
+% TeX.SX user \texttt{egreg} has stated in comment
+% \url{https://tex.stackexchange.com/questions/289853}, that he does not use
+% \KOMAScript{} because of the sans-serif defaults for headings. He like the
+% ugly, bold fat Antiqua more. Moreover, he is not satisfied in being able to
+% change the default using \cs{setkomafont}. So the \KOMAScript{} author has
+% defined an option to do the change of all sans-serif defaults at once. As a
+% joke the name of this options not only references \texttt{egreg} but is
+% cumbersome long.
+% \begin{description}
+% \item[ToDo:] Should we move this option to \file{scrkernel-fonts.dtx}?
+% \item[ToDo:] Should we add a more handy and serious option like
+%   \opt{nosfdefaults}?
+% \end{description}
 %
 % \begin{option}{egegdoesnotlikesansseriftitles}
-% \changes{v3.20}{2016/01/29}{neu (speziell)}
-% \changes{v3.20a}{2016/05/19}{auch in der Briefklasse}
+% \changes{v3.20}{2016/01/29}{added}
+% \changes{v3.20a}{2016/05/19}{also for \cls*{scrlttr2}}
 % \begin{macro}{\@gr@gsffamily}
-% \changes{v3.20}{2016/01/29}{neu (intern)}
-% \changes{v3.20a}{2016/05/19}{auch in der Briefklasse}
-% Schaltet je nach Einstellung von Option
-% \texttt{egegdoesnotlikesansseriftitles} entweder auf \cs{sffamily} um oder
-% eben nicht.
+% \changes{v3.20}{2016/01/29}{added}
+% \changes{v3.20a}{2016/05/19}{also for \cls*{scrlttr2}}
+% Used to switch on or off all the sans-serif defaults.
 %    \begin{macrocode}
-%<*!(package&letter)>
+%<*!(package&letter)&option>
 \KOMA@ifkey{egregdoesnotlikesansseriftitles}{@egregdoesnotlikesansseriftitles}
 \newcommand*{\@gr@gsffamily}{%
   \if@egregdoesnotlikesansseriftitles\else\sffamily\fi
 }
-%</!(package&letter)>
+%</!(package&letter)&option>
 %    \end{macrocode}
-% \end{macro}%^^A \@gr@gsffamily
-% \end{option}%^^A egregdoesnotlikesansseriftitles
-%
-% \iffalse
-%</option>
-%<*execoption>
-% \fi
+% \end{macro}^^A \@gr@gsffamily
+% \end{option}^^A egregdoesnotlikesansseriftitles
 %
 %
-% \subsection{Standardeinstellungen für die Optionen}
+% \section{Implementation of the Execution and Processing of Options}
 %
-% Am Ende aller Optionen wird zunächst die Standardeinstellungen der
-% Optionen vorgenommen und dann alle Optionen ausgeführt. Dies
-% geschieht zwischen den Optionen und dem Körper dieser Datei.
+% After the definition of all options, some defaults have to be executed and
+% all options have to be processed.
+% \begin{description}
+% \item[ToDo:] Can we move the execution of default to the files, where the
+%   corresponding options are defined?
+% \item[ToDo:] Can we move the processing of options to
+%   \file{scrkernel-basics.dtx} where the command itself is defined?
+% \end{description}
 %
-% Es müssen die Standardoptionen festgelegt und alle Optionen
-% ausgewählt werden.
-% \changes{v2.97c}{2007/04/19}{Verwendung von \cs{KOMAExecuteOptions} an
-%   Stelle von \cs{KOMAoptions} und \cs{KOMAProcessOptions} an Stelle von
+% \changes{v2.97c}{2007/04/19}{using \cs{KOMAExecuteOptions} instead of
+%   \cs{KOMAoptions} and \cs{KOMAProcessOptions} instead of
 %   \cs{ProcessOptions}}
-% \changes{v2.97c}{2007/04/19}{Optionen, die der Voreinstellung ohnehin
-%   entsprechen, werden nicht explizit gesetzt}%^^A
-% \changes{v2.97c}{2007/07/18}{Option \texttt{twoside} bei den
-%   Voreinstellungen rausgenommen}
-% \changes{v2.98c}{2008/03/10}{Option \texttt{headings!=big} zu den
-%   Voreinstellungen hinzugefügt}
-% \changes{v3.11c}{2013/03/04}{Option \texttt{headings!=big} nicht für die
-%   Briefklasse}
+% \changes{v2.97c}{2007/04/19}{options that are implicit defaults are not set
+%   explicitly}
+% \changes{v2.97c}{2007/07/18}{removed \opt{twoside} from the default}
+% \changes{v2.98c}{2008/03/10}{\opt{headings\quotechar=big} added to the
+%   default}
+% \changes{v3.11c}{2013/03/04}{\opt{headings\quotechar=big} not with
+%   \cls*{scrlttr2}}
 %    \begin{macrocode}
+%<*execoption>
 %<*class>
 \KOMAExecuteOptions{%
   parskip=false,%
@@ -418,34 +364,29 @@
 }
 %</class>
 \KOMAProcessOptions\relax
-%    \end{macrocode}
-%
-%
-% \iffalse
 %</execoption>
-%<*body>
-% \fi
-%
+%    \end{macrocode}
 %
-% \subsection{Temporäre Umschaltung zwischen ein- und zweispaltigem
-%   Satz}
 %
-% Briefe sind immer einspaltig, benötigen also den Schalter nicht.
-% \iffalse
-%<*!letter>
-% \fi
+% \section{Implementation of Temporary Switch to Single Column Mode}
 %
-% \begin{macro}{\if@restonecol}
-% \begin{macro}{\@restonecoltrue}
-% \begin{macro}{\@restonecolfalse}
-% Damit innerhalb einer Umgebung lokal auf ein- oder zweispaltigen
-% Satz umgeschaltet werden kann, wird ein Schalter benötigt. Dieser
-% wird dann dafür verwendet, sich zu merken, dass eine Umschaltung
-% stattgefunden hat und am Ende der Umgebung wieder aufzuheben
-% ist. Der Schalter wird nicht in Umgebungen verwendet, die
-% geschachtelt werden. Verwendung findet er beispielsweise für
-% Titelseiten und das Inhaltsverzeichnis.
+% Sometimes we need to temporary switch to single column mode, e.g., to print
+% a table of contents or similar. This is not needed for \cls*{scrlttr2} or
+% \pkg*{scrletter}.
+% \begin{description}
+% \item[ToDo:] Should we move this to \file{scrkernel-paragraphs.dtx} or
+%   another file? Currently it is used in \file{scrkernel-index.dtx},
+%   \file{scrkernel-notepaper.dtx}, and \file{scrkernel-title.dtx} (and also
+%   in \file{scrhack.dtx}, which also defines it of needed).
+% \end{description}
+% 
+% \begin{macro}{\@restonecolfalse,\@restonecoltrue,\if@restonecol}
+% We need a local switch to be able to restore two column mode after locally
+% switching to one column mode (or visa versa). For \pkg*{scrextend} this is a
+% little bit complicated, because the switch could already exist in the used
+% class.
 %    \begin{macrocode}
+%<*!letter&body>
 %<*!extend>
 \newif\if@restonecol
 %</!extend>
@@ -455,59 +396,38 @@
   \@restonecolfalse
 }{}
 %</extend>
+%</!letter&body>
 %    \end{macrocode}
 % \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \iffalse
-%</!letter>
-% \fi
-%
-% \subsection{Definitionen für den schlauen Spruch}
-%
-% Den schlauen Spruch gibt es nicht bei Briefen.
-% \iffalse
-%<*!letter>
-% \fi
+% 
+% \section{Implementation of the Dictum}
 %
-% \begin{macro}{\dictum}
-% \changes{v2.8q}{2001/20/04}{neu}%^^A
-% \changes{v2.9l}{2003/01/28}{\cs{edef} durch \cs{def} ersetzt}
-% \changes{v2.9q}{2004/04/19}{zur Vermeidung von Problemen durch
-%     \cs{raggeddictum} Gruppe eingef"ugt}
-% \begin{macro}{\dictumwidth}
-% \changes{v2.8q}{2001/20/04}{neu}%^^A
-% \begin{macro}{\raggeddictum}
-% \changes{v2.8q}{2001/20/04}{neu}%^^A
-% \begin{macro}{\raggeddictumtext}
-% \changes{v2.8q}{2001/20/04}{neu}%^^A
-% \begin{macro}{\raggeddictumauthor}
-% \changes{v2.8q}{2001/20/04}{neu}%^^A
-% \begin{KOMAfont}{dictum}
-% \changes{v2.8q}{2001/20/04}{neues Element}%^^A
-% \changes{v3.20}{2016/01/29}{\cs{sffamily} durch \cs{@gr@gsffamily}
-%     ersetzt}%^^A
-% \begin{KOMAfont}{dictumtext}
-% \changes{v2.8q}{2001/20/04}{neues Element}%^^A
-% \begin{KOMAfont}{dictumauthor}
-% \changes{v2.8q}{2001/20/04}{neues Element}%^^A
-% \begin{macro}{\dictumauthorformat}
-% \changes{v2.8q}{2001/20/04}{neu}%^^A
-% \begin{macro}{\dictumrule}
-% \changes{v3.10}{2011/09/02}{neu}%^^A
-%   Ein \emph{dictum} ist ein Spruch. Er besteht aus dem Spruch selbst
-%   und verfügt optional über einen Autor, der dann mit einer Linie
-%   abgetrennt wird. Gibt es keinen Autor, gibt es auch keine Linie. Die
-%   Schriften für Autor und Spruch können getrennt voneinander
-%   eingestellt werden. Die Anordnung des Spruchs wird durch
-%   \cs{raggeddictumtext} gesetzt. Die des Autors durch
-%   \cs{raggeddictumauthor}. Die Formatierung selbst geschieht mit dem
-%   Makro \cs{dictumauthorformat}. Vordefiniert ist, den Namen des
-%   Autors in runde Klammern zu setzen. Die gesamte Geschichte von Text
-%   und Autor wird in eine Box der Breite \cs{dictumwidth}
-%   gepackt. Diese wird mit \cs{raggeddictum} angeordnet.
+% Printing a \emph{dictum} is also not supported by letters.
+% \begin{description}
+% \item[ToDo:] Should we move this to \file{scrkernel-sections.dtx} or to a
+%   new file?
+% \end{description}
+% 
+% \begin{command}{\dictum}
+% \changes{v2.8q}{2001/20/04}{added}
+% \changes{v2.9l}{2003/01/28}{\cs{edef} replaced by \cs{def} ersetzt}
+% \changes{v2.9q}{2004/04/19}{group added}
+% \begin{command}{\dictumwidth,
+%                 \raggeddictum,\raggeddictumtext,\raggeddictumauthor}
+% \changes{v2.8q}{2001/20/04}{added}
+% \begin{fontelement}{dictum}
+% \changes{v2.8q}{2001/20/04}{added}
+% \changes{v3.20}{2016/01/29}{\cs{sffamily} replaced by \cs{@gr@gsffamily}}
+% \begin{fontelement}{dictumtext,dictumauthor}
+% \changes{v2.8q}{2001/20/04}{added}
+% \begin{command}{\dictumauthorformat}
+% \changes{v2.8q}{2001/20/04}{added}
+% \begin{command}{\dictumrule}
+% \changes{v3.10}{2011/09/02}{added}
+% The \emph{dictum} consist of a text, the dictum, and an optional
+% author. Text and author are separated by a horizontal rule.
 %    \begin{macrocode}
+%<*!letter&body>
 \newcommand{\dictum}[2][]{\par%
   \begingroup
     \raggeddictum\parbox{\dictumwidth}{%
@@ -530,101 +450,71 @@
 \newkomafont{dictum}{\normalfont\normalcolor\@gr@gsffamily\small}
 \newkomafont{dictumauthor}{\itshape}
 \aliaskomafont{dictumtext}{dictum}
+%</!letter&body>
 %    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{KOMAfont}
-% \end{KOMAfont}
-% \end{KOMAfont}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \iffalse
-%</!letter>
-% \fi
-%
-% \subsection{Längen für Minipages und Rahmen}
-%
-% \begin{Length}{@mpfootins}
-% \begin{Length}{fboxsep}
-% \begin{Length}{fboxrule}
-% \cs{@mpfootins} entspricht \cs{footins} in Minipages. \cs{fboxsep}
-% ist der Abstand zwischen dem Rahmen einer \cs{fbox} oder
-% \cs{framebox} und dem Inhalt, \cs{fboxrule} ist die Dicke des
-% Rahmens.
+% \end{command}^^A \dictumrule
+% \end{command}^^A \dictumauthorformat
+% \end{fontelement}^^A dictumtext,dictumauthor
+% \end{fontelement}^^A dictum
+% \end{command}^^A \dictumwidth,\raggeddictum…\raggeddictumauthor
+% \end{command}^^A \dictum
+%
+%
+% \section{Setting Default Lengths of \env{minipage} and Frames}
+%
+% \begin{description}
+% \item[ToDo:] Should we move the default for \len{@mpfootins} to
+%   \file{scrkernel-footnotes.dtx}?
+% \item[ToDo:] Do we really need to set initial values to \len{fboxsep} and
+% \len{fboxrule}? The same defaults using |pt| instead of \cs{p@} are already
+% used in the \LaTeX{} kernel. Wouldn't that be enough?
+% \end{description}
+%
+% \begin{length}{@mpfootins}
+% \begin{length}{fboxsep,fboxrule}
+% We are using the same settings like the standard classes.
 %    \begin{macrocode}
-%<*class>
+%<*class&body>
 \setlength{\skip\@mpfootins}{\skip\footins}
 \setlength\fboxsep{3\p@}
 \setlength\fboxrule{.4\p@}
-%</class>
-%    \end{macrocode}
-% \end{Length}
-% \end{Length}
-% \end{Length}
-%
-%
-% \subsection{Gleichungen}
-%
-% Gleichungen gibt es bei Briefen nicht.
-% \iffalse
-%<*!letter>
-% \fi
-%
-% \begin{macro}{\theequation}
-% \changes{v2.97e}{2007/11/23}{Kapitelnummer nur im Hauptteil}%^^A
-% \changes{v3.27}{2019/06/26}{\cs{relax} replaced by percent}%^^A
-% Darstellung der Gleichungsnummer:
-%    \begin{macrocode}
-%<*!extend>
-%<book|report>\@addtoreset{equation}{chapter}
-\renewcommand*\theequation{%
-%<*book>
-  \expandafter\ifnum\scr@v@is@gt{2.97d}%
-    \if@mainmatter\thechapter.\fi
-  \else
-%</book>
-%<book|report>  \thechapter.%
-%<book>  \fi
-  \@arabic\c@equation
-}
-%</!extend>
+%</class&body>
 %    \end{macrocode}
-% \end{macro}
-%
-% \iffalse
-%</!letter>
-% \fi
-%
-% \subsection{Definitionen zur Feststellung von linken und rechten
-%   Seiten}
-%
-% \begin{macro}{\ifthispageodd}
-% \changes{v2.8q}{2001/11/22}{neu}%^^A
-% \changes{v3.28}{2019/11/19}{umbenannt in \cs{Ifthispageodd}}%^^A
-% \begin{macro}{\Ifthispageodd}
-% \changes{v3.28}{2019/11/19}{neu aus Umbenennung von \cs{ifthispageodd}}%^^A
-% Häufig wird mit \cs{ifodd}\cs{value\{page\}} getestet, ob man sich
-% gerade auf einer rechten oder einer linken Seite
-% befindet. Dummerweise funktioniert das aber genaugenommen nur
-% zufällig manchmal. Ob man sich auf einer linken oder einer rechten
-% Seite befindet, ergibt sich nämlich erst bei der Ausgabe. Deshalb
-% wird hier ein Makro definiert, das über eine Art Label-Mechanismus
-% arbeitet. Es werden bewusst keine echten \cs{label} und \cs{pageref}
-% verwendet, weil diese Befehle von verschiedenen Paketen manipuliert
-% werden.
+% \end{length}
+% \end{length}
+%
+%
+% \section{Implementation of Detection of Odd and Even Pages}
+%
+% \begin{description}
+% \item[ToDo:] Should this code moved to \file{scrkernel-basics.dtx} or to a
+%   new one?
+% \end{description}
+%
+% \begin{command}{\ifthispageodd,\Ifthispageodd}
+% \changes{v2.8q}{2001/11/22}{added}
+% \changes{v3.28}{2019/11/19}{\cs{ifthispageodd} renamed to \cs{Ifthispageodd}}
+% Users often use |\ifodd\value{page}| to test, whether the current page is
+% odd or even. But this is dramatically wrong, because of the asynchronous
+% output of \TeX. So here we define a command
+% \begin{quote}
+%   \Ifthispageodd\marg{then code}\marg{else code}
+% \end{quote}
+% that internally uses a label-like mechanism to do the decision. We do not
+% really use \cs{label} and \cs{pageref}, because this would not work with
+% Roman or alphabetic page numbers. So we use a direct write to the \file{aux}
+% file instead.
 %
 % \begin{macro}{\new@tpo@label}
-% \changes{v2.8q}{2001/11/22}{neu (intern)}%^^A
-% \changes{v2.95b}{2006/07/28}{verwendet jetzt \cs{@newl@bel}}%^^A
-% \changes{v3.20}{2016/03/25}{use after definition in \texttt{aux}-file}%^^A
-% Definition eines neuen \emph{true}-\emph{page}-\emph{odd} Labels.
-% Wird in der \texttt{aux}-Datei verwendet.
+% \changes{v2.8q}{2001/11/22}{added}
+% \changes{v2.95b}{2006/07/28}{using \cs{@newl@bel}}
+% \changes{v3.20}{2016/03/25}{use after definition in the \file{aux}-file}
+% Definition of a new \textbf{t}rue-\textbf{p}age-\textbf{o}dd label. To be
+% used in the \file{aux} file. A fallback definition is also added to the
+% \file{aux} file, so there wouldn't be an error, e.g., after removing package
+% \pkg*{scrextend} from a document.
 %    \begin{macrocode}
-%<*class|extend>
+%<*(class|extend)&body>
 \newcommand*{\new@tpo@label}{\@newl@bel{tpo}}
 \AtBeginDocument{%
   \if@filesw
@@ -634,34 +524,34 @@
   \fi
 }
 %    \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \new@tpo@label
 %
 % \begin{macro}{\scr@tpo}
-% \changes{v2.8q}{2001/11/22}{neu (intern)}%^^A
-% Es wird ein Zähler benötigt, der die aktuelle Nummer der Anfrage
-% beinhaltet.
+% \changes{v2.8q}{2001/11/22}{added}
+% We need a kind of counter with the actual usage number of
+% \cs{Ifthispageodd}.
 %    \begin{macrocode}
 \newcommand*{\scr@tpo}{0}
 %    \end{macrocode}
-% \end{macro}
+% \end{macro}^^A \scr@tpo
 %
 % \begin{macro}{\is@thispageodd}
-% \changes{v2.8q}{2001/11/22}{neu (intern)}%^^A
-% \changes{v2.9l}{2003/01/28}{renamed \cs{if@thispageodd}}%^^A
-% \changes{v2.95b}{2006/07/28}{basiert nun auf \cs{@newl@bel}}%^^A
-% \changes{v3.17}{2015/03/23}{in zwei Anweisungen ausgeteilt}%^^A
+% \changes{v2.8q}{2001/11/22}{added}
+% \changes{v2.9l}{2003/01/28}{renamed \cs{if@thispageodd}}
+% \changes{v2.95b}{2006/07/28}{using \cs{@newl@bel}}
+% \changes{v3.17}{2015/03/23}{split into two macros}
 % \begin{macro}{\is@thispageodd@setlabel}
-% \changes{v3.17}{2015/03/23}{neu (intern)}%^^A
-% \changes{v3.20}{2016/03/25}{schreibe in die \texttt{aux}-Datei nur
-%     \cs{if@filesw}}%^^A
-% \changes{v3.23}{2017/02/23}{Macro leert sich nach Benutzung selbst}%^^A
-% Diese Makros machen die eigentliche Arbeit. Sie funktionieren nicht wie
-% ein normales \cs{iffalse} oder \cs{iftrue}, denn es kann nicht
-% geschachtelt innerhalb anderer \cs{if\dots} \dots \cs{fi}
-% Klammerungen verwendet werden. Es sollte daher niemals außerhalb von
-% \cs{ifthispageodd} verwendet werden. Da über die \texttt{aux}-Datei
-% gearbeitet wird, funktioniert das Ganze nur, wenn die Datei auch
-% geschrieben wird und min. zwei \LaTeX-Läufe erfolgen.
+% \changes{v3.17}{2015/03/23}{added}
+% \changes{v3.20}{2016/03/25}{write to \file{aux} file only \cs{if@filesw}}
+% \changes{v3.23}{2017/02/23}{empty macro after usage}
+% The main workers of \cs{Ifthispageodd}. It is used to set
+% \cs{ifthispagewasodd} depending on the information it adds to the \file{aux}
+% file.
+% \begin{description}
+% \item[ToDo:] Why do we use an optional argument here? Are there any
+%   circumstances, when the optional argument is not the default
+%   \cs{is@thispageodd@setlabel}?
+% \end{description}
 %    \begin{macrocode}
 \newcommand*{\is@thispageodd}[1][\is@thispageodd@setlabel]{%
   \@bsphack
@@ -698,27 +588,22 @@
 }
 \newcommand*{\is@thispageodd@setlabel}{}
 %    \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\ifthispagewasodd}
-% \changes{v2.9l}{2003/01/20}{neuer Schalter}%^^A
-% \begin{macro}{\thispagewasoddtrue}
-% \begin{macro}{\thispagewasoddfalse}
-% Dieser Schalter speichert auf Rolf Niepraschks speziellen Wunsch die
-% letzte Entscheidung von \cs{ifthispageodd}. Vor dem ersten
-% \cs{ifthispageodd} ist der Zustand undefiniert. Es ist auch nicht
-% garantiert, dass die Entscheidung noch zutreffend ist.
+% \end{macro}^^A \is@thispageodd@setlabel
+% \end{macro}^^A \is@thispageodd
+%
+% \begin{command}{\thispagewasoddfalse,\thispagewasoddtrue,\ifthispagewasodd}
+% \changes{v2.9l}{2003/01/20}{added}
+% Rolf Niepraschks asked for the possibility to check for the last decision,
+% e.g., inside the \meta{then code} or \meta{else code}. So the definition of
+% \cs{Ifthispageodd} has been changed not only to set such a switch, but also
+% use it.
 %    \begin{macrocode}
 \newif\ifthispagewasodd
 %    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% \end{command}
 %
-% Nun fehlt nur noch das eigentliche oben versprochene
-% Anwendermacro. Das ist nun aber auch kein Problem mehr:
-% \changes{v3.31}{2020/04/27}{Klasse und Paket in der Ausgabe korrigiert}%^^A
+% With all these macros the user command is very easy.
+% \changes{v3.31}{2020/04/27}{fixed class and package name in the warning}
 % \changes{v3.32}{2020/08/06}{\cs{KOMAClassName} fixed}
 %    \begin{macrocode}
 \providecommand*{\ifthispageodd}{%
@@ -740,29 +625,53 @@
     \expandafter\@secondoftwo
   \fi
 }
-%</class|extend>
+%</(class|extend)&body>
 %    \end{macrocode}
-% \end{macro}
-% \end{macro}
+% \end{command}^^A \ifthispageodd,\Ifthispageodd
+%
+%
+% \section{Implementation of Notes to the Margin}
+%
+% \begin{description}
+% \item[ToDo:] This has been moved newly to
+%   \file{scrkernel-miscellaneous.dtx}, but maybe we can find another suitable
+%   file?
+% \end{description}
+%
+% \begin{command}{\marginline}
+% \changes{v2.4l}{1997/02/06}{using the optional argument of \cs{marginpar}}
+% \changes{v2.8q}{2001/11/27}{missing brace added}
+% \changes{v3.36}{2022/02/22}{moved from \file{scrkernel-floats.dtx} to
+%   \file{scrkernel-miscellaneaous.dtx}}
+% A very often wanted margin note feature is, to print all such notes in the
+% left margin ragged-left and all such notes in the right margin
+% ragged-right. So this is a simple shortcut for \cs{marginpar} with using
+% almost the same argument twice.
+%    \begin{macrocode}
+%<*(class|extend)&body>
+\newcommand\marginline[1]{%
+  \marginpar[\raggedleft{#1}]{\raggedright #1}%
+}
+%</(class|extend)&body>
+%    \end{macrocode}
+% \end{command}
 %
 %
-% \subsection{Definitionen für tiefer gestellten Text}
+% \section{Implementation of Subscripts}
 %
-% \begin{macro}{\textsubscript}
-% \changes{v2.8h}{2001/07/19}{neu}%^^A
+% \begin{command}{\textsubscript}
+% \changes{v2.8h}{2001/07/19}{added}
+% \changes{v3.25}{2017/11/15}{define only if un-defined because of \LaTeX{}
+%   kernel change}
 % \begin{macro}{\@textsubscript}
-% \changes{v2.8h}{2001/07/19}{neu (intern)}%^^A
-% \changes{v3.10}{2011/09/05}{\cs{providecommand} statt \cs{newcommand},
-%   damit das auch noch funktioniert, wenn \textsf{scrextend} nach
-%   \textsf{fixltx2e} geladen wird}%^^A
-% \changes{v3.25}{2017/11/15}{wird nur noch definiert, wenn nicht vorhanden}%^^A
-% Im \LaTeX-Kern wird zwar ein Makro \cs{textsuperscript} definiert,
-% um Texte hochstellen zu können, die entsprechende Anweisung zum
-% Tiefstellen fehlt jedoch. Das wird hier nachgeholt, wobei nahezu
-% unverändert auf die Definition aus dem \LaTeX-Kern zurückgegriffen
-% wird.
+% \changes{v2.8h}{2001/07/19}{added}
+% \changes{v3.10}{2011/09/05}{\cs{providecommand} instead of \cs{newcommand}
+%   because of \pkg{fixltx2e}}
+% The \LaTeX{} kernel has \cs{textsuperscript}. But for several years
+% \cs{textsubscript} was missing. For such old \LaTeX{} kernels, we define it
+% similar to \cs{textsuperscript}.
 %    \begin{macrocode}
-%<*class|extend>
+%<*(class|extend)&body>
 \scr@ifundefinedorrelax{textsubscript}{%
   \DeclareRobustCommand*\textsubscript[1]{%
     \@textsubscript{\selectfont#1}%
@@ -777,59 +686,67 @@
 \providecommand*{\@textsubscript}[1]{%
   {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}%
 }
-%</class|extend>
+%</(class|extend)&body>
 %    \end{macrocode}
 % \end{macro}
-% \end{macro}
+% \end{command}^^A \textsubscript
 %
 %
-% \subsection{Unsichtbare Stütze}
+% \section{Implementation of an Invisible Strut}
 % \label{sec:strut}
 %
+% \begin{description}
+% \item[ToDo:] Maybe \file{scrkernel-basics.dtx} would be a good place for
+%   this and maybe is should become a user command and be used at several
+%   places, currently \cs{strut} is used.
+% \end{description}
+%
 % \begin{macro}{\scr@endstrut}
-% \changes{v3.25}{2017/11/15}{neu (intern)}%^^A
-% Wird am Ende eines vermutlich horizontalen Materials eine unsichtbare Stütze
-% der Art \cs{strut} eingebaut, werden Leerzeichen, die davor stehen plötzlich
-% zu Leerzeichen in der Ausgabe, auch wenn das gar nicht erwünscht wird. Das
-% kann man verhindern, indem man \cs{unskip} davor setzt. Dummer Weise hat
-% eine solche Stütze dann aber das Problem, dass das letzte Wort davor nicht
-% mehr getrennt wird. Verrückter Weise kann man das wiederum mit \cs{nobreak}
-% lösen. Das sollte dann auch nur im horizontalen Modus gemacht werden.
+% \changes{v3.25}{2017/11/15}{added}
+% If we simply add \cs{strut} to the end of material which is assumed to be
+% horizontal, white spaces at the end of such material could become relevant,
+% even if the would not without the \cs{strut}. We can avoid this by adding
+% \cs{unskip} before the \cs{strut}. But in this case, the last work before
+% the \cs{strut} will not be hyphenated any more. If we are really in
+% horizontal mode, we can use \cs{nobreak} before the \cs{strut} you once
+% again allow hyphenation.
+% \begin{description}
+% \item[ToDo:] Should the \cs{unskip} also be moved behind \cs{ifhmode}?
+% \end{description}
 %    \begin{macrocode}
-%<*class|letter|extend>
+%<*(class|letter|extend)&body>
 \providecommand*{\scr@endstrut}{\unskip\ifhmode\nobreak\strut\fi}
-%</class|letter|extend>
+%</(class|letter|extend)&body>
 %    \end{macrocode}
 % \end{macro}
 %
 %
-%
-% \subsection{Warnung vor Paketen}
+% \section{Warnings for Using Incompatible Packages}
 % \label{sec:packagewarning}
 %
-% \changes{v3.12}{2013/07/08}{neue Warnungen vor bestimmten Paketen}%^^A
+% \begin{description}
+% \item[ToDo:] This should be moved to a new file.
+% \end{description}
+%
+% \changes{v3.12}{2013/07/08}{warnings about several incompatible packages
+%   added}
+%
 % \begin{macro}{\scr@package@not@recommended}
-% \changes{v3.12}{2013/07/08}{neu (intern)}%^^A
-% Beim Laden verschiedener Pakete wird nun eine Warnung ausgegeben. In der
-% Regel mit einer Alternativempfehlung.
+% \changes{v3.12}{2013/07/08}{added}
 % \begin{macro}{\class@shoulddisablepackagewarning@list}
-% \changes{v3.24}{2017/06/25}{neu (nur für Klassenautoren)}%^^A
-% Ab \KOMAScript~3.24 ist für Klassenautoren und nur für diese dokumentiert,
-% dass bei Vorhandensein des Makros
-% \cs{class@shoulddisablepackagewarning@list} während dem Laden der
-% \KOMAScript-Klasse für nicht empfohlene Pakete ein
-% \cs{in@}-Vergleich gegen genau den Inhalt dieses Makros stattfindet. Wird
-% der Paketname dabei gefunden, so unterbleibt das Absetzen der Warnung. Zur
-% korrekten Syntax des zweiten Arguments von \cs{in@} sei ausdrücklich auf den
-% Kernel hingewiesen. Ebenso sind Klassenautoren verantwortlich, eine bereits
-% vorhandene Liste nicht einfach zu überschreiben, sondern korrekt zu
-% ergänzen! Eine Definition von \cs{class@shoulddisablepackagewarning@list}
-% nach dem Laden der \KOMAScript-Klasse ist wirkungslos. Da diese
-% Schnittstelle Klassenautoren vorbehalten bleiben soll, die wissen, was sie
-% tun, gibt es keine weitergehende Dokumentation dazu und natürlich auch kein
-% Beispiel.
+% \changes{v3.24}{2017/06/25}{added}
+% Loading of several incompatible packages should result in warnings using:
+% \begin{quote}
+%   \cs{scr@package@not@recommended}\marg{package}\marg{alternatives}
+% \end{quote}
+% Usually the warning contains information about \meta{alternatives}, but this
+% argument can also be empty. Authors of classes can deactivate the warning,
+% by adding a \meta{package} to the comma separated list
+% \cs{class@shoulddisablepackagewarning@lis}. This has to be done, before
+% loading the \KOMAScript{} class. However doing so is not recommended and the
+% class author is responsible for the drawbacks.
 %    \begin{macrocode}
-%<*class>
+%<*class&body>
 \newcommand*{\scr@package@not@recommended}[2]{%
   \scr@ifundefinedorrelax{class@shoulddisablepackagewarning@list}{%
     \@firstofone
@@ -853,24 +770,20 @@
   }%
 }%
 %    \end{macrocode}
-% \end{macro}%^^A \class@shoulddisablepackagewarning@list
-%
-% \textsf{emptypage} wird nicht benötigt, weil es bereits entsprechende
-% Einstellungen in \KOMAScript{} gibt. Darüber hinaus verwendet es
-% \cs{thispagestyle} an Stelle von \cs{pagestyle} in einer Gruppe, was
-% dazu führen kann, dass nach einem \cs{cleardoublepage}, das keine leere
-% Seite erzeugt, die nächste Seite den entsprechenden Seitenstil bekommt.
+% \end{macro}^^A \class@shoulddisablepackagewarning@list
+% Here are the not recommended packages and the alternatives:
+% \begin{description}
+% \item[\pkg{emptypage}:] is not needed, because there are corresponding
+% options and features in \KOMAScript.
 %    \begin{macrocode}
 \scr@package@not@recommended{emptypage}{%
   option\MessageBreak
   `cleardoublepage' with one of it's\MessageBreak
   several values}
 %    \end{macrocode}
-%
-% \textsf{fancyhdr} verwendet veraltete Font-Befehle und beachtet die
-% Font-Einstellungen und diverse andere Befehle und Optionen von \KOMAScript{}
-% nicht.
-% \changes{v3.24}{2017/06/25}{improved \textsf{fancyhdr} warning}%^^A
+% \item[\pkg{fancyhdr}:] does not respect font settings of \KOMAScript{} and
+%   also breaks some other features.
+% \changes{v3.24}{2017/06/25}{improved \pkg{fancyhdr} warning}
 %    \begin{macrocode}
 \scr@package@not@recommended{fancyhdr}{%
   \MessageBreak
@@ -882,24 +795,24 @@
   `\string\addtokomafont' for the page style elements need\MessageBreak
   explicite user intervention to work}
 %    \end{macrocode}
-% \changes{v3.23}{2017/02/04}{Verwendung von \textsf{minitoc} kann nicht
-%   empfohlen werden}%^^A
-% \textsf{minitoc} definiert u.\,a. \cs{@sect} hart um und zerstört so diverse
-% Erweiterungen von \KOMAScript. Es ist nicht abschließend untersucht, was das
-% Paket noch alles zerstört. Derzeit gibt es nur einen Workaround für das
-% genannte Problem mit \cs{@sect} (siehe:
-% Abschnitt~\ref{sec:packageworkarounds}).
+% \item[\pkg{minitoc}:]
+% \changes{v3.23}{2017/02/04}{\pkg{minitoc} is not recommended}
+% re-defines, e.g., \cs{@sect} and therefore breaks all the extensions of
+% \KOMAScript{} to this command. Currently not all impacts of the package has
+% been explored. Currently there is only a workaround for the \cs{@sect}
+% issue. See \autoref{sec:packageworkarounds} for more information.
 %    \begin{macrocode}
+%<*!letter>
 \scr@package@not@recommended{minitoc}{}
+%</!letter>
 %    \end{macrocode}
-%
-% \selectlanguage{english}%^^A
-% \changes{v3.26}{2018/07/18}{\textsf{multitoc} not recommended}%^^A
-% \textsf{multitoc} not recommended, because up to version 2.01 it breaks all
-% additional list-ofs and even table of contents, list of figures and list of
-% tables, if option \texttt{toc}, \texttt{lof} or \texttt{lot} has not been
-% set. And it is not needed, because you can use \cs{BeforeStartingTOC} and
-% \cs{AfterStartingTOC} to make two-column list-ofs.
+% \item[\pkg{multitoc}:]
+% \changes{v3.26}{2018/07/18}{\pkg{multitoc} not recommended}
+% At least up to version 2.01 this breaks all additional lists/tables of
+% contents, because the \cs{@starttoc} redefinition does not allow to use
+% another extension but \file{toc}, \file{lof}, or \file{lot}. The package is
+% also not needed, because the \env{multicols} environment can simply be added
+% using \cs{BeforeStartingTOC} and \cs{AfterStartingTOC}.
 %    \begin{macrocode}
 %<*!letter>
 \scr@package@not@recommended{multitoc}{%
@@ -921,45 +834,40 @@
 }
 %</!letter>
 %    \end{macrocode}
-% \selectlanguage{ngerman}%^^A
-%
-% \textsf{parskip} ist nur ein Notfallpaket für Klassen, die selbst keinen
-% Absatzabstand unterstützen.
+% \item[\pkg{parskip}:] is an emergency fallback package for classes, that
+%   do not support paragraph skips themselves.
 %    \begin{macrocode}
 \scr@package@not@recommended{parskip}{%
   option\MessageBreak
   `parskip' with one of it's several values}
 %    \end{macrocode}
-%
-% \changes{v3.16}{2015/01/21}{Verwendung von \textsf{titleps} kann nicht 
-%   empfohlen werden}%^^A
-% \textsf{titleps} beachtet die Font-Einstellungen und diverse andere Befehle
-% und Optionen von \KOMAScript{} nicht.
+% \item[\pkg{titleps}:]
+% \changes{v3.16}{2015/01/21}{\pkg{titleps} not recommended}
+% does not respect several font settings and other features of the
+% \KOMAScript{} classes.
 %    \begin{macrocode}
 \scr@package@not@recommended{titleps}{%
   package `scrlayer-scrpage'}
 %    \end{macrocode}
-%
-% \textsf{titlesec} beschädigt diverse \KOMAScript{} Erweiterungen und
-% benötigt eigene Workarounds (siehe Abschnitt~\ref{sec:packageworkarounds}),
-% so dass es einfach nicht gut mit \KOMAScript{} harmoniert.
+% \item[\pkg{titlesec}:]
+% \changes{v3.36}{2022/03/01}{bring back \pkg{titlesec} warning}
+%   breaks several \KOMAScript{} features and needs a lot
+%   of workarounds to not result in errors. Note, these workarounds have been
+%   removed from \KOMAScript{}, because they are very fragile and use internal
+%   macros of \pkg{titlesec}.
 %    \begin{macrocode}
 %<*!letter>
-%<*ignorethis>
 \scr@package@not@recommended{titlesec}{%
-  the package only\MessageBreak
-  if you really need it, because it breaks several\MessageBreak
-  KOMA-Script features, i.e., option `headings' and\MessageBreak
-  the extended optional argument of the section\MessageBreak
-  commands}
-%</ignorethis>
+  KOMA-Script features\MessageBreak
+  like \string\setkomafont, \string\RedeclareSectionCommand,
+  \string\sectionlinesformat\MessageBreak
+  and several others to re-configure section\MessageBreak
+  headings}
 %</!letter>
 %    \end{macrocode}
-%
-% \selectlanguage{english}%^^A
-% \changes{v3.27}{2019/07/24}{\textsf{sectsty} up to v2.0.2 is
-%   incompatible}%^^A
-% \textsf{sectsty} up to version 2.0.2 uses internal commands of
+% \item[\pkg{sectsty}:]
+% \changes{v3.27}{2019/07/24}{\pkg{sectsty} up to v2.0.2 is incompatible}
+% uses up to version 2.0.2 internal commands of
 % \KOMAScript{}, that has been removed already 2001 in \KOMAScript{} 2.8e. So
 % it was never compatible with \KOMAScript~3.
 %    \begin{macrocode}
@@ -987,14 +895,14 @@
 }
 %</!letter>
 %    \end{macrocode}
-%
-% \changes{v3.25}{2017/11/21}{Usage of \textsf{tocbibind} not recommended}%^^A
-% \textsf{tocbibind} does several things, that break \KOMAScript, i.e.:
+% \item[\pkg{tocbibind}:]
+% \changes{v3.25}{2017/11/21}{Usage of \pkg{tocbibind} not recommended}
+% \pkg{tocbibind} does several things, that break \KOMAScript, i.e.:
 % \begin{itemize}
 % \item usage of \cs{MakeUppercase} within running heads,
 % \item usage of hard codes \texttt{toc} for the ToC entries,
-% \item hard redefinition of \texttt{thebibliography},
-% \item hard redefinition of \texttt{theindex},
+% \item hard redefinition of \env{thebibliography},
+% \item hard redefinition of \env{theindex},
 % \item hard redefinition of \cs{tableofcontents},
 % \item hard redefinition of \cs{listoftables},
 % \item hard redefinition of \cs{listoffigures},
@@ -1012,18 +920,18 @@
 }
 %</!letter>
 %    \end{macrocode}
-%
-% \changes{v3.26}{2018/07/18}{Usage of \textsf{tocloft} not recommended}%^^A
-% \textsf{tocloft} does redefine \cs{tableofcontents}, \cs{listoffigures},
+% \item[\pkg{tocloft}:] 
+% \changes{v3.26}{2018/07/18}{Usage of \textsf{tocloft} not recommended}
+% redefines \cs{tableofcontents}, \cs{listoffigures},
 % \cs{listoftables}, \cs{l@part} \dots{} \cs{l@subparagraph} and breaks
 % \KOMAScript, i.e.:
 % \begin{itemize}
 % \item commands \cs{BeforeTOCHead}, \cs{AfterTOCHead},
 %   \cs{BeforeStartingTOC}, \cs{AfterStartingTOC},
 % \item almost all TOC features,
-% \item options \texttt{listof=totoc}, \texttt{listof=numbered},
-% \item option \texttt{listof=flat},
-% \item option \texttt{listof=entryprefix},
+% \item options \opt{listof=totoc}, \opt{listof=numbered},
+% \item option \opt{listof=flat},
+% \item option \opt{listof=entryprefix},
 % \item all options of \cs{DeclareTOCEntryStyle},
 % \end{itemize}
 %    \begin{macrocode}
@@ -1052,23 +960,31 @@
   `subsubsection', `paragraph' and `subparagraph'%
 }
 %</!letter>
-%</class>
+%</class&body>
 %    \end{macrocode}
-% \selectlanguage{ngerman}%^^A
-% \end{macro}%^^A \scr@package@not@recommended
+% \end{description}
+% \end{macro}^^A \scr@package@not@recommended
 %
-% \subsection{Workarounds für fremde Pakete}
+% \section{Workarounds for Incompatible Packages}
 % \label{sec:packageworkarounds}
 %
-% \changes{v3.23}{2017/02/04}{\textsf{minitoc} verursacht ein schwerwiegendes
-%   Problem}%^^A
-% Das Paket \textsf{minitoc} verursacht ein schwerwiegendes Problem indem es
-% \cs{@sect} hart umdefiniert, ohne zuvor zu testen, ob die Definition den
-% Erwartungen entspricht. Ich werde hier einmal versuchen, mich darum herum zu
-% lavieren. Eine wirklich gute Lösung ist das sicher nicht. Man sollte das
-% Paket schlicht besser nicht mit \KOMAScript{} zusammen verwenden.
+% \begin{description}
+% \item[ToDo:] The code should be moved to the same file as the code of
+%   \autoref{sec:packagewarning} or maybe even to \pkg{scrhack}.
+% \end{description}
+%
+% For some packages can be made compatible, patching some internal macros of
+% these packages:
+% \begin{description}
+% \item[\pkg{minitoc}:]
+%   \changes{v3.23}{2017/02/04}{\pkg{minitoc} is incompatible}
+%   has some serious issues. The first issue is the hard re-definition of
+%   \cs{@sect} without respecting the changes the \KOMAScript{} classes
+%   already made. Here I'll try a ugly workaround for this, but is can
+%   break. So not using the package with a \KOMAScript{} class would be the
+%   better choice.
 %    \begin{macrocode}
-%<*class>
+%<*class&body>
 %<*!letter>
 \BeforePackage{minitoc}{%
   \let\scr@mt@saved@sect\@sect
@@ -1084,7 +1000,7 @@
 %    \end{macrocode}
 % Note: There are several bugs in this definition (e.g. missing
 % \cs{expandafter} and spurious spaced). Nevertheless its the original one
-% from \textsf{minitoc} 61 and so I have to use it.
+% from \pkg{minitoc} 61 and 62 and so I have to use it.
 %    \begin{macrocode}
     \def\@tempa#1#2#3#4#5#6[#7]#8{
       \expandafter
@@ -1163,155 +1079,33 @@
   \fi
 }
 %</!letter>
-%</class>
-%    \end{macrocode}
-%
-% \changes{v3.13a}{2014/10/09}{\textsf{titlesec} hat ein schwerwiegendes
-%   Problem}%^^A
-% Das Paket \textsf{titlesec} hat ein schwerwiegendes Problem, wenn
-% Überschriften nicht per \cs{@startsection} definiert sind. Ich werde hier
-% einmal versuchen, mich darum herum zu lavieren. Eine wirklich gute Lösung
-% ist das sicher nicht. Man sollte das Paket schlicht besser nicht mit
-% \KOMAScript{} zusammen verwenden.
-%    \begin{macrocode}
-%<*class>
-%<*!letter>
-%<*ignorethis>
-\BeforePackage{titlesec}{%
-  \let\scr@ttl@saved@section\section
-  \let\scr@ttl@saved@subsection\subsection
-  \let\scr@ttl@saved@subsubsection\subsubsection
-  \let\scr@ttl@saved@paragraph\paragraph
-  \let\scr@ttl@saved@subparagraph\subparagraph
-}
-%</ignorethis>
-\AfterPackage{titlesec}{%
-%    \end{macrocode}
-% Hack getestet mit \textsf{titlesec} 2011/12/15 v2.10.0 bis 2016/03/21
-% v2.10.2. Daher bis zu diesem Datum freigeschaltet.
-% \changes{v3.20}{2016/03/22}{\textsf{titlesec}-Hack auch für Version
-%   2016/03/15}%^^A
-% \changes{v3.20}{2016/03/24}{\textsf{titlesec}-Hack auch für Version
-%   2016/03/21}%^^A
-% \selectlanguage{english}%^^A
-% \changes{v3.27}{2019/07/23}{\textsf{titlesec} does not support KOMA-Script
-%   classes}%^^A
-% After several years \textsf{titlesec} still does not really support
-% \KOMAScript{} classes and \KOMAScript{} would still need an ugly hack using
-% internal \texttt{titlesec} macros and deactivating several features of
-% \KOMAScript{} to make the package work. So IMO the better solution is to
-% remove such hacks from the \KOMAScript{} classes. Maybe the
-% \textsf{titlesec} author will support the \KOMAScript{} classes in some
-% future, maybe not. Maybe \textsf{scrhack} will provide an ugly workaround to
-% make \texttt{titlesec} work in any kind with \KOMAScript{} classes. But the
-% classes are the wrong place to provide such hacks. However, if you need such
-% a hack, see the following code, that is not longer used or supported or copy
-% the section commands code from a standard class.
-%    \begin{macrocode}
-%<*ignorethis>
-  \@ifpackagelater{titlesec}{2019/10/17}{%
-    \ClassInfo{\KOMAClassName}{%
-      Deactivating the `titlesec' workaround,\MessageBreak
-      because package is newer than expected%
-    }%
-  }{%
-    \ClassWarning{\KOMAClassName}{%
-      Activating an ugly workaround for a missing\MessageBreak
-      feature of package `titlesec`%
-    }%
-    \def\scr@ttl@@extract#1\scr@startsection#2#3#4#5#6#7#8{%
-      \@tempskipa=#5
-      \@tempskipb=#6
-      \ifdim\@tempskipa<\z@
-        \toks@{\titlespacing*#8{#4}}%
-        \@tempskipa-\@tempskipa
-      \else
-        \toks@{\titlespacing#8{#4}}%
-      \fi
-      \@ifundefined{ttl@space}{}{%
-        \ttl@assign\@tempskipa*\ttl@space\relax\beforetitleunit}%
-      \ifdim\@tempskipb<\z@
-        \if@tempswa
-          \titleformat#8[runin]%
-             {\ttl@fonts\ttl@sizes{#3}}{\@seccntformat{#2}}%
-             {\z@}\ttl@passexplicit
-        \else
-          \titleformat#8[runin]%
-             {#7}{\@seccntformat{#2}}%
-             {\z@}\ttl@passexplicit
-        \fi
-        \@tempskipb-\@tempskipb
-      \else
-        \if@tempswa
-          \titleformat#8%
-            {\ttl@fil\ttl@fonts\ttl@sizes{#3}}{\@seccntformat{#2}}%
-            {\z@}\ttl@passexplicit 
-        \else
-          \titleformat#8%
-            {#7}{\@seccntformat{#2}}%
-            {\z@}\ttl@passexplicit
-        \fi
-        \@ifundefined{ttl@space}{}{%
-          \ttl@assign\@tempskipb*\ttl@space\relax\aftertitleunit}%
-      \fi
-      \edef\ttl@a{\the\toks@{\the\@tempskipa}{\the\@tempskipb}}
-      \ttl@a}%
-    \expandafter\scr@ttl@@extract\scr@ttl@saved@section\section
-    \expandafter\scr@ttl@@extract\scr@ttl@saved@subsection\subsection
-    \expandafter\scr@ttl@@extract\scr@ttl@saved@subsubsection\subsubsection
-    \expandafter\scr@ttl@@extract\scr@ttl@saved@paragraph\paragraph
-    \expandafter\scr@ttl@@extract\scr@ttl@saved@subparagraph\subparagraph
-    \let\scr@ttl@saved@section\relax
-    \let\scr@ttl@saved@subsection\relax
-    \let\scr@ttl@saved@subsubsection\relax
-    \let\scr@ttl@saved@paragraph\relax
-    \let\scr@ttl@saved@subparagraph\relax
-    \let\scr@ttl@@extract\relax
-  }%
-%</ignorethis>
-  \@ifpackagelater{titlesec}{2019/10/17}{%
-    \ClassInfo{\KOMAClassName}{Unknown `titesec' release.\MessageBreak
-      Cross your fingers, that is compatible%
-    }%
-  }{%
-    \scr@class@titlesec@warning
-  }%
-}
-\providecommand*{\scr@class@titlesec@warning}{%
-  \ClassWarning{\KOMAClassName}{%
-    Usage of this version of package `titlesec'\MessageBreak
-    with KOMA-Script class `\KOMAClassName' is\MessageBreak
-    not recommended, because the package does not\MessageBreak
-    support KOMA-Script classes, but break them.\MessageBreak
-    If you want to use `titlesec' with KOMA-Script\MessageBreak
-    classes instead of using the KOMA-Script's\MessageBreak
-    user interface to configure the headings of\MessageBreak
-    parts,
-%<!article>    chapters, sections
-%<article>    sections, subsections
-    ... subparagraphs,\MessageBreak
-    please ask the author of `titlesec' for support.\MessageBreak
-    Expect errors like:\MessageBreak
-    \space\space- ``Illegal unit of measure (pt inserted).''\MessageBreak
-    \space\space- ``Missing number, treated as zero''\MessageBreak
-    after loading `titlesec'%
-  }%
-}  
-%</!letter>
-%</class>
+%</class&body>
 %    \end{macrocode}
+% \item[\pkg{titlesec}:]
+%   \changes{v3.13a}{2014/10/09}{\pkg{titlesec} is hardly incompatible}
+%   \changes{v3.27}{2019/07/23}{\pkg{titlesec} does not support
+%     KOMA-Script classes}%
+%   After several years \textsf{titlesec} still does not really support
+%   \KOMAScript{} classes and \KOMAScript{} would still need an ugly hack
+%   using internal \texttt{titlesec} macros and deactivating several features
+%   of \KOMAScript{} to make the package work. So IMO the better solution is
+%   to remove such hacks from the \KOMAScript{} classes. Maybe the
+%   \pkg{titlesec} author will support the \KOMAScript{} classes in some
+%   future, maybe not. If you really need to \pkg{titlesec} with a
+%   \KOMAScript{} class, see the ugly \texttt{standardsection} hack in
+%   \pkg*{scrhack}.
+% \end{description}
 %
 %
-% \iffalse
-%</body>
-% \fi
-%
 % \Finale
-%
+% \PrintChanges
+% 
 \endinput
-%
-% end of file `scrkernel-miscellaneous.dtx'
-%%% Local Variables:
-%%% mode: doctex
-%%% TeX-master: t
-%%% End:
+% 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:
-- 
cgit v1.2.3

